迁移

Hive 迁移

师成师成· 更新于 2026-09-28· 阅读 3 分钟· 0 次阅读

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

Hive 表迁移

Apache Hive 支持 ORC、Parquet 和 Avro 文件格式,这些格式都可以迁移到 Iceberg。当将数据迁移到提供版本管理和事务性更新的 Iceberg 表时,只需要迁移最新的数据文件即可。

Iceberg 支持全部三种迁移操作:快照表(Snapshot Table)、迁移表(Migrate Table)和添加文件(Add Files),用于从 Hive 表迁移到 Iceberg 表。由于 Hive 表不维护快照,迁移过程本质上是使用现有模式创建一个新的 Iceberg 表,并将所有分区中的全部数据文件提交到这个新的 Iceberg 表中。完成初始迁移后,任何新的数据文件都通过"添加文件"操作添加到新的 Iceberg 表中。

启用从 Hive 到 Iceberg 的迁移

Hive 表迁移操作由 Spark 集成模块通过 Spark 存储过程(Spark Procedures)提供支持。这些存储过程打包在 Spark 运行时 JAR 中,可从 Iceberg 版本下载页面获取。

将 Hive 表快照到 Iceberg

要对 Hive 表进行快照,用户可以运行以下 Spark SQL:

CALL catalog_name.system.snapshot('db.source', 'db.dest')

有关更多信息,请参阅 Spark 存储过程:snapshot。

将 Hive 表迁移到 Iceberg

要将 Hive 表迁移到 Iceberg,用户可以运行以下 Spark SQL:

CALL catalog_name.system.migrate('db.sample')

更多详情请参阅 Spark 过程:migrate。

将 Hive 表中的文件添加到 Iceberg

要将 Hive 表中的数据文件添加到指定的 Iceberg 表,用户可以运行以下 Spark SQL:

CALL spark_catalog.system.add_files(
table => 'db.tbl',
source_table => 'db.src_tbl'
)

有关更多详情,请参阅 Spark 过程:add_files。

评论

登录后参与评论

正在加载评论…