有没有办法允许在Hive中列出分区表?我找到了允许在SQL Server中发生这种情况的方法。
我想仅列出特定数据库下的分区表,这样我就无法检查多个表的DDL以查找表是分区还是非分区。 Hive中的任何类似功能?请建议。
您可以直接连接hive Metastore数据库并获取有关已分区的表的信息。需要了解以下信息,可能会根据您的群集配置进行更改:
metastore
是表信息存储在hive Metastore数据库中的数据库名称。TBLS
是存储hive表信息的表。 DBS
是存储hive数据库信息的表,PARTITIONS
是存储有关hive中分区信息的表。DB_ID
中TBLS
的外键。TBL_ID
这是sql方法。如果需要程序化方法。 TBLS
API可用于查询Metastore表。需要Metastore连接设置。在java下面是伪代码,
PARTITIONS
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;