我使用的是带有模板的谷歌数据流:一个模板被CI服务器部署到GCS(持续集成),后来一个gcloud数据流作业run
命令被用来从这个模板开始一个批处理作业。现在,在管道本身,我想知道这个确切管道的开始时间(用于输出文件的名称)。
在Beam/Dataflow中是否可以进行这种自省?是否可以从作业本身中获取作业的作业名称和开始时间?(即在Dataflow在VM上执行的代码中)?
谢谢你!
可以做到,只是在模板功能的当前实现中有点棘手。
对于作业ID,您可以遵循以下代码片段:https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/spanner/ExportTransform.java#L178
在这段代码中,作业ID作为侧输入传播,但我认为如果您不使用侧输入也应该没问题。
对于作业开始时间,有两种方法:1.用太平洋标准时间解析作业id。但我同意它有点脆弱。2.获取当前时间并作为侧输入向下传递。您可以按照上面的链接进行操作。
谢谢。