3

我正在尝试从 SQL 构建一个 DBT 模型,该模型具有基于 where 子句的删除语句。

谁能建议我如何将以下 SQL 删除语句转换为 DBT 模型?

''' 删除表名 where 条件;

'''

谢谢

4

2 回答 2

2

在 dbt 中运行 DELETE 语句有几个选项:

请注意,除非您的模型实现类型是“增量的”,否则从模型目标中删除没有多大意义。

免责声明:我已经很久没有使用 dbt 了,所以可能有更好的方法来做到这一点,或者根本不这样做的理由。
不确定您的用例是什么,但在将现有数据仓库逻辑改造成 dbt 时,我不得不使用 DELETE。如果您是从头开始使用 dbt,那么可能会尝试避免需要删除数据的设计。

于 2020-10-09T03:04:33.517 回答
0

我需要实施删除以符合 CCPA 删除要求。我们的 raw 层每天都在 drop&rebuild,所以如果 raw 中不存在一行,则需要在下游表中删除它。

Stage 层是一组视图,它们重命名和转换原始表,并将代理键创建为sha1(raw_table_business_key). EDW 增量加载表的 Pre_hook 类似于:

delete from {{ this }} where skey not in 
(select skey from {{ ref('stage_view') }})

是的,它绝对重述了历史。

于 2022-02-25T20:27:08.860 回答