设置system.profile.name为何值可让DataFusion自动回退到默认配置
解决方法
你只需为system.profile.name传入空字符串即可:Google Cloud Data Fusion API 接收到空值的该参数时,会自动忽略该运行时配置,回退使用管道预先配置的默认Profile,或实例/命名空间级别的默认Profile。
如果你的Airflow环境限制不允许传入空字符串作为参数值,也可以传入'SYSTEM:default',这是DataFusion内置的默认系统Profile标识,同样会触发系统读取你在DataFusion侧设置的默认配置。
代码示例
# 提前读取配置,未定义时默认取空字符串 target_profile = dag_config.get('datafusion_profile_name', '') RawToRaw = CloudDataFusionStartPipelineOperator( # 其他参数保持不变 runtime_args = { # 其他运行时参数 'system.profile.name': target_profile, }, )
注意事项
- 不要直接传入
None作为值:Airflow的CloudDataFusionStartPipelineOperator会将None序列化为字符串'None',会被DataFusion识别为无效Profile名导致任务启动失败 - 空字符串逻辑对所有层级的默认配置均生效:如果你的Pipeline没有单独设置默认Profile,会自动继承上层命名空间、实例的默认Profile配置
内容的提问来源于stack exchange,提问作者elaspog
相关产品推荐
相关产品推荐

