云原生数仓 ADB PG 产品和架构介绍视频(二)| 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 快速学习云原生数仓 ADB PG 产品和架构介绍视频

开发者学堂课程【云原生数据仓库 AnalyticDB PostgreSQL 产品入门:云原生数仓 ADB PG 产品和架构介绍视频(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1210/detail/18177


云原生数仓 ADB PG 产品和架构介绍视频


七、ADB PG 的核心能力

(1)ADB PG 执行引擎

通过介绍 ADB PG 的技术架构,模块组件、运行机制等,大家应该对 ADB PG 有了一个基本的认识。

然后接下来将去了解一下 ADB PG 的一个核心能力。首先向大家介绍一下 ADB PG 的执行引擎,ADB PG 搭载了自研的向量执行引擎,针对火山模型的缺点和现代硬件的特点,结合向量化计算,其实编译等技术专注于执行性能,特别是 olap 场景的场景的一个执行性能提升。 ADB PG 重点投入去做了一个向量化计算引擎,原生 PG 计算引擎它采用的是一个火山模型,就是说对每出来的一条数据会经过对应的算子数据计算。这样如果有一条数据对于每个算式来说,就要去执行1亿次计算子函数调用,而这一次1亿次的算子函数调用就会带来非常大的函数本身调用的开销。第二个问题是中间涉及到的一些表达式计算,这些表达式计算都会转异常对应的一个函数调用数,对于复杂的表达式就会变成复杂的一个函数函数调用数,这种调用数的每次迭代计算都会带来非常大的开销,也很可能会导致 CPU 的性能瓶颈,导致了整个计算过程非常大。这种场景对于TP场景来讲的话,因为数据量比较少,问题显现的不是很严重,对于AP 场景来说的话,对性能就有非常大的影响。

image.png

然后所以在三年前就开始了 ADB PG 的向量化计算的研发,消除了火山模型带来的一些包括碎片化的那种分配,然后采用了功能性的技术,把所有的表达式计算可以打平成一个算子函数来计算。同时在计算方面采用CPU的单指令多数据的计算,技术可以实现一条指令多数据的并行计算,对整体性能有非常大的提升。同时在整体引擎方面还采用了即时编译技术和内存管理优化,解决了高级语言抽象程度过高带来的性能开销以及重复的内容,申请和释放和碎片化的内存分配,

(2)ADB PG 存储引擎

ADB PG 存储引擎方面是基于 PG 实现的,不仅继承了 PG 存储引擎可扩可扩展,高可用事物强能力,还具备了以下几点特性。

第一点是支持多种表类型,存储引擎同时支持行存表和内存表,行程表则是用于高频数据的增仓改和点查的场景,列成表则适用于复杂的 AP 分析场景,可根据业务场景来灵活的选择表类型。

第二是知识丰富的索引类型。支持所有类型,在点长和低选择率场景采用索引可显著的提升,数据的检索性。

第三是支持数据压缩,这是多种的数据压缩算法,然后高压缩的高压缩率可显著的降低数据的重组成本,并可以通过高贷高带宽来解高带光解压缩性能来降低 iOS 时间。

第四是支持排序及粗糙级的过滤,建表的时候可以指定排序字段,数据通过排序以后,一方面可结合超级过滤降低l的数数据量,另外排序也将提升数据压缩率以及降低存储成本。

第五是支持数据分区,支持数据多几个分区,且可采用像 value 或者范围进行分区,常用的场景为按时间进行分析,然后可明显地降低 io 的数据量。同时分区支持混合存储。

第六是支持外表的 oss 存储数据可以远端的低成本的存储与 oss 上查询和写入行为与本地比较完全一致。

 image.png

(3)Analytic DB Postgre SQL 性能-优化器

接下来讲一下 cascade 的框架的生活优化器,像传统的传统的单机数据库都是采用自下而上的优化器,它的好处是说它的效率是非常快的,但是它大同时也带来了很多问题,就是很容易去陷入一些局部的查询。但是对于 oled 场景,它的 circle 可能是非常复杂的,像有些项目一个 circle 可能就上造了,这种场景下如果遇到一个差的图形计划,可能就会带来灾难性的一个后果。所以 ADB PG 升级采用了 cascade 的框架的优化器,它的基本策略是这样的,说它是采用自己向下的一个方式,这种方式有一个好处就是不容易去陷入一个局部的最优解,可以非常容易的去找到全局的一个最优解,这样的话就可以保证用户无论写入什么样的复杂查询,我们都可以得到一个非常优质的执行计划,这样就可以大幅度的降低用户的使用难度,避免了由于一些复杂查询最新计划差,导致的一个系统资系统资源不足的一个问题。

同时在 cascade 的框架优化器的基础上,也增加了一些功能,就是说用户可以自定义一些规则,通过这些规则,可以进一步减少整个执行计划的搜索空间,既可以提升优化器的效率,也可以更容易的得到一个最优的执行计划。

image.png


八、Analytic DB Postgre SQL 成本

讲完优化器,我们看一下 ADB PG 在成本方面都是哪些特性, App 采用的计算节点,本机重组的模式,就是行存月存、非遗式存储、固态硬盘、机械硬盘等多种存储介质。在此基础上,ADB 还提供了重组压缩的能力,oss 的外表存储能力,而共享存储格式,存储分层等能力,满足用户在不同场景的一个需求。

image.png

(1) 存储压缩

首先我们看一下刚才提到的存储压缩方面,ADB PG 支持用户去指定压缩算法,然后除此之外,ADB PG还支持自动压缩 ADB PG 内核引擎可以根据数据特点去选择一种最合适的压缩算法,也来到来达到压缩比和计算性能的一个最佳平衡。然后在压缩和解压的过程中,我们用到了非常多的技术,像一些变形解压,还有一些性能指令加速,可以利用单指令多数据的方式去加速整个解压的过程。像常见的 LZ4 ZLIB , ADB PG 都是支持的。

image.png

(2)外表存储

接下来我们看一下 ADB PG 的外表存储,除内部存储外,ADB PG 还支持的外表方式去访问 oss 和 Hadoop 的存储数据,对象重组是阿里云推出的存储服务,具备数据量大、成本低、安全性高,能够满足多种场景的存储需求。

ADB PG 还支持通过外表的方式对 oss 重组服务进行访问,就是对 oss 数据进行分析操作,同时也支持数据导出到oss,目前支持的数据格式,包括 oss ODPS ,支持分区,同时支持部分的过滤下飞操作,然后此外支持通过外表的方式去访问。这个 Odps 也是 master computer 的数据。

image.png 


九、Analytic DB Postgre SQL 的安全性

介绍完存储,接下来我们看一下  APP 的一些安全特性。网络和数据链路方面的话,ADB PG 既作为云原生分布式系统,拥有非常高的安全性,首先每个新建实力使用专有网络,也称为 vBC 是一种隔离的网络环境,安全性和性能均高于传统的经典网络。另外根据使用场景可选择是否公开公网地址,以减少潜在的安全风险。其实也支持只允许白名单上的 IP 列表或者 IP 段去访问。为了提高数据链路安全性,支持启用 SSL 加密提供且提供一些相关的证书给需要的应用服务,甚至是启用双向的任职证书来进一步提高安全等级。在用户方面,ADB PG 支持两种数据库,用户账号,高权限账号和普通账号,高权限账号拥有数据库的所有操作权限,普通账号拥有已授权数据库的所有操作权限,每个用户账号的密码都将使用 MD5 哈希算法来加密保存,也来保证一密码明文不会被泄露。权限体系方面,展示了 ADB PG 的一个对象级别的权限,包含了用户、数据库、Schema、函数、序列以及表的权限,对象级别的权限,根据每个对象的类型所赋予的权限都不一样。想代表 people 权限可以有 appe 的 slayer、嗯 slake、delete 等,而 function 就只有 IQ 的具体每个对象所对应的权限集合,还是请各位参考一下 PC 的官方文档。然后这里贴了一个链接,

image.png

SQL 审计就是用户通过做过的任何一些 SQL 查询,然后 ddldmdml 操作等这些操作我们都会记录下来,然后放在对应的一个插件功能上,用户可以通过 SQL 审计工具去查看各种操作的记录。

整个 SQL 审计是基于一个日志的形式,所以对系统的性能影响是非常小的。同时数据也是支持加密的,在公共云上是采用支持采用云盘的加密。

image.png


十、Analytic DB Postgre SQL 的扩展性

看一下 ADB PG 的一个在线扩容,ADB PG 拥有两种的水平扩展方式,一种是原地扩容,一种为迁移功能。

原地扩容就是在原有实力基础上增加计算节点,而这种方式通过一致性函询算法来用,所以扩充时挪动的数据量相对较少,然后扩容速度更快,而迁移扩容则是通过新建一个实例,然后将原有的实例数据迁移过去的方式来实现扩容,这种方式相对于原地扩容的成本比较高,但是这种方式更加灵活,可以实现跨 region 和跨可用区的扩容。然后下面这张图展示了一个原地扩容的一个基本思路,左边的话是原来有4个节点,然后现在增加了两个细节的新的节点,扩充任务发起之后,管控部位会首先执行一系列的步骤来准备购物环境,就比如创建机器的用户,打通新老机器的免密,刷新白名单,生成配置文件等,然后下发命令实例执行扩容。实际扩容主要包括三个步骤,第一个是 segment 初始化阶段,这一步是向集群中增加新的节点,主要包括初始化新节点与同步开的 logo,在这个阶段会短暂的去所开的 logo 表,以保持新旧数据的新旧的新旧节点的原数据一致,持久战过程中会锁住 logo,时长的话是与扩容的节点数是相关的,然后这一步操作完之后,新的计算资源就被加到了当前的实例中,之后创建的表的数据分布到所有节点上,但存量的数据仅分布在旧的节点中,然后就等待下一步的数据从分布。第二步就是从分布的阶段,此阶段会遍历所有的带扩容的表,然后对每张表执行重分布,之前从分部会对表加八级锁,直到双方部的完成,意味着在表从分布期间是不可读写的,但其他表是可以正常出现的。然后后来优化了这个过程,降降低了所有的级别,使得从分部期间是可读的。但在交换数据文件之前的话,会短暂的升级到8级锁。最后一个就是清理阶段,这个步骤主要是去清理扩容产生的临时文件,对实例是没有影响的,通常也不会失败的。

image.png


十一、Analytic DB Postgre SQL 的生态集成

介绍完 ADB PG 众多的核心能力,我们来看一下 ADB PG 的丰富的一个生态集成,ADB PG 是可以支持多数 Excel 工 具,像阿里云的 Data works 数据集成,开源的像 Kettle Informatica,这些都是支持的。 Bi 的一些数据可视化工具,Quickbi 和 Datav 等,这些都是可以实现无缝无缝的对接。同时可以与业界流行的流式处理系统,就这类系统,大数据类系统,传统的数仓以及数据库,数据库类的系统,都可以互通有无。

image.png

 

十二、Analytic DB Postgre SQL 的未来展望

最后我们看一下 ADBPG 的一个未来规划,然后本次介绍了云原生数仓 ADB PG 当前的一个基础架构,模块组件以及交互使用场景、产品形态以及性能、成本、扩展性、安全性、高级扩展等核心能力和生态工具集成。未来云原生数仓ADB PG 还会持续在原生架构和特性性能成本优化以及 hip 场景三个方向进行技术投入,不断打磨。在云原生层面,像存储计算分离架构演进,提供秒级的扩收容和按需的弹性弹性能力。同时在线热升级做到业务完全无感知。在性价比方层面,通过执行引擎,优化器和存储引擎的持续优化,打造极致性能。这是写入查询高通图低延时多并发,同时引入实时物化视图进行查询,结果及缓存等功能,做到特定层场景的定向优化,通过分层存储等功能持续降低使用成本。在 HTAP 层面,通过多副本查询扩展行业缓存,做到在线事务和分析一套系统。

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
3天前
|
Cloud Native Java 微服务
使用Java构建可伸缩的云原生应用架构
使用Java构建可伸缩的云原生应用架构
|
4天前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
20 2
|
6天前
|
运维 Cloud Native Serverless
云原生架构下的微服务演进之路
在数字化浪潮的推动下,企业IT架构正在经历一场深刻的变革。从传统的单体应用到分布式系统,再到今日的云原生微服务架构,每一步的跃迁都伴随着技术革新与业务需求的不断升级。本文将深入探讨云原生环境下微服务架构的演进路径,分析其背后的推动力及面临的挑战,并结合最新的研究成果和行业案例,为读者揭示云原生时代下微服务的最佳实践与未来趋势。
|
6天前
|
运维 Cloud Native 云计算
云原生架构的演进:从微服务到无服务器计算
【6月更文挑战第30天】 在数字化转型和技术创新的浪潮中,云原生技术以其灵活性、可扩展性和成本效益成为企业IT战略的核心。本文将探索云原生架构的关键概念,从早期的微服务架构到现代的无服务器计算模型,揭示这一演变如何推动企业更高效地开发、部署和管理应用程序。我们将深入讨论这些技术背后的原理,以及它们如何帮助企业实现敏捷性、弹性和自动化运维。
|
6天前
|
运维 监控 Cloud Native
云原生架构的演化与实践
【6月更文挑战第29天】云原生技术,作为现代软件开发和运维的前沿阵地,其核心理念在于构建可弹性扩展、高度可靠且易于管理的系统。本文将深入探讨云原生架构的发展脉络,解析其关键技术组件,并通过实际案例展示如何将这些原则应用于日常开发和运维中。我们还将讨论在采纳云原生技术时所面临的挑战及应对策略,以期为读者提供一套全面而实用的云原生解决方案。
122 1
|
8天前
|
运维 Kubernetes Cloud Native
云原生架构在现代企业中的转型作用与挑战
在数字化转型的浪潮中,云原生技术已成为推动企业IT架构现代化的关键力量。本文将深入探讨云原生架构的定义、核心价值及其在现代企业中的应用实例,同时分析企业在采纳云原生过程中面临的主要挑战和解决策略。通过引用最新的行业报告和案例研究,文章旨在为读者提供关于如何有效实施云原生策略的洞见。
|
8天前
|
Kubernetes Cloud Native Serverless
云原生时代的微服务架构演进之路
【6月更文挑战第28天】在数字化转型的大潮中,企业不断寻求更高效、灵活的软件开发与部署方式。云原生技术因此应运而生,它不仅改变了应用的开发模式,也重塑了微服务架构的未来。本文将探讨云原生环境下微服务架构的演进路径,包括容器化、服务网格、无服务器计算等关键技术的应用与挑战,并展望未来微服务架构的发展方向。
|
9天前
|
运维 Cloud Native API
云原生架构的演进与未来
本文旨在深入探讨云原生架构的演进历程,以及其对未来技术发展的影响。通过分析云原生技术的关键组成部分,如容器化、微服务、自动化管理和声明式API,并结合最新的行业报告和案例研究,揭示云原生如何推动现代软件开发和运维的变革。文章还将预测云原生技术的未来趋势,为读者提供对云原生架构深层次理解的同时,展望其带来的潜在机遇与挑战。
27 1
|
9天前
|
存储 SQL BI
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
|
9天前
|
SQL 存储 运维
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
随着网易游戏品类及产品的快速发展,游戏数据分析场景面临着越来越多的挑战,为了保证系统性能和 SLA,要求引入新的组件来解决特定业务场景问题。为此,网易游戏引入 Apache Doris 构建了全新的湖仓一体架构。经过不断地扩张,目前已发展至十余集群、为内部上百个项目提供了稳定可靠的数据服务、日均查询量数百万次,整体查询性能得到 10-20 倍提升。
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构

热门文章

最新文章