侧边栏壁纸
博主头像
AllInOne博主等级

随风来,随风去

  • 累计撰写 45 篇文章
  • 累计创建 27 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Hive的元数据查询(实战篇)

AllInOne
2024-07-26 / 0 评论 / 0 点赞 / 337 阅读 / 441 字
温馨提示:
点赞-关注-不迷路。

根据描述查找相关表

create table data_map_table_info(
                                    id int primary key auto_increment comment '主键',
                                    table_name varchar(100) comment '表名',
                                    alltext text comment '所有字段信息'
);
# 得到所有字段的模糊搜索
insert into  data_map_table_info(table_name, alltext)
select *
from (select hive.TBLS.TBL_NAME, group_concat(COMMENT, ',') alltext
      from hive.TBLS
               left join hive.SDS on hive.TBLS.SD_ID = hive.SDS.SD_ID
               left join hive.COLUMNS_V2 on hive.SDS.CD_ID = hive.COLUMNS_V2.CD_ID
               join hive.VERSION
      group by hive.TBLS.TBL_NAME) t1
where alltext like '%描述%';

得到表的所有字段

create table data_map_table_field as
select TBLS.`TBL_ID`,
       TBLS.`CREATE_TIME`,
       TBLS.`DB_ID`,
       TBLS.`LAST_ACCESS_TIME`,
       TBLS.`OWNER`,
       TBLS.`RETENTION`,
       TBLS.`SD_ID`,
       TBLS.`TBL_NAME`,
       TBLS.`TBL_TYPE`,
       TBLS.`VIEW_EXPANDED_TEXT`,
       TBLS.`VIEW_ORIGINAL_TEXT`,
       TBLS.`IS_REWRITE_ENABLED`,
       SDS.`CD_ID`,
       SDS.`INPUT_FORMAT`,
       SDS.`IS_COMPRESSED`,
       SDS.`IS_STOREDASSUBDIRECTORIES`,
       SDS.`LOCATION`,
       SDS.`NUM_BUCKETS`,
       SDS.`OUTPUT_FORMAT`,
       SDS.`SERDE_ID`,
       COLUMNS_V2.`COMMENT`,
       COLUMNS_V2.`COLUMN_NAME`,
       COLUMNS_V2.`TYPE_NAME`,
       COLUMNS_V2.`INTEGER_IDX`
from hive.TBLS
         left join hive.SDS on hive.TBLS.SD_ID = hive.SDS.SD_ID
         left join hive.COLUMNS_V2 on hive.SDS.CD_ID = hive.COLUMNS_V2.CD_ID
         join hive.VERSION
where hive.TBLS.TBL_NAME = 'tablename';

查找表的所有分区

create table data_map_table_partitions as
select TBLS.`TBL_ID`,
       TBLS.`CREATE_TIME`,
       TBLS.`DB_ID`,
       TBLS.`OWNER`,
       TBLS.`RETENTION`,
       TBLS.`SD_ID`,
       TBLS.`TBL_NAME`,
       TBLS.`TBL_TYPE`,
       TBLS.`VIEW_EXPANDED_TEXT`,
       TBLS.`VIEW_ORIGINAL_TEXT`,
       TBLS.`IS_REWRITE_ENABLED`,
       PARTITIONS.`PART_ID`,
       PARTITIONS.`LAST_ACCESS_TIME`,
       PARTITIONS.`PART_NAME`,
       cast(SUBSTRING(PART_NAME, 4, 10) AS date) datestr
from hive.TBLS
         left join hive.PARTITIONS on hive.TBLS.TBL_ID = hive.PARTITIONS.TBL_ID
where hive.TBLS.TBL_NAME = 'tablename'
order by cast(SUBSTRING(PART_NAME, 4, 10) AS date) desc;
0

评论区