我正在设计数据仓库架构。
在探索从生产中提取数据并将其放入数据仓库的各种选项时,我遇到了许多文章,主要建议以下两种方法 -
- 生产数据库---->数据仓库(星型模式)---->OLAP立方体
- 生产数据库---->暂存数据库----> 数据仓库(星型模式)----> OLAP 立方体
我仍然不确定哪种方法在性能和减少生产数据库的处理负载方面是更好的方法。
您在设计数据仓库时发现哪种方法更好?
以下几点摘自,DWBI 组织 https://dwbi.org/etl/etl/52-why-do-we-need-staging-area-during-etl-load article
如果您有以下任一情况,则可能需要暂存区:
-
德尔塔装载:您的数据是从源增量读取的,您需要一个中间存储,可以临时存储增量数据集以用于转换目的
-
转型需求:在使用仓库中的数据之前需要进行数据清理、验证等操作
-
解耦:您的处理需要花费大量时间,并且您不希望在整个处理过程中保持与源系统的连接(大概源系统正在不断地被实际业务用户使用),因此,更愿意只阅读一次性从源系统获取数据,断开与源的连接,然后继续在“自己这边”处理数据
-
调试目的:您不需要一直返回源,您可以仅从暂存区解决问题(如果有)
-
故障恢复:源系统可能是暂时的,数据的状态可能会发生变化。如果您遇到任何上游故障,您可能无法重新提取数据,因为那时源已更改。拥有本地副本会有所帮助
性能和减少处理可能不仅仅是考虑因素。添加分期有时可能会增加latency
(即业务事件发生与报告之间的时间延迟)。但我希望以上几点能够帮助您做出更好的判断。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)