DBT Redshift升级至1.3.0后增量插入策略报错,该如何解决?
问题原因及解决办法
原因
dbt 1.3版本对增量策略的宏命名规则做了调整,Redshift适配器不再直接支持insert这个增量策略名称,因此报错找不到对应的get_incremental_insert_sql宏。
解决办法
有两种可行的调整方式:
- 改用官方推荐的
append策略:这是dbt 1.3+中替代原insert策略的方案,逻辑完全一致(仅追加新数据到目标表),修改配置如下:
{{config( materialized='incremental', incremental_strategy='append' ) }}
- 自定义宏兼容旧策略名称(不推荐):如果需要保留
insert作为策略名,可在项目的macros目录下创建get_incremental_insert_sql.sql文件,内容如下:
{% macro get_incremental_insert_sql(target, source, unique_key) %} {{ return(get_incremental_append_sql(target, source, unique_key)) }} {% endmacro %}
该宏会将insert策略映射到官方的append策略宏,但长期来看建议使用append,避免后续版本兼容性问题。
内容的提问来源于stack exchange,提问作者user1668814
相关产品推荐
相关产品推荐

