hive中orc格式表的數據導入

Hive系列文章

  1. Hive表的基本操作
  2. Hive中的集合數據類型
  3. Hive動態分區詳解
  4. hive中orc格式表的數據導入
  5. Java通過jdbc連接hive
  6. 通過HiveServer2訪問Hive
  7. SpringBoot連接Hive實現自助取數
  8. hive關聯hbase表
  9. Hive udf 使用方法
  10. Hive基于UDF進行文本分詞
  11. Hive窗口函數row number的用法
  12. 數據倉庫之拉鏈表

hive創建orc格式表不能像textfile格式一樣直接load數據到表中,需要創建臨時textfile表,然后通過insert into 或者insert overwrite到orc存儲格式表中。

如果你直接load數據到orc格式表中,這個步驟可以成功,但是會發現select * from table limit 1;這個語句都會報錯,也就是說直接load數據是不可行的。對于hive中orc格式表可以參見:大數據:Hive - ORC 文件存儲格式

1)、創建表

需要創建臨時表和數據表。

臨時表

create table if not exists db.tmp
(
name string,
age int
)
partitioned by (dt string, hour string, msgtype string, action string)
row format delimited fields terminated by '\t';
SQL

數據表

create external table if not exists db.people
(
name string,
age int
)
partitioned by (dt string, hour string, msgtype string, action string)
row format delimited fields terminated by '\t'
stored as orc;
SQL

2)、 導入數據

需要先用load命令將數據導入textfile格式表,然后再通過insert into插入orc格式表。
(1) 導入數據到textfile

load data inpath 'hdfs://path' into table db.tmp partition(dt="2018-06-22",hour="00",msgtype="web", action="click");
SQL

(2)查詢數據插入orc格式表

insert into db.people partition(dt="2018-06-22",hour="00",msgtype="web", action="click")
select name,age
from db.tmp where dt = "2018-06-22" and hour = "00" 
and msgtype = "web" and action = "click";









作者:柯廣的網絡日志

微信公眾號:Java大數據與數據倉庫