介绍:本文是关于2021云栖大会-云原生数据仓库AnalyticDB技术与实践峰会分论坛,资深技术专家阿里云魏创贤关于“AnalyticDBPostgreSQL年度新版本发布”的分享。本文将通过三个部分介绍AnalyticDBPG新年度版的发布。1.AnalyticDBPG云原生架构2.云原生架构核心技术分析3.演进路线图1.AnalyticDBPG云原生架构阿里云自研高性能、可海量扩展的数据仓库服务,兼容部分Oracle/Teradata语法生态,广泛应用于阿里巴巴集团内部电商、物流、娱乐、广告等业务部门,服务阿里云金融、政企、互联网等各行业用户,支撑新一代快速建设基于云的数据仓库服务。它具有以下四个特点:一是秒级响应PB级数据。使用向量化计算、列存储和智能索引,比传统数据库引擎领先3倍。新一代SQL优化器,无需调优即可实现复杂的分析语句。二是稳定可靠,操作维护简单。飞天平台基于阿里多年搭建大型集群系统、智能硬件管理、故障监控、诊断和自恢复经验打造,支持MPP数据库,实现复杂系统的高可靠和自主运维。集群系统。第三,SQL兼容性高。支持SQL2003,部分兼容0racle语法,支持PL/SQL存储过程、OLAP窗口函数、视图等,功能生态完备,可实现快速应用适配和迁移。第四,数据多模态分析。支持通过PostGIS插件进行地理信息数据分析,内置100+机器学习算法库,实现数据智能探索。支持高维向量检索算法,实现图片搜索的视频/图片检索功能。为什么要升级云原生架构?从1980年代开始,数据库逐渐从单机架构演变为云原生架构。20世纪80年代,数据库采用存储和计算耦合的单点数据库服务架构。从1990年代开始,通过共享存储的能力,实现了多个计算的一个存储。随着计算节点线性增加,其存储逐渐成为瓶颈。2000年以后,随着大数据的发展,数据被横向分割成多个分片,每个节点负责一个分片数据的计算和存储。2010年以来,随着云计算的快速发展,数据库开始向云原生方向演进。对于数据仓库业务,自然适合存储计算分离架构,支持弹性伸缩。首先,数据量本身有波峰和波谷,某些日子数据量急剧增加,需要快速扩容数据仓库。第二,实时分析。我们需要数据来实现实时反馈,刚刚生成的数据可以立即进行分析。第三,数据仓库必须同时提供历史数据分析和实时分析,这就要求数据仓库必须具备良好的资源隔离能力。第四,当前部门数据越来越复杂,需要跨部门数据共享。我们的数据仓库需要保存一份,由多个部门共享,以降低部门间数据倒转带来的业务复杂度。2、云原生架构核心技术分析。我们目前的亚行有两层结构。上层是主节点,下层是计算节点。云盘的弹性容量是用来解决存储弹性问题的。这种架构的主要痛点是计算节点是有状态的。一旦有状态化,在扩容过程中就会面临数据迁移缓慢的问题。因此,在新的云原生架构中,我们将计算节点从有状态改为无状态或弱状态。状态包括真实数据和元数据。真实数据放在共享存储中,元数据放在分布式KV中。存储和计算完全解耦,无状态,可以快速实现秒级弹性。能力。在开发和测试过程中,发现了很多性能问题。第一个问题是,原来的云盘或者本地盘换成共享存储后,共享存储的响应性能比本地盘差一到两个数量级。我们使用分布式多层缓存来解决共享存储的性能问题。第二,共享存储有很好的吞吐能力,但是存储引擎需要适应这个特性,所以我们设计了行列缓存架构,针对高吞吐做了大量的性能优化。对于普通客户来说,最重要的是降低成本。由于使用的共享存储的价格比原来使用本地盘或者云盘的成本要低一个数量级,所以整个原生版本的成本会大大降低。云原生架构有四个特点:第一个特点是弹性,可以实现计算和存储的独立伸缩。二是实时,保留实时能力,支持高并发实时写入。三是高通量,具有良好的多维分析性能,线性可扩展性。四是数据共享,可以实现跨实例数据的实时共享。首先介绍一下扩容过程。假设一开始只有两个计算节点,数据有八个分片。扩容前,每个计算节点负责四个分片的数据,映射关系存储在元数据库中,所有数据放在共享存储上。扩容过程是将一个节点到四个分片的映射关系改为一个节点到两个分片。扩容过程不需要数据迁移,只需要修改元数据。整个过程可以实现秒级弹性。高吞吐量的实时写入是实时数仓的一个重要特征。主要通过以下三种方式:1.批处理和并行化提高吞吐量。2.本地行存储表实现事务ACID。3.分布式缓存加速。另一个重要的技术点是离线和在线集成的行列混合存储。我们设计了一个面向吞吐量的行列混合存储引擎,以充分发挥共享存储的高吞吐量。行列混合存储利用数据的有序性支持下推计算,实现10倍以上的性能提升。同时,针对任意列查询的多维度分析场景,设计了多维度排序功能,保证多维度任意查询都能实现毫秒级响应。ADBPG最初采用火山计算模型,在云原生版本中将火山模型升级为向量化模型。矢量化引擎的本质是将原来的逐个计算变为批量计算,对每批数据采用列式矢量化计算。与火山模型相比,矢量化引擎具有CPU缓存命中率高、流水线并行、函数调用开销低、内存碎片减少等优点。测试结果表明,矢量化计算引擎的性能比原始火山模型提高了三倍以上。计算存储分离架构的第一个演化特征是数据共享。元数据分为系统表和可见性表,存储在KV系统中。共享实例将元数据同步到KV系统,共享实例实时查询KV系统获取最新表的元数据和可见性信息,然后根据元数据访问共享存储中的数据,从而实现真正的-时间数据共享。下一个进化特征是细粒度弹性。通过前面介绍的计算存储分离架构,实现了无状态的计算节点。下一步是将节点细分为存储服务节点和计算节点。存储服务节点主要负责数据的实时写入和缓存,计算节点是完全无状态的,从而实现极致的弹性。3.EvolutionRoadmap明年的演化路径。10月升级云原生架构,支持极速扩缩容。12月,跨实例数据共享功能上线,支持分时弹性功能。明年6月推出存储服务和无状态计算。10月22日,支持运营商级别的弹性和自动挂起/启动功能。原文链接本文为阿里云原创内容,未经许可不得转载。
