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

南墨1年前技术文章398

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;


相关文章

Kubernetes 网络插件

Kubernetes 自身并不提供网络解决方案,允许托管使用第三方的网络解决方案。flannelcalicocanelkube-router......各种 CNI 插件的解决方案: 虚拟网桥(bri...

SQL Server优化入门系列(五)—— SQL Server的执行计划

SQL Server优化入门系列(五)—— SQL Server的执行计划

定位到TOP SQL后,怎么优化呢?我们需要分析SQL的执行计划,制定相应的优化策略。这篇文章中,我们将介绍查看SQL Server执行计划的几种方法。本文测试案例中使用了AdventureWorks...

MySQL 有意思的权限报错

前言今天遇到了一个报错,觉得挺有意思的,在此记录下。SELECT command denied to user 'xxx'@'xxx' for table 'xxx'1. 报错原因这里是研发提了一条修...

SQL Server优化入门系列(二)—— 等待事件

SQL Server优化入门系列(二)—— 等待事件

在上一篇文章中(SQL Server优化入门系列(一)——快速定位阻塞SQL),我们介绍了如何快速定位SQL Server中当前正在执行的SQL,以及被阻塞的SQL。这里,我们将介绍如何通过等待事件来...

手动模拟 flannel 的 vxlan 实现节点命名空间互通

手动模拟 flannel 的 vxlan 实现节点命名空间互通

在flannel网络插件中实现两个节点互通方式有host-gw vxlan ipip等方式,之前已经手动模拟过host-gw模式,此处再模拟一下vxlan模式点对点访问。手动实验两个命名空间通信Nod...

Wireshark工具使用

Wireshark工具使用

一、介绍wireshark是一款免费、开源的网络抓包工具。项目地址如下:https://github.com/wireshark/wireshark应用如下:1. 网络管理员会使用wireshark来...

发表评论    

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