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

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

时间:2023-05-30 22:00:50浏览次数:58  
标签:... 存储 chunk parquet 获取 文件格式 Parquet 格式 数据

Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问。Cloudera Impala也将使用Parquet作为底层的存储格式。在很多大数据的应用场景下面,比如电信行业,具有一定规则的数据,字段很多,但是每次查询仅仅针对其中少数的几个字段,这个时候列式存储是极佳的选择。
优势:
使用列式存储,一列的值都是同质的,从而带来了更高的压缩比;对于在hadoop集群上的大数据量来说,使用parquet可以节省大量空间;
可以提高IO性能;在查询的时候,只需要读取关心的列,而不需要将整条记录都读出来进行条件过滤;
由于列数据都是同类型的,从而可以对不同的列采用不同的编码方式来组织存储,提升读写效率,节省空间。
劣势:
不支持update操作(数据写成后不可删除和修改),不支持ACID等

 

 

Parquet文件将数据分为N列,M个RowGroup,每个RowGroup中按照Column进行文件存储。
每个Column中对列的数据话划分为多个Page,每个Page对数据内容进行压缩,默认推荐snappy算法。
Parquet文件写入完毕后会写入File MetaData,File MetaData包含了所有列元数据的起始位置,因此读取列数据时先从中找到感兴趣的列,然后再顺序读取。

 

4-byte magic number "PAR1"
<Column 1 Chunk 1 + Column Metadata>
<Column 2 Chunk 1 + Column Metadata>
...
<Column N Chunk 1 + Column Metadata>
<Column 1 Chunk 2 + Column Metadata>
<Column 2 Chunk 2 + Column Metadata>
...
<Column N Chunk 2 + Column Metadata>
...
<Column 1 Chunk M + Column Metadata>
<Column 2 Chunk M + Column Metadata>
...
<Column N Chunk M + Column Metadata>
File Metadata
4-byte length in bytes of file metadata
4-byte magic number "PAR1"

 

综合来看,ORCfiel和parquet本质上都是列上存储,大同小异。parquet主要特点是支持嵌套格式,ORCfile主要特点是strips中有轻量级的index data。所以这两种数据存储格式完全是可以相互借鉴融合的。

 

标签:...,存储,chunk,parquet,获取,文件格式,Parquet,格式,数据
From: https://blog.51cto.com/u_11908275/6382332

相关文章

  • Emlog Pro 自动获取文章内第一张图片作封面图
    自从更新EmlogPro程序之后,使用的是Markdown编辑器,因为此编辑器的特殊性,数据库存储的是特定语法,不是html代码,所以之前的获取文章封面的函数都不可用了。 本次给大家带来最新获取文章封面的函数,此函数需要根据文章的gid字段获取文章封面 如果文章中的封面字段为空,则自动根据......
  • 从 C# chart 中获取数据-2
    新增功能:Excel_EA1.将归档数据从WINCC的归档目录中拷贝出来,改名存储  2.使用WinCCArchiveConnector建立WINCC数据库的连接  2.1添加  2.2连接 改名后,连接是空的,名字必须默认:  原来的数据库文件拷贝过来后,显示文件,连接正常。 2.3添加不同的......
  • 从 C# chart 中获取数据-1
    已经可以从WINCC的归档数据库获取数据,并且以图形的方式显示出来了。现在要实现一个功能,就是建一个相当于WINCC历史趋势的标尺,移动后,下面显示数据,点击按钮,记录这组数据。获取的数据,可以进行后面的处理,比如作为神经网络的输入数据。下面对各个例子记录实现过程。 1.在excel中......
  • 关于在 computed 使用 ref 获取 dom 结点为 undefined的问题
    原因:因为ref本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们,它们还不存在computed里面无法获取到ref解决方法:方法一:data:{isMount:false,},mounted(){this.isMount=true},computed:{if(this.isMount){console.l......
  • IText PDF签章时,如何获取PDF页的坐标
    文章目录在itext中如何获取pdf矩形区域的坐标起因解决方法常用版本itext5itext7常见的几种坐标偏移方式沿Y轴下移沿X轴偏移总结在itext中如何获取pdf矩形区域的坐标起因最近在使用ITEXT工具做PDF的电子签章时发生了印章签在PDF区域外的问题,PDF的默认坐标系为X、Y坐标......
  • 如何使用ComboBox以获取用户的单选并可编辑
    如何使用ComboBox以获取用户的单选并可编辑ComboBox是一种单选下拉框,和ChoiceBox很类似。ComboBox不仅可以接收用户的一个选项,还可以提供可编辑框,让用户输入内容。效果展示示例代码importjavafx.application.Application;importjavafx.geometry.Insets;importjava......
  • 对wifi密码进行获取
    简单的密码,还可以,复杂的密码基本没戏,代码是从别的地方复制过来的。#coding:utf-8fromtkinterimport*fromtkinterimportttkimportpywififrompywifiimportconstimporttimeimporttkinter.filedialogimporttkinter.messageboxclassWiFiCracker:def__i......
  • uiautomator2获取UIObject元素的属性info用法
    info是UIAutomator2中用来获取控件属性信息的方法。该方法可以获取到指定元素的一些属性信息,例如控件的文本、坐标、大小、类名、包名、是否可见等。使用该方法可以帮助我们更好的理解应用程序的UI结构,并找到需要操作的控件元素。d(text=element,instance=index).infoinfo是U......
  • js 获取 image 原始高度
    新版浏览器//这个api仅支持新版本浏览器,旧版还是得创建一个内部图片setTimeout(()=>{letimgRef=this.$refs.imgthis.imgWidth=imgRef.naturalWidththis.imgHeight=imgRef.naturalHeight},10)旧版浏览器(兼容)fu......
  • 获取并改变display的值
    1.获取display的值//jquery.css("display")//js.style.display; 2.更改display的值//jquery方式.css("display","none");//js方式.style.display="none"; 转自https://blog.csdn.net/qq_41121204/article/details/92995933......