gpt4 book ai didi

etl - 更改数据捕获多个表以进行增量加载 - ETL

转载 作者:行者123 更新时间:2023-12-02 15:45:51 25 4
gpt4 key购买 nike

我正在构建一个从 informatica cdc 获取数据的暂存区。现在,例如,假设我正在复制两个表以进行增量加载。每次加载后,我必须从暂存表中删除已处理的数据。我连接这两个表来填充我的目标维度。问题是在特定负载中,变化只能发生在一个源上,而不能发生在另一个源上。

示例:

Employee
---------
ID NAME
1 PETER

EmployeeSal
------------
EMPID SAL

1 2000

如果在第一次加载中复制了上述内容,我将连接两个表并加载它们,这很好。

现在假设 Peter 的工资从 2000 更新到 3000。由于我在每次加载后删除了临时表,因此当前加载的内容如下。

Employee
---------
ID NAME

EmployeeSal
-----------
EMPID SAL

1 3000

这是我的问题,我必须填充 TYPE2 维度的整行。

  1. 我必须连接回源才能获取员工表的其他属性(这只是一个蹩脚的例子,实际上可能有 10 个表和数十万个更改)。是否建议回溯源?

  2. 我可以将目标表加入到此组合中并填充缺少的属性。
    是否建议这样做,因为如果特定的临时表的维度记录没有更改,我必须执行大量 case 语句、空处理等。我的问题是,在 ETL 转换中连接目标表是否常见?

最佳答案

回到源系统,首先就失去了创建暂存区的目的。通常不建议这样做。

然而,查询目标表来获取以前的信息是很常见的。但确实你必须做很多检查。

另一种选择是在您的暂存区域保留 1 型 scd。在暂存中维护插入和更新时间戳,您可以使用它在加载维度时仅获取更改的记录。

关于etl - 更改数据捕获多个表以进行增量加载 - ETL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29113181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com