我是OLAP的新手。
我理解表结构和ETL过程。
我不明白何时应该从事实表中删除数据。 假设我正在为事件创建报告应用程序。每个事件都有完成所需的持续时间,退出代码和读取的总字节数。有几个方面,例如时间和地点。
假设我每天为我的事实表准备了100万条新记录,总共1 GB。 如果我的ETL进程只将数据添加到我的事实表中,它会无限增长。 我应该何时从事实表中删除数据?我应该将数据分成几个事实表(例如月表)吗?
有没有经验法则?
由于
答案 0 :(得分:1)
永远不应删除历史记录。
周期。
然而,有些人会感到紧张,每天1Gb可能会变成每3年1Tb。这实际上很少重要,但有些人仍然担心存储的价格。
您花在设计数据清除上的时间可能比您尝试保存的存储更加昂贵。
[我找到了3位DBA和2位程序员在讨论如何节省几百MB的方法。我说我会将它们全部推到百思买,并购买一台500Mb磁盘驱动器,并在我的汽车地板上进行备用更换。仅仅走进房间讨论它的5名顾问的价格已经超出了他们试图“储存”的存储价格。]
“我们能总结一下吗?”的问题完全取决于用户。有时您无法有用地总结,因此您也无法轻易删除任何内容。
有些人会说商业周期是20年或类似的事情,并且需要前20年(7Tb)的详细信息,然后是之前的时间段的摘要。
答案 1 :(得分:1)
从不。您可以使用分区来处理旧记录并将分区移动到不同的驱动器。如果按日期(月份,季度)对事实表进行分区,那么出于所有实际目的,您大多数时间都会访问少数最新分区。
请记住,DW属于业务用户,而不属于IT。不要限制(不要试图假设)业务分析师可能要问的问题 - 查询DW。