- 7
- 0
- 约9.14千字
- 约 13页
- 2019-11-26 发布于广东
- 举报
深入分析Parquet列式存储格式
Parquet是而向分析型业务的列式存储格式,由Twitter和CloiAclera合作开发,2-0^5
年S月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是2.8.0。
列式存储
列式存储和行式存储相比有哪些优势呢?
可以跳过不符合条件的数据,只读取需要的数据,降低I。数据量。
压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高 效的压缩编码(例如Run. Length. Excodiag和Delta Eacod?认g)进一步节约存储空 间。
只读取需要的列,支持向量运算,能够获取更好的扫描性能。
当时Twitter的日增数据量达到压缩之后的1QOTB+,存储在HDFS上,工程师会使用
多种计算框架(例如MapReduce, Hive, Pig等)对这些数据做分析和挖掘;日志结构是
复杂的嵌套数据类型,例如一个典型的日志的schema有87列,嵌套了 7层。所以需要 设计一种列式存储格式,既能支持关系型数据(简单数据类型),又能支持复杂的嵌套类型
的数据,同时能够适配多种数据处理框架。
关系型数据的列式存储,可以将每一列的值直接排列下來,不用引入其他的概念,也不会丢 失数据。关系型数据的列式存储比较好理解,而嵌套类型数据的列存储则会遇到一些麻烦。
如图2所示,我们把嵌套数据类型的一行叫做一个记录(record),嵌套数据类型的特点是
一个record中的cobwm除了可以是仏匕Long丿String这样的原语(.primitive)类型
以外,还可以是List, Map, Set这样的复杂类型。在行式存储中一行的多列是连续的写在
一起的,在列式存储屮数据按列分开存储,例如可以只读取A.B.C这一列的数据而不去读
A.E和A.B.D,那么如何根据读取出来的各个列的数据重构出一行记录呢?
1record- orie ntedcolum n- orie nted
1
record- orie nted
colum n- orie nted
图2行式存储和列式存储
Google的Prckvxe/系统解决了这个问题,核心思想是使用<frecord shredding ai^d as^bly 川仇穴来表示复杂的嵌套数据类型,同时辅以按列的高效压缩和编码技术,
实现降低存储空间,提高Q效率,降低上层应用延迟。Parquet就是基于Pre^e/的数 据模型和算法实现的。
Parquet适配多种计算框架
Parquet是语言无关的,而且不与任何一种数据处理框架绑定在一起,适配多种语言和组 件,能够与Parquet配合的组件有:
查询引擎:Hive, \w\pa\a, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL
计算框架:MapReduce, Spark, Cascading, CriAinch, Scalding, Kite
数据模型:Aw。,Thrift, Protocol Buffers, POJOs
那么Parquet是如何与这些组件协作的呢?这个可以通过图2来说明。数据从内存到
Parquet文件或者反过来的过程主要由以下三个部分组成:
4 存储格式(storage format)
parquet - fo旷mat项目定义了 Parquet内部的数据类型、存储格式等。
2丿对彖模型转换器(object ^odel converters)
这部分功能由项目来实现,主要完成外部对彖模型与Parquet内部数据类 型的映射。
3,对彖模型(object models)
对象模型可以简单理解为内存屮的数据表示,Awe Thrift, Protocol Buffers, Hive
SerPe? Pig Tup? Spark SQL I lateral Row 等这些都是对象模型。Parquet 也提供 了 一个example object i^odel帮助大家理解。
例如pairquet-i^r项目里的parquet-pig项目就是负责把内存中的Pig Tuple序列化并 按列存储成Parquet格式,以及反过来把Parquet文件的数据反序列化成Pig Tuple。
这里需要注意的是Avq TMift, Protocol Buffers都有他们自己的存储格式,但是
Parquet并没有使用他们,而是使用了自己在parquet-format项目里定义的存储格式。 所以如果你的应用使用了 Asm等对象模型,这些数据序列化到磁盘还是使用的 paqudm厂定义的转换器把他们转换成Parquet自己的存储格式。
图2 Parquet项目的结构
Parquet数据模型
理解Parquet首先要理解这个列存储格式的数据模型。我们以一个
您可能关注的文档
最近下载
- 《专升本英语教学课件》定语从句.ppt VIP
- 冻干机维护保养标准操作规程.doc VIP
- 环卫的安全培训课件.pptx VIP
- 小学排球兴趣小组活动记录].doc VIP
- 市政工程测量施工方案.docx VIP
- 深度解析(2026)《SJT 207.1-2018设计文件管理制度 第1部分设计文件的分类和组成》.pptx VIP
- 2025年食品安全协管站工作总结及2026年工作计划.docx
- 人教版初中九年级下册英语词汇教学课件 Unit 13【课件+视频+单词音频】 Unit 13 Section A.ppt VIP
- 新生入学安全知识考试试题.docx VIP
- 《专升本英语教学课件》主谓一致.ppt VIP
原创力文档

文档评论(0)