我正在使用带有模板的Google Dataflow:CI服务器将模板部署到GCS(持续集成),然后使用gcloud dataflow jobs run
命令从该模板启动批处理作业。现在,在管道本身中,我想知道此确切管道的开始时间(用于输出文件的名称)。
Beam / Dataflow中是否可以进行这种自省?是否可以从工作本身内获取工作名称和工作开始时间? (也就是说,在由Dataflow在VM上执行的代码中)?
谢谢!
答案 0 :(得分:2)
可以做到,在当前模板功能的实现中有些棘手。
对于作业ID,您可以按照以下代码片段进行操作: https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/spanner/ExportTransform.java#L178
在这段代码中,作业ID被作为辅助输入传播,但是我认为如果您不使用辅助输入也可以。
对于作业开始时间,有两种方法: 1.用太平洋标准时间解析作业ID。但是我同意这有点脆弱。 2.获取当前时间,并将其作为侧面输入传递。您可以点击上面的链接。
谢谢。