共计 2645 个字符,预计需要花费 7 分钟才能阅读完成。
简介: 本篇内容为 2021 云栖大会 - 云原生数据仓库 AnalyticDB 技术与实际峰会分论坛中,阿里云资深技术专家 魏闯先对于“AnalyticDB PostgreSQL 年度新版本公布”的分享。
本篇内容将通过三个局部来介绍 AnalyticDB PG 年度新版本公布。
一、AnalyticDB PG 云原生架构
二、云原生架构核心技术分析
三、演进路标
一、AnalyticDB PG 云原生架构
阿里云自研高性能、海量扩大数据仓库服务、兼容局部 Oracle/Teradata 语法生态,大量利用于阿里巴巴团体外部电商,物流,娱乐,广告等业务部门,服务于阿里云的金融、政企、互联网等各行业用户,反对疾速构建新一代云化数据仓库服务。
它具备以下四个特点:第一,PB 级数据秒级响应。采纳向量化计算以及列存储和智能索引,当先传统数据库引擎性能 3x 倍。新一代 SQL 优化器,实现简单剖析语句免调优。第二,稳固牢靠简化运维。飞天平台基于阿里多年大规模集群零碎构筑教训打造,智能硬件治理,故障监控诊断自复原,反对 MPP 数据库实现简单集群零碎高牢靠,自运维。第三,高 SQL 兼容性。反对 SQL 2003,局部兼容 0racle 语法,反对 PL/SQL 存储过程,OLAP 窗口函数,视图等,具备齐备性能和生态,可实现利用疾速适配和迁徙。第四,数据多模剖析。通过 PostGIS 插件反对地理信息数据分析,内置 100+ 机器学习算法库,实现数据智能摸索。反对高维向量检索算法,实现视频 / 图像检索以图搜图性能。
咱们为什么要降级云原生架构?从 80 年代开始,数据库逐渐由单机向云原生架构逐渐演进。80 年代,数据库采纳存储计算耦合的单点数据库服务架构。90 年代开始,通过共享存储的能力做到了一份存储多份计算。随着计算节点线性减少,它的存储逐步成为瓶颈。到 2000 年当前,随着大数据的倒退,数据程度切成多个分片,每一个节点负责一个分片数据的计算和存储。2010 年开始,随着云计算的迅速倒退,数据库开始向云原生方向演变。
对于数据仓库的业务来说,它天生适宜存算拆散架构并反对弹性伸缩。第一,数据量自身存在波峰波谷,数据量在某些天呈现激增,数仓须要做到疾速扩容。第二,实时剖析。咱们须要数据做到实时反馈,刚刚产生的数据,可能立即剖析。第三,数据仓库既要提供历史数据分析,又要提供实时剖析,这就要求数仓必须具备好的资源隔离能力。第四,当初的部门数据越来越简单,跨部门之间须要数据共享。咱们的数据仓库须要做到一份存储,多部门共享,缩小部门之间数据扭转带来的业务简单。
二、云原生架构核心技术分析
咱们的以后 ADB 是两层构造,下层是 master 节点,底层的是计算节点,通过云盘的弹性能力去解决存储弹性的问题。这种架构的次要痛点问题是,计算节点有状态,一旦有状态,在扩容等过程中,就会面临着数据搬迁慢的问题,所以咱们在新的云原生架构把计算节点从有状态变成无状态或者弱状态。状态包含实在数据和元数据两个层面,实在数据放在共享存储中,元数据放在分布式 KV 中,存储和计算齐全解耦,做到无状态,这样就能够疾速地实现秒级的弹性能力。在开发测试过程中,发现了很多性能问题。第一个问题是,原来的云盘或者是本地盘换成了共享存储后,共享存储响应性能比本地盘差一个数量级或两个数量级,咱们采纳分布式的多层缓存来解决共享存储的性能问题。第二个,共享存储具备十分好的吞吐能力,但须要存储引擎适应这个个性,因而咱们设计了行列缓存的架构,并做了大量的面向高吞吐的性能优化。
对一般客户来说,最重要的事件就是做到老本的升高。因为采纳的共享存储的价格比原先应用本地盘或云盘的老本有一个数量级的降落,所以整个原生版本在老本上会有个大幅降落。
云原生架构有四个特色:第一个特色是弹性,能够实现计算和存储独立的伸缩。第二个是实时,保留实时能力,反对高并发的实时写入。第三个是高吞吐,具备好的多维分析性能,并可线性扩大。第四个是数据共享,能够实现数据跨实例的实时共享。
首先咱们介绍一下扩容的过程。假如开始只有两个计算节点,数据有八个分片。扩容前,每个计算节点负责四个分片数据,映射关系保留在元数据库中,所有的数据都放在共享存储下面。扩容过程就是将映射关系从原来的一个节点对四个分片改成一个节点对两个分片,扩容过程无需数据迁徙,只须要批改元数据,整个过程能够做到秒级弹性。
高吞吐实时写入是实时数仓的一个重要个性。次要通过以下三种形式:一、Batch 和并行化进步吞吐。二、本地行存表实现事务 ACID。三、分布式缓存减速。
另一个重要技术点是离在线一体行列混存。咱们设计一个面向吞吐的行列混存的存储引擎,充分发挥共享存储高吞吐的特色。行列混存利用数据的有序性,反对计算下推,失去了 10 倍以上的性能晋升。同时针对多维分析任意列查问的场景,设计了多维排序功能,能够保障多个维度的任意查问都能达到毫秒级的响应。
ADBPG 原先采纳火山计算模型,在云原生版本中将火山模型降级为向量化模型。向量化引擎的实质是将原来的一条条计算,改成批计算,每批数据采纳列式向量化计算。绝对于火山模型,向量化引擎具备 CPU Cache 命中率高、流水线并行、低函数调用开销、缩小内存碎片等劣势。测试结果显示,向量化计算引擎绝对原来的火山模型有三倍以上的性能晋升。
计算存储拆散架构的第一个演进个性是数据共享。元数据可分成零碎表和可见性表,存储在 KV 零碎中。被共享的实例将元数据同步到 KV 零碎中,共享实例实时查 KV 零碎,拿到最新表的元数据和可见性信息,再依据元数据访问共享存储中的数据,从而实现数据的实时共享。
下一个演进个性是细粒度弹性。通过后面介绍的计算存储拆散架构,曾经实现了计算节点的无状态化。下一步的工作就是把节点再细拆为存储服务化节点和计算节点。存储服务化节点次要负责数据实时写入和缓存,计算节点实现齐全无状态,从而实现极致弹性能力。
三、演进路标
将来一年的演进门路。10 月份云原生架构降级,反对极速扩缩容。12 月份,上线跨实例数据共享性能,并反对分时弹性性能。明年 6 月份,上线存储服务化和计算无状态。22 年 10 月份,反对算子级弹性和主动挂起 / 启动性能。
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。