当前位置:Gxlcms > mysql > ORC使用效果

ORC使用效果

时间:2021-07-01 10:21:17 帮助过:38人阅读

前面我们已经把生产上使用的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存储格式对存储的压缩提升了很多,而计算效率损失不大。业务方可以根据自身的计算特点选择使用。    

人气教程排行