hive元數據庫中的幾張核心表
在hive-site.xml配置了mysql連接信息,元數據庫爲hivedb
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一個服務器節點,那麼請更改 hdp02 爲 localhost,連接會快一些 -->
</property>
我們看一下元數據庫會爲我們生成哪些表:
mysql> use hivedb;
mysql> show tables;
+---------------------------+
| Tables_in_hivedb |
+---------------------------+
| AUX_TABLE |
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 | 字段描述信息
| COMPACTION_QUEUE |
| COMPLETED_COMPACTIONS |
| COMPLETED_TXN_COMPONENTS |
| DATABASE_PARAMS |
| DBS | 數據庫的描述信息的元數據表
| DB_PRIVS |
| DELEGATION_TOKENS |
| FUNCS |
| FUNC_RU |
| GLOBAL_PRIVS |
| HIVE_LOCKS |
| IDXS |
| INDEX_PARAMS |
| KEY_CONSTRAINTS |
| MASTER_KEYS |
| NEXT_COMPACTION_QUEUE_ID |
| NEXT_LOCK_ID |
| NEXT_TXN_ID |
| NOTIFICATION_LOG |
| NOTIFICATION_SEQUENCE |
| NUCLEUS_TABLES |
| PARTITIONS |
| PARTITION_EVENTS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| PART_COL_PRIVS |
| PART_COL_STATS |
| PART_PRIVS |
| ROLES |
| ROLE_MAP |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SKEWED_COL_NAMES |
| SKEWED_COL_VALUE_LOC_MAP |
| SKEWED_STRING_LIST |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES |
| SORT_COLS |
| TABLE_PARAMS |
| TAB_COL_STATS |
| TBLS | 表的描述信息
| TBL_COL_PRIVS |
| TBL_PRIVS |
| TXNS |
| TXN_COMPONENTS |
| TYPES |
| TYPE_FIELDS |
| VERSION |
| WRITE_SET |
+---------------------------+
元數據庫中的幾個核心表:
- hive的數據庫的描述信息的元數據表DBS:
一條數據對應的是hive中的一個數據庫
hive中創建一個數據庫 這表中添加一條數據hive> create database testdb; hive> desc database testdb; OK testdb hdfs://hdp01:9000/user/hive/warehouse/testdb.db hdp01 USER Time taken: 0.113 seconds, Fetched: 1 row(s)
- hive的表的描述信息TBLS:
hive中一個表對應這裏的一條數據
1(table_id) 1545036305 2(db_id) 0 hadoop 0 1 student MANAGED_TABLE(表類型) 0
這個表中的表類型字段 有3個值:
MANAGED_TABLE 管理表、內部表
EXTERNAL_TABLE 外部表
virtual_view 視圖
默認的創建的表都是管理表 - hive的字段描述信息COLUMNS_V2:
這裏的一條數據對應的是hive表中的一個字段
1(表id) age int 3(字段順序,從0開始 順序遞增的)
(這裏發現上表的tb_test表在COLUMNS_V2表中沒有對應記錄,不知道爲啥)
元數據可以修改的
hive中的表或庫信息都是從元數據庫讀取的信息
元數據庫的信息只要修改 hive的表或庫的信息就會修改
但是表中的存儲的數據不會變的 在hdfs存儲的