【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Julien Le Dem 对使用 Apache Arrow 进行面向列的数据处理的未来的看法

  • 2016-12-22
  • 本文字数:1620 字

    阅读完需:约 5 分钟

Julien Le Dem 是 Apache Parquet 的合著者,也是 Apache Arrow 项目的项目管理委员会成员,他在 Data Eng Conf NY 上介绍了面向列的数据处理的未来。

Apache Arrow 是在内存中执行列式计算的开源标准,源于 Apache Drill 的内存列式数据结构。Apache Arrow 旨在成为有效地在内存中保存数据并在不同执行引擎之间交换数据的事实上的方式,从而避免序列化。它由 13 个开源项目的主要开发人员提供支持,这些开源项目主要来自 Apache,包括 Calcite Drill Pandas HBase Spark Storm

InfoQ 采访了 Le Dem,以了解 Arrow 和 Parquet 的区别以及二者如何能支持更高效的跨执行引擎的计算。Parquet 是一个磁盘上的列式存储格式。

InfoQ:你觉得 Apache Arrow 会像 Parquet 一样在 Apache Spark 这样的执行引擎上商品化(commoditized)吗?你认为它会缩小引擎间的性能差距吗?

Le Dem: MonetDB 开始,矢量化执行是最先进的高效查询处理方式。 许多开源查询引擎正在转向这个模型,我们认为有必要标准化内存中的列式表示以提供极高效的互操作性。Parquet 提供的列式存储功能,Arrow 以内存中的列式处理和互换提供了。

这些标准化努力极大地简化了存储层、查询引擎、 DSL UDF 之间的集成,并通过消除序列化提供了更高效的通信层。通过消除公共的瓶颈,标准化让所有系统进行互操作变得更简单、更便宜、更快速了。然而,通过提供专业的技术进一步提升性能,比如基于压缩向量的操作或者更智能的查询优化器,每个执行引擎还有很大的创新空间。

InfoQ:Apache Parquet 支持谓词下推(predicate pushdown),避免了只要页面不包含匹配谓词的数据就从磁盘读取数据的问题。Apache Arrow 的数据结构包含类似的功能吗?

Le Dem:它们在从磁盘读数据和从内存读数据的取舍上是不同的。当前,谓词下推的实现取决于引擎。虽然还没有开始,但是 Apache Arrow 最终会提供能跨引擎重用的快速矢量化操作。

InfoQ:Arrow 的目标之一是提供对内存数据的恒定时间访问,并通过 SIMD 指令支持矢量化操作。 Arrow 也像 Parquet 一样提供内存数据压缩吗?

Le Dem: Arrow 支持字典编码,能提供优秀的压缩效果,让聚合和连接这类操作更快地运行。现在也有一个正在进行的讨论,要使用像 snappy 或者 gzip 这样的通用算法来提供泛化的缓冲压缩。

在这个初始版本中,Arrow 还不支持其他压缩技术,如位打包(bit packing)。然而,在使用标准向量进行数据交换的前提下,我们打算让执行引擎能够定义自定义向量。这将允许更高级的技术,例如直接操作压缩向量。 我想到的一个例子是威斯康星大学 BitWeaving 项目。 在将来,标准向量的集合将会扩充。

Arrow 的第一个版本提供了Pandas 库、Arrow 和Parquet 之间的基于C++ 的本地集成,让Arrow 的Record Batches 能作为 Pandas 的 dataframe 操作并暴露给像 Apache Drill 这样的基于 Hadoop 的 SQL 引擎(SQL-on-Hadoop engine)。

InfoQ:Apache Arrow 支持互操作,让数据不需要序列化就可以在进程间传输。你能点评一下 Arrow 的 IPC 层的能力吗?

Le Dem: IPC 层仍然处于试验阶段,它是一个真正的零复制(zero-copy)层。当 Arrow 的 Record Batch 完成时,它变成不可变的。在此状态下,它可以使用共享内存以只读模式与其他进程共享,而不必担心并发访问。矢量表示独立于其内存地址(不需要绝对指针),并且可以安全地用在共享内存中,每个进程看到的缓冲器地址是不同的。

InfoQ:与 Parquet 一样,Apache Arrow 支持嵌套数据类型。它当前支持哪些类型,哪些类型在计划中呢?

Le Dem: Arrow 支持所有常见的数据类型。这是迄今为止相当全面的一份列表了。最近又添加了一些类型,包括 SQL 的 Timestamp 和 Interval。

查看英文原文: Julien Le Dem on the Future of Column-Oriented Data Processing with Apache Arrow


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2016-12-22 18:003064
用户头像

发布了 33 篇内容, 共 10.5 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

2023平台云原生探索与实践

雪雷

DevOps 认证 #云原生 应用现代化

wsl下面的子系统启用systemctl教程。

百度搜索:蓝易云

Linux windows wsl 云服务器 systemctl

实时获取淘宝商品评论数据:价值、挑战与解决方案

Noah

【Java】智慧工地源码-支持私有化部署,SaaS模式+全套硬件设备

源码星辰

源码 智慧工地

如果让你来设计消息加密

EquatorCoco

信息安全 加密 消息加密

Typora for Mac(Markdown文本编辑器) 1.7.6中文激活版

mac

Typora 苹果mac Windows软件 Markdown编辑软件

云原生中间件 MongoDB 的集群架构与设计

老周聊架构

mongodb 云原生 年度总结

功能强大的PDF编辑器推荐:Acrobat Pro DC 2023 最新中文版

胖墩儿不胖y

PDF pdf编辑器 Mac软件分享

一文聊透 Linux 缺页异常的处理 —— 图解 Page Faults

bin的技术小屋

Linux 操作系统 内存管理 内核

前端 JS 安全对抗原理与实践

EquatorCoco

前端 接口 js 接口安全

智慧工地源码:数字孪生智慧工地可视化解决方案

源码星辰

京东JDAPI:电商行业的得力助手

Noah

INFINI Gateway 如何防止大跨度查询

极限实验室

Gateway 极限科技 数据网关

推荐给前端开发的 5 款 Chrome 扩展 🚀

不在线第一只蜗牛

chrome 前端 开发 扩展

Premiere Pro 2023 for Mac(pr 2023) v23.6完美激活版 含字幕转换包

mac

苹果mac Windows软件 视频编辑软件 Premiere Pro

关于AIOps、AI人像写真、云上AI应用训练与推理的感想

老周聊架构

AI 年度总结

聊聊kube-scheduler如何完成调度和调整调度权重

不在线第一只蜗牛

架构 集群 Kubernetes 集群

10分钟搞懂20个Golang最佳实践

俞凡

golang 最佳实践

Go高级并发模式

俞凡

golang 最佳实践

记一次生产慢sql索引优化及思考

快乐非自愿限量之名

MySQL 数据库 sql 索引 索引优化

Audition 2021 mac(au2021) v14.2中文激活版

mac

苹果mac Windows软件 audition 2021 au2021 数字音频编辑软件

2023-12-23:用go语言,一支n个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。

福大大架构师每日一题

福大大架构师每日一题

终端闲思录(4)- 关于终端的哲学呓语

黑客不够黑

DevOps系列文章之Docker部署web ssh工具sshwifty教程。

百度搜索:蓝易云

Docker Linux Web SSH 云服务器

生成式AI:创造力助力者还是替代者?

苹果Mac电脑远程桌面连接推荐 Microsoft Remote Desktop正式版

mac大玩家j

远程办公 远程办公软件 Mac软件 远程工具

软件测试/测试开发丨常见的测试用例设计方法

测试人

软件测试 测试开发

使用低代码工具构建电商平台:简化开发流程,加速应用搭建

EquatorCoco

软件开发 低代码 电商营销

Navicat Premium 15 for Mac(数据库开发工具)v15.0.36永久激活版

mac

windows Navicat Premium 苹果mac 数据库管理软件

智慧工地与低代码开发:提升建筑行业效率的新趋势

快乐非自愿限量之名

软件开发 低代码 智慧工地 建筑业

Java核心知识体系8:Java如何保证线程安全性

快乐非自愿限量之名

Java 并发编程 多线程 线程安全

Julien Le Dem对使用Apache Arrow进行面向列的数据处理的未来的看法_大数据_Alexandre Rodrigues_InfoQ精选文章