Hive的數據模型

Hive數據模型.png
數據模型組成及應用場景
- Hive的數據模型主要有:database、table、partition、bucket四部分;
數據模型之database
- database:相當於關系型數據庫中的命名空間,作用是將數據庫應用隔離到不同的數據庫模式中,hive提供了create database dbname、use dbname 以及drop database dbname的語句;
數據模型之table
- table:表是由存儲的數據以及描述表的一些元數據組成。數據存儲再分布式文件系統中,元數據存儲在關系型數據庫中;
- hive表分四種:
- MANGED_TABLE :內部表
- EXTERNAL_TABLE:外部表
- INDEX_TABLE:索引表
- VIRTUAL_VIEW :視圖表
- 查看表的具體信息使用:desc tablename或者 desc formatted tablename
Hive內部表和外部表的區別
數據模型之partition
- hive的分區是根據某列的值進行粗略的划分,每個分區對應HDFS上的一個目錄;
數據模型之bucket
- 要使用hive的分桶功能,首先需要打開hive對痛的控制 set hive.enforce.bucketing=true;
- bucket是按照指定值進行hash,每個桶就是表目錄里的一個文件