2

处理维度表中缺失值的最佳方法是什么?

在文本列的情况下,很容易写“NA: Missing”,但是对于保留特定值很重要的数字列应该怎么做。注意:我不想要使用带状值的解决方案(例如,“0-50”、“50-100”、“NA:缺失”的文本列)。

例如,客户维度可能有出生年份。错过出生年份应该如何处理?让它为空?添加任意数字作为占位符,例如 1900?

有时,可能很难找到占位符编号。例如,如果迄今为止的销售额为非负数,但可以为零,我不想将“0”作为 null 的占位符。我可以使用负值,例如“-1”,但这会破坏使用总和的查询。

4

1 回答 1

3

在您的事实表中,您永远不会对外键使用空值,但您可以并且应该在适当的情况下为指标使用空值。聚合时,空值将给出准确的结果,而默认值则不会。

出于同样的原因,在维度表中,属性也可以并且应该在适当的地方为空。虽然对维度值进行聚合不太常见,但它确实会发生,所以当它发生时它应该是正确的

如果您需要一个维度中的空值,那么该维度应该有一行用于此目的。例如,日期维度可能有 3 或 4 个特殊行 - no valueunknownpast并且future是合理的特殊值行,具体取决于您的需要。

通过这种方式,您将在 BI 层中为自己省去很多痛苦。

于 2013-09-19T23:14:51.820 回答