Blu*_*oon 5 data-warehouse database-design storage
我在一家零售公司工作,我们正在构建一个新的数据仓库。我们需要存储的一个元素是物理库存数据,即在特定时间特定位置有多少 SKU 可用。因此,我们要查看的变量是:skus、站点、天、小时和数量。
问题是大约有:100k skus 和 200 家商店。如果我每小时存储数据,我每天会得到 100k x 200 x 24 = 480,000,000 行。我了解并非每个 sku 在每个站点上的数量都大于 0。假设稀疏性高达 80%,当数量为 0 时,我们不存储它,因此我们每天保留 96,000,000 行。此外,即使我们有网站并且销售不会在晚上停止,但我们可能会假设夜间的数量变化很小,并且并非每个 sku 都是每小时销售一次。让我们假设一个 sku 平均每天只在 3 个不同的时间销售。这使我们减少到 12,000,000。
这是我们最初查看的 2.5%,然而,它仍然是一个相当大的数量。几个月后,每天 12,000,000 行将占用大量空间。该问题的部分解决方案是 Kimball 在 The Data Warehouse Toolkit 中建议的,即存储过去一个月左右每小时的数据,然后仅存储最近 n 个月的每日数据,然后删除旧记录。考虑到我们已经假设我们平均每天仅在 3 个不同的小时内销售 sku,从每小时数据切换到每日数据只会减少三分之二。假设我想保存过去六个月的股票数据。一个月按小时计算,五个月按每日计算(让我们假设一个月有 30 天来简化数学计算)这将是:(12,000,000 X 30) + (4,000,000 X 150) = 960,000,000 行。
我真的想不出更好的方法来做到这一点,以前有人不得不使用实物库存数据吗?你学到了什么有用的教训?有没有更有效的方法来存储这些数据?
谢谢,