【OpenLookeng和Presto对比】

2021-08-25  本文已影响0人  苏柏亚的星空

OpenLookeng是华为开源的MPP SQL引擎,其实是基于PrestoSQL(v316)做的二次开发和优化。
Doc链接

看一个对比图


image.png

华为团队在开源上目前还挺活跃(国内),open欧拉(操作系统),open罗庚(异构数据源统一检索引擎),open高斯(对标greenplum这种传统数仓)鲲鹏社区(CPU架构生态),等等,路子铺的很开。还搞了一些大赛,活动,meetup。

B站还有一些官方团队的视频(Blog/使用介绍/甚至PMC团队会议...)
Link

一、概括

openLooKeng是一个跨数据源、【数据中心】的SQL计算引擎(不存数据),通过连接器对接RDBMS和NOSQL,甚至流数据Kafka,提到计算层(内存),
实现统一SQL入口和视图,用于交互式查询分析

二、与presto共同点/特性(对比双方文档和代码目录)

1)多种权限认证方式
2)WEB管理回话、SQL列表和进度、节点状态监控
3)REST接口/CLI/JDBC
4)队列、配额、内存控制、并发控制
5)管理节点HA
6)可扩展的连接器(后端存储系统)默认都支持10-20个(rdbms数据库、文件、内存、nosql等)
7)扩展类型和自定义函数
8)

三、不同点

1)支持了ODBC
2)openlookeng额外支持carbondata/hbase/华为自家一些东西如hana内存计算/ VDM(类似视图);presto多了redis/carssandra/mongodb等(可能是openlookeng没列或者其presto版本较低 支持较少)
3)对已有数据的外置索引(位图、bloom过滤器、minmax稀疏索引,Btree,StarTree(类似kylin的cube 预聚合)
4)界面做了一些扩展
5)一些函数扩展
6)专门为跨域、跨集群定制的DataCenter Connector
7)

小结:
外置索引这块还是挺有意思,可以试试。
但是presto也在不断优化,如Raptorx分层缓存计划。(注:这是prestoDB的,不是prestoSql(现在较Trino)的)
说到底还是看社区的人有多投入去优化这个东西。。
不知道值不值得去跟进。。

[TODO 继续研究和测试]

实测后 新增点:

WEB界面如下:


image.png

PS 实测结论:部署和运行与presto差不多,性能的话确实好一些(索引这块没详细测)

更新

openlookeng的索引支持和实现:提供了一些索引相关的语法支持,和元数据维护(JSON文件保存到本地或者hdfs),索引生成后的数据文件放在hdfs,使用时会读到coordinator。
索引按stripe/file/partiton有多个粒度。

综上考虑,主要有几方面问题:

注:当前,启发式索引仅支持ORC存储格式的Hive数据源。

因此,使用者需要明确这几点才建议使用索引功能。。

202109再次PS:
看了索引的相关源码,实现起来感觉就像普通java程序员。。与原本源码各种异步、lambda嵌套看起来简单舒服多了,也low多了。。明显是两个画风了。大量中间对象创建,大量不优雅的做法,臃肿笨重的hashmap,每个split的循环逻辑,比如用:::去分隔索引的key,比如一层层的if{},。。。说实话有点凑数的感觉。

总之,索引这个东西,个人感觉,比较鸡肋

上一篇下一篇

猜你喜欢

热点阅读