这篇文章主要介绍了ORC在Hive中如何应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
ORC文件不仅仅是一种列式文件存储格式,最重要的是有着很高的压缩比,并且对于MapReduce来说是可切分(Split)的。因此,在Hive中使用ORC作为表的文件存储格式,不仅可以很大程度的节省HDFS存储资源,而且对数据的查询和处理性能有着非常大的提升,因为 ORC 较其他文件格式压缩比高,查询任务的输入数据量减少,使用的 Task 也就减少了。
对性能提升的另一个方面是通过在ORC文件中为每一个字段建立一个轻量级的索引,来判定一个文件中是否满足WHERE子句中的过滤条件。比如:当执行HQL语句”SELECT COUNT(1) FROM xxx WHERE a=1”时候,先从ORC文件的metadata中读取索引信息,快速定位到id=0所在的offsets,如果从索引信息中没有发现id=0的信息,则直接跳过该文件。
在 Hive 中执行如下语句,新建 hive 表 xxx, 并指定存储格式为 ORC。
CREATE TABLE xxx (
name STRING,
color STRING
) STORED AS ORC;
如果,某个表不是 ORC 格式存储的,现在想要修改成 ORC 格式的,可以执行下面的语句:
alter table xxx set fileformat orc;
从 Hive 0.14 版本开始,可以执行下面的语句进行 ORC 小文件的合并。合并发生在 stripe 层面,所以不会发生重新解压编码。
alter table xxx [PARTITION partition_spec] CONCATENATE;
如果想要查看 ORC 文件的信息,可以执行如下语句,其中 path 为 hdfs 路径。
hive --orcfiledump <path_to_file>
从 Hive 1.1 开始,如果想要查看 ORC 的数据内容,可以执行如下语句:
hive --orcfiledump -d <path_to_file>
感谢你能够认真阅读完这篇文章,希望小编分享的“ORC在Hive中如何应用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。