Db2 Big SQL Hive 元存储
Big SQL Hive Metastore (HMS) 是用于存储和检索与 Datalake 表相关的元数据的服务。
HMS 由两部分组成:
- Db2 数据库中的版本模式(名为 SYSHIVE),元数据以常规 Db2 表的形式存储。
- Apache Thrift 服务器,用于连接这些常规 Db2 表中的元数据。 该服务是一个 java 进程,与 Big SQL Scheduler 进程一起运行在 Db2 head 节点容器中。
HMS 处理的某些信息(如表结构)也可在 Db2 系统目录中找到,但其他详细信息只适用于 Datalake 表。 HMS 提供了一种以标准化方式存储元数据并与之交互的方法。 其中包括:
- 表结构(名称、列、数据类型、分区)
- 数据位置
- 文件和表格式(Parquet、ORC、Iceberg等)
- 表属性
Big SQL Scheduler 通过使用在 Big SQL 配置中定义的端点的 thrift API 与 HMS 交互,如运行以下示例命令所示:
db2 "select varchar(PROPERTY_NAME,20) PROPERTY_NAME, varchar(PROPERTY_VALUE,128) PROPERTY_VALUE from table(SYSHADOOP.GET_Datalake_CONFIG('BIGSQL')) where PROPERTY_NAME = 'hive.metastore.uris'"结果返回以下示例:
PROPERTY_NAME PROPERTY_VALUE
-------------------- ------------------------------------------------------
hive.metastore.uris thrift://c-jun06a-db2u-0.c-jun06a-db2u-internal:9083
1 record(s) selected.如运行以下示例命令所示,HMS 服务器通过 JDBC 连接使用存储在蜂巢配置中的详细信息与 Db2 进行交互:
db2 "select varchar(PROPERTY_NAME,40) PROPERTY_NAME, varchar(PROPERTY_VALUE,128) PROPERTY_VALUE from table(SYSHADOOP.GET_Datalake_CONFIG('HIVE')) where PROPERTY_NAME like 'javax.jdo.option.Connection%'"结果返回以下示例:
PROPERTY_NAME PROPERTY_VALUE
---------------------------------------- ---------------------------------------------------------------------------------------------------------------------
javax.jdo.option.ConnectionUserName hive
javax.jdo.option.ConnectionDriverName com.ibm.db2.jcc.DB2Driver
javax.jdo.option.ConnectionURL jdbc:db2://c-jun06a-db2u-0.c-jun06a-db2u-internal:50000/BLUDB:currentSchema=SYSHIVE;clientProgramName=HiveMetastore;
3 record(s) selected.