精选30+云产品,助力企业轻松上云!>>>

点击蓝色“大数据每日哔哔”关注我

加个“星标”,第一时间获取大数据架构,实战经验



本文主要介绍 ORC 格式在 Hive 中的应用。这里先简单的介绍一下 ORC 格式的优势以及应用。后续会专门写一篇深入ORC格式的文章。

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>

参考

http://lxw1234.com/archives/2016/04/630.htm

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

https://orc.apache.org/docs/hive-config.html

(完)

本文分享自微信公众号 - 大数据每日哔哔(bb-bigdata)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

ORC 在 Hive 中的应用相关推荐

  1. linux怎么看文件是否orc格式,hive文件存储格式orc,parquet,avro对比

    orc文件存储格式 ORC文件也是以二进制方式列式存储的,所以是不可以直接读取,ORC文件也是自解析的,它包含许多的元数据,这些元数据都是同构ProtoBuffer进行序列化的.文件结构如下 ORC文 ...

  2. hive中建立“按天分区“的外表+存储为ORC文件+指定元数据

    CREATE EXTERNAL TABLE `example`(`axxsdf` string,`mydeailyTime` timestamp) PARTITIONED by (`datetime` ...

  3. Hive中text格式和orc格式表的索引性能相关总结

    Hive中text格式和orc格式表的索引性能相关总结 text表索引的使用: 建表: create table aa (O_ORDERKEY int, O_CUSTKEY int, O_ORDER ...

  4. hive遍历_从Hive中的stored as file_foramt看hive调优

    一.行式数据库和列式数据库的对比 1.存储比较 行式数据库存储在hdfs上式按行进行存储的,一个block存储一或多行数据.而列式数据库在hdfs上则是按照列进行存储,一个block可能有一列或多列数 ...

  5. hive中实现行转列_漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

    全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别. 举一个具体的应用场景,来设计并实现一份拉链表,最后并通 ...

  6. hive中导入text文件遇到的坑

    今天帮一同学导入一个excel数据,我把excel保存为txt格式,然后建表导入,失败!分隔符格式不匹配,无法导入!!!!怎么看两边都是\t,怎么不匹配呢? 做为程序员,最不怕的就是失败,因为我们有一 ...

  7. Hive中文件存储格式及大小比较测试

    在hive中创建表是有如下一个语句 [ROW FORMAT row_format] row_format 的类型有如下: file_format: : SEQUENCEFILE | TEXTFILE ...

  8. hive中NULL值问题

    问题描述 源端数据oracle数据库,通过cdm迁移工具将数据迁移到目标端hive.在oracle中的NULL值迁移到hive中后有的字段表现为NULL,有的字段表现为空串""(即 ...

  9. hive中的事物操作

    背景 hive中默认是不支持事物的,Hive的常见也一般都是一次写入,频繁读取.加入事物之后,支持update.insert.delete操作 保存的文件格式必须为crc格式file 需要修改配置文件 ...

最新文章

  1. python2的input,关于python2.x input函数的安全隐患
  2. 给VIM安装YouCompleteMe插件
  3. ARMS企业级场景被集成场景介绍
  4. java 对象调用_java 对象调用
  5. python类汇总_Python 类总结
  6. vaadin_嵌入式码头,Vaadin和焊接
  7. 1.3tf的varible\labelencoder
  8. 单链表的初始化,整表创建,单个元素插入,单个元素删除,整表删除等操作...
  9. oracle能查dml记录么,如何查询DML操作的详细记录
  10. java8怎么按照两个字段的乘积排序_django-orm F对象的使用 按照两个字段的和,乘积排序实例...
  11. iOS-仿智联字符图片验证码
  12. “华为”和“荣耀”手机有什么区别?
  13. 查询数据库中表的空间使用情况
  14. python打印多个变量名_如何在Python中打印单个和多个变量?
  15. MariaDB忘记root密码
  16. 管理感悟:错误是员工的,责任是领导的
  17. 以太网安全技术ACL原理+配置
  18. 调试Python代码
  19. 卡尔曼滤波器的理解,C代码实现,和opencv里面KalmanFilter 的使用
  20. java+svm多分类器_svm多分类的java源码

热门文章

  1. 想学大数据,应该从什么语言开始学?
  2. rsyslod服务配置
  3. 泛泰A880S升级官方4.4.2 binx教程
  4. 一款JS+CSS实现的无缝平滑图片滚动代码
  5. 关于cacti图形显示不正常的解决办法
  6. JavaScript之arguments属性
  7. JDK Executor执行器的应用
  8. 配置nginx直接使用webpack生成的gz压缩文件
  9. 3天2100万!周杰伦的说好不哭,20万点评Python来分析
  10. Dynamics 365中的应用程序介绍