是否可以告诉 dataform 使用我提供的自定义参数运行流程(SQL 查询)?类似于:
curl my_flow --start_date=20220101 --end_date=20220801
,这个变量将在我的查询中使用。
我收到了 Liam Binns-Conroy(Dataform slack 社区)的回复。谢谢他。
您可以使用自定义变量来指定 dataform.json 中的参数 文件,然后使用 dataform CLI vars 标志传递值。你 然后像这样引用 sqlx 文件中的值
dataform.projectConfig.vars.myVariableName
来自:https://cloud.google.com/dataform/docs/reuse-code-includes
// filename is includes/constants.js
const PROJECT_ID = "my_project_name";
module.exports = { PROJECT_ID };
以下代码示例在 SQLX 文件中的表定义查询中引用 PROJECT_ID 常量:
config { type: "table" }
SELECT * FROM ${constants.PROJECT_ID}.my_schema_name.my_table_name
这是文档https://cloud.google.com/dataform/docs/configure-dataform
因此您可以访问您在
vars
文件或 dataform.json
文件的 workflow_settings.yaml
属性上配置的任何变量,语法为:
${dataform.projectConfig.vars.MY_VARIABLE}
并且
dataform.json
文件可以如下所示:
{
"defaultSchema": "your_dataset",
"assertionSchema": "dataform_assertions",
"warehouse": "bigquery",
"defaultDatabase": "your_project_id",
"defaultLocation": "your_region",
"vars": {
"MY_VARIABLE":"SOMEVALUE",
"MY_VARIABLE_2": "ANOTHER-VALUE"
}
}
这也适用于编译变量,编译变量会覆盖您在
dataform.json
上设置的值
更多文档:
https://cloud.google.com/dataform/docs/reference/dataform-core-reference#iprojectconfig