HIVE存储(四)ORCFile
先介绍下Orc的文件格式,截一张官方的图:
可以看到每个Orc文件由1个或多个stripe组成,每个stripe250MB大小,这个Stripe实际相当于之前的rcfile里的RowGroup概念,不过大小由4MB->250MB,这样应该能提升顺序读的吞吐率。每个Stripe里有三部分组成,分别是Index Data,Row Data,Stripe Footer:
1,Index Data:一个轻量级的index,默认是每隔1W行做一个索引。这里做的索引应该只是记录某行的各字段在Row Data中的offset,据说还包括每个Column的max和min值,具体没细看代码。
2,Row Data:存的是具体的数据,和RCfile一样,先取部分行,然后对这些行按列进行存储。与RCfile不同的地方在于每个列进行了编码,分成多个Stream来存储,具体如何编码在下一篇解析里会讲。
3,Stripe Footer:存的是各个Stream的类型,长度等信息。
每个文件有一个File Footer,这里面存的是每个Stripe的行数,每个Column的数据类型信息等;每个文件的尾部是一个PostScript,这里面记录了整个文件的压缩类型以及FileFooter的长度信息等。在读取文件时,会seek到文件尾部读PostScript,从里面解析到File Footer长度,再读FileFooter,从里面解析到各个Stripe信息,再读各个Stripe,即从后往前读。
接下来看下ORcfile相对于RCfile做了哪些改进,从Orc作者的ppt里截了张图:
分别解释下各行:
Hive type model:RCfile在底层存储时不保存类型,都当做Byte流来存储
Separtor complex columns:Orc将复杂类型拆开存储
Splits Found Quickly:不很理解
Default Column group size:不用解释了
Files per a bucket:不很理解
Store min,max,count,sum:存了这些便于快速地skip掉一个stripe
Versioned metadata:不很理解
Run-Length Data-coding:整数类型做Run-Length变长编码
Store Strings in dictionary:String类型做字典编码
Store Row Count:每个Stripe会存储行数
Skip Compressed blocks:可以直接skip掉压缩过的block
Store internal indexes:存储了一个轻量级的index
整个Orc看下来,代码写的还是比较清晰明了的,而且我们也进行了测试,压缩效果比RCfile提升了不少。
转载于:https://www.cnblogs.com/bigdatafly/articles/5037807.html
HIVE存储(四)ORCFile相关推荐
- 大数据基础之Hive(四)—— 常用函数和压缩存储
作者:duktig 博客:https://duktig.cn (文章首发) 优秀还努力.愿你付出甘之如饴,所得归于欢喜. 更多文章参看github知识库:https://github.com/dukt ...
- hive的四种文件存储格式
hive分为四种存储格式: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 在其中textfile为默认格式,如果在创建hive表不提及,会默认启动textf ...
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...
- hive存储处理器(StorageHandlers)以及存储格式以及hive与hbase整合
一 存储处理器介绍 通过HIVE存储处理器,不但可以让hive基于hbase实现,还可以支持cassandra JDBC MongoDB 以及 Google Spreadsheets HIVE存储器的 ...
- CC00023.hadoop——|HadoopHive.V23|——|Hive.v23|Hive存储机制之行列存储及TextFile.v01|
一.数据存储格式 ~~~ [Hive存储机制之行列存储及TextFile] ~~~ [Hive存储机制ORC] ~~~ [Hive存储机制之Parquet] ~~~ [Hive元数据之文件格式对比] ...
- 2021年大数据Hive(四):Hive查询语法
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...
- Hive(四)——数据操作
Hive(四)--数据操作 向管理表装载数据,指定路径应该是一个目录而非文件(load本地文件不会抛异常,hdfs则不可) # 装载本地文件的数据使用local关键字,装载hdfs数据去掉local关 ...
- Drill下配置Hive存储插件
安装好Drill.Hive.Hadoop,且Hive以MySQL作为元数据库 启动hive metastore 必须先启动hive metastore,否则无法添加存储插件 a@DataServer: ...
- Hive的四种存储方式Stored as ?
- 学习笔记Hive(四) —— Hive应用(2)—— Hive导入及导出数据
四.Hive导入及导出数据 通过HDFS直接导入导出 通过Hive命令导入导出 4.1.Hive导入数据的语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRI ...
最新文章
- 美国国防部作战指挥系统桌面虚拟化案例视频(中文配音版)
- C语言经典例67-数组最大值与最小值与数组元素交换
- 将在2021年改变商业格局的10项技术
- 半导体对物联网之水与鱼的关系
- linux CMA使用机制分析--基于SigmaStar SSD202
- 在没有XML的情况下测试Spring和Hibernate
- abp mysql .net core_ABP .Net Core Entity Framework迁移使用MySql数据库
- 大小文件服务器区别,在提供静态包时,观察到Nginx和Express服务器之间文件大小的差异...
- 【python】for..range练习 与函数的练习题
- 剑指OFFER之包含min函数的栈(九度OJ1522)
- Spring MVC与Struts2对比
- 2019银保监计算机类真题,2019中国银保监会招聘考试全真模拟卷(计算机类)
- 点餐系统-----数据库设计
- nxn次方求和函数_算法|小学生都能看懂的生成函数入门教程
- ACRUSH 楼教主的回忆录
- leetcode_714. 买卖股票的最佳时机含手续费
- 自然科学计算机技术ppt,[自然科学]图像处理.ppt
- SAT句子填空题10个示例及答案解析
- wicket学习笔记(2):简单登陆页面的创建
- onlyoffice document server实时文档协作的部署与开发细节
热门文章
- linux增加虚拟内存
- map和unordered_map
- iterator总结(未完)
- gcc/g++ 编译、链接与常用命令工具(1)
- 如何求matlab的in(2.0375),东南大学Matlab作业1.doc
- php上传图片插件下载,原生js图片文件上传插件
- MAC VSCode Go代码第一次运行配置
- springboot starter的一个问题
- 面试题--------10、索引是什么,有什么作用和优缺点
- python 键盘输入一个整数、输出它的千位与百位_Python编程习题