DataHub
DataHub 是一个功能丰富的元数据平台,支持数据发现、数据可观测性、联邦治理等功能。
从 Hudi 0.11.0 开始,你可以通过将 DataHubSyncTool 设置为 Hudi Streamer 的同步工具类之一,将数据同步到 DataHub 实例。
目标 Hudi 表将作为一个 Dataset 同步到 DataHub,该 Dataset 将包含以下属性:
Hudi 表属性和分区信息
- 包括:
hudi.table.type、hudi.table.version和hudi.base.path - 以及:
hudi.partition.fields(当且仅当 Hudi 配置中正确设置了hoodie.datasource.hive_sync.partition_fields时)
- 包括:
与 Spark 相关的属性
用户自定义属性(参见「配置」一节中的
hoodie.meta.sync.datahub.table.properties)最近一次提交以及最近一次提交完成的时间戳
此外,Dataset 对象还将包含以下元数据:
- 子类型为
Table - 浏览路径
- 父容器
- Avro schema
- 可选地,附带一个
Domain对象
同时,父数据库将作为一个 Container 同步到 DataHub,包含以下元数据:
- 子类型为
Database - 浏览路径
- 可选地,附带一个
Domain对象
配置
DataHubSyncTool 利用 DataHub 的 Java Emitter 通过 HTTP REST API 发送元数据。需要将 hoodie.meta.sync.datahub.emitter.server 设置为要同步的 DataHub 实例的 URL。
如果需要鉴权令牌,请设置 hoodie.meta.sync.datahub.emitter.token。
如果需要自定义 emitter 对象的创建方式,请实现 org.apache.hudi.sync.datahub.config.DataHubEmitterSupplier,并将该实现类的全限定类名(FQCN)配置到 hoodie.meta.sync.datahub.emitter.supplier.class。
默认情况下,同步配置中的数据库名和表名将用于生成目标 Dataset 的 URN。可以继承 HoodieDataHubDatasetIdentifier 并将其设置到 hoodie.meta.sync.datahub.dataset.identifier.class,以自定义 URN 的生成方式。
可选地,同步的 Dataset 和 Container 对象可以附带一个 Domain 对象。为此,请将 hoodie.meta.sync.datahub.domain.name 设置为一个有效的 Domain URN。此外,同步的 Dataset 还可以附带用户自定义属性。为此,请将 hoodie.meta.sync.datahub.table.properties 设置为以逗号分隔的键值对字符串(例如 key1=val1,key2=val2)。
示例
以下展示了使用 DataHubSyncTool 运行 Hudi Streamer 的配置示例。
除了包含 Hudi Streamer 的 hudi-utilities-slim-bundle 之外,你还需要将 hudi-datahub-sync-bundle 添加到 classpath 中。
spark-submit --master yarn \
--packages org.apache.hudi:hudi-utilities-slim-bundle_2.12:1.2.0,org.apache.hudi:hudi-spark3.5-bundle_2.12:1.2.0 \
--jars /opt/hudi-datahub-sync-bundle-1.2.0.jar \
--class org.apache.hudi.utilities.streamer.HoodieStreamer \
/opt/hudi-utilities-slim-bundle_2.12-1.2.0.jar \
--target-table mytable \
# ... other Hudi Streamer's configs
--enable-sync \
--sync-tool-classes org.apache.hudi.sync.datahub.DataHubSyncTool \
--hoodie-conf hoodie.meta.sync.datahub.emitter.server=http://url-to-datahub-instance:8080 \
--hoodie-conf hoodie.datasource.hive_sync.database=mydb \
--hoodie-conf hoodie.datasource.hive_sync.table=mytable \评论
登录后参与评论
KnowForge