1.4 KiB
1.4 KiB
- [P20260217-223023] 2026-02-17 22:30:23 +0800
- summary: 问题:- 维表都有SCD2吧?相应的,事实表都没有吧?- 水位线作用是区分新数据和老数据么?新数据直接写入,老数据进行对比?- 4.4 写入策略矩阵 dwd.fact_upsert 配置ODS 有 content_hash?ODS都有HAS…
- prompt:
问题:- 维表都有SCD2吧?相应的,事实表都没有吧?- 水位线作用是区分新数据和老数据么?新数据直接写入,老数据进行对比?- 4.4 写入策略矩阵 dwd.fact_upsert 配置ODS 有 content_hash?ODS都有HASH吧?- 缺失主键回补(_insert_missing_by_pk),这个章节中,假设的情况可能发生么?什么情况下发生?给我举例说明。我的以下想法是否合理?以及是否可以优化性能:- 既然上游每条ODS数据都有ID,hash,和fetched_at。那么,DWD可不可以也增加一个HASH(并建设好相应索引等事务),ODS to DWD时,不用逐一对比,只对比fetched_at最晚的ID,对应的HASH即可知道数据是否被修改了。- 更新逻辑:知道数据缺失或修改后:SCD2做数据新增,并修改SCD2相关信息。而事实表直接修改所有字段即可。我认为ODS已经存储了快照,DWD层的事实数据,只保证最新信息即可。- ODS应该建立了索引,现在ODS to DWD时,通过索引了么?