Data Fusion批量流水线中如何向Macro传递运行时参数
Cloud Data Fusion生产环境运行时动态传参最优方案
以下方案均适配生产级高可靠、无人工干预的运行要求,可覆盖宏赋值、动态日期参数两类核心场景:
通用调度触发传参方案(适配Google Composer等所有调度器)
这是生产环境最常用的最优方案,支持所有自定义宏的运行时替换:
- 所有调度触发场景都可以通过调用Data Fusion流水线运行的REST接口,在请求体的
runtimeArguments字段传入键值对格式的参数即可完成宏替换,示例参数格式和通用规则完全一致:{ "bq.dataset": "my_prod_dataset", "import.query_date": "2024-05-20" } - 如果你使用Google Composer调度,可直接使用官方的
CloudDataFusionStartPipelineOperator算子,将参数以字典格式传入算子的runtime_args字段即可,无需自行封装API请求,配置逻辑简单且可复用。 - 该方案的参数会在流水线启动时自动完成全量替换,无需人工操作,支持批量调度、多参数变体的流水线运行需求。
固定规则动态参数内置方案(适合动态日期类场景)
对于动态日期这类有固定计算规则的参数,无需外部传参即可实现生产级自动赋值:
- 直接使用Data Fusion内置的时间宏函数完成日期计算,比如日调度场景要取前一天的日期作为查询参数,可直接在导入查询中写
${(now() - 86400000).format('yyyy-MM-dd')},系统会在流水线运行时自动计算对应日期完成替换。 - 环境级固定参数(比如各环境的项目ID、默认存储路径)可提前配置到Data Fusion对应命名空间的全局参数中,无需每次运行时传参,可实现开发/测试/生产环境的配置隔离。
生产环境最佳实践
- 敏感类参数(比如数据库账号密码、访问密钥)不要直接通过运行时参数明文传递,建议存入Secret Manager后在流水线中通过对应宏引用获取,避免参数泄露。
- 运行前可增加参数校验逻辑,避免非法格式的参数传入导致流水线运行失败。
- 大批量触发多组参数的流水线时,建议配置并发控制,避免超出Data Fusion实例的负载上限。
内容的提问来源于stack exchange,提问作者Lais T
相关产品推荐
相关产品推荐

