写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

Parquet是Hadoop上一种支持列式存储的文件格式, 本质上将嵌套结构存储为扁平格式。
Parquet非常适用于 OLAP 场景,按列存储和扫描。
Parquet被称为大数据时代存储格式的事实标准。

补充

特点

  1. 更高的压缩比

列存使得更容易对每个列使用高效的压缩和编码,降低磁盘空间。(网上的case是不压缩、gzip、snappy分别能达到11/27/19的压缩比)

  1. 更小的IO操作

使用映射下推和谓词下推,只读取需要的列,跳过不满足条件的列,能够减少不必要的数据扫描,带来性能的提升并在表字段比较多的时候更加明显。

映射下推

这是列式存储最突出的优势,是指在获取数据时只需要扫描需要的列,不用全部扫描。

谓词下推

是指通过将一些过滤条件尽可能的在最底层执行以减少结果集。

谓词就是指这些过滤条件,即返回bool:true和false的表达式,比如SQL中的大于小于等于、Like、Is Null等。

文件格式

Parquet 的存储模型主要由行组(Row Group)、列块(Column Chunk)、页(Page)组成。

  1. Row Group:Parquet 在水平方向上将数据划分为行组,默认行组大小与 HDFS Block 块大小对齐,Parquet 保证一个行组会被一个 Mapper 处理。

  2. Column Chunk:行组中每一列保存在一个列块中,一个列块具有相同的数据类型,不同的列块可以使用不同的压缩。

  3. Page:Parquet 是页存储方式,每一个列块包含多个页,一个页是最小的编码的单位,同一列块的不同页可以使用不同的编码方式。

另外 Parquet 文件还包含header与footer信息,分别存储文件的校验码与Schema等信息。

Parquet是什么?相关推荐

  1. date类型_06076.1.0如何将ORC格式且使用了DATE类型的Hive表转为Parquet表

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  2. Spark SQL与外部数据源的操作(Spark SQL ——> CSV/JSON/Parquet/hive/mysql)

    目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...

  3. 深入分析Parquet列式存储格式

    深入分析Parquet列式存储格式 Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的 ...

  4. parquet java_Apache Parquet Java API的文档?

    我写了一篇关于阅读镶木地板文件的博客文章( http://www.jofre.de/?p=1459),并提出了以下解决方案,甚至能够读取INT96字段. 您需要以下maven依赖项: org.apac ...

  5. text、RC、Parquet、ORC

    数据格式:text.RC.Parquet.ORC 相同大小的原始数据集,转换成相应的格式之后的文件大小:Text > RC > Parquet > ORC Text/CSV csv文 ...

  6. 【kudu pk parquet】TPC-H Query2对比解析

    这是[kudu pk parquet]的第二篇,query2在kudu和parquet上的对比解析,其中kudu包含有不能下发的谓词. 3台物理机,1T规模的数据集,impala和kudu版本是我们修 ...

  7. Spark读取Parquet格式的数据为Dataframe

    SaveMode指定文件保存时的模式: OverWrite 覆盖 Append 追加 ErrorIfExists 如果存在就报错 Ignore 如果存在就忽略 val spark = SparkSes ...

  8. java 生成parquet文件格式,使用Java API将Parquet格式写入HDFS,而不使用Avro和MR

    What is the simple way to write Parquet Format to HDFS (using Java API) by directly creating Parquet ...

  9. parquet to mysql_在hive中使用parquet (CDH4.3)

    hadoop版本 cdh4.3 使用impala创建parquet表后,查询会出错. [impala:21000] SELECT * FROM foo;Query: SELECT * FROM foo ...

  10. parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取...

    Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问.Cloudera Impala也将使用Parquet作为底层的存 ...

最新文章

  1. Linux下的redis的持久化,主从同步及哨兵
  2. 零基础入门学习Python(32)-丰富的else语句及简洁的with语句
  3. 【 Linux 】Linux下如何退出vim的一些常用命令总结
  4. Perl学习笔记(十)--通过DBI访问数据库
  5. python在汽车上的应用_python实现图片识别汽车功能
  6. BlackBerry 开发笔记入门 J2ME
  7. IBM推荐的Eclipse的阅读清单(备忘)
  8. matlab netcdf,Matlab读取Netcdf文件
  9. React学习笔记六 React拓展 - SetState
  10. android recyclerview 滚动监听,Android RecyclerView(九)滑动监听综述
  11. 达梦数据库用户与模式
  12. 关于企业工业控制系统的网络安全保护设计方案
  13. 对待员工的4个阶段:我如何让员工过好自己的一生?
  14. C 实现FFT与IFFT
  15. 晚明最后的辉煌-朝鲜之役
  16. html 剩余时间 自动减,HTML+CSS+JS实现今天的日期和今天剩余的时间
  17. aspose.words生成word文档(.dox、.docx等)时,生成目录后,目录中的页码和实际页码不对应,代码中更新域都没用
  18. 数据结构之图(二)——邻接矩阵
  19. 加工中心主传动系统的机械结构设计
  20. Spyder: You have missing dependencies! #Mandatory: rtree>=0.9.7

热门文章

  1. 类的封装(概念,如何封装)
  2. oracle open hang 等待cursor: pin S wait on X---惜分飞
  3. 仿塞尔达传说天空Unity shaderlab
  4. Android 解决Tablayout不显示标题,头部一片空白的问题
  5. PYTHON学习笔记---函数
  6. vue2.0,vue3.0 v-model数据双向绑定
  7. upload 上传文件之前判断,先判断再弹出文档选择框
  8. matlab moler,MATLAB软件创始人Cleve Moler来我校做讲座
  9. c语言已知银行定期的整存整取,c语言问题,与“银行整存整取存款不同期限的月息利率”有关,高手进...
  10. 【大话数据结构C语言】57 平衡二叉树(AVL树)