在 dwh oracle 中,Full table vs Delta table vs Incremental 之间有什么区别

What is the diff between Full table vs Delta table vs Incremental in dwh oracle

我正在尝试理解完整 Table 与增量 Table 与增量 table 的概念,并且原则上是为了简化(更快的加载过程)每日 ETL 加载使用增量 table

的好习惯

已满TABLE

增量 TABLE

三角洲TABLE

我读过一些

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

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

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

截至

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

嗯,你没有提供引用的参考,但根据我的经验,它只有 50% 正确。

我读过:

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

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

delta load相反,错误仍然存​​在并且可以在时间内累积。

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

我的经验法则是-仅当满载是时才选择增量负载不可行(即对于事务表和大尺寸)。