首页 > 解决方案 > 数据仓库和原子性很少共存

问题描述

这是在一条幽默的推文背景下出现的,该推文讲述了将数据仓库的夜间负载包装在事务中,以及这将如何使日志文件膨胀并占用磁盘空间。我并不是要反驳它,而是要更好地理解它——对我来说,这似乎意味着应该允许完成部分负载(由于错误),这意味着 DW 不能准确地反映源系统( s)。

我能理解的唯一方法是,如果不完整的记录将被加载到 DW 中的中间暂存层,但在随后的夜间加载完成之前不会被进一步处理,然后才会被进一步处理。

我试图进一步研究它,但没有成功,所以非常感谢任何建议。

标签: etldata-warehouse

解决方案


如果在加载 DW 期间发生错误,您可以:

  • 停止加载和回滚(到开始加载单个目标对象、一组对象或整个 DW)
  • 停止负载并让 DW 保持原样
  • 记录错误并继续加载(失败的目标或 DW 中的其他对象)

您选择哪个选项完全取决于您的特定情况,并且您可能在 etl 管道的不同点使用许多不同的策略,具体取决于错误的数量。例如:

  • 该错误可能允许您继续加载其他维度/事实而不影响它们
  • 您的企业可能更喜欢加载事实表减去一条错误记录,而不是在错误得到修复之前丢失一整天的数据

推荐阅读