首页 > 解决方案 > SQL - 我应该将目标存储在历史记录中还是加入到 BI 工具中?什么更有效率?

问题描述

编辑 - TL;DR 是否应将静态、冗余元数据存储在历史记录中或在数据提取时加入历史记录以进行完整数据刷新?

例如,假设我有一个表,其中包含按月和年的历史销售信息,该表在产品、州、地区级别汇总。

现在假设我有想要应用于所有当前和历史销售的特定于产品的“目标”。所有月份、年份、州和地区的目标都是相同的。

关于是否 (a) 每次刷新数据时加入目标表并将目标与历史记录一起存储,或者 (b) 在每次进入 BI 工具的途中将整个历史记录加入目标表,是否存在一般最佳实践数据刷新了吗?

如果目标存储在历史记录中,则需要一次历史记录来更改目标。

我将不胜感激任何想法或讨论,因为这是我经常遇到的情况。

过去,我使用了第三种选项,它涉及在流程的最后加入多个维度表,这显然效率低下,所以我在当前流程中删除了它,但现在我发现自己的历史记录有任何变化。

提前谢谢了。

标签: sql

解决方案


取决于您在提到“最佳实践”时的想法。

将目标值保留在历史记录中性能更高,因为您只需要更新没有的单元格上的值。每次加入都需要资源。

但是,您应该考虑一个重要的业务问题,并且可能会将此问题从本网站中删除。可以通过插入延迟交易吗?如果是,这意味着“动态”的 join-method 将考虑新事务,而 save-target-to-history 方法不会!很多时候,目标会影响员工的奖金……这是一件很重要的事情。您必须小心并检查您公司/客户的规范,以确保这一点。在此之后,如果您还有选择,您可以从性能方面考虑设计。


推荐阅读