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

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
密钥管理服务KMS,1000个密钥,100个凭据,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 层面,通过多副本查询扩展行业缓存,做到在线事务和分析一套系统。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
8 2
|
1天前
|
弹性计算 监控 Cloud Native
云原生架构下的性能优化实践与策略####
在数字化转型加速的今天,云原生技术以其弹性、敏捷和高效的特点成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,通过具体案例分析,揭示了性能优化的关键路径与策略,为开发者和企业提供了可操作的实践指南。 ####
|
5天前
|
监控 Cloud Native 测试技术
云原生架构下的性能优化与实践####
【10月更文挑战第21天】 本文深入探讨了在云原生环境下,如何通过一系列技术手段和最佳实践来提升应用性能。文章首先概述了云原生架构的基本原则与优势,随后详细分析了影响性能的关键因素,包括容器编排、微服务设计、持续集成/持续部署(CI/CD)流程以及监控与日志管理。针对这些因素,文中不仅介绍了具体的优化策略,如资源请求与限制的合理配置、服务间通信的高效实现、自动化测试与部署的优化,还结合案例分析,展示了如何在实际项目中有效实施这些策略以显著提升系统响应速度和处理能力。此外,文章还强调了性能测试的重要性,并提供了几种常用的性能测试工具和方法。最后,总结了云原生性能优化的未来趋势,为开发者和架构师
10 2
|
5天前
|
人工智能 运维 Cloud Native
上新丨统一多层网关架构系列视频课程
《统一多层网关架构系列视频教程》将于 11 月初上线。通过该课程,您将体系化了解应用网关的发展趋势和最佳实践。课程配套资料或服务包括 PPT(PDF 版)、演示 Demo、视频回放和群内答疑等。
|
5天前
|
运维 Cloud Native API
云原生时代下的微服务架构实践
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术正以前所未有的速度重塑软件开发和运维的模式。微服务架构作为云原生的重要组成部分,其设计哲学、技术栈选择以及与传统单体应用的根本区别成为了现代软件工程讨论的焦点。本文将深入探讨微服务架构的核心概念,通过实际案例分析其在云平台下的应用,并分享在实施过程中的经验教训,旨在为读者提供一套清晰的微服务架构实践指南。
|
6月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
515 1
|
6月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
145 0
|
开发工具 Android开发
Mac 安卓(Android) 配置adb路径
Mac 安卓(Android) 配置adb路径
792 0
|
3月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
69 0
|
6月前
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
325 5