《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版解析与实践(上)——二、产品架构及原理

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版解析与实践(上)——二、产品架构及原理

1. 产品架构

 

AnalyticDB PostgreSQL版具有MPP水平扩展,海量数据实时分析,兼容Oracle语法生态,高可用HA架构,支持分布式事务等优势。

 

image.png

 

AnalyticDB PostgreSQL具有协调节点和计算节点:

 

多活协调节点:主要负责Cascade架构SQL优化器和全局分布式事务管理。

计算节点水平扩展:计算任务全并行执行、新一代向量化计算引擎(包括Laser引擎和PG计算引擎)、非结构化数据检索。

高可靠存储引擎:本地数据双副本、支持行存储/列存储、具备高吞吐导入/导出。

分布式事务支持:支持分布式事务,保证强一致性,支持SI/RC隔离级别。

 

2. 模块组件

 

AnalyticDB PostgreSQL版的架构主要包含Master Node和Compute Node两大组件,中间通过Interconnect进行互联通信和数据交换传输。

 

1) Master Node

 

负责客户端连接协议层接入,认证和鉴权, SQL解析,重写,优化,和执行分发协调。

全局事务管理器(Global Transaction Manager)负责全局事务ID、快照生成和分布式事务管理。

全局元数据目录(Global Catalog)则记录了用户,库,表,视图,索引,分布分区等数据库对象的元数据信息。

 

image.png

 

2) Compute Node

 

Compute Node包含了组Segment。

部署形态上可以是物理机,VM或者容器。

 

3) Segment

 

Segment是负责具体的SQL执行和数据存储节点。

执行引擎通过向量化和及时编译(JIT)等技术,相比传统逐行计算的火山模型获得数倍性能提升。

数据和索引(Data&Index)支持行存表,列存表,和外表以及相应索引。

 

image.png

 

SQL在执行查询时,组件之间的交互

 

接受客户端连接,用户认证鉴权。

语法语义解析,生成解析树。

根据语法解析树优化并生成执行计划。

分配集群segment并下发执行计划,协调执行并返回最终结果。

Segment QE并行执行计划中的每个具体算子(Scan,Join,etc.),在不同QE间交换数据(Motion)。

Sacan算子读取数据和索引。

Master QE负责第二阶段聚集和最终结果收集(Gather Motion)。

 

3. 数据模型

 

image.png

 

ADB PG属于对象-关系型数据库,数据库的对象通常包括:表、视图、函数、序列、索引、分区子表、外部表等,而对象-关系型则进一步支持用户自定义对象和它的属性,包括数据类型、函数、操作符,域和索引,甚至复杂的数据结构也可以被创建,存储和检索。

 

1) 支持行存表、列存表和外表

 

行存表:数据按行存放,支持主键,B+树索引,Bitmap索引,GIN索引等,适合数据实时写入更新删除,点查,范围查。

列存表:数据按列存放,高压缩比,适合追加写(少量更新删除)场景。

外表:元数据存放在本地系统表,数据存放在OSS,支持的数据格式包括ORC,Parquet,CSV,JSON,支持表分区,其中ORC和Parquet支持列过滤和谓词下推,提升分析性能。

除OSS外,同时也支持Hadoop(HDFS,Hive)外表。

 

image.png

 

2) 表数据分布

 

将表数据均匀的分布到各个节点中,是发挥集群整体IO性能、提升存储容量、优化计算与网络传输效率的关键。

image.png

 

ADB数据库里表的数据分布如图,最左边为Lineitem表,首先需要定义分布键orderkey,然后对orderkey做HASH均匀分布到每个节点上,这样每个节点上都存了表的一部分数据,也可以按照日期做分区,方便查询时做分区的裁剪。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
4天前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
23 1
|
5天前
|
消息中间件 运维 开发者
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,从其核心概念、设计原则到实际部署过程中面临的挑战进行了全面剖析。不同于传统的单体应用,微服务通过将复杂系统拆解为一系列小型、独立的服务,提高了系统的灵活性和可维护性。然而,这种架构的转变也伴随着服务间通信、数据一致性、部署复杂性等新问题。本文旨在为开发者提供一套应对这些挑战的策略,同时分享一些成功案例,以期促进微服务架构的有效实施。 ####
|
7天前
|
缓存 负载均衡 API
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的可扩展性、灵活性及易于维护的特点,成为众多企业后端开发的首选架构模式。本文将深入探讨微服务架构的核心理念,通过具体案例分析其在实际应用中的实践策略与面临的挑战,为读者提供一份详尽的微服务架构实施指南。 ####
|
9天前
|
消息中间件 负载均衡 测试技术
后端开发中的微服务架构实践与挑战####
本文旨在探讨微服务架构在后端开发中的应用实践,深入分析其带来的优势与面临的挑战。通过剖析真实案例,揭示微服务转型过程中的关键技术决策、服务拆分策略、以及如何有效应对分布式系统的复杂性问题。文章还将提供一套评估企业是否适合采用微服务架构的框架,帮助读者更好地理解这一架构模式,并为企业的技术选型提供参考。 ####
|
8天前
|
运维 监控 安全
深入理解微服务架构:设计原则、挑战与实践
深入理解微服务架构:设计原则、挑战与实践
|
5天前
|
安全 测试技术 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过一个虚构项目案例,详细阐述了从单体架构向微服务架构转型的过程、面临的挑战及解决方案。不同于常规摘要的概述性质,本文摘要旨在直接引入核心议题——如何有效实施微服务以提升系统的可扩展性、灵活性和容错能力,同时揭示转型过程中常见的技术陷阱与最佳实践策略,为读者提供实战指南。 ####
13 0
|
12天前
|
测试技术 持续交付 微服务
深入理解微服务架构:从概念到实践
深入理解微服务架构:从概念到实践
|
15天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
45 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
70 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
57 0