hive 通过元数据导出所有表信息

南墨2年前技术文章775

select 

db.NAME as db_name,

tb.TBL_NAME as table_name,

case tb.TBL_TYPE when 'MANAGED_TABLE' then '' else 'external' end as table_type,

sds.LOCATION,

sds.INPUT_FORMAT,

sds.OUTPUT_FORMAT,

t1.TBLPROPERTIES,

ser.SLIB as rowFS,

t2.WithSERD,

t3.colums,

t4.part,

tb.SD_ID,tb.TBL_ID,sds.CD_ID,sds.SERDE_ID

from TBLS tb

join metastore.DBS db on tb.DB_ID=db.DB_ID

join metastore.SDS sds on tb.SD_ID = sds.SD_ID

join (

   select  tp.TBL_ID,  group_concat(concat_ws(':',tp.PARAM_KEY,tp.PARAM_VALUE) separator '@#@') as TBLPROPERTIES

   from metastore.TABLE_PARAMS tp

   group by tp.TBL_ID

) t1 on tb.TBL_ID=t1.TBL_ID

join metastore.serdes ser on ser.SERDE_ID=sds.SERDE_ID

left join (

   select spa.SERDE_ID, group_concat(concat_ws(':',spa.PARAM_KEY,spa.PARAM_VALUE) separator '@#@') as WithSERD

   from metastore.SERDE_PARAMS spa

   group by spa.SERDE_ID

)t2  on t2.SERDE_ID = sds.SERDE_ID

join (

  select cv2.CD_ID, group_concat(concat_ws(':',cv2.INTEGER_IDX,cv2.TYPE_NAME,cv2.COLUMN_NAME) separator '@#@') as colums

  from metastore.COLUMNS_V2 cv2

  group by cv2.CD_ID

)t3 on t3.CD_ID = sds.CD_ID

  left join (

  select parts.TBL_ID,group_concat(concat_ws(':',parts.PKEY_NAME,parts.PKEY_TYPE) separator '@#@') as part

  from metastore.partition_keys parts

  group by parts.TBL_ID

)t4 on tb.TBL_ID=t4.TBL_ID;


相关文章

ubuntu20.04服务器安全策略设定

ubuntu20.04服务器安全策略设定

密码策略1、经核查,服务器用户身份标识唯一,口令存储在服务器中采用SHA512算法,服务器配置口令复杂度,口令要求8位以上,字母、数字、特殊字符组成,口令180天定期更换。# SHA512算法查看ca...

C++ 编程:数组的定义

1. 什么是数组?数组让能够按顺序将一系列相同类型的数据存储到内存中 C++ 中的数组可分为静态数组 与 动态数组 两种。2. 静态数组首先介绍声明一个 静态数组 的语法:/* ElementType...

开源大数据集群部署(十九)Hbase部署

开源大数据集群部署(十九)Hbase部署

2.8 HBASE 安装部署hbase组件部署主机HMasterhd1.dtstack.comhd2.dtstack.comHRegionServerhd3.dtstack.com,hd2.dtsta...

MySQL数据库复制延迟

【问题处理记录】1.查看资源情况,通过查找慢 SQL 发现,从 3:00 开始,存在较多 update 和 delete 操作。怀疑是表结构无主键,由于 RDS 日志模式默认采取的 row 模式,导致...

MongoDB的索引(一)

一、TTL索引1、语法db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )2、TTL索引...

trino容器设置nodeselector(七)

trino容器设置nodeselector(七)

查看node labelkubectl get nodes --show-labels2、在容器中设置nodeselector属性  nodeSelector:     dps: "1"查看k8s...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。