首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别蜂巢中的分区表

问识别蜂巢中的分区表
EN

Stack Overflow用户
提问于 2017-12-26 07:18:50
回答 1查看 2.1K关注 0票数 0

是否有任何方法允许在Hive中列出已分区表?我找到了允许这种情况在Server中发生的方法。

https://dba.stackexchange.com/questions/14996/how-do-i-get-a-list-of-all-the-partitioned-tables-in-my-database

我只想列出特定数据库下的分区表,这样我就不能检查许多表的DDL来确定表是分区的还是非分区的。在Hive中有类似的功能吗?请建议一下。

EN

回答 1

Stack Overflow用户

发布于 2017-12-26 10:00:19

您可以直接连接到蜂窝转移数据库,并获取有关被分区的表的信息。需要了解以下信息,可以根据集群配置进行更改:

  1. 配置蜂窝转移的数据库(例如PostgreSQL、mysql等)来存储有关表的元数据。
  2. 通常情况下,metastore是存储在蜂窝转移数据库中的表信息的数据库名。
  3. TBLS是存储蜂窝表信息的表。DBS是存储蜂窝数据库信息的表,PARTITIONS是存储关于在单元格中分区的信息的表。
  4. DB_ID是TBLS中的外键,TBL_ID是PARTITIONS中TBLS的外键。
  5. 加入如下表格: select d."NAME" as DATABASE_NAME, t."TBL_NAME" as TABLE_NAME, p."PKEY_NAME" as PARTITION_KEY_NAME from "PARTITION" p join "TBLS" on p."TBL_ID"=t."TBL_ID" join "DBS" dat on t."DB_ID"=d."DB_ID" where d."NAME"="filterdbname" AND p."PKEY_NAME" is not null; --这是sql方法。如果需要规划方法的话。HiveMetaStoreClient API可用于查询亚稳态表。需要建立Metastore连接。在下面的java中是伪代码, import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.HiveMetaStoreClient; HiveConf conf = new HiveConf(); hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, Address+":"+ Port); HiveMetaStoreClient hiveMetaStoreClient = new HiveMetaStoreClient(conf);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47975205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档