Hive Metastore 表结构

news2024/9/23 15:23:27

Hive MetaStore 的ER 图如下。
在这里插入图片描述
部分表结构和说明。

CTLGS(CATALOGS)

catalogs 可以隔离元数据。默认只有1行。一个 CATALOG 可以有多个数据库。

mysql> DESC CTLGS;
+--------------+---------------+------+-----+---------+-------+
| Field        | Type          | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| CTLG_ID      | bigint(20)    | NO   | PRI | NULL    |       |
| NAME         | varchar(256)  | YES  | UNI | NULL    |       |
| DESC         | varchar(4000) | YES  |     | NULL    |       |
| LOCATION_URI | varchar(4000) | NO   |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+

记录示例

mysql> SELECT * FROM CTLGS \G
*************************** 1. row ***************************
     CTLG_ID: 1
        NAME: hive
        DESC: Default catalog for Hive
LOCATION_URI: bos://bmr-rd-wh/houzhizhen/warehouse
1 row in set (0.00 sec)

DBS(数据库表)

每个数据库一条记录。

+-----------------+---------------+------+-----+---------+-------+
| Field           | Type          | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------+
| DB_ID           | bigint(20)    | NO   | PRI | NULL    |       |
| DESC            | varchar(4000) | YES  |     | NULL    |       |
| DB_LOCATION_URI | varchar(4000) | NO   |     | NULL    |       |
| NAME            | varchar(128)  | YES  | MUL | NULL    |       |
| OWNER_NAME      | varchar(128)  | YES  |     | NULL    |       |
| OWNER_TYPE      | varchar(10)   | YES  |     | NULL    |       |
| CTLG_NAME       | varchar(256)  | NO   | MUL | hive    |       |
+-----------------+---------------+------+-----+---------+-------+
  • 记录示例
mysql> SELECT * FROM DBS WHERE NAME='tpcds_bos_orc_3' \G;
*************************** 1. row ***************************
          DB_ID: 7
           DESC: NULL
DB_LOCATION_URI: bos://bmr-rd-wh/houzhizhen/warehouse/tpcds_bos_orc_3.db
           NAME: tpcds_bos_orc_3
     OWNER_NAME: hive
     OWNER_TYPE: USER
      CTLG_NAME: hive

TBLS(表记录)

  • 表结构
mysql> DESC TBLS;
+--------------------+--------------+------+-----+---------+-------+
| Field              | Type         | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| TBL_ID             | bigint(20)   | NO   | PRI | NULL    |       |
| CREATE_TIME        | int(11)      | NO   |     | NULL    |       |
| DB_ID              | bigint(20)   | YES  | MUL | NULL    |       |
| LAST_ACCESS_TIME   | int(11)      | NO   |     | NULL    |       |
| OWNER              | varchar(767) | YES  |     | NULL    |       |
| OWNER_TYPE         | varchar(10)  | YES  |     | NULL    |       |
| RETENTION          | int(11)      | NO   |     | NULL    |       |
| SD_ID              | bigint(20)   | YES  | MUL | NULL    |       |
| TBL_NAME           | varchar(256) | YES  | MUL | NULL    |       |
| TBL_TYPE           | varchar(128) | YES  |     | NULL    |       |
| VIEW_EXPANDED_TEXT | mediumtext   | YES  |     | NULL    |       |
| VIEW_ORIGINAL_TEXT | mediumtext   | YES  |     | NULL    |       |
| IS_REWRITE_ENABLED | bit(1)       | NO   |     | b'0'    |       |
+--------------------+--------------+------+-----+---------+-------+
  • 记录示例
mysql> select * from TBLS WHERE DB_ID=7 AND TBL_NAME='store_sales' \G
*************************** 1. row ***************************
            TBL_ID: 42
       CREATE_TIME: 1688096043
             DB_ID: 7
  LAST_ACCESS_TIME: 0
             OWNER: hive
        OWNER_TYPE: USER
         RETENTION: 0
             SD_ID: 42
          TBL_NAME: store_sales
          TBL_TYPE: MANAGED_TABLE
VIEW_EXPANDED_TEXT: NULL
VIEW_ORIGINAL_TEXT: NULL
IS_REWRITE_ENABLED:  
1 row in set (0.00 sec)

PARTITION_KEYS(表的分区字段)

mysql> SELECT * FROM PARTITION_KEYS WHERE TBL_ID=42 ORDER BY INTEGER_IDX;
+--------+--------------+-----------------+-----------+-------------+
| TBL_ID | PKEY_COMMENT | PKEY_NAME       | PKEY_TYPE | INTEGER_IDX |
+--------+--------------+-----------------+-----------+-------------+
|     42 | NULL         | ss_sold_date_sk | bigint    |           0 |
+--------+--------------+-----------------+-----------+-------------+

PARTITIONS(分区信息)

+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| PART_ID          | bigint(20)   | NO   | PRI | NULL    |       |
| CREATE_TIME      | int(11)      | NO   |     | NULL    |       |
| LAST_ACCESS_TIME | int(11)      | NO   |     | NULL    |       |
| PART_NAME        | varchar(767) | YES  | MUL | NULL    |       |
| SD_ID            | bigint(20)   | YES  | MUL | NULL    |       |
| TBL_ID           | bigint(20)   | YES  | MUL | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
  • 记录示例
    可以看到,同一张表,不同分区的SD_ID 不一样。表的 SD_ID 是42,这两个分区的SD_ID分别为 43 和 44。
mysql> select * from PARTITIONS where TBL_ID=42 limit 2 \G
*************************** 1. row ***************************
         PART_ID: 1
     CREATE_TIME: 0
LAST_ACCESS_TIME: 0
       PART_NAME: ss_sold_date_sk=__HIVE_DEFAULT_PARTITION__
           SD_ID: 43
          TBL_ID: 42
*************************** 2. row ***************************
         PART_ID: 2
     CREATE_TIME: 0
LAST_ACCESS_TIME: 0
       PART_NAME: ss_sold_date_sk=2452641
           SD_ID: 44
          TBL_ID: 42

PARTITION_KEY_VALS

mysql> DESC PARTITION_KEY_VALS;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| PART_ID      | bigint(20)   | NO   | PRI | NULL    |       |
| PART_KEY_VAL | varchar(256) | YES  |     | NULL    |       |
| INTEGER_IDX  | int(11)      | NO   | PRI | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 记录示例
    以下记录说明,分区的值是 2452641,由于分区 KEY 是 ss_sold_date_sk。
mysql> select * from PARTITION_KEY_VALS where PART_ID=2 order by INTEGER_IDX;
+---------+--------------+-------------+
| PART_ID | PART_KEY_VAL | INTEGER_IDX |
+---------+--------------+-------------+
|       2 | 2452641      |           0 |
+---------+--------------+-------------+
1 row in set (0.00 sec)

SDS(序列化信息)

mysql> DESC SDS;
+---------------------------+---------------+------+-----+---------+-------+
| Field                     | Type          | Null | Key | Default | Extra |
+---------------------------+---------------+------+-----+---------+-------+
| SD_ID                     | bigint(20)    | NO   | PRI | NULL    |       |
| CD_ID                     | bigint(20)    | YES  | MUL | NULL    |       |
| INPUT_FORMAT              | varchar(4000) | YES  |     | NULL    |       |
| IS_COMPRESSED             | bit(1)        | NO   |     | NULL    |       |
| IS_STOREDASSUBDIRECTORIES | bit(1)        | NO   |     | NULL    |       |
| LOCATION                  | varchar(4000) | YES  |     | NULL    |       |
| NUM_BUCKETS               | int(11)       | NO   |     | NULL    |       |
| OUTPUT_FORMAT             | varchar(4000) | YES  |     | NULL    |       |
| SERDE_ID                  | bigint(20)    | YES  | MUL | NULL    |       |
+---------------------------+---------------+------+-----+---------+-------+
  • 记录示例
    只要表的字段不变,分区对应的 CD_ID 不变。
mysql> select * from SDS WHERE SD_ID in(42,43,44)\G
*************************** 1. row ***************************
                    SD_ID: 42
                    CD_ID: 42
             INPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
            IS_COMPRESSED:  
IS_STOREDASSUBDIRECTORIES:  
                 LOCATION: bos://bmr-rd-wh/houzhizhen/warehouse/tpcds_bos_orc_3.db/store_sales
              NUM_BUCKETS: -1
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
                 SERDE_ID: 42
*************************** 2. row ***************************
                    SD_ID: 43
                    CD_ID: 42
             INPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
            IS_COMPRESSED:  
IS_STOREDASSUBDIRECTORIES:  
                 LOCATION: bos://bmr-rd-wh/houzhizhen/warehouse/tpcds_bos_orc_3.db/store_sales/ss_sold_date_sk=__HIVE_DEFAULT_PARTITION__
              NUM_BUCKETS: -1
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
                 SERDE_ID: 43
*************************** 3. row ***************************
                    SD_ID: 44
                    CD_ID: 42
             INPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
            IS_COMPRESSED:  
IS_STOREDASSUBDIRECTORIES:  
                 LOCATION: bos://bmr-rd-wh/houzhizhen/warehouse/tpcds_bos_orc_3.db/store_sales/ss_sold_date_sk=2452641
              NUM_BUCKETS: -1
            OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
                 SERDE_ID: 44

CDS

从 SDS 表的每条记录都有一个 CD_ID。cds 表非常简单,只有一个字段。

+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| CD_ID | bigint(20) | NO   | PRI | NULL    |       |
+-------+------------+------+-----+---------+-------+

COLUMNS_V2

表的列信息

mysql> desc COLUMNS_V2;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| CD_ID       | bigint(20)   | NO   | PRI | NULL    |       |
| COMMENT     | varchar(256) | YES  |     | NULL    |       |
| COLUMN_NAME | varchar(128) | NO   | PRI | NULL    |       |
| TYPE_NAME   | mediumtext   | YES  |     | NULL    |       |
| INTEGER_IDX | int(11)      | NO   |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql> select * from COLUMNS_V2 where CD_ID=42 ORDER BY INTEGER_IDX;
+-------+---------+-----------------------+--------------+-------------+
| CD_ID | COMMENT | COLUMN_NAME           | TYPE_NAME    | INTEGER_IDX |
+-------+---------+-----------------------+--------------+-------------+
|    42 | NULL    | ss_sold_time_sk       | bigint       |           0 |
|    42 | NULL    | ss_item_sk            | bigint       |           1 |
|    42 | NULL    | ss_customer_sk        | bigint       |           2 |
|    42 | NULL    | ss_cdemo_sk           | bigint       |           3 |
|    42 | NULL    | ss_hdemo_sk           | bigint       |           4 |
|    42 | NULL    | ss_addr_sk            | bigint       |           5 |
|    42 | NULL    | ss_store_sk           | bigint       |           6 |
|    42 | NULL    | ss_promo_sk           | bigint       |           7 |
|    42 | NULL    | ss_ticket_number      | bigint       |           8 |
|    42 | NULL    | ss_quantity           | int          |           9 |
|    42 | NULL    | ss_wholesale_cost     | decimal(7,2) |          10 |
|    42 | NULL    | ss_list_price         | decimal(7,2) |          11 |
|    42 | NULL    | ss_sales_price        | decimal(7,2) |          12 |
|    42 | NULL    | ss_ext_discount_amt   | decimal(7,2) |          13 |
|    42 | NULL    | ss_ext_sales_price    | decimal(7,2) |          14 |
|    42 | NULL    | ss_ext_wholesale_cost | decimal(7,2) |          15 |
|    42 | NULL    | ss_ext_list_price     | decimal(7,2) |          16 |
|    42 | NULL    | ss_ext_tax            | decimal(7,2) |          17 |
|    42 | NULL    | ss_coupon_amt         | decimal(7,2) |          18 |
|    42 | NULL    | ss_net_paid           | decimal(7,2) |          19 |
|    42 | NULL    | ss_net_paid_inc_tax   | decimal(7,2) |          20 |
|    42 | NULL    | ss_net_profit         | decimal(7,2) |          21 |
+-------+---------+-----------------------+--------------+-------------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

判断关系属于哪一种范式(期末考试必看)

1NF(第一范式) 属性值是不可分的原子值 2NF(第二范式) R1NF,每个非主属性都完全函数依赖于R的候选键 3NF(第三范式) R1NF,每个非主属性都不传递依赖于 R的候选键 BCNF(BC…

ubuntu修改主机名和用户名

参考文章: https://blog.csdn.net/fkmmmm/article/details/127333212 一、修改主机名 sudo vi /etc/hostname2、 sudo vi /etc/hosts3、 sudo reboot二、修改用户名 1、修改所有原用户名(如果文件内没有原用户名则不用改 sudo vi /etc/sudoers 2、 s…

【C++11】 包装器 | bind

文章目录 1. 包装器概念理解用法成员函数的包装静态成员函数非静态成员函数 2. bind概念理解功能1 调整参数顺序 (用处不大)功能2 调整参数个数 1. 包装器 概念理解 function包装器 也被叫做 适配器 C11中function本质是类模板,也是一个包装器 意义在于 对可调用…

LeetCode-69. x 的平方根

LeetCode-69. x 的平方根 1、题目描述2、解题思路3、代码实现4、解题记录 ) 1、题目描述 题目描述: 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 示例1&a…

【裸机开发】I2C 通信接口(二)—— I2C 寄存器解析

目录 一、硬件原理图分析 二、IO 复用寄存器解析 三、I2C 寄存器解析 3.1 时钟配置 3.2 I2C1_IADR(设置从机地址) 3.3 I2C1_IFDR(设置分频值) 3.4 I2C1_I2CR(I2C使能、中断控制) 3.5 I2C1_I2SR…

不知道校园跑腿项目如何运营?那就先看看这份运营指导方案!

当大学生在校创业,其实并不与课业学习矛盾。相反,大学生可以抓住校园市场,利用校园这一具有自然地理优势的封闭市场,深入培育师生客户的需求,进入校园市场的蓝海,在不耽误学习的情况下有一个良好的收入来源…

AIGC-midjourney系列1-制作自己的证件照,卡通照

1 账号 淘宝购买共享账户 2 新建服务器 3 添加midjourney机器人 4 添加insightface机器人 在服务器聊天框输入并发送 https://discord.com/oauth2/authorize?client_id1090660574196674713&permissions274877945856&scopebot点击链接 5 insightface使用 使用…

cf 比赛 03

2021.04.28 训练地址 B. Bananas in a Microwave 题意:一开始的时候手里的数是0 这个题一开始想复杂了. 其实很简单. 我们想一个性质,我们用背包dp做这个题,从大到小枚举体积 j. 然后状态转移是从前往后推(不是之前的那个找前驱…

记录 windows11 qemu安装 麒麟操作系统的经历

因为本人供职的公司,要求国产化环境很多的软件,同时为了方便docker部署, 所以开启了 qemu虚拟aarch64环境的经历,用的软件如下: 有需要的私信,存在了,阿里云盘,百度云盘没有会员就是…

大厂面试测试岗,你一个很小的错误就能让你被淘汰

背景介绍 前后参加过几家互联网公司的测试开发岗位面试,其中两次百度的面试,一次止步三面,另一次止步于四面。这里就主要总结一下百度的面试经历和心得体会。总体感觉百度的面试官比较注重基础,问题不难但是覆盖范围比较全面。相…

栈,栈帧Stack Frames和函数调用过程Control Flow

栈其实就是计算机系统内存中的一小块。栈是一块特殊的内存区域,栈在内存中的增长方向是向低地址扩展,%rsp寄存器存储栈的最低地址,即栈顶元素的地址。这种栈结构在程序中的应用有助于实现函数调用、局部变量的管理以及递归等功能。 Push和Pop…

Blazor 自定义可重用基础组件之 CheckBox

Blazor 原生提供的基础组件实在是一言难尽&#xff0c;这给许多Blazor UI公司很多机会。可是试用了不少如AntDisgen、BootstrapBlazor等&#xff0c;总会有一些难尽如意的地方。还是自己做丰衣足食吧。 首先是带Label的CheckBox&#xff0c;代码如下&#xff1a; <p><…

HTML5开发工程师岗位的职责说明文(合集)

HTML5开发工程师岗位的职责说明文1 职责&#xff1a; 1、根据产品设计文档和视觉文件&#xff0c;利用HTML5&#xff0c;Javascript相关技术实现web端的界面效果、交互和功能; 2、基于HTML5.0的标准进行页面制作&#xff0c;编写可复用的用户界面组件; 3、负责分析和解决前端…

30多个小程序一键发布——miniprogram-ci

概述 miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。 开发者可不打开小程序开发者工具&#xff0c;独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。 miniprogram-ci 从 1.0.28 开始支持第三方平台开发的上传和预览&#xff0…

[DBT-05509] Failed to connect to the specified database (orcl).

同事在arm上测试19c部署时&#xff0c;发截图给我说dbca建库有告警&#xff0c;无法进行&#xff0c; Cause- OS Authentication might be disabled for this database (orcl). Action Specify a valid sysdba user name and password to connect to the database. 查找到的…

Windows安装ciphey编码工具,编码工具战神,cry简单题绝对克星!

TA是什么 一款智能化的编码分析解码工具&#xff0c;对于CTF中复杂性编码类题目可以快速攻破。 编码自动分析解码的神器。 如何安装 Windows环境 Python 3.8 64位&#xff08;最新的版本不兼容&#xff0c;32位的也不行&#xff09; 方便起见&#xff0c;我直接给一个3.8.…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册2

目录 1、秋千 2、跷跷板 3、搅拌器 4、奇怪的钟 5、起重机 6、烤肉架 7、手摇风扇 8、履带车 9、直升机 10、后轮驱动车 游乐场里的跷跷板 跷跷板&#xff08;又作翘翘板&#xff09;&#xff0c;又称为摇摇板&#xff0c;是指以某些东西作为支点&#xff0c;支撑著很长但十分…

MongoDB 获取数组中匹配到的第一个元素对象

例如当前test库中的grade集合中有两条文档数据,如下图所示: 相关的两个实体映射类如下: import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb…

Python中Self的详解及使用

大家学Python面向对象的时候&#xff0c;总会遇到一个让人难以理解的存在&#xff1a;self 这个self到底是谁啊&#xff0c;为什么每个类实例方法都有一个参数self&#xff0c;它到底有什么作用呢&#xff1f; 「先下结论&#xff1a;类实例化后&#xff0c;self即代表着实例&…

[SSM]在WEB中应用MyBtis

目录 MyBatis基础 5.1需求描述 5.2数据库表的设计和准备数据 5.3实现步骤 第一步&#xff1a;引入相关依赖 第二步&#xff1a;引入相关配置文件&#xff0c;放到resources目录下&#xff08;全部放到类的根路径下&#xff09; 第三步&#xff1a;前端页面index.html 第…