KDT#20 稀疏事实表和事实维度表
事实表一般围绕着度量来建立,当度量产生的时候,事实记录就生成了。度量可以是销售数量、交易流水值、月末节余等数值。如果同时生成多个度量值的话,我们可以在一个事实表中建立多个事实。当我们的事实表中的事实比较多时,有可能多个事实不同时发生,如果同时生成的几率很小,我们称之为稀疏事实表(Sparse Facts)。
对于稀疏事实表,通常会在事实中存在大量的NULL值。通常的处理方式是建立“事实维度表”(Fact Dimension)。使用事实维度表,可以将不同的事实以记录的形式保存到事实维度表中。原来在事实表中的事实如果有值产生时,就在事实维度表中插入记录,否则就不需要插入记录。
使用事实维度表是很灵活的,当你需要添加新的度量事实时,你只需要在维度表中增加一条记录,而不需要修改表结构。但是采用事实维度表也有缺点,其一是为了保存事实必须生成大量的记录,其二是使用事实维度表使应用程序变得复杂。
总的来说,我们需要考虑事实记录的稀疏程度,如果非常稀疏的话,我们可以考虑使用事实维度表,如果不是,则不建议使用。
浙公网安备 33010602011771号