• 免密码方式获取Hive元数据


    前言

    开发中可能用到hive的元数据信息 ,如获取hive表列表、hive表字段、hive表数据量大小、hive表文件大小等信息,要想获取hive元数据信息即需要hive元数据库的账号及密码,此次提供的是一种不需要hive元数据库密码及可获取元数据信息的方式,且此种方式是只读

    组件:hive 3.1.2

    分析

    首先hive 的配置文件里是存有元数据库的账号和密码的,只不过一般情况密码是加密的,

    要想读取元数据库的数据就一定需要密码,要想免密取数据,则可以看看hive本身是否有类似支持的接口,免密只是对于我们免密,最终还是要使用密码

    查看hive 源码发现 jdbc-handler 组件 此组件可以支持如下方式创建hive jdbc表

    步骤

    以 获取hive元数据的表列表为例子

    1. 在Hive上创建Table表,表数据取得是Hive元数据的表列表

    1. CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` (
    2. `TBL_ID` bigint,
    3. `CREATE_TIME` int,
    4. `DB_ID` bigint,
    5. `LAST_ACCESS_TIME` int,
    6. `OWNER` string,
    7. `RETENTION` int,
    8. `SD_ID` bigint,
    9. `TBL_NAME` string,
    10. `TBL_TYPE` string,
    11. `VIEW_EXPANDED_TEXT` string,
    12. `VIEW_ORIGINAL_TEXT` string,
    13. `IS_REWRITE_ENABLED` boolean,
    14. CONSTRAINT `SYS_PK_TBLS` PRIMARY KEY (`TBL_ID`) DISABLE
    15. )
    16. STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
    17. TBLPROPERTIES (
    18. "hive.sql.database.type" = "METASTORE",
    19. "hive.sql.query" =
    20. "SELECT
    21. \"TBL_ID\",
    22. \"CREATE_TIME\",
    23. \"DB_ID\",
    24. \"LAST_ACCESS_TIME\",
    25. \"OWNER\",
    26. \"RETENTION\",
    27. \"SD_ID\",
    28. \"TBL_NAME\",
    29. \"TBL_TYPE\",
    30. \"VIEW_EXPANDED_TEXT\",
    31. \"VIEW_ORIGINAL_TEXT\",
    32. \"IS_REWRITE_ENABLED\"
    33. FROM \"TBLS\""
    34. );

    2. 查看表的数据

    查询该hive表 TBLS 中的数据 即是查询hive元数据库中 TBLS表的数据

    3. 服务应用中可以通过hive jdbc连接方式查询hive表的数据或把hive表数据定时导入db中

  • 相关阅读:
    Multisim:JFET混频器设计(含完整程序)
    请问一下测试过来人,现在学来得及吗😫
    计算机图形学 实验二:曲线拟合
    运放噪声频率曲线-运放噪声计算-运算放大器
    复制集群架构设计技巧
    vscode 命令无法执行
    [rtsp学习]-264rtp打包结构
    ES6 - 简单理解原型
    【快速上手】使用SpringBoot 2.X + Mybatis-Plus 轻松实现CRUD
    删除 KubeSphere 中一直卡在 Terminating 的 Namespace
  • 原文地址:https://blog.csdn.net/m0_37592814/article/details/133827162