请选择 进入手机版 | 继续访问电脑版
点击联系客服
客服QQ:509006671 客服微信:mengfeiseo

广州老站长门户

 找回密码
 立即注册
查看: 65|回复: 46

插入hive ORC表格数据

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-2-23 22:27:56 | 显示全部楼层 |阅读模式
Hive  ORC表中的数据不能通过Hive客户端加载数据文件加载,也不能使用HDFS  DFS  -put上传到该目录。只能通过insert  into  orc  _ table  select  * from  tmp插入数据。

由于Select  * from  tmp查询子句的灵活性,orc表数据的插入由hive客户端分别执行:order  by、distribute  by、sort  by、

通过Distribute  by  sort  by、cluster  by或trafodion访问hive表以加载数据。

1、指定用于加载数据的order  by

insert  into  orders  _ orc  _ idx  _ F11 select  * fromordersorderbyo  _ orderkey;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;Order:一般textfile表格

由于可以为数据加载指定order  by、对全局数据进行排序,并且只能在一个reduce中处理,因此HDFS在表目录中创建一个数据文件,并在相同的数据量上指定order  by插入数据的性能比以下方法慢:

2、指定sort  by进行数据加载

insert  into  orders  _ orc  _ idx  _ F11 select  * fromorderssortbyo  _ orderkey;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;Order:一般textfile表格

为了加载数据,指定sort  by,在相应的reduce中单独排序,因此无法确保全局顺序。也就是说,HDFS下的每个数据文件内部都是有序的,但所有数据文件都不是有序的。如果将Reduce指定为1 (set  mapred.reduce.tasks=1),则sort  by和order  by是相同的。

3、指定distribute  by进行数据加载

insert  into  orders  _ orc  _ idx  _ F11 select  * fromordersdistributebyo  _ order  status;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;订单:纯文本表;O_ORDERSTATUS表uec值为3。Reduce值为26

如果指定distribute  by进行数据加载,distribute  by将控制hash的输出除以reduce的方式。也就是说,如果根据distribute  by指定字段的值执行散列计算,然后除以reduce值,则会为相同的reduce处理分配相同的结果,但不会影响查询性能(因为单个数据看起来不均匀,但HDFS系统会合并所有磁盘,数据文件均匀存储在磁盘上,不会影响查询扫描速度)。

4、指定distribute  by+sort  by进行数据加载

insert  into  orders  _ orc  _ idx  _ F11 select  * fromordersdistributebyo  _ orderstatussortbyo  _ orderkey;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;Order:一般textfile表格

指定distribute  by  order  by进行数据加载,将地图的输出除以reduce,然后对每个reduce进行排序(请参阅了解其特性)。

5、指定distribute  by+sort  by进行数据加载

insert  into  orders  _ orc  _ idx  _ F11 select  * fromordersclusterbyo  _ order  status;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;Order:一般textfile表格

通过指定

Cluster  by与distribute  by和sort  by一起用于数据加载与clusterby相同,但不能指定将cluster  by排序为ASC或desc的规则。只能按升序排序。

5、trafodion访问hive表进行数据加载

insert  into  hive  . hive  . orders  _ orc  _ idx  _ F11 select  * from  hive  . hive  . orders;

-具有orders  _ orc  _ idx  _ f11:行组索引的orc表;Order:一般textfile表格

通过Trafodiong访问hive表以加载数据。hive客户端创建表时,无论是否指定了行组索引(“orc  . create  . index”=“true”),加载数据后查看HDFS下数据文件的元数据都是最小值、最小值

附录:

行组索引:http://blog  . itpub  . net/69985104/viewspace-2758737/
回复

使用道具 举报

0

主题

363

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2021-2-23 22:31:34 | 显示全部楼层
有竞争才有进步嘛
回复

使用道具 举报

0

主题

352

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2021-2-23 22:53:11 | 显示全部楼层
学习了,谢谢分享、、、
回复

使用道具 举报

0

主题

306

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2021-2-23 23:17:02 | 显示全部楼层
写的真的很不错
回复

使用道具 举报

0

主题

361

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
发表于 2021-2-23 23:45:04 | 显示全部楼层
沙发!沙发!
回复

使用道具 举报

0

主题

366

帖子

215

积分

中级会员

Rank: 3Rank: 3

积分
215
发表于 2021-2-24 06:06:10 | 显示全部楼层
写的真的很不错
回复

使用道具 举报

0

主题

342

帖子

144

积分

注册会员

Rank: 2

积分
144
发表于 2021-2-24 06:30:50 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

0

主题

375

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2021-2-24 06:51:14 | 显示全部楼层
没看完~~~~~~ 先顶,好同志
回复

使用道具 举报

1

主题

347

帖子

124

积分

注册会员

Rank: 2

积分
124
发表于 2021-2-24 07:18:53 | 显示全部楼层
路过,学习下
回复

使用道具 举报

1

主题

346

帖子

167

积分

注册会员

Rank: 2

积分
167
发表于 2021-2-24 07:42:55 | 显示全部楼层
相当不错,感谢无私分享精神!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|广州@IT精英团

GMT+8, 2021-3-4 11:10 , Processed in 0.074696 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表