Dataform工作流执行报错:Requested target不存在,新手求助解决
解决Dataform工作流"Requested target does not exist"错误
1. 修正声明文件语法
跨项目BigQuery表的声明必须显式指定项目(database)参数,创建declarations/database-1/schema/name.sqlx文件,内容如下:
config { type: "declaration", database: "database-1", schema: "schema", name: "name" }
注意:database对应BigQuery项目ID,schema是数据集名,name是表名,三者大小写必须和实际表完全匹配。
2. 规范查询中的引用方式
在你的.sqlx查询文件里,用Dataform的ref函数引用表,不要直接写原始表名:
SELECT * FROM ${ref("database-1.schema.name")}
如果声明文件路径是declarations/schema/name.sqlx,也可以用ref("schema.name", "database-1"),确保引用的标识和声明的完全一致。
3. 验证编译结果
执行dataform compile(本地环境)或点击Dataform Web UI的「Compile」按钮,查看target目录下的编译输出JSON文件,搜索database-1.schema.name,确认是否存在对应的目标条目。如果没有,说明声明未被识别,检查文件路径、命名或语法。
4. 清理缓存重新执行
- 本地环境:删除
.df-cache目录后重新编译运行 - Web UI:点击「Clear cache」按钮后重新触发工作流
5. 检查权限与区域
- 确保Dataform使用的服务账号拥有
database-1项目目标数据集的bigquery.dataViewer权限 - 确认
database-1的数据集和Dataform运行区域完全一致(如均为us-central1)
内容的提问来源于stack exchange,提问作者JR-Question-Asker
相关产品推荐
相关产品推荐

