我有一些原始数据位于大查询表中,这些数据是截断负载,而我在这些原始 BQ 表上运行的每日 ETL 提要是代理的每日快照,它们是下面的每日提取。
为了提供更多背景知识,我正在尝试实现一个仅插入表来实现虚拟化 SCD 类型 2 逻辑的概念。本文重点介绍直接使用增量提取实现 SCD 类型 2。
我的要求是设计一个逻辑/代码来找出这个“仅插入”每日提取,以便我可以构建该虚拟化 SCD 2 表。我正在考虑将每个每日提取放在 Big-query 表中自己的每日分区中,以便我在一个最终表中拥有所有每日更改来构建此视图。
什么是每天查找增量提取并将其保存在大查询中的插入表(可能是分区 - 见最终表)中的有效逻辑/代码/设计?
2022-03-01 每日摘录
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔什 | abcde | 2022-03-01 04:14:06 |
2022-03-01 的 Delta Extract 应该看起来像
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔什 | abcde | 2022-03-01 04:14:06 |
2022-03-02 每日摘录(12346 的新记录)
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔什 | abcde | 2022-03-02 04:14:06 |
12346 | 标记 | 福吉 | 2022-03-02 04:14:06 |
2022-03-02 上的 Delta Extract 应该看起来像(应该只捕获更改)
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12346 | 标记 | 福吉 | 2022-03-02 04:14:06 |
2022-03-03 每日摘录(更新记录为 12345)
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔舍 | 诺比 | 2022-03-03 04:14:06 |
12346 | 标记 | 福吉 | 2022-03-02 04:14:06 |
2022-03-03 上的 Delta Extract 应该看起来像(应该只捕获更改)
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔舍 | 诺比 | 2022-03-03 04:14:06 |
我必须通过附加每天的增量提取来构建这个插入的最终表(新的+更改的记录),以便我可以构建一个视图来计算我的 row_end_eff_ts
插入的最终表格应如下所示
Agent_Key | 代理名称 | MD5_CD | row_eff_ts |
---|---|---|---|
12345 | 乔什 | abcde | 2022-03-01 04:14:06 |
12346 | 标记 | 福吉 | 2022-03-02 04:14:06 |
12345 | 乔舍 | 诺比 | 2022-03-03 04:14:06 |