检查配置单元表是否在给定列上分区

q3qa4bjr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(300)

我有一个配置单元表列表,其中一些是分区的。给定一列,我需要检查某个表是否在该列上分区。我已经搜索并发现desc格式的tablename会导致表的所有细节。因为我必须遍历所有的表并得到列表,所以desc格式化将没有帮助。还有别的办法吗。

ufj5ltwl

ufj5ltwl1#

您可以直接连接到元存储并查询它:

metastore=# select d."NAME" as DATABASE, 
  t."TBL_NAME" as TABLE, 
  p."PKEY_NAME" as PARTITION_KEY 
  from "PARTITION_KEYS" p 
  join "TBLS" t on p."TBL_ID"=t."TBL_ID" 
  join "DBS" d on t."DB_ID"=d."DB_ID";

 database |    table    | partition_key
----------+-------------+---------------
 default  | src_union_1 | ds
 default  | cbo_t1      | dt
 default  | cbo_t2      | dt

查询元存储的确切语法取决于元存储的特定选择(在我的例子中是postgresql)。

相关问题