Apache软件基金会于2月17日宣布,Apache Arrow晋升成为一个新的顶级项目(Top-Level Project),提供跨系统的数据层列式内存分析(Columnar In-Memory Analytics),来加速大数据分析的效率和速度。ASF宣称,Arrow可以百倍的提升大数据分析的性能,极大的降低跨系统间的沟通成本,支持多系统间运作。
Arrow是数据结构、算法和跨程序语言的组合,提供不同种类系统间数据共享基础,包含SQL执行引擎(如Drill和Impala)、数据分析系统
(如Pandas和Spark)、流式和队列系统(如Herron、Kafka和Storm),以及储存系统(如Parquet、Kudu、Cassandra和HBase)。
另外,使用者现在可以用C、C++、Python和Java等程序语言来执行Arrow的程序代码,Apache Arrow和Drill项目副总裁Jacques Nadeau表示,在未来1至2个月内还将增加对R、JavaScript和Julia的支持。
而Arrow除了支持传统的关系数据库之外,也支持动态Schema结构的数据,例如,Arrow可以处理物联网、Log文件等常用的JSON格式 数据。在性能方面, Arrow特别优化排序的局部性(Cache Locality)、流量管道(Pipelining)和单一指令多重数据(Single Instruction Multiple Data,SIMD),来发挥CPU的性能。
ASF表示,在许高负载中,70%~80%的CPU资源都用在系统间串行化(Serialize)和解串行化
(Deserialize)数据,而Arrow让数据可以不必经过串行化、解串行化或内存复制,就能够在系统和处理程序中共享,藉此提升CPU的使用性能。
此外,目前已经有13个主要大数据开源项目的开发者连手打造Arrow项目,而这13个开源项目包含了Calcite、Cassandra、 Drill、Hadoop、HBase、Impala、Kudu(培育期)、Parquet、Phoenix、Spark、Storm、Pandas和 Ibis。
Jacques Nadeau表示,ASF预期在未来几年,世界上大多数的数据将会使用Arrow的技术来分析。
目前,Apache Arrow的代码已经可以在Apache2.0的许可下使用,
参考文档:
http://www.itdadao.com/article/393103/
https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html