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大数据与数据仓库