从存储文件的压缩比和查询速度两个角度对比。
存储文件的压缩比测试:
2
)
TextFile
(1)创建表,存储数据格式为
TEXTFILE
(2)向表中加载数据
hive (default)> load data local inpath '/opt/module/hive/datas/log.data'
into table log_text ;
(3)查看表中数据大小
hive (default)> dfs -du -h /user/hive/warehouse/log_text;
18.13 M
/user/hive/warehouse/log_text/log.data
3
)
ORC
(1)创建表,存储数据格式为
ORC
(2)向表中加载数据
hive (default)> insert into table log_orc select * from log_text;
(3)查看表中数据大小
hive (default)> dfs -du -h /user/hive/warehouse/log_orc/ ;
7.7 M
/user/hive/warehouse/log_orc/000000_0
4
)
Parquet
(1)创建表,存储数据格式为
parquet
(2)向表中加载数据
hive (default)> insert into table log_parquet select * from log_text;
(3)查看表中数据大小
hive (default)> dfs -du -h /user/hive/warehouse/log_parquet/;
13.1 M
/user/hive/warehouse/log_parquet/000000_0
存储文件的对比总结:
ORC > Parquet > textFile
存储文件的查询速度测试:
(1)
TextFile
hive (default)> insert overwrite local directory
'/opt/module/data/log_text' select substring(url,1,4) from log_text;
(2)
ORC
hive (default)> insert overwrite local directory
'/opt/module/data/log_orc' select substring(url,1,4) from log_orc;
(3)
Parquet
hive (default)> insert overwrite local directory
'/opt/module/data/log_parquet' select substring(url,1,4) from
log_parquet;
存储文件的查询速度总结:
查询速度相近。
存储和压缩结合
1
测试存储和压缩
ORC
存储方式的压缩:
注意:所有关于 ORCFile 的参数都是在 HQL 语句的 TBLPROPERTIES 字段里面出现
1)创建一个 ZLIB 压缩的 ORC 存储方式
(1)建表语句
(2)插入数据
insert into log_orc_zlib select * from log_text;
(3)查看插入后数据
hive (default)> dfs -du -h /user/hive/warehouse/log_orc_zlib/ ;
2.78 M
/user/hive/warehouse/log_orc_none/000000_0
2
)创建一个
SNAPPY
压缩的
ORC
存储方式
(1)建表语句
(2)插入数据
insert into log_orc_snappy select * from log_text;
(3)查看插入后数据
hive (default)> dfs -du -h /user/hive/warehouse/log_orc_snappy/;
3.75 M
/user/hive/warehouse/log_orc_snappy/000000_0
ZLIB
比
Snappy
压缩的还小。原因是
ZLIB
采用的是
deflate
压缩算法。比
snappy
压缩的
3
)创建一个
SNAPPY
压缩的
parquet
存储方式
(1)建表语句
(2)插入数据
insert into log_parquet_snappy select * from log_text;
(3)查看插入后数据
hive (default)> dfs -du -h /user/hive/warehouse/log_parquet_snappy/;
6.39 MB
/user/hive/warehouse/ log_parquet_snappy /000000_0
4
)存储方式和压缩总结
在实际的项目开发当中,
hive
表的数据存储格式一般选择:
orc
或
parquet
。压缩方式一
般选择
snappy
,
lzo
。