千家信息网

ORC在Hive中如何应用

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要介绍了ORC在Hive中如何应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ORC文件不仅仅是一种列式文件存储格式,最重
千家信息网最后更新 2024年11月19日ORC在Hive中如何应用

这篇文章主要介绍了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 

从 Hive 1.1 开始,如果想要查看 ORC 的数据内容,可以执行如下语句:

hive --orcfiledump -d 

感谢你能够认真阅读完这篇文章,希望小编分享的"ORC在Hive中如何应用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0