启动API dataflow.projects.locations.templates.launch(我也测试了“创建” api)后,使用之前在dataprep上生成的模板,使用today()函数生成的列(我也测试了“ now ()“函数)似乎在作业执行期间未评估。 报告的日期始终填充首次创建模板的日期。
这是正确的行为吗? 为什么在该列中未填入开始工作的日期?
答案 0 :(得分:0)
这确实是预期的行为,并且实际上在文档页面的"Known Limitations" section中有关于在Cloud Dataflow上运行Dataprep作业的记录:
由TRIFACTA作业从Cloud Dataprep生成的Cloud Dataflow模板旨在用作当前执行的作业的静态副本。
- 所有相关功能均基于执行时刻计算。执行Cloud Dataflow模板时,NOW()和TODAY之类的函数不会重新计算。
- 要更新这些功能的输出值,请TRIFACTA通过UI或计划的作业在Cloud Dataprep中重新运行作业。然后,执行Cloud Dataflow模板作业。
因此,如上面的文档摘要所述,为了获取TODAY()
/ NOW()
函数的当前值,您将需要在Dataprep中重新运行作业并执行模板
侧面注意事项:如果您有兴趣了解这种现象的发生原因,尽管您可以将其视为有用的数据,但我还是建议您仔细阅读Dataflow templates documentation这不适用于Dataprep模板(无法自定义)。假设TODAY()
或NOW()
之类的函数应作为运行时参数传递,因为该值将在执行时更改。为了启用运行时参数,Dataflow提供了ValueProvider
接口。