如何将BigQuery的INFORMATION_SCHEMA.COLUMNS查询转为DBT的{{source()}}格式
解决方案
1. 配置 source.yml 文件
在你的dbt项目的sources配置文件(通常位于 models/sources/ 目录下)中,添加针对BigQuery数据集的source定义,明确映射INFORMATION_SCHEMA系统表:
sources: - name: my_bq_source # 自定义source名称,可按需修改 database: my_project # 替换为你的BigQuery项目ID schema: my_dataset # 替换为你的数据集名称 tables: - name: columns identifier: INFORMATION_SCHEMA.COLUMNS # 指定系统表的完整标识符
2. 在dbt模型中使用source引用
将原BigQuery查询中的FROM语句替换为dbt的source宏,完整查询示例如下:
SELECT * -- 替换为你实际需要查询的字段 FROM {{ source('my_bq_source', 'columns') }} WHERE table_name = 'tableA'
关键说明
因为INFORMATION_SCHEMA.COLUMNS是BigQuery的系统表,不是普通用户表,所以需要通过identifier参数在source配置中明确指定完整的表路径,确保dbt能正确解析到该系统表。
内容的提问来源于stack exchange,提问作者WTWT
相关产品推荐
相关产品推荐

