Apache Arrow 和数据的未来:开放标准推动人工智能发展

Apache Arrow 是一种开源列式内存格式,适用于平面数据和分层数据。在现代数据湖中,开放数据格式(如 Apache Arrow)位于现代对象存储的存储层中。这些格式成为对象存储中的对象。

在最新版本中,Apache Arrow 宣布计划从 Apache DataFusion(自 2019 年 2 月以来一直附加到 Arrow 的查询执行框架)中分离出来,并将这两个项目提升到 Apache 软件基金会的顶级水平。贡献者解释说,随着两个项目的发展,它们已经分化了,虽然 DataFusion 继续依赖 Arrow,但反过来就不能说了。此举代表了 Arrow 的成熟度和在数据社区中的广泛采用。本博客旨在突出这些贡献。

了解 Apache Arrow

Arrow 格式旨在优化各种数据系统的数据处理和分析操作。这意味着 Arrow 旨在与许多不同的处理引擎配合使用,这对于处理具有许多不同用例的大量复杂半结构化数据的数据湖至关重要。

Apache Arrow 性能极高,这主要归功于其列式数据格式,最大限度地减少了对数据序列化和反序列化的需求。这种格式不仅有助于加快数据访问速度,还支持对数据湖进行实时分析。此外,Arrow 使用内存映射允许数据集由磁盘缓存提供支持,该缓存经过内存映射,可快速检索数据。此功能在 RAM 有限的环境中特别有效,可以有效地处理大型数据集。这些属性使 Arrow 成为现代数据架构的基本组件,特别是在增强不同数据环境中的互操作性和计算效率方面。

Apache Arrow 的主要优势

开源:我们长期以来一直支持现代数据堆栈的开放性。很大程度上,因为开源催生了开源,因为协作推动了创新。对于像 Apache Arrow 这样的开放标准来说尤其如此,因为它们在加速数据生态系统内的创新方面发挥着至关重要的作用。通过提供互操作性的通用框架,开放标准使开发人员能够更有效地协作,并避免在重新发明解决方案时进行冗余工作。这反过来又培养了一种创新文化,在这种文化中,想法可以被分享和建立,从而推动不断的进步和发展。

性能:通过采用 Arrow,组织可以在不同系统之间无缝交换数据,而不会产生与序列化和反序列化相关的性能成本。当然,没有什么比性能更能与性能相得益彰了。

简化集成:Arrow 提供的标准化降低了集成不同工具的复杂性,使开发人员能够专注于构建强大的解决方案,而不是应对集成挑战。通过设计,云原生项目、框架和软件开箱即用地协同工作。

采用 Apache Arrow 的著名项目

Apache Arrow 已在各种项目中得到广泛采用。我们已经写过一些,包括与 Spark 和 R 的集成,但还有更多,包括但不限于:

1 . Polars:是 Rust 中一个速度极快的 DataFrame 库,它利用 Arrow 的列式存储格式进行高效的数据处理,增强了性能和可扩展性。Polars 与 Apache Arrow 的集成巩固了现代数据湖基础设施的基础,可实现高速数据运维和分析。

2 . DuckDB:与 Apache Arrow 无缝集成,实现高效的数据交换,实现快速的数据传输和分析。这种集成在现代数据湖基础设施中起着举足轻重的作用,有助于跨不同数据集进行快速数据处理和查询执行。

3 . ClickHouse:是一个开源的分析数据库管理系统,以其在实时查询处理方面的高性能而闻名。它利用 Apache Arrow 来增强其操作的几个方面,主要侧重于数据导入和导出,以及启用直接查询功能。

4 . PySpark:利用 Apache Arrow 的列式数据表示来实现高效的数据处理,增强性能和可伸缩性。PySpark 与 Apache Arrow 的无缝集成为现代数据湖基础设施奠定了基础,使组织能够轻松构建强大且可扩展的数据处理管道。

5 . Pandas:受益于 Arrow 高效的内存布局和互操作性,支持与现代数据湖堆栈中的其他系统和语言进行无缝数据交换。

6 . Ray:是一个分布式计算框架,它利用 Apache Arrow 进行高效的数据序列化和分布式任务之间的传输。这种集成增强了 Ray 的性能和可扩展性,使用户能够轻松构建和部署分布式应用程序。

7 . delta-rs:是一个开源的 Rust 库,为 Delta Lake 提供原生 Rust 实现。Delta-rs 使用 Arrow 在内部存储和管理数据,从而可以快速、高效地对 Delta Lake 表进行操作,尤其是在处理大型数据集时。

8 . iceberg-arrow:是一个 Iceberg Table 支持库,允许将 Parquet 读取到 Arrow 内存中。它的性能等于或优于默认的 Parquet 矢量化阅读器。

9 . Hugging Face Datasets 将 Arrow 用于其磁盘缓存系统,该系统允许将大型数据集本地存储在内存有限的系统上。磁盘上的缓存是内存映射的,以实现高效查找。

10 . RAPIDS:是一套用于 GPU 加速数据科学和分析的开源库,它利用 Apache Arrow 实现 GPU 加速数据处理任务之间的互操作性。这种集成使 RAPIDS 能够利用 Arrow 高效的列式格式在 GPU 上进行高速数据处理。

虽然这些项目代表了拥抱 Apache Arrow 的庞大生态系统的一个子集,但它们体现了该标准在不同领域和用例中的多功能性和适应性。

开源标准

Apache Arrow 证明了开放标准在推动现代数据湖中的互操作性和创新方面的力量。随着组织继续利用其堆栈中开放标准的功能,人工智能和分析的变革性进步潜力仍然无限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebPages 全局

WebPages 全局 概述 WebPages 全局是一个综合性的概念,涉及网站设计、开发、优化和管理的各个方面。在当今数字化时代,拥有一个功能齐全、用户友好的网站对于个人和企业来说至关重要。本文将深入探讨 WebPages 全局的相关主题,包括网站设计原则、前端和后端开发技术、搜索…

STM32F4 STD标准库串口接收中断+空闲中断例程

STM32F4 STD标准库串口接收中断空闲中断例程 🔖工程基于STM32F446 ✨用惯了STM32CubeMX傻瓜式配置,突然改用标准库写代码,初始化外设内容,总是丢三落四的。 📗串口初始化配置 void uart_init(uint32_t bound) {//GPIO…

【通俗易懂的ChatGPT的原理简介】

通俗易懂的ChatGPT的原理简介 ChatGPT是一个令人惊叹的人工智能技术,它能够与人类进行自然而流畅的语言交流。其背后的原理基于一种被称为Transformer的深度学习架构,这种架构在处理自然语言处理(NLP)任务中展现了强大的效果。 T…

使用Naive UI的级联选择器 Cascader进行省市区选择

序言: 在进行PC版的功能开发时,进行客户管理时老板要让客户便捷的选择自己的省市区等信息,而不是让他们一个个去填写,这时就需要使用级联选择器来进行省市区的选择。 注:element ui/plus的级联选择器也是可以的。 步骤…

2024年全国青少信息素养大赛python编程复赛集训第九天编程题分享

整理资料解析答案非常不容易,感谢各位大佬给个点赞和分享吧,谢谢 今天题目较简单:适合小学组 大家如果不想阅读前边的比赛内容介绍,可以直接跳过:拉到底部看集训题目 (一)比赛内容: 【小学组】 1.了解输入与输出的概念,掌握使用基本输入输出和简单运算 为主的标准…

input radio获取不到值

问题 此方式获取radio的值 显示顺序:<input type"radio" name"radio_name" value"0" > 默认顺序 <input type"radio" name"radio_name" value"1" > 字母顺序 <input type"radio" nam…

【AWS SMB】关于AWS 中小型企业 (SMB) 能力介绍及注意事项

文章目录 前言一、什么是 SMB&#xff1f;&#x1f4e2;二、如何识别中小企业的需求三、中小企业营销活动的类型四、AWS 合作伙伴可获得的其他 AWS 机会4.1 AWS IQ4.2 APN 客户参与 (ACE) 计划 前言 AWS 中小型企业 &#xff08;SMB&#xff09; 能力合作伙伴专注于帮助中小型…

监控 Prometheus源码安装实战和动态更新 Centos7

安装go环境 下载go安装包 #创建文件夹 mkdir /usr/local/software #进入文件夹 cd /usr/local/software #下载安装包 wget https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz配置go环境变量 #解压 tar -zxvf go1.17.6.linux-amd64.tar.gz#配置环境变量 echo "exp…

C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍

文章目录 前言一、拷贝构造函数1. 概念2. 特征3. 编译器生成默认拷贝构造函数4. 拷贝构造函数典型使用场景 二、运算符重载函数三、赋值运算符重载函数1. 赋值运算符重载格式2. 赋值运算符只能重载成类的成员函数不能重载成全局函数3.编译器生成一个默认赋值运算符重载4. 运算符…

Android记录9--实现转盘效果

自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…

深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析

RTMP&#xff08;Real Time Messaging Protocol&#xff09;视频推流技术&#xff0c;作为音视频传输领域的关键技术之一&#xff0c;已经在直播、视频会议、在线教育等多个场景中得到了广泛应用。RTMP以其独特的优势&#xff0c;为实时音视频传输提供了高效、稳定的解决方案。…

C++之std::queue::emplace

std::queue::emplace 是 C STL 中 std::queue 容器的成员函数&#xff0c;它用于在队列的末尾就地构造一个新元素。这个函数类似于 std::queue::push&#xff0c;但是 emplace 允许你通过传递参数来构造元素&#xff0c;而不需要显式地创建一个元素对象。 理解 std::queue::em…

NGINX_十五 nginx 的平滑升级(了解)

十五 nginx 的平滑升级(了解) 1 为什么要对 nginx 平滑升级 随着 nginx 越来越流行&#xff0c;并且 nginx 的优势也越来越明显&#xff0c;nginx 的版本迭代也来时加速模式&#xff0c;1.9.0版本的nginx更新了许多新功能&#xff0c;例如 stream 四层代理功能&#xff0c;伴…

ffmpeg音视频开发从入门到精通——ffmpeg实现音频抽取

文章目录 FFmpeg 实现音频流抽取1. 包含FFmpeg头文件与命名空间声明2. 主函数与参数处理3. 打开输入文件4. 获取文件信息5. 查找音频流6. 分配输出文件上下文7. 猜测输出文件格式8. 创建新的音频流9. 打开输出文件10. 写入文件头信息11. 读取并写入音频数据12. 写入文件尾部信息…

三维渲染背面剔除

三维渲染中的背面剔除 背面剔除&#xff08;Backface Culling&#xff09;是一种用于优化三维渲染性能的技术&#xff0c;通过剔除那些在当前视角下不可见的多边形&#xff0c;减少需要处理的几何体数量&#xff0c;从而提高渲染效率。 基本概念 在三维渲染中&#xff0c;物…

重磅!2024年最新影响因子(生态学/林学/土壤学/遥感/微生物/环境科学/植物科学) 收藏版!

2024年最新影响因子正式揭晓&#xff01;2024年6月20日&#xff0c;Clarivate Analytics&#xff08;科睿唯安&#xff09;发布了各大SCI期刊的2023年影响因子。从最新结果看&#xff0c;今年的影响因子继续“普跌”&#xff0c;其中顶刊Nature和Science均有下降&#xff0c;分…

2024.06.23【读书笔记】丨生物信息学与功能基因组学(第十七章 人类基因组 第三部分)【AI测试版】

第三部分:人类基因组的深入分析与比较基因组学 摘要: 本部分基于2001年国际人类基因组测序联盟(IHGSC)发布的人类基因组测序及分析草图,从生物信息学角度深入讨论了人类基因组的结构特征和分析方法。同时,提及了塞莱拉公司(Celera Genomics)版本的人类基因组草图及其…

Java中的序列化与反序列化

Java中的序列化与反序列化 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java开发中&#xff0c;序列化和反序列化是处理对象持久化和数据传输的重要机制。…

【自我提升】提升能量书籍

《原子习惯》 (Atomic Habits) - 詹姆斯克利尔 (James Clear)&#xff1a; 核心思想&#xff1a;微小的习惯改变可以带来显著的生活变化。方法&#xff1a; 将大目标拆分为可管理的小习惯。使用“习惯堆叠”技术&#xff0c;将新习惯与已有习惯结合。创建支持性环境&#xff0c…

ubuntu永久换镜像源详细方法

1.查看ubuntu的版本&#xff0c;不同的版本对应的不同的镜像源&#xff08;下面会讲到&#xff0c;先按步骤操作即可&#xff09; cat /etc/issue 2.先备份一个&#xff0c;防止更改错误 cp /etc/apt/sources.list /etc/apt/sources.list.backup 3.备份好之后删除原有的sour…