当前位置: 首页 > news >正文

做网站百度一下国家职业技能培训平台

做网站百度一下,国家职业技能培训平台,乌鲁木齐房产网,90设计网站官网如何获取特定 HIVE 库的元数据信息如其所有分区表和所有分区 1. 问题背景 有时我们需要获取特定 HIVE 库下所有分区表,或者所有分区表的所有分区,以便执行进一步的操作,比如通过 使用 HIVE 命令 MSCK REPAIR TABLE table_name sync partiti…

如何获取特定 HIVE 库的元数据信息如其所有分区表和所有分区

1. 问题背景

有时我们需要获取特定 HIVE 库下所有分区表,或者所有分区表的所有分区,以便执行进一步的操作,比如通过 使用 HIVE 命令 MSCK REPAIR TABLE table_name sync partitions 修复 HIVE 元数据与 HDFS 数据在分区上的不一致性。
怎么获取这些 hms 元数据呢?

2. 获取 HMS 元数据的方案概述

获取 HMS 元数据,大体有以下几种方案:

2.1 执行 hive sql 命令,并基于 hive sql 的返回结果,解析获取 hms元数据

相关的 hive sql 命令有:

show databases; 
show tables; 
show tables like table_name_regexp;
show create table xxx; 
DESCRIBE DATABASE EXTENDED db_name;
DESCRIBE EXTENDED|FORMATTED db_name.table_name;
DESCRIBE EXTENDED|FORMATTED db_name.table_name PARTITION partition_spec;

2.2 查询 hive 库对应的 hdfs 目录的结构信息,并基于这些结构信息,解析获取 hms 元数据

  • hdfs 目录的结构信息,包括子目录和文件名等信息,解析这些信息可以获取 HIVE 库名,表名,分区名,分区值等 hms 元数据信息。
  • 比如如果某个库中,所有分区表的分区字段名都是 part_date 且分区值都是8位数字如20230101,则可以通过如下 hdfs 命令结合 awk 命令,解析获取该hive库下所有分区表的表名:
hdfs dfs -ls -R hdfs:///user/hundsun/dap/hive | egrep part_date=[0-9]{8}$ |awk -F '/' 'BEGIN { OFS="." ;}{print $8,$9}' | uniq 

2.3 直接访问 hms 底层的 rdbms 数据库,并执行sql查询获取 hms 元数据

  • hms 底层的元数据信息,都是保存在 rdbms s数据库如mysql中的,所以我们也可以直接访问 hms 底层的 rdbms 数据库,并执行sql查询获取 hms 元数据;
  • 访问 hms 数据库并执行sql,以获取指定 HIVE 库下所有分区表,或指定HIVE库下所有分区表的所有分区,其示例命令如下:
# 获取指定HIVE库下所有分区表-访问 hms 数据库并执行sql:
select distinct d.NAME,t.TBL_NAME
from tbls t join dbs d join partitions p
on t.DB_ID=d.DB_ID and t.TBL_ID=p.TBL_ID
where d.name in ("hs_sr","hs_ods","hs_mid");
# 获取指定HIVE库下所有分区表的所有分区-访问 hms 数据库并执行sql:
select d.NAME,t.TBL_NAME,p.PART_NAME
from tbls t join dbs d join partitions p
on t.DB_ID=d.DB_ID and t.TBL_ID=p.TBL_ID
where d.name in ("hs_sr","hs_ods","hs_mid");

3 hms 元数据库的相关信息

  • 在 hms 元数据服务底层的 hms 元数据库中,保存了 hive 库/表/分区等相关元数据信息;
  • hms 元数据库的 url/数据库名/用户名/密码等信息,可以咨询集群管理员获取,其中数据库名一般默认是hive,用户名一般默认也是hive;在 cdh/cdp大数据平台中,也可以使用如下 curl 命令访问 CM API 获取: curl -u admin_uname:admin_pass “http://cm_server_host:7180/api/v19/cm/deployment”,该命令中的 admin_uname:admin_pass 是 cm 管理员的用户名和密码,其默认值可以在 CM server 节点的配置文件 /etc/cloudera-scm-server/db.properties 中获取(当 cm 和 hms 使用同一个 rdbms 数据库实例时,有时 cm 管理员也可以直接查询 hms 的元数据库 hive);


  • hms 元数据库 rdmbs中,一些核心关键的表有 dbs,tbls,PARTITIONS,SDS 等,其相关信息如下:
- table "dbs" stores the information of hive databases;
- table "TBLS" stores the information of Hive tables;
- table "PARTITIONS" stores the information of Hive table partitions;
- table "SDS" stores the information of storage location, input and output formats, SERDE etc;
- table hive.dbs has below important columns:DB_ID,NAME,DB_LOCATION_URI- tablet hive.bls has below important column:TBL_ID,DB_ID,SD_ID,TBL_NAME- table hive.partitions has below important column:PART_ID,PART_NAME,SD_ID,TBL_ID- table hive.sds has below important column:SD_ID,LOCATION- Both table "TBLS" and "PARTITIONS" have a foreign key referencing to SDS(SD_ID);
http://www.fp688.cn/news/160805.html

相关文章:

  • 渭南网站制作学校steam交易链接在哪
  • 网站空间500mb关键词工具
  • 自助贸易免费建站网站搭建外贸
  • 昆明房地产网站建设百度竞价培训班
  • 网站的交流的功能怎么做广州推广优化
  • 省内注销二建 建设部网站更新慢淘宝关键词排名查询
  • 建设银行网站安全性分析网站免费网站免费
  • 在域名做网站官网建站多少钱
  • 网站关键词格式服务营销案例100例
  • 山海关网站制作网站建设 网站制作
  • 网站建设百家号搜索引擎营销策略有哪些
  • 仓库管理系统软件网站关键词优化排名
  • 汕头老城区是什么区林云seo博客
  • 上海网站建设公司哪家比较靠谱深圳小程序建设公司
  • 佛山网站建设品牌app排名优化公司
  • 海拉尔网站建设平台网络营销顾问工作内容
  • 网站建设的原则想做seo哪里有培训的
  • 东莞公司注册代办网站seo具体怎么做?
  • 做网站选哪家优化大师百科
  • 做网站卖仿品cps推广联盟
  • 网站是如何盈利的百度上怎么发布作品
  • 网站怎么做按钮营销的手段和方法
  • 浅析动态网站建设之后台数据库的选择网络运营推广怎么做
  • 网站建设给客户看的ppt自己建网页
  • 厦门网站推广费用今日头条新闻10条简短
  • 瓯海建设网站网站收录优化
  • c 小说网站开发教程怎么做推广
  • 网站调用优酷视频去广告深圳网页搜索排名提升
  • 互联科技行业网站百度热线
  • 网站建设市场供需分析北京网站营销seo方案