开源的Gandiva项目想要解除分析的阻塞

资讯 2020-01-22 11:34:29

高效数据处理的关键是批量处理行数据,而不是一次一行。较老的、面向文件的数据库使用了后一种方法,对它们不利。当SQL关系数据库出现在现场时,它们提供了一种基于设置的、声明性的、效率更高的查询语法。这是一个进步,一直困扰着我们。

但是,随着我们在查询级别的进化,当我们一直深入到中央处理单元(CPU)和运行在它们上的本机代码时,我们通常仍然使用效率要低得多的一次行方法处理数据。而且,由于大量的分析涉及到在巨大的数据行(HUGE)集上应用计算,这种低效对我们的分析引擎的性能产生了巨大的负面影响。

捆起来,我们该怎么办?Analytics平台公司Dremio今天宣布了一项新的由Apache授权的开源技术,正式命名为“Gandiva Project for Apache Arrow”,该技术可以评估数据表达式,并将它们编译成高效的本地代码,批量处理数据。

事实上,德雷米奥在这个问题上已经努力了一段时间。甚至在这家公司摆脱了隐身状态之前,它就已经完成了ApacheArrow的开发,以解决其中的一部分问题。箭头有助于在内存中以列格式表示数据。这反过来又允许通过一类名为SIMD(单个指令,多个数据)的CPU指令批量处理整个系列的类似数字,使用一种称为向量处理的方法来处理数据。

还可以读到:Apache Arrow将内存中的大数据系统统一起来。还可以读到:启动Dremio是从隐身中产生的,启动基于内存的BI查询引擎

效率专家尽管几乎20年前英特尔推出了SIMD指令,但珍贵的小代码,直到今天,仍然可以利用它们。但Gandiva的智能表达评估为SIMD指令和向量处理提供了数据。本质上,Gandiva消除了嵌入在表达式中的条件测试以我们想要避免的方式应用于行时,而是将它们作为一种后处理过滤器来应用。

因此,Gandiva的方法允许以设定的方式执行表达式中的核心计算。这既减少了必须执行的CPU指令的数量,又使剩余的指令更有效率..将这种优化乘以我们每天处理的数十亿和数十亿的数据行,其影响可能是巨大的。

甘迪瓦是SIMD-proud

甘迪瓦、阿罗和德拉米奥·甘迪瓦与ApacheArrow及其内存中的数据柱状表示携手工作。据Dremio联合创始人和CTO Jaques Nadou说,“Gandiva”是一个神话般的弓,可以让箭更快1000倍。在数据技术的世界里,纳多说甘迪瓦可以让Apache Arrow的操作速度达到100倍。

德雷米奥很难在德雷米奥产品中集成Gandiva,取代了代码,这些代码虽然表面上做得很好,但希望不会像Gandiva生成的代码那样出色。我不知道是否会有贴纸,但3.0版本的Dremio会有“Gandiva在里面”

还请阅读:Dremio2.0增加了数据反射改进,支持Looker和连接到Azure数据湖商店

伟大的善良,但德雷米奥并没有把甘迪瓦全部留给自己。它是开放采购的Apache许可证,并鼓励采用甘迪瓦其他项目和产品。纳多认为,其他技术-包括Apache Spark、Pandas甚至Node.js-可以从采用Gandiva中受益。纳多正在努力为收养做宣传。

纳多在那里有很好的记录:他是ApacheArrow的PMC(项目管理委员会)主席,在MapR时是Apache Drill开发团队的关键成员。箭头项目在数据和分析空间中得到了大量公司的支持和参与,甚至通过其支持GPU开放分析直观(GOA I)得到了NVIDIA的认可,该项目采用Arrow作为其官方柱状数据表示格式。

跨平台、跨语言的GPU(图形处理单元,在机器学习和AI中使用扩展),Gandiva团队计划支持GPU作为目标执行环境,尽管该项目今天仅限于CPU。一般来说,利用SIMD指令和矢量处理的技术往往也是GPU操作的一个很好的候选。

由于甘迪瓦采用开源LLVM编译技术,可以为各种平台生成优化代码。这与甘迪瓦跨越产品、平台和编程语言的目标是一致的。甘迪瓦今天支持C和Java绑定,计划增加对Python的支持..

想想甘迪瓦,它是做什么的,相当极客和深奥?当然。但有时,当这些举措瞄准全行业的痛点并获得广泛采纳时,它们可能会产生重大影响。如果甘迪瓦能得到一整类产品和项目,更好地利用向量处理和基于集合的操作,这将是一种真正的服务。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢