摘要:基于华为开源openLooKeng引擎的交互式分析功能,将重磅发布便于用户构建轻量级流、批、交互式全场景数据湖。
在这个“信息爆炸”的时代,大数据已经成为这个时代的关键词之一!随着云计算、物联网、移动计算、智慧城市、人工智能等领域日新月异的发展,人类社会已经步入了“信息高速路”的行驶轨道,数据量增长迅速,各类应用对大数据处理的需求也发生着变化。
与此同时,“久经沙场”的数据仓库不再一统江湖,而以实时分析、离线分析、交互式分析等为代表的计算引擎势头迅猛。
华为云3年前发布的Serverless大数据分析服务 - 数据湖探索DLI,经过这几年的迭代升级,已经包含用于实时分析的Flink引擎,用于离线分析的Spark引擎。今年基于华为开源openLooKeng引擎的交互式分析功能,也将于Q4重磅发布,便于用户构建轻量级流、批、交互式全场景数据湖。
openLooKeng使用了业界著名的开源SQL引擎Presto来提供交互式查询分析基础能力,并继续在融合场景查询、跨数据中心/云、数据源扩展、性能、可靠性、安全性等方面发展,让数据治理、使用更简单。
关键特性
1. 毫秒级查询性能
DLI使用的openLooKeng引擎在内存计算框架的基础上,还利用许多查询优化技术来满足高性能毫秒级的交互式分析的需要。
1.1 索引
openLooKeng提供基于Bitmap Index、Bloom Filter以及Min-max Index等索引。通过在现有数据上创建索引,并且把索引结果存储在数据源外部,在查询计划编排时便利用索引信息过滤掉不匹配的文件,减少需要读取的数据规模,从而加速查询过程。
1.2 Cache
openLooKeng提供丰富多样的Cache,包括元数据cache、执行计划cache、ORC行数据cache等。通过这些多样的cache,可加速用户多次对同一SQL或者同一类型SQL的查询时延响应。
1.3 动态过滤
所谓的动态过滤是指是在运行时(run time)将join一侧表的过滤信息的结果应用到另一侧表的过滤器的优化方法,openLooKeng不仅提供了多种数据源的动态过滤优化特性,还将这一优化特性应用到了DataCenter Connector,从而加速不同场景关联查询的性能。
1.4 算子下推
openLooKeng通过Connector框架连接到RDBMS等数据源时,由于RDBMS具有较强的计算能力,一般情况下将算子下推到数据源进行计算可以获取到更好的性能。openLooKeng目前支持多种数据源的算子下推,包括Oracle、HANA等,特别地,针对DC Connector也实现了算子下推,从而实现了更快的查询时延响应。
2. 高可用
2.1 HA AA双活
openLooKeng引入了高可用的AA特性,支持coordinator AA双活机制,能够保持多个coordinator之间的负载均衡,同时也保证了openLooKeng在高并发下的可用性。
2.2 Auto-scaling
openLooKeng的弹性伸缩特性支持将正在执行任务的服务节点平稳退服,同时也能将处于不活跃状态的节点拉起并接受新的任务。openLooKeng通过提供“已隔离”与“隔离中”等状态接口供外部资源管理者(如Yarn、Kubernetes等)调用,从而实现对coordinator和worker节点的弹性扩缩容。
3. 融合场景
实时分析、离线分析、交互式分析这三种场景中在很多实际业务中都是同时存在的,DLI引入openLooKeng引擎之初就考虑了如何跟已有的Spark引擎进行元数据层面的互通,从而实现离线分析结果,免数据搬迁直接就可以用openLooKeng引擎进行交互式分析。Spark和openLooKeng都支持Hive的建表方式,通过这种方式,实现了元数据层面的互通。
4. 统一目录,跨域跨DC查询
DLI老用户使用比较多的功能是跨多种数据源的联合查询,用于更全面地对数据进行关联分析,释放数据价值。这次引入openLooKeng引擎将跨源查询的能力进一步延伸,开发了跨域跨DC查询的DataCenter Connector。通过这个新Connector可以连接到远端另外的openLooKeng集群,从而提供在不同数据中心间协同计算的能力。 其中的关键技术如下:
4.1 并行数据访问
worker可以并发访问数据源以提高访问效率, 客户端也可以并发从服务端获取数据以加快数据获取速度。
4.2 数据压缩
在数据传输期间进行序列化之前,先使用GZIP压缩算法对数据进行压缩,以减少通过网络传输的数据量。
4.3 跨DC动态过滤
过滤数据以减少从远端提取的数据量,从而确保网络稳定性并提高查询效率。
总结展望
这次加入交互式查询能力,弥补了数据湖探索DLI在毫秒级场景下的短板,构建起从实时分析、到离线分析再到交互式分析整个链路完整的技术栈。
未来,DLI还将探索如何根据业务场景自动识别计算引擎,用户只需要下发SQL,无需关心最终的计算引擎,让大数据真正变成“像使用数据库一样”,“会SQL就会大数据分析”。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。