事实上是可行的。你可以直接修改 StreamExecutionEnvironment 的源码,默认给作业作业注册上一个你们定制的
listener,然后通过某种那个方式把这个信息透出来。在 FLIP-314 [1] 中,我们计划直接在 Flink 里原生提供一个这样的接口让你去注册自己的
listener 获取血缘信息,不过还没发布,可以先自己做。
[1]
https://cwiki.apache.org/confluence/display/FLINK/FLIP-314:+Support+Customized+Job+Lineage+Listener
你可以看下 OpenLineage 和 Flink 的集成方法 [1],它是在 StreamExecutionEnvironment 里注册了一个
JobListener(通过这个可以拿到 JobClient 进而拿到 job id)。然后从 execution environment 里可以抽取到
transformation 信息处理 [2]。
[1] https://openlineage.io/docs/integrations/flink/
[2]
JobGraph 里有个字段就是 jobid。
Best,
Zhanghao Chen
From: 阿华田
Sent: Friday, March 8, 2024 14:14
To: user-zh@flink.apache.org
Subject: 回复: Flink DataStream 作业如何获取到作业血缘?
获取到Source 或者 DorisSink信息之后, 如何知道来自那个flink任务,好像不能获取到flinkJobId
| |
阿华田
|
|
a15733178...@163.com
|