首次揭秘云原生Hologres存储引擎

概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析(Hologres)+实时计算Flink搭建的云原生实时数仓首次在核心数据场景落地,为大数据平台创下一项新纪录。借此之际,我们将陆续推出云原生实时数仓双11实战系列内容。本文将会首次对外公开介绍Hologres的存储引擎,深度剖析其实现原理和核心技术优势。

一、背景介绍

MaxCompute 交互式分析(Hologres)是阿里云自研开发的HSAP(Hybrid Serving/Analytical Processing)服务/分析一体化系统 ,融合了实时服务和分析大数据的场景,全面兼容PostgreSQL协议并与大数据生态无缝打通。它的出现简化了业务的架构,与此同时为业务提供实时做出决策的能力,让大数据发挥出更大的商业价值。关于架构更详细的介绍,请看文末VLDB论文 。

跟传统的大数据和OLAP系统相比,HSAP系统面临下面的挑战:

  • 高并发的混合工作负载:HSAP系统需要面对远远超出传统的OLAP系统的并发查询。在实践中,数据服务的并发远远超出OLAP的查询。比如说,我们在现实的应用中见到数据服务需要处理高达每秒钟数千万个查询,这比OLAP查询的并发高出了5个数量级。同时,和OLAP查询相比,数据服务型查询对延迟有着更加苛刻的要求。复杂的混合查询负载对系统的延迟和吞吐有着非常不同的取舍。如何在高效地利用系统的资源同时处理好这些非常不一样的查询,并且保证每个查询的SLO是个巨大的挑战。
  • 高吞吐实时数据导入:在处理高并发的查询负载的同时,HSAP系统还需要处理海量的实时数据导入。从传统的OLTP同步过来的数据只是这其中的一小部分,其他还有大量的数据来自日志等没有强事务语意的系统。实时导入的数据量远远超过了传统的HTAP或者OLAP系统。和传统的OLAP系统的另外一个区别是对数据的实时性有着很高的要求,导入的数据需要在秒级甚至亚秒级可见,这样才能保证我们服务和分析结果的时效性。
  • 弹性和可扩展性:数据导入和查询负载可能会有突发的高峰,这对HSAP系统提出了很高的弹性和可扩展性的要求。在现实的应用中,我们注意到数据导入峰值能达到是平均的2.5倍,查询的峰值可能达到平均的3倍。数据导入和查询的峰值可能不一定同时出现,这也需要系统有根据不同的峰值做迅速调整的能力。

基于上述背景,我们自研了一款存储引擎(Storage Engine),主要负责管理和处理数据, 包括创建,查询,更新,和删除(简称 CRUD)数据的方法。存储引擎的设计和实现提供了HSAP场景所需要的高吞吐,高并发,低延迟,弹性化,可扩展性的能力。根据阿里集团业务和云上客户的需求,我们不断创新和打磨,发展到今天,能支持单表PB级存储,并完美支撑2020年天猫双11核心场景千亿个级别的点查询和千万个级别的实时复杂查询 。

下面,我们将会对Hologres底层的存储引擎做详细的介绍,并介绍存储引擎落地Hologres的具体实现原理和技术亮点。

二、数据模型

Hologres存储引擎的基本抽象是分布式的表,为了让系统可扩展,我们需要把表切分为分片

你可能感兴趣的:(数据库,大数据)