由于事实表,我在设计数据仓库和ETL过程时遇到了一些问题。它包含超过1亿行的2年会计数据。维度通过外键与事实表相关,我还使用了代理键,索引和视图。你们如何处理这样的事实表以确保良好的性能,合理的ETL过程以及对数据仓库的变化具有适应性和弹性?它将把桌子划分半年好方法吗?
答案 0 :(得分:0)
首先,您应该再次查看数据仓库设计。
实际上,表中的外键组合每行必须是唯一的。如果没有,ETL过程有问题。
您可以通过比较事实表中所有行的计数与按每个外键分组的查询计数行来轻松检查这一点(通过fk1,fk2,fk..n从fact_table组中选择count(*))。它必须是平等的。
接下来,您告诉您将代理键作为外键。我认为没有理由重复你应该使用整数。
按月划分事实表,我半年期间不明白为什么?
1亿行并不算太大。也许您应该考虑一些柱状数据库(例如Vertica)。
答案 1 :(得分:0)
我在Fact Table上创建了一个列存储索引,查询成本(相对于批处理)现在是14%的索引,86%没有索引。我觉得它很不错。 下面的执行计划。
http://uploadimage.ro/img.php?image=4508_execution_plan_sk6y.png