You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Purview中Databricks笔记本血缘:ADLS-PySpark读写操作血缘可否捕获

关于ADLS-PySpark文件转换操作的Hive Metastore血缘捕获问题

核心结论

默认场景下不会被Hive Metastore捕获,也无法生成对应血缘链路,具体原因和可选方案如下:

原因说明

  • Hive Metastore仅会记录和其管理的元数据对象(已注册的Hive表/视图/分区)相关的操作血缘,没有在Metastore中注册的裸文件路径不在其监控范围内。
  • 你描述的直接用spark.read.load()读取ADLS裸文件、加载为DataFrame后用df.write.save()写回另一ADLS路径的操作,全程没有和Hive Metastore做任何元数据交互,Hive Metastore完全感知不到本次读写操作的存在,自然不会生成血缘记录。

实现Hive Metastore血缘捕获的调整方案

只要将读写操作和Hive Metastore中注册的外部表绑定即可,操作如下:

  1. 提前在Hive Metastore中注册两张外部表,分别指向源ADLS文件路径和目标ADLS存储路径
  2. 读操作改为读取已注册的源外部表:df = spark.table("db.source_external_table")
  3. 写操作改为写入已注册的目标外部表:df.write.mode("append").saveAsTable("db.target_external_table")
    调整后Hive Metastore会自动捕获两张表的血缘关系,你可以通过表的LOCATION属性关联到对应的ADLS路径,间接得到完整的文件转换链路。

无Hive表绑定场景的替代方案

如果你无法将路径注册为Hive表,又需要捕获这类操作的血缘,可以自定义实现Spark的QueryExecutionListener来监听作业的输入输出路径,自行构建血缘链路,也可以对接专业的元数据血缘工具完成采集。

内容的提问来源于stack exchange,提问作者Satish V.S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:39:03