dwh oracle中完整表与增量表与增量表之间的区别是什么

问题描述

我试图理解完整表 vs 增量表 vs 增量表的概念,原则上为了简化(更快的加载过程)每天的 ETL 加载,使用增量表是一个好习惯

完整表格

增量表

增量表

我在某处读过一些

使用增量加载来移动数据可以缩短 ETL 流程的运行时间并降低出现问题时的风险

有人可以帮我理解这个概念吗?

解决方法

  • full,顾名思义,加载一切,整个源数据文件
  • incremental - 或 delta (它们是同义词,不是两种不同的类型) - 意味着您只加载尚未加载的数据。这通常意味着已记录上次加载的时间。下一个加载会话加载在上次成功加载时间戳之后创建的数据

截至

  • “缩短运行时间”:显然,如果您不必加载所有内容而只加载缺少的内容,则需要更少的时间
  • “降低风险”:您不会弄乱已经加载的数据,它会保留在数据库中。如果出现问题,当前加载会话就会出错,因此您可以放弃所做的更改并重新开始
,

好吧,您没有为您的报价提供参考,但根据我的经验,它只有 50% 正确。

我读过:

使用增量加载来移动数据可以缩短 ETL 流程的运行时间 但会增加 出现问题的风险。 >

问题在于错误累积。如果您在满载中得到损坏或不完整的数据,您可以在下一次加载时将它们清除掉,并且很有可能新的加载是有效的。

增量加载相反,错误仍然存​​在并且可以在时间内累积

因此好的做法在实施增量加载时执行定期检查(每天、每月等),确保源和目标中的完整快照相同.

我的经验法则是 - 仅当满载不可行(即对于事务表和大维度)时才选择增量加载 .

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...