SQL 服务器中的 dbt 增量模型

dbt incremental model in SQL Server

从这个模型,根据我对dbt文档的理解:

编辑:(删除了语句中的 DISTINCT,因为它是不必要的)

Test.sql

{{ config(
        as_columnstore = false,
        schema='staging',
        materialized='incremental', 
        unique_key='id',
        incremental_strategy='merge',
        merge_update_columns = ['name', 'updated_at'])
    }}

SELECT  I.id, 
        I.name, 
        MAX(I.extraction_date) created_at,
        MAX(I.extraction_date) updated_at
  FROM staging.test_data_raw I 
 WHERE I.id IS NOT NULL
 GROUP BY I.id, I.name

我预计,如果具有匹配 Id 的记录已经存在,则在 table 中然后 nameupdated_at 会改变,但 created_at 会保持原样

但是,在 运行 多次之后,created_at 总是会发生变化。所以我的猜测是 dbt 没有执行合并操作,而是 delete/insert.

我是 运行 dbt 与 SQL 服务器连接器。

难不成这个连接器没有实现合并策略? 或者我在这里做错了什么?如果是这样,有什么办法可以解决这个问题吗?

我坐在这里,想知道同样的事情(但使用 Azure DW)。 15 天没有正面回应,所以我猜答案一定是 dbt-sqlserver 适配器还没有实现增量策略“合并”。转到 https://github.com/dbt-msft/dbt-sqlserver/discussions/categories/ideas 并推荐此功能!