如何无缝升级你的蜂巢Metastore对象统一目录Metastore使用同步
2022年11月3日 在bob体育客户端下载平台的博客
在这个博客中,我们探索如何无缝升级你的蜂巢metastore *模式和外部表统一目录metastore使用新的同步命令。同步命令也可以用来推动更新从源模式和外部表在蜂巢metastore统一目录metastore模式和表,以前一直在升级。同步命令目前在AWS公共预览和Azure。
*注:蜂巢metastore可能是你违约或外部metastore甚至AWS胶水metastore。为简单起见,我们使用术语“蜂群metastore”在整个文档
常见用例进行升级和同步你的蜂巢Metastore统一目录
统一目录,现在一般用于AWS和Azure,提供了众多的即用集中式控制特性,比如统一访问控制和审计数据Lakehouse数据资产,自动数据血统对于所有工作负载,内置的数据搜索和发现,特权的继承为简化访问管理,开放的跨平台数据共享bob体育客户端下载和许多更多。
想到的一个常见的问题是如何轻松地升级或迁移现有的注册表和模式蜂巢metastore统一目录metastore并保持统一目录与蜂巢metastore同步。当你想要利用所有丰富的功能统一目录,可以有各种场景需要蜂巢metastore对象共存即使对象迁移到统一目录metastore。例如,您可能有一个ETL管道写入数据表存储在蜂巢metastore之前,您需要执行一个详细的影响分析统一目录metastore逐步迁移表。之前,你需要保持你的蜂巢metastore和统一编目metastore同步。
以下是我们收到客户的常见问题:
- 如何我们的数据迁移工作负载从二级名称空间(模式和表/视图)联合目录的三级名称空间(目录、模式、表/视图)?
- 你需要数据从现有位置复制到一个新位置的表统一编目metastore或只需要创建一个新的模式和表统一目录metastore和指向现有的位置?
- 我们怎样才能保持进入蜂巢metastore表而开始利用统一目录,并保持更改模式同步?
- 我们可以有一个评估需要哪些步骤HMS对象移动到统一目录metastore吗?
引入同步命令统一目录
方便的无缝迁移模式和外部表从你现有的蜂巢metastore metastore统一目录,我们引入了一个实用程序称为同步。同步命令帮助您迁移现有蜂巢metastore统一目录metastore也有助于保持你的metastores同步在一个正在进行的基础上,直到你完全依赖应用程序迁移所有从蜂巢metastore metastore统一目录。而不是分配资源构建一个定制的解决方案,同步为您提供了一个简单的开箱即用的解决方案保持你现有的蜂巢metastore和统一目录metastore同步。
同步的主要特性
- 升级的能力从蜂巢metastore外部表统一目录metastore和保持两个表的元数据同步。
- 能力升级所有符合条件的表在蜂巢metastore模式统一目录metastore并保持元数据同步。它使用多线程并行而升级几个表
- 干燥的运行模式显示同步命令的结果而不创建或更新目标表。
- 能力相同的模式或表上运行多次同步源和目标metastore保持同步。
它是如何工作的
同步命令提取所有迁移模式和外部表的复杂性从蜂巢metastore统一目录metastore和保持同步。一旦执行,它分析了源和目标表或模式和执行以下操作:
- 如果目标表不存在,同步操作使用相同的名称创建一个目标表的源表所提供的目标模式。目标表的所有者将默认运行同步的用户命令
- 如果目标表存在,如果表确定是由前一个同步命令或通过Web界面,升级操作将同步更新表,这样的模式匹配的源表。
命令输出一行每桌升级,包括status_code和描述列。status_code列显示升级的状态表,每个表的描述提供了一个描述性的消息。
开始使用同步命令
先决条件
用户运行同步命令:
- 源表的所有者的情况下使用“同步表”
- 的主人源模式的使用“同步模式”
注意:当前版本只支持同步升级的外部表。请参考文档升级你的蜂巢metastore管理表统一目录metastore和视图。您还可以使用表克隆命令创建一份现有的蜂巢metastore管理表统一目录metastore在一个特定的版本。读到这博客进一步了解表克隆砖。
使用
使用同步升级有两个选项:
- 同步表:它从蜂巢metastore升级表统一目录metastore
- 同步模式:它在模式升级所有符合条件的表从蜂巢metastore metastore统一目录
同步命令升级表或模式从蜂巢metastore metastore统一目录。它可以用来统一目录中创建新的表metastore蜂巢metastore从现有表中。它可以用来推动更新源表的蜂巢metastore统一目录metastore表,以前一直使用命令或通过WebUI同步升级。
一个可选的排练条款可以用来评估表的可升级性统一目录。在干燥的运行模式,命令检查给定的源表可以升级到统一目录metastore并提供status_code如果不能升级和描述性的错误消息。如果表可以从蜂巢metastore升级到统一编目metastore那么状态代码将显示“DRY_RUN_SUCCESS”表时干燥的运行模式和成功成功同步。
语法
{同步模式target_schema|表target_tbl}从{source_schema|source_table}(演习)
请访问我们的文档来查找细节同步命令的参数。
注意:运行同步命令的用户将新创建的表的所有者
同步的例子
注意:我们使用示例数据对于这个示例。砖还提供了各种各样的数据集,已经安装在你的砖DBFS工作区。你可以找到更多的细节在这里。
外部表升级到统一目录
创建蜂巢metastore模式
使用目录hive_metastore;下降如果数据库存在hmsdb_sync级联;创建数据库hmsdb_sync;
创建一个统一的目录模式
使用目录主要;下降如果数据库存在主要。ucdb_sync级联;创建数据库main.ucdb_sync;
在蜂巢metastore创建外部表
——创建一个外部表在蜂巢metastore三角洲下降表如果存在hive_metastore.hmsdb_sync.people_delta;创建表hive_metastore.hmsdb_sync.people_delta位置“< <对象存储位置> >”作为选择*从delta. dbfs:/砖- - - - - -数据集/学习- - - - - -火花- - - - - -v2/人/人-10年m.delta的限制100000年;
选择表来验证
选择*从hive_metastore.hmsdb_sync.people_delta;
执行排练
同步表main.ucdb_sync.people_delta从hive_metastore.hmsdb_sync.people_deltaDRY RUN;
观察演习的结果
升级表,观察结果
同步表main.ucdb_sync.people_delta从hive_metastore.hmsdb_sync.people_delta;
描述和比较源和目标表
描述扩展hive_metastore.hmsdb_sync.people_delta;desc扩展main.ucdb_sync.people_delta;
描述了蜂巢Metastore表和加州大学表
选择目标表来验证数据
选择*从main.ucdb_sync.people_delta;
升级模式,所有符合条件的表
同步模式main.ucdb_schema_sync从hive_metastore。hmsdb_schema_sync排练;
同步模式main.ucdb_schema_sync从hive_metastore.hmsdb_schema_sync;
结论
在这个博客中,我们展示了如何使用同步命令抽象复杂的升级你的蜂巢统一目录metastore metastore对象。想要了BOB低频彩解更多关于同步命令以及如何开始,请访问指南(AWS,Azure)。请参考笔记本尝试不同的选项和同步保持蜂巢metastore模式和外部表和你统一目录metastore同步。
同步可以多次运行,确保蜂巢metastore对象和统一编目metastore对象同步。同步使它无缝和方便客户采取统一目录和受益于统一的治理功能。如果你不再需要蜂巢metastore模式和表,您可以将它们。减少外部表不修改云租户的数据文件。