如何从管道内部或管道运行之前获取数据流作业ID?

时间:2020-08-14 08:52:32

标签: java google-cloud-dataflow apache-beam dataflow

我想在实际运行管道或其内部之前,将数据流的Job ID捕获为字符串。

作为一个例子,假设我有这个:

DataflowOptions options = optionsConst.getOptions();         
Pipeline p = Pipeline.create(options);
String jobID = doSomthing(); <-- I'd like to grab the job id here

PCollection<KV<String, Object>> refData = p.apply("BigTable Access", BigtableIO.read()
                .withProjectId(options.getBigtableProjectId())
                .withInstanceId(options.getBigtableInstanceId())
                .withTableId(options.getLookupTableId()))
                .apply("Keep tags valid versions", ParDo.of(new MethodThatDoesSomethingWithJobID(**jobId**))); <-- Or inside this

1 个答案:

答案 0 :(得分:1)

无法执行此操作,因为作业ID是在您开始运行它后创建的。您可以做的就是在开始运行管道后保存输出,或者返回list job running