数据目录

AWS Glue 数据目录

qianmoQqianmoQ· 更新于 2026-09-29· 阅读 5 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Hudi 表可以通过 AWS SDK 直接同步到 AWS Glue Data Catalog。org.apache.hudi.aws.sync.AwsGlueCatalogSyncTool 借助 HiveSyncTool 实现,会使用 HiveSyncTool 所接收的全部配置,并将其发送到 AWS Glue。

配置项

AwsGlueCatalogSyncTool 的大部分配置与 HiveSyncTool 共用。同步到 Hive Metastore 中的示例可直接用于与 Glue Data Catalog 的同步,前提是 Hive Metastore 的 URL(JDBC 或 thrift URI)能够被代理到 Glue Data Catalog,这通常在 AWS EMR 或 Glue 作业环境中完成。

对于 Hudi streamer,用户可以设置

--sync-tool-classes org.apache.hudi.aws.sync.AwsGlueCatalogSyncTool

对于 Spark 数据源写入器,用户可以设置

hoodie.meta.sync.client.tool.class=org.apache.hudi.aws.sync.AwsGlueCatalogSyncTool

避免创建过多版本

存储在 Glue Data Catalog 中的表是带版本的。默认情况下,只要启用了同步,每一次 Hudi 提交都会触发一次同步操作,而不管是否发生了相关的元数据变更。这会导致目录中保留的版本过多,最终使同步操作失败。

元数据同步可以设置为条件同步——仅在发生 schema 变更或分区变更时才进行同步。这样可以避免在目录中创建过多版本。用户可以通过设置以下配置项来启用该功能:

hoodie.datasource.meta_sync.condition.sync=true

Glue Data Catalog 专用配置

同步到 Glue Data Catalog 时,还可以通过其他配置进行优化,例如

hoodie.datasource.meta.sync.glue.all_partitions_read_parallelism
hoodie.datasource.meta.sync.glue.changed_partitions_read_parallelism
hoodie.datasource.meta.sync.glue.partition_change_parallelism

分区索引也可以通过设置以下内容来使用

hoodie.datasource.meta.sync.glue.partition_index_fields.enable
hoodie.datasource.meta.sync.glue.partition_index_fields

写入方版本表属性

Hudi 1.2.0 的 Glue 同步会在每次同步时,将表属性 hudi_writer_version(值为最后一次同步该表的 Hudi 版本)写入 Glue Data Catalog 条目,这与 HMS 同步的行为一致。

其他参考

针对 Spark DataSource 运行 AWS Glue Catalog 同步

若要将 Hudi 表写入 Amazon S3 并将其登记到 AWS Glue Data Catalog 中,可以使用 AWS 官方文档中提到的选项。

从 EMR 运行 AWS Glue Catalog 同步

如果你在以 Glue Data Catalog 作为外部 metastore 的 EMR 集群上运行 HiveSyncTool,只需按如下方式从命令行执行同步即可:

cd /usr/lib/hudi/bin

./run_sync_tool.sh --base-path s3://<bucket_name>/<prefix>/<table_name> --database <database_name> --table <table_name> --partitioned-by <column_name>

评论

登录后参与评论

正在加载评论…