sql - SQL - 我应该将目标存储在历史记录中还是加入到 BI 工具中?什么更有效率?
问题描述
编辑 - TL;DR 是否应将静态、冗余元数据存储在历史记录中或在数据提取时加入历史记录以进行完整数据刷新?
例如,假设我有一个表,其中包含按月和年的历史销售信息,该表在产品、州、地区级别汇总。
现在假设我有想要应用于所有当前和历史销售的特定于产品的“目标”。所有月份、年份、州和地区的目标都是相同的。
关于是否 (a) 每次刷新数据时加入目标表并将目标与历史记录一起存储,或者 (b) 在每次进入 BI 工具的途中将整个历史记录加入目标表,是否存在一般最佳实践数据刷新了吗?
如果目标存储在历史记录中,则需要一次历史记录来更改目标。
我将不胜感激任何想法或讨论,因为这是我经常遇到的情况。
过去,我使用了第三种选项,它涉及在流程的最后加入多个维度表,这显然效率低下,所以我在当前流程中删除了它,但现在我发现自己的历史记录有任何变化。
提前谢谢了。
解决方案
取决于您在提到“最佳实践”时的想法。
将目标值保留在历史记录中性能更高,因为您只需要更新没有的单元格上的值。每次加入都需要资源。
但是,您应该考虑一个重要的业务问题,并且可能会将此问题从本网站中删除。可以通过插入延迟交易吗?如果是,这意味着“动态”的 join-method 将考虑新事务,而 save-target-to-history 方法不会!很多时候,目标会影响员工的奖金……这是一件很重要的事情。您必须小心并检查您公司/客户的规范,以确保这一点。在此之后,如果您还有选择,您可以从性能方面考虑设计。
推荐阅读
- python - jenkins - 如何将生成的输出文件从脚本附加到 jenkins 作业
- angular - 如何启用和禁用角材料中的滑动切换
- php - 签名验证失败 - Apple 使用 Firebase JWT 登录
- html - 使用 jquery 检索具有相同类的两个 div 之间的 Html 数据
- jenkins - 将 jenkins 参数从 jenkins 文件传递到批处理脚本
- reactjs - 使用 Redux 状态初始化 React 钩子表单的默认值
- bash - 如何从shell脚本中的字符串中删除单词
- python-3.x - 计算数据框中每列有多少个元素是空列表
- security - 使用 CURL 对敏感文件进行 SFTP 文件传输的安全性如何?
- kubeflow - 有没有办法自定义 Kubeflow Pipeline 可视化的名称?