hive的資料模型之內部表和外部表

2021-10-05 12:13:45 字數 1715 閱讀 8419

內部表

外部表分割槽表

靜態分割槽

動態分割槽

桶表檢視

物化檢視

從hive上建立的表通過hive儲存到hdfs上的表叫內部表

預設:在/user/hive/warehouse/目錄下(hdfs上的目錄)

刪除內部表:元資料、資料都會被刪除

建立乙個普通的表(預設的分隔符:是乙個不可見字元)

create table emp

(empno int,

ename string,

job string,

mgr int,

hiredate string,

sal int,

comm int,

deptno int);

然後載入資料可以使用insert,也可以使用load,也可以使用sqoop

如果使用insert語句插入到上面的表中我們使用預設的分隔符就可以了

insert into emp values(7499,『allen』,『salesman』,7698,『1981/2/20』,1600,300,30);

但是我們如果使用load語句來載入資料到hive,表的分隔符就需要根據具體情況指定了

使用load語句可以載入hdfs和本地資料到表中

我們測試load載入hdfs中的資料到hive中這個操作相當於ctr +x,這個操作會把hdfs上的這個檔案剪下掉

我們已經載入到了hive中,從上圖中hdfs中可以檢視到,但是我們在hive中使用select語句確查不到,這個就是因為分隔符的問題

我們從新建立一張表,順便測試load本地(linux)檔案到hive中,這個操作相當於ctr+c,並不會刪除本地檔案

外部表就是直接使用hdfs的資料建立表,在實際工作中,結合 外部表+分割槽表 更常用;

每張表中有一條資料,資料之間用逗號隔開

然後我們建立外部表

create external table ext_students(sid int,sname string,age int)row format delimited fields terminated by ',' location '/student';
查詢一下

Hive的資料模型 桶表

桶表是對資料進行雜湊取值,然後放到不同檔案中儲存。資料載入到桶表時,會對字段取hash值,然後與桶的數量取模。把資料放到對應的檔案中。物理上,每個桶就是表 或分割槽 目錄裡的乙個檔案,乙個作業產生的桶 輸出檔案 和reduce任務個數相同。桶表專門用於抽樣查詢,是很專業性的,不是日常用來儲存資料的表...

HIVE的資料模型

hive 中所有的資料都儲存在 hdfs 中,hive 中包含以下資料模型 示例 建立表 level string,leader string,dep string,ips array row format delimited fields terminated by collection item...

hive資料模型之桶表

hive的桶表類似於hash分割槽,桶表在hdfs中儲存是以檔案形式儲存的 與其他分割槽表不同,桶表的分割槽條件是從表中列名選取的,然後做hash運算,如果hash值相同那麼就放入乙個桶表中 建立桶表的示例 create table emp5 empno int,ename string,job s...