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