Apache Arrow 内存数据交换格式
Apache Arrow是Apache基金会下一个全新的开源项目,同时也是顶级项目。它的目的是作为一个跨平台的数据层来加快大数据分析项目的运行速度。
Apache Arrow 是 Apache 基金会的顶级项目之一,目的是作为一个跨平台的数据层来加快大数据分析项目的运行速度。它包含一组规范的内存中的平面和分层数据表示,以及多种语言绑定以进行结构操作。 它还提供低架构流式传输和批量消息传递,零拷贝进程间通信(IPC)和矢量化的内存分析库
用户在应用大数据分析时除了将Hadoop等大数据平台作为一个经济的存储和批处理平台之外也很看重分析系统的扩展性和性能。过去几年开源社区已经发布了很多工具来完善大数据分析的生态系统,这些工具涵盖了数据分析的各个层面,比如列式存储格式(Parquet/ORC)、内存计算层(Drill、Spark、Impala和Storm)以及强大的API接口(Python和R语言)。Arrow则是最新加入的一员,它提供了一种跨平台跨应用的内存数据交换格式。
提高大数据分析性能的一个重要手段是对列式数据的设计和处理。列式数据处理借助向量计算和SIMD使我们可以充分挖掘硬件的潜力。Apache Drill这一大数据查询引擎无论是在硬盘还是在内存中数据都是以列的方式存在的,而Arrow就是由Drill中Value Vector这一数据格式发展而来。除了列式数据,Apache Arrow也支持关系型和动态数据集,这使它成了处理物联网等数据时的理想格式选择。
Apache Arrow为大数据生态系统带来了可能性是无穷的。有Apache Arrow做为今后的标准数据交换格式,各个数据分析的系统和应用之间的交互性可以说是上了一个新的台阶。过去大部分的CPU周期都花在了数据的序列化和反序列化上,现在我们则能够实现不同系统之间数据的无缝共享。这意味着用户在将不同的系统结合使用时再也不用为数据格式多花心思了。
Performance Advantage of Columnar In-Memory
Advantages of a Common Data Layer
每个系统都有自己内部的内存格式
70-80%的CPU浪费在序列化和反序列化过程
类似功能在多个项目中实现,没有一个标准
所有系统都使用同一个内存格式
避免了系统间通信的开销
项目间可以共享功能(比如Parquet-to-Arrow reader)
Apache Arrow 内存数据交换格式相关推荐
- Apache Arrow 内存数据
1.概述 Apache Arrow 是 Apache 基金会全新孵化的一个顶级项目.它设计的目的在于作为一个跨平台的数据层,来加快大数据分析项目的运行速度. 2.内容 现在大数据处理模型很多,用户在应 ...
- 数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- 常用的数据交换格式有哪些_Linux后台开发6大常用的开源库,让你在同行中脱颖而出...
后台开发,语言主要是 c 和 c++ , 这里简单罗列一下工作中用的很频繁的那些开源软件 1. OpenSSL openssl OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法.常用的密钥 ...
- XML和JSON 数据交换格式
为什么80%的码农都做不了架构师?>>> 一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...
- 数据交换格式Json与XML
什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...
- XML和JSON两种数据交换格式的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- 于数据交换格式XML和JSON的比较
目前,在web开发领域,主要的数据传输格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生:相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之 ...
- iOS 中 XML 数据交换格式
XML 是一种自描述的数据交换格式,但是 XML 的数据交换格式并没有 JSON 来的轻便,但是无可否认的是,XML 的应用范围也是非常广泛的,比如在 ROS(一个开源机器人操作系统)中利用 ...
- C++数据交换格式库jsoncpp安装与使用详解
目录 一.json介绍 1.1 pair 1.2 object 1.3 array 二.jsoncpp库 三.jsoncpp库下载.安装与使用 四.jsoncpp常用类 4.1 Json::Value ...
最新文章
- 2021年大数据Flink(十四):流批一体API Connectors JDBC
- jquery跨域调用wcf
- python整数和浮点数相乘_python中整数除法和浮点数到整数转换之间的区别是什么原因?...
- Linux与Windows文件查找命令
- .NetCoreLinuxDockerPortainer踩坑历险记
- 为了搞清楚CDN的原理,我头都秃了...
- 厂均 60W+ 的 秘密
- pip太慢豆瓣下载地址
- 反向传播算法BP公式推导
- 速达账套管理员密码查看方法
- sublime text 提示error while loading pyvb binvry:exit code3 try tomanually install pyvb的处理方法
- phpspreadsheet文件下载
- 什么是双线双IP和双线单IP
- 腾讯视频显示网络连接服务器失败怎么办,腾讯视频不能投屏怎么回事 腾讯视频无法投屏的解决方法...
- springboot bootcdn使用
- 汇编语言-用Si和Di实现字符串复制到其他的区域
- sum(case when) 学习
- VM Tools 安装
- Intellij Idea创建maven项目,App.java代码编辑区没有run选项
- 如何无线接收服务器封包,大大通|如何抓取802.11a/b/g/n/ac 的无线网络封包