zl程序教程

您现在的位置是:首页 >  其他

当前栏目

数据虚拟化引擎openLooKeng: 不搬运数据,只是数据的连接器

引擎数据 虚拟化 只是 连接器
2023-09-11 14:16:24 时间

最近评估信创相关的软件,觉得华为开源的这个openLooKeng要解决的业务场景是真实存在的,提供的跨源跨数据中心的SQL查询是真实有用的。

什么是openLooKeng?

openLooKeng 是一款面向大数据库的数据虚拟化引擎,提供统一 SQL 接口,具备跨数据源/数据中心分析能力以及面向交互式、批、流等融合查询场景。同时增强了前置调度、跨源索引、动态过滤、跨源协同、水平拓展等能力。

openLooKeng 使用了开源 SQL 引擎 Presto 来提供交互式查询分析基础能力,并继续在融合场景查询、跨数据中心/云、数据源扩展、性能、可靠性、安全性等方面发展,让数据治理、使用更简单。

openLooKeng开源社区官方网站
openLooKeng代码仓地址

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

openLooKeng 之前是HetuEngine,满足以下六点业务场景要求
在这里插入图片描述

特点

特点如下:

  • 跨数据中心数据分析:统一的SQL接口访问跨数据中心、跨云的数据源
  • 极简的跨源数据分析体验: 统一的SQL接口访问多种数据源
  • 易扩展数据源: 可以通过增加Connector来增加数据源,采集变连接、数据零搬迁

关键特性

关键特性如下:

  • 专为海量数据设计的内存计算框架:
    • 采用了存储与计算分离的设计理念,可方便的实现计算或存储节点的水平扩展。
    • 内核采用基于内存的计算框架,所有数据的处理都在内存中以并行的流水线式作业完成,可提供秒级到分钟级的查询时延响应
  • ANSI SQL2003语法的支持
    • 支持ANSI SQL2003语法,用户使用openLooKeng语法进行查询时,无论底层数据源是RDBMS还是NoSQL 或者其他数据管理系统,借助openLooKeng的Connector框架,数据可以依然存放在原始的数据源中,从而实现数据“0搬迁”的查询。
    • 统一SQL入口,可实现对底层各种数据源SQL方言的屏蔽,用户无需再关心底层数据源的SQL方言便可获取到该数据源的数据,方便了用户消费数据。
  • 多种多样的数据源 Connector,
    • 目前已经支持29个,详见:连接器
    • 可根据业务需要,进行扩展
  • 跨DC的跨域DataCenter Connector:
    • 通过数据中心连接器查询远程openLooKeng数据中心的数据
  • 高性能的查询优化技术
    • 索引:提供基于Bitmap Index、Bloom Filter以及Min-max Index等索引。通过在现有数据上创建索引,并且把索引结果存储在数据源外部,在查询计划编排时便利用索引信息过滤掉不匹配的文件,减少需要读取的数据规模,从而加速查询过程
    • Cache: 包括元数据cache、执行计划cache、ORC行数据cache等。通过这些多样的cache,可加速用户多次对同一SQL或者同一类型SQL的查询时延响应
    • 动态过滤: 在运行时(run time)将join一侧表的过滤信息的结果应用到另一侧表的过滤器的优化方法,从而加速不同场景关联查询的性能
      • 提供了多种数据源的动态过滤优化【在单个openLooKeng集群】
      • DataCenter Connector也支持动态过滤优化【跨多个openLooKeng集群】
    • 算子下推: 通过Connector框架连接到RDBMS等数据源时,由于RDBMS具有较强的计算能力,一般情况下将算子下推到数据源进行计算可以获取到更好的性能,详见FAQ
    • 高可用特性:
      • 引入了高可用的AA特性,支持coordinator AA双活机制,能够保持多个coordinator之间的负载均衡,同时也保证了openLooKeng在高并发下的可用性。
      • Auto-scaling: 支持将正在执行任务的服务节点平稳退服,同时也能将处于不活跃状态的节点拉起并接受新的任务。openLooKeng通过提供“已隔离”与“隔离中”等状态接口供外部资源管理者(如Yarn、Kubernetes等)调用,从而实现对coordinator和worker节点的弹性扩缩容

常见应用场景

  • 高性能的交互式查询场景
  • 跨源异构的查询场景
  • 跨域跨DC的查询场景(通过DataCenter Connector实现跨多个openLooKeng集群的查询)
  • 计算存储分离的场景
  • 快速进行数据探索的场景

不适用场景

  • 针对实时性要求很高的系统,如秒级响应
  • 针对并发要求很高的系统

openLooKeng架构

HA AA架构图

在这里插入图片描述

跨域跨DC查询架构图

在这里插入图片描述

OpenLookeng和Presto对比

在这里插入图片描述

相同点

  • 多种权限认证方式
  • WEB管理会话、SQL列表和进度、节点状态监控
  • REST接口/CLI/JDBC
  • 队列、配额、内存控制、并发控制
  • Coordinator Node HA
  • 支持扩展的连接器,默认都支持20+
  • 支持扩展类型和自定义函数

扩展点

  • openlookeng支持了ODBC
  • openlookeng额外支持carbondata、hbase、Hana、虚拟数据市场(VDM)等
  • 对已有数据的外置索引(位图、bloom过滤器、minmax稀疏索引,Btree,StarTree(类似kylin的cube 预聚合)
  • WEBUI与presto差别很大,采用dashboard风格,包括节点监控/metrics/QueryHistory/以及最主要的SQL面板,可以直接在界面运行SQL
  • 集成了Ranger权限
  • 动态catalog:不需要重启去添加新的catalog。
  • 动态filter :join上的优化
  • 函数做了扩展
  • 专门为跨域、跨集群定制的DataCenter Connector