开发中可能用到hive的元数据信息 ,如获取hive表列表、hive表字段、hive表数据量大小、hive表文件大小等信息,要想获取hive元数据信息即需要hive元数据库的账号及密码,此次提供的是一种不需要hive元数据库密码及可获取元数据信息的方式,且此种方式是只读
组件:hive 3.1.2
首先hive 的配置文件里是存有元数据库的账号和密码的,只不过一般情况密码是加密的,
要想读取元数据库的数据就一定需要密码,要想免密取数据,则可以看看hive本身是否有类似支持的接口,免密只是对于我们免密,最终还是要使用密码
查看hive 源码发现 jdbc-handler 组件 此组件可以支持如下方式创建hive jdbc表

以 获取hive元数据的表列表为例子
- CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` (
- `TBL_ID` bigint,
- `CREATE_TIME` int,
- `DB_ID` bigint,
- `LAST_ACCESS_TIME` int,
- `OWNER` string,
- `RETENTION` int,
- `SD_ID` bigint,
- `TBL_NAME` string,
- `TBL_TYPE` string,
- `VIEW_EXPANDED_TEXT` string,
- `VIEW_ORIGINAL_TEXT` string,
- `IS_REWRITE_ENABLED` boolean,
- CONSTRAINT `SYS_PK_TBLS` PRIMARY KEY (`TBL_ID`) DISABLE
- )
- STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
- TBLPROPERTIES (
- "hive.sql.database.type" = "METASTORE",
- "hive.sql.query" =
- "SELECT
- \"TBL_ID\",
- \"CREATE_TIME\",
- \"DB_ID\",
- \"LAST_ACCESS_TIME\",
- \"OWNER\",
- \"RETENTION\",
- \"SD_ID\",
- \"TBL_NAME\",
- \"TBL_TYPE\",
- \"VIEW_EXPANDED_TEXT\",
- \"VIEW_ORIGINAL_TEXT\",
- \"IS_REWRITE_ENABLED\"
- FROM \"TBLS\""
- );
查询该hive表 TBLS 中的数据 即是查询hive元数据库中 TBLS表的数据