当前位置:首页 > PHP教程 > PHP总结归纳

ORC使用效果

前面我们已经把生产上使用的hive版本由0.7.0升级到0.12。hive 0.12在存储层做了很大的改进,包括更高的压缩比以及更高的查询效率。orcfile在hive 0.11中被引入进来,这是一个不可思议的压缩格式,下面我们来看看它到底有多神奇。首先,我们看看如何使用orcfi

前面我们已经把生产上使用的hive版本由0.7.0升级到0.12。hive 0.12在存储层做了很大的改进,包括更高的压缩比以及更高的查询效率。 orcfile在hive 0.11中被引入进来,这是一个不可思议的压缩格式,下面我们来看看它到底有多神奇。   首先,我们看看如何使用orcfile。先建立一张以orcfile为存储格式的表,如下:
create table orc_test(
...
) stored as orc;
把存量的数据转换成orcfile格式存储是超级简单的,我们只需要把存量表oldtable中的数据insert overwrite到新表orc_test里面即可。
insert into table orc_test select * from oldtable;
orcfile存储格式有几个表属性可以进一步改善效果,这些属性如下:
属性 默认值 说明
orc.compress zlib 列压缩格式(none, zlib, snappy)
orc.compress.size 262,144 (= 256 kib) 每一个压缩块大小
orc.stripe.size 268,435,456 (= 256 mib) 每一个stripe大小
orc.row.index.stride 10,000 index间隔行数(必须大于10000)
orc.create.index true 是否创建内联index
  如果想修改默认的列压缩格式,例如修改为snappy:
create table orc_test2(
...
) stored as orc tblproperties ("orc.compress"="snappy");
  使用orc存储格式实验效果展示。 这里使用ubs一小时的数据作为测试用例。先看看测试表的数据文件存储情况:
   63426542  pt=2014.03.02.00/00000
   64508155  pt=2014.03.02.00/00001
   65929482  pt=2014.03.02.00/00002
   63833597  pt=2014.03.02.00/00003
   ..............................
   ..............................
   63850876  pt=2014.03.02.00/00126
   62094988  pt=2014.03.02.00/00127
测试表数据一共有128个文件,每个文件60mb左右。总的数据量为8063408920b=7.5gb。 通过insert overwrite导入到上文中的orc_test表中,默认结果生成4个文件,文件大小如下:
 260485638 2014-03-03 19:15 orc_test/000000_0
 261423217 2014-03-03 19:15 orc_test/000001_0
 253876162 2014-03-03 19:15 orc_test/000002_0
  18124387 2014-03-03 19:14 orc_test/000003_0
总大小为793909404字节=757mb。 增加文件个数,使其生成16个文件,结果如下:
108734630 2014-03-03 15:19 orc_test3/000000_0
108308186 2014-03-03 15:18 orc_test3/000001_0
110069765 2014-03-03 15:18 orc_test3/000002_0
110582145 2014-03-03 15:18 orc_test3/000003_0
109460085 2014-03-03 15:18 orc_test3/000004_0
110110866 2014-03-03 15:18 orc_test3/000005_0
109337311 2014-03-03 15:18 orc_test3/000006_0
108678617 2014-03-03 15:18 orc_test3/000007_0
108587893 2014-03-03 15:18 orc_test3/000008_0
109880571 2014-03-03 15:18 orc_test3/000009_0
108456961 2014-03-03 15:18 orc_test3/000010_0
109082450 2014-03-03 15:18 orc_test3/000011_0
110406471 2014-03-03 15:18 orc_test3/000012_0
110369926 2014-03-03 15:18 orc_test3/000013_0
109480607 2014-03-03 15:18 orc_test3/000014_0
109651103 2014-03-03 15:18 orc_test/000015_0
由结果可见,每个文件大小在100mb左右,表的总大小为1751197587字节=1.63gb。 测试小结:
测试表 存储 压缩比 count(*)时间(秒)
rcfile原始表 7.5gb 100% 48
orc_test(4个文件) 757mb 10% 57
orc_test3(16个文件) 1.63gb 22% 56
由上表可见,orc存储格式对存储的压缩提升了很多,而计算效率损失不大。业务方可以根据自身的计算特点选择使用。    
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!