云原生数据仓库AnalyticDB MySQL版采用计算存储分离的架构,通过云原生技术实现了池化,提供了Serverless存储的能力。

Serverless架构下的存储资源支持独立弹性伸缩,同时提供了按需横向弹性(扩展存储节点数)和按需纵向弹性(升配存储节点的CPU和内存)的能力。计费方式采用按使用量付费,且无需管理硬件资源。此外,AnalyticDB MySQL存储支持一份数据同时满足高性能的在线分析以及低成本的离线处理两种场景,助力企业降本增效。

存储层的整体架构如下图所示:架构图
存储层与其他组件的交互如下图所示:交互图
AnalyticDB MySQL的存储层构建在云原生基础设施之上,该架构有如下几个特点:
  • 分层存储
    • 存储介质提供冷热分层存储能力。
    • 实时数据存储在热存储(SSD)上,保证超低延时的写入和查询性能,可提供行级数据实时性。
    • 全量数据以微分区(Micro Partitions)的形式存储,大幅度优化传统数仓中出现的IO放大和写放大的问题,提供高吞吐的读写能力。同时,利用OSS和PANGU的弹性能力,在提供廉价存储的同时,容量可无限扩展。
  • 高性能
    • 支持列投影、谓词下推、分区裁剪,并且内置面向高吞吐的Skipping Index扫描过滤和面向低延迟的Secondary Index过滤两种访问模式。AnalyticDB MySQL会根据您提交的查询自动选择最优模式,无需手动选择访问模式。
    • 统一多级缓存层。充分利用本地内存+本地SSD+远程全局分布式缓存,提供湖仓数据的加速能力,同时满足从百毫秒级高性能在线分析场景到百TB级的高吞吐ETL场景。
  • 弹性能力
    • 提供分钟级别的弹性扩缩容。全量数据在扩缩容时无需搬迁,通过元数据(Metadata)的操作来达到扩缩容的目的。
    • 存储与计算可独立弹性,并且提供横向弹性和纵向弹性的能力。
  • 资源隔离
    • 独立部署的Build Service,负责所有的离线操作,可保证如Compaction等高CPU消耗的离线操作与线上负载进行资源隔离,不影响线上负载的运行。
    • 具备一份数据与一套自研存储格式同时支持实时更新、交互式查询、离线ETL及明细点查多场景一体化能力。离线查询与在线查询资源隔离。
  • 湖仓一体
    • 对外开放存储,不锁定用户数据,提供统一存储接口层及数据访问格式,支持使用开源计算引擎(如Spark和Presto) 访问AnalyticDB MySQL内部的数据。
    • 支持在AnalyticDB MySQL内部访问和管理开源数据格式(如Parquet和Hudi)。
    • 支持半结构化、非结构化数据的存储。提供全文检索能力。
    • 提供湖加速能力。通过智能采集湖上数据统计信息,改善湖上查询计划,加速湖查询。