Hive Metastore 表结构

这篇具有很好参考价值的文章主要介绍了Hive Metastore 表结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive MetaStore 的ER 图如下。
Hive Metastore 表结构,hive,hadoop,数据仓库
部分表结构和说明。

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

表的列信息文章来源地址https://www.toymoban.com/news/detail-534402.html

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 |
+-------+---------+-----------------------+--------------+-------------+

到了这里,关于Hive Metastore 表结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据之Hive】六、Hive之metastore服务部署

      metastore为Hive CLI或Hiveserver2提供元数据访问接口。   metastore运行模式有两种,嵌入式模式和独立服务模式。 (1)嵌入式模式   将metastore看作一个依赖嵌入到Hiveserver2和每一个HiveCLI客户端进程,使得Hiveserver2和HiveCLI客户端直接连接访问数据库。 (2)独立服务模式  

    2024年02月03日
    浏览(45)
  • 访问 Hive 的元数据存储(MetaStore)的API方式

    访问 Hive 的元数据存储(MetaStore)的API方式 访问 Hive 的元数据存储(MetaStore)是通过 Hive 的 Thrift API 来实现的。Thrift 是一个跨语言的远程服务调用框架,它可以让不同编程语言之间进行跨语言的远程过程调用(RPC)。Hive 的元数据存储的 Thrift API 允许你通过编程语言(如 J

    2024年02月14日
    浏览(45)
  • 【运维】hive 高可用详解: Hive MetaStore HA、hive server HA原理详解;hive高可用实现

    Hive元数据存储在MetaStore中,包括表的定义、分区、表的属性等信息。 hive metastore 配置多台,可以避免单节点故障导致整个集群的hive client不可用。 原理如下: Active-active mode is not supported for Hive Metastore. Hence, there is one active instance of the Hive Metastore service at any given point in time.

    2024年02月02日
    浏览(42)
  • hive 架构及 metastore 功能简单介绍

    这两天在调研用 java 怎么能通过 hive metastore 将 hive 表中的数据读出来(不能用 hive2),最好是能直接支持 sql 查询。各种查跟尝试,最终确定这条路走不通。期间研究了下 hive 的内部架构,其实就是看了一遍官方文档。记录下怕忘了。 hive 中主要有两个组件 hive server2 和 hiv

    2024年02月11日
    浏览(42)
  • Hive的Metastore三种配置方式

    metastore 是 Hive 元数据的集中存放地。metastore 元数据存储主要体现在两个方面:服务和后台数据的存储。元数据包含用 Hive 创建的 database、table 等的元信息。元数据存储在关系型数据库中。如 Derby、MySQL 等。 客户端连接 metastore 服务,metastore 再去连接 MySQL 数据库来存取元数据

    2024年02月09日
    浏览(41)
  • hive 配置metastore hiveserver2服务开启

    hive-site.xml: hive-site.xml: hive-site.xml: 重启MetaStore服务: 启动hive服务: 启动后需要等待一段时间,jdbc才能连接上hive服务 使用beeline客户端验证是否可以连接:

    2024年02月03日
    浏览(42)
  • MySQL到TiDB:Hive Metastore横向扩展之路

    作者:vivo 互联网大数据团队 - Wang Zhiwen 本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程,由实际面临的问题出发,对当前主流的横向扩展方案进行了调研及对比测试,通过多方面对比数据择优选择TiDB方案。其次分享了整个扩展方案流程、实施遇到的问题及解决

    2024年02月07日
    浏览(42)
  • 【运维】hive 终端突然不能使用:Hive Schema version does not match metastore‘s schema version

    进入hive终端,执行如下命令报错: Error “Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient” 字面意思就是无法实例化hive Metastore client端。   先朝着hive的一些配置入手排查: hive元数据库是否初始化,库是否正常存在,hive的元数据配置在mysql: 元数据库没有问

    2024年02月14日
    浏览(37)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(43)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包