数据仓库| 数据湖| 木地板 (Data Warehousing | Data Lake | Parquet)

Apache Parquet is a columnar storage format available to any project […], regardless of the choice of data processing framework, data model or programming language. — https://parquet.apache.org/

Apache Parquet是一种列式存储格式,可用于任何项目[…],而与数据处理框架,数据模型或编程语言的选择无关。 — https://parquet.apache.org/

This description is a good summary of this format. This post will talk about the features of the format and why it is beneficial to analytical data queries in the data warehouse or lake.

此描述是此格式的很好总结。 这篇文章将讨论该格式的功能,以及为什么它有助于数据仓库或湖泊中的分析数据查询。

https://www.ellicium.com/parquet-file-format-structure/https://www.ellicium.com/parquet-file-format-structure/

The first feature is the columnar storage nature of the format. This simply means that data is encoded and stored by columns instead of by rows. This pattern allows for analytical queries to select a subset of columns for all rows. Parquet stores columns as chunks and can further split files within each chunk too. This allows restricting the disk i/o operations to a minimum.

第一个功能是格式的柱状存储性质。 这仅表示数据是按列而不是按行编码和存储的。 此模式允许分析查询为所有行选择列的子集。 Parquet将列存储为大块,并且还可以在每个大块中进一步拆分文件。 这样可以将磁盘的I / O操作限制在最低限度。

The second feature to mention is data schema and types. Parquet is a binary format and allows encoded data types. Unlike some formats, it is possible to store data with a specific type of boolean, numeric( int32, int64, int96, float, double) and byte array. This allows clients to easily and efficiently serialise and deserialise the data when reading and writing to parquet format.

要提到的第二个功能是数据模式和类型。 Parquet是二进制格式,并允许编码的数据类型。 与某些格式不同,可以使用特定类型的布尔,数字(int32,int64,int96,float,double)和字节数组存储数据。 这样,客户端在读取和写入拼花格式时可以轻松有效地对数据进行序列化和反序列化。

In addition to the data types, Parquet specification also stores metadata which records the schema at three levels; file, chunk(column) and page header. The footer for each file contains the file metadata. This records the following:

除数据类型外,Parquet规范还存储元数据,该元数据在三个级别上记录了模式。 文件,块(列)和页面标题。 每个文件的页脚包含文件元数据。 记录以下内容:

  • Version (of Parquet format)版本(拼花格式)
  • Data Schema数据架构
  • Column metadata (type, number of values, location, encoding)列元数据(类型,值的数量,位置,编码)
  • Number of row groups行组数
  • Additional key-value pairs其他键值对
https://parquet.apache.org/documentation/latest/https://parquet.apache.org/documentation/latest/

The metadata is always written in the footer of the file as this allows a single pass write. In plain English, the data is written first, then the metadata can be accurately written knowing all the locations, size and encoding of the written data. Many formats write their metadata in the header. However, this requires multiple passes as data is written after the header. Parquet makes this efficient to read metadata and the data itself. Another advantage is that the file is splittable in any desirable size. For example, if you are using this with Spark or Amazon Redshift, you can specify writing files of 1GB size for efficient loading.

元数据总是写在文件的页脚中,因为这允许单次写入。 用简单的英语来说,首先要写入数据,然后可以在知道写入数据的所有位置,大小和编码的情况下准确地写入元数据。 许多格式将其元数据写入标头中。 但是,这需要多次通过,因为将数据写入标头之后。 Parquet可以有效地读取元数据和数据本身。 另一个优点是文件可拆分为任何所需的大小。 例如,如果将它与Spark或Amazon Redshift一起使用,则可以指定写入1GB大小的文件以进行有效加载。

A separate metadata file is part of the specification allowing, multiple parquet files to be referenced. So the dataset can be arbitrarily large or small to fit in a single file or multiple files. This is particularly advantageous when working with gigabytes or terabytes of data in the data lake. Most of today’s applications and warehouses allow parallel reads. Multiple files mean data can be read in parallel to speed up execution.

一个单独的元数据文件是该规范的一部分,允许引用多个实木复合地板文件。 因此,数据集可以任意大小,以适合单个文件或多个文件。 当在数据湖中处理千兆字节或兆兆字节的数据时,这特别有利。 当今大多数应用程序和仓库都允许并行读取。 多个文件意味着可以并行读取数据以加快执行速度。

Combining the schema and metadata with splittable files makes Parquet a flexible format. The schema can evolve over time. An example is if a field/column is added to the dataset, this is simply encoded within the new chunks and files. the metadata file is updated to record that only certain files and row groups include the new chunk. Thus schema evolution and merging can easily occur. Where files do not contain the new field, they simply result in the field not existing. If multiple files are read where some contain the field and others don’t, null values are used to denote missing column values.

将模式和元数据与可拆分文件结合在一起,可使Parquet成为灵活的格式。 该架构可以随着时间而发展。 例如,如果将字段/列添加到数据集中,则只需在新的块和文件中对其进行编码。 更新元数据文件以记录仅某些文件和行组包括新块。 因此,架构演化和合并很容易发生。 如果文件不包含新字段,它们只会导致该字段不存在。 如果读取了多个文件,其中一些文件包含该字段,而另一些文件不包含该字段,则使用null值表示缺少的列值。

Lastly, the format supports compression natively within its files. This means that data can be efficiently compressed when it is low-medium cardinality by column. When data is high cardinality, compression can be performed on these columns separately in a different file. This allows variability in encoding and compression of different fields and data types. This is another advantage when reading the data efficiently with high throughput.

最后,该格式本身支持其文件内的压缩。 这意味着当数据为低基数列时,可以有效地压缩数据。 当数据具有高基数时,可以在不同文件中分别对这些列执行压缩。 这允许不同字段和数据类型的编码和压缩中的可变性。 当以高吞吐量高效读取数据时,这是另一个优势。

Overall, Parquet’s features of storing data in columnar format together with schema and typed data allow efficient use for analytical purposes. It provides further benefits through compression, encoding and splittable format for parallel and high throughput reads. The metadata enables all this while providing the flexibility of storage and schema evolution. Parquet has been a de-facto format for analytical data lakes and warehouses. Many tools and frameworks support this such as Hadoop, Spark, AWS Redshift, and Databricks platform. Databricks also provide a new flavour to Parquet that allows data versioning and “time travel” with their Delta Lake format. (Teaser: there may be an upcoming post on Delta format.)

总体而言,Parquet以列格式存储数据以及模式和类型化数据的功能可以有效地用于分析目的。 它通过压缩,编码和可拆分格式为并行和高吞吐量读取提供了更多好处。 元数据可以实现所有这些功能,同时提供存储和架构演进的灵活性。 对于分析数据湖泊和仓库,实木复合地板已成为事实上的格式。 许多工具和框架都支持此功能,例如Hadoop,Spark,AWS Redshift和Databricks平台。 Databricks还为Parquet提供了一种新的风格,允许使用Delta Lake格式进行数据版本控制和“时间旅行”。 (Teaser:可能会有即将发布的有关Delta格式的帖子。)

翻译自: https://towardsdatascience.com/understanding-apache-parquet-7197ba6462a9


http://www.taodudu.cc/news/show-4217082.html

相关文章:

  • C++编写木马全过程
  • RJ45接头接口定义
  • 计算机网络基础 试题 doc,计算机网络基础知识试题.doc
  • 组建计算机网络通常采用3种模式,对等网的组建_计算机中的543原则_计算机网络工作模式(2)...
  • 双绞线接头(RJ45)连接方法详解
  • RJ45接头 与 RJ48 接头
  • RJ45接头 和 RJ48接头的区别
  • RJ45接头接法(转)
  • 三种网线的RJ-45接头制作法图解(转)
  • numpy常用公式收集
  • 数学常用公式汇总
  • 常用数学公式大全
  • python常用数学公式
  • python写数学公式大全_数学公式书写
  • 数学常用公式总结
  • 摘抄Django项目(一)
  • 火狐浏览器的安装及配置
  • c# 微信公众号开发之自定义菜单栏
  • [python]微信公众号JS逆向
  • 使用Huginn批量订阅微信公众号
  • 程序员必备的十四款工具,你都用过吗?
  • Mac 配置教程-开发篇
  • 基于Jenkins搭建iOS持续集成开发环境
  • Mac下常用工具软件
  • 174款前端开发工具汇总,学习,开发,事半功倍!
  • Mac 下有哪些能极大地提高工作效率的软件?
  • macOS 神器 Workflow ,让效率翻倍!
  • mac上编码转换工具_25个用于高效编码的Mac工具
  • 在线编码工具_每个新编码员都需要25种工具
  • 《千字文细谈》2021神级程序员都在用什么工具?-09-02

了解Apache实木复合地板相关推荐

  1. jpadao层继承什么_实木复合地板特点是什么

    如今,不少家庭都选择安装实木复合地板,不仅美观而且更加耐用.那实木复合地板特点是什么?PChouse带大家一起了解下吧. 一.优点: 1.继承了实木地板典雅自然.脚感舒适.保温性能好的特点,克服了实木 ...

  2. 2022-2028年中国实木复合地板行业市场全景评估及投资前景规划报告

     报告类型:产业研究 报告格式:电子版.纸介版 出品单位:智研咨询-产业信息网 智研咨询发布的<2022-2028年中国实木复合地板行业市场全景评估及投资前景规划报告>共十二章.首先介绍了 ...

  3. 怎么在alert里加图片_怎么挑选实木复合地板?怎么辨别实木复合地板的好坏?...

    越来越多的小伙伴在装修的时候选用木地板作为地材,而实木复合地板无论在家用还是商用的市场都非常大,怎么挑选实木复合地板成了一个很重要的课题,看完这篇文章你就知道从哪着手了. 研设地板作为一家木地板专业的 ...

  4. asp.net 检测是否关注公众号_实木板材开裂和变形是什么情况,出现后该怎么检测?...

    实木板材开裂和变形是什么情况? 开裂是指木材的结构开裂,已经影响到产品的强度和使用.开裂和变形虽然表现不同,但问题的根源都是-样的,那就 是木材的内应力.还是先从具体的案例入手来分析: 在木材在膨胀和 ...

  5. 实分析royden第四版答案_高价实木变板木掺了“假”的实木家具!搞懂这些名词,买家具不上当...

    中国红木产业影响力微媒体! 传播红木文化, 交流红木知识 发布供求信息, 关注市场动态 分享国学智慧, 品读百味人生 红木  |  木材  .  家具  .  工艺品 中国人对木头有一种特殊的情怀,普 ...

  6. 航程门业:如何选购实木复合门及如何保养

    航程门业:如何选购实木复合门及如何保养 现在一般的实木复合门,其门芯多为优质白松,表面则为实木单板.由于白松密度小.重量轻,且较容易控制含水率,因而成品门的重量都较轻,也不易变形.开裂.相信每一个用户 ...

  7. 苹果手机投影到墙上_实用派amp;小零碎:快充数据线、实木理线器、小电视支架、高清投影仪……...

    Hello,大家好,这里是老夫子昨天给大家推荐了小家电,然后发现,大家对这种小东西的热情还真高啊.所以啊,我就看了看你们的留言,结合我自己隔离的感受,觉得家里还需要添点数码小设备.就整理了一期我们经常 ...

  8. 计算机桌面用什么实木板好,这才叫实木桌面,教你怎么做出来,拿去不谢

    说到实木桌面,你应该会想到下图这种 这种也不错,但逼格不够高,今天小编就带你装逼带你飞,做一张高逼格的实木桌面 1.先搞一截松木,至于你是买还是偷,还是跟光头强借,这都不重要,但你必须要有把锯子,好了 ...

  9. 板材品牌之实木与生态板的比较

    本文由大自然健康板材(http://www.dzrbc.com)发布!   有人喜欢实木,有人喜欢生态板,它们有什么区别呢? 生态板塑是指用聚乙烯.聚丙烯和聚氯乙烯等,代替通常的树脂胶粘剂,与超过 3 ...

最新文章

  1. 关于PKI架构(使用证书)保护Web访问的安全实现SSL的基本理论
  2. WEEX 报错 TypeError: Converting circular structor to JSON 的解决方法
  3. 皮一皮:有一种着急叫做妈妈想你快点脱单...
  4. -webkit-overflow-scrolling与苹果
  5. 利用 Chef 在 Red Hat Enterprise Linux 上自动化部署 Mariadb Galera Cluster
  6. ClickHouse数据分析列式数据库概述
  7. php5.5 ts vc11 x64,windows版 rar-3.0.2扩展插件 php_rar-3.0.2-5.5-ts-vc11-x64,php5.5 rar-3.0.2扩展插件...
  8. 8、mybatis中的sql映射文件详解(3)
  9. 天池 在线编程 所有子数组之和(排列组合)
  10. WordPress 主题教程 #4a:Header 模板
  11. CF788E:New task
  12. sql中的while循环_SQL While循环:了解SQL Server中的While循环
  13. pytorch---tensor.view()
  14. stm32_跑马灯程序
  15. MATLAB(五) 图像处理--图像分割
  16. CSDN新手机号绑定不成功,提示已存在账号,CSDN换绑手机号的相关问题
  17. 闲置资源整合创业大有可为
  18. 如何利用导数推导向心加速度公式? + 开普勒 第三定律的推导过程
  19. 苹果手机里的照片删了怎么恢复
  20. 微信小程序如何显示富文本,类似v-html,rich-text

热门文章

  1. 分享一个有意思的游戏
  2. C语言求解一元二次方程组的代码
  3. 人类一败涂地human fall flat游戏通关图文攻略
  4. 各大电商平台API、淘宝API、1688API、拼多多API抓取商品详情数据接口
  5. PBX用户电话交换机
  6. Mac之间的 远程控制
  7. iOS 如何获取手机型号、系统版本、电池电量
  8. 未来架构:从服务化到云原生
  9. matlab r2020a例题 2.1节 数据类型(下)
  10. linux wifi名称设置中文乱码,无线wifi名称怎么改成中文乱码的方法