dbt Core 1.6.10+Snowflake环境下保留字表名group的适配问题
解决dbt Core + Snowflake中保留字表名的引用问题
不需要重命名表,按照以下步骤配置即可解决:
1. 修正Source YAML配置
在你的源定义文件(如models/sources.yml)中,给group表单独开启引号处理,注意不要在name字段里加引号:
sources: - name: my_schema tables: - name: group quote: true # 开启该表的标识符引号处理
2. 正确引用源表
在SQL模型中,直接使用正常的source函数引用,不要手动给表名加引号:
select * from {{ source('my_schema', 'group') }}
错误原因说明
你之前的问题出在两个地方:
- 引用源表时手动传入了
'"group"',这会让dbt去寻找名为"group"(带引号)的源定义,但你的YAML里定义的源表名是group,所以出现找不到的错误。 - 正确配置
quote: true后,dbt会自动在生成SQL时给保留字表名加上双引号,不需要你手动干预。
这样配置后,dbt运行时会自动生成符合Snowflake要求的SQL:select * from "my_schema"."group",就能正常识别保留字表名了。
内容的提问来源于stack exchange,提问作者sams
相关产品推荐
相关产品推荐

