【视频】云原生数据仓库 AnalyticDB PG 解析与实践(下)|学习笔记(一)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 快速学习【视频】云原生数据仓库 AnalyticDB PG 解析与实践(下)

开发者学堂课程【数据仓库 ACP 认证课程【视频】云原生数据仓库 AnalyticDB PG 解析与实践(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/928/detail/14627


【视频】云原生数据仓库 AnalyticDB PG 解析与实践(下)


内容介绍:

一、数据同步: ADBPG  DTS 同步链路

二、数据同步监控—用户侧

三、数据同步:链路典型的问题排查

四、控制台监控

五、云监控预警

六、SQL 性能调优: Cascade 框架 SQL 优化器

七、SQL 性能调优:向量化计算引擎

八、SQL 性能调优:SQL 诊断

九、SQL 性能调优:执行计划两种收集模式

十、SQL 性能调优:执行计划

十一、SQL 性能调优:可视化执行计划

十二、SQL 性能调优:如何发现问题

十三、SQL 性能调优:通过索引提升查询性能

十四、SQL 性能调优:消除 Redistribute Motion

十五、SQL 性能调优:避免下盘

十六、SQL 性能调优:锁的检测及处理

十七、SQL 性能调优:空间回收

十八、SQL 性能调优;避免数据倾斜

十九、SQL 性能调优:数据倾斜-用户控制台排查

二十、SQL 性能调优:数据倾斜-SQL 排查

二十一、SQL 性能调优:数据倾斜的原因和解决

二十二、演示1:通过 DTS 做数据同步

二十三、演示2:增加监控报警规则

二十四、演示3:排查解决数据倾斜

二十五、真题讲解

 

本次介绍的是核心功能解析与实践的后半部分的几个功能,主要包括第一部分是数据同步,第二部分是监控报警使用和监控巡检,第三部分是SQL的调优。第四部分会对上面的功能进行演示,第五部分会把一些相关的真题进行讲解,最后可以自由提问。

 

一、数据同步: ADBPG  DTS 同步链路

ADBPG数据同步主要使用DTS,DTS是阿里云的数据同步的服务,同步的数据源来自于上游的数据库系统,一般是RDS或mysql RDSPG这种关系型数据库,一般ADBPG作为数据仓库,它是作为目的库来进行同步的。

DTS完成的主要是订阅和捕捉源数据库全量和增量的数据,并且能够转换为目的库ADBPG所能使用的语法。然后把这些数据插入到目的库里,当然为了优化性能它在内部进行自动攒批,会调用一些copy或者insert命令进行批量写入。

ADB PG使用同步链路的目标场景需要重点关注一下:数据在线迁移(源库和目的库都是在线的)、实时同步(比如说源库的数据有业务系统在进行数据的变更,它可以基本无延时的情况下同步到目的库(ADBPG库)),还有一个场景就是异地灾备(读写分离、双活),主要是把两个库之间进行一个串联。此处重点关注ADBPG里面需要注意的一些方面。

l 每个表列数最多1600列

l 每个表行数最多2^48行

l 部分支持修改字段类型

如int- > bigint

如bigint- > decimal

l 非法值(ADBPG不能识别的值,会导致链路报错)不支持写入(如2020-05-00 00:00:00、 100:00:00等)

l 不支持的类型同步数据不可使用(如GEOMETRY、POINT、LINESTRING、 POLYGON等类型)

l 列/表/数据库名称最长63个字符

l 不支持unsigned类型

image.png

其他详细参考ADBPG内核限制( https://help.aliyun.com/document detail/157891.html )

DTS使用限制( https://help.aliyun.com/document._detail/149450.html )

简单介绍一下DTS内部原理,它是在内部进行自动攒被,对于存在大量Update delete场景,由于无法进行自动攒被,内部转化成copy命令进行入库会变成insert。

这样会影响性能,尤其是在包括热点行更新的情况下,性能会大幅度下降,所以这会在使用的时候需要特别注意,尽量让数据能够批量进入。

 

二、数据同步监控—用户侧

image.png介绍一下如何对数据链路进行监控。在DTS侧有专门的控制台进行监测,这里重点是在ADBPG一侧控制台界面的监控报警菜单里面,这个界面可以看到,实例运行状态、性能负载,包括协调节点的连接数,存储的总的水位。

还有计算节点的个数,还包括存储空间,重点关注计算节点的连接数和协调节点的连接数。

协调节点连接数之前是有比较大规模的一个入库,导致连接数有急剧的上升,图像上能看出明显的波峰,通过这个界面可以很好的对DTS链路的情况进行监控。尤其还要关注CPU的使用率和吞吐率,一般来说如果是单纯利用DTS进行数据同步的场景,那么master的连接数包括CPU的数量都是相对比较恒定的,它和在线业务是不太一样的,一旦有链路建立成功之后,它的变化是非常少的。

但如果突然连接数或者CPU的利用率发生了比较大的波动,那么就需要关注这里面出现的状况,尤其是CPU的利用率大规模降低的时候,需要检查一下数据链路是否工作正常。

 

三、数据同步:链路典型的问题排查

1.热点行更新

image.png现象:监测到CPU利用率有了大幅度的下降,出现了明显的波谷,这个时候上流没有达到限流,入库RT时间不高,节点负载也不高,但是速度就是不提不上来的现象。

这个时候就要对其进行系统性的排查,先检查master到DTS的链路有没有明显变化,从业务的上游系统监控来看,如果负载没有明显变化,那么就要怀疑是否存在热点行的更新,需要做进一步的排查。通过一系列视图排查发现是否出现有针对热点的锁和锁的等待这种情况。

如果无法通过视图直接观察,也可能是冲突情况不明显,这就需要询问源库的客户,是不是有热点行更新的现象,也可以找后台的值班去观察一下后台数据库的日志,包括一些审计的日志,它有没有出现频繁的update/delete现象。

如果一旦确定是热点行引起的,从DTS的话它是无法避免的,也无法彻底的从DTS工具层进行解决,如果确定那就需要去关注整体性能,并且建议客户把热点行更新,把这个场景从同步对象中删除,或者集中到某一个时间点进行集中化处理,这是针对链路典型问题的排查方法。

2.排查方式

执行任务诊断,非常严重的热点行更新是会被诊断到的

咨询客户源库是否有热点行更新的情况

此问题排查较复杂,可以找DTS值班同学协助排查

3.优化方式

目前DTS没有很好的处理方式,一旦确认源库有热点行更新情况,并且关注整体性能,建议客户把热点行更新的表从同步对象中去掉。

 

四、控制台监控

控制台监控可以从数据库Master(协调节点)和计算节点两个方面,对用户数据库实例的CPU 、内存、磁盘IO和空间,连接数实现监控。具体如下:

●控制台监控提供最近7天的监控数据。

●监控汇总提供master的监控信息,包括CPU和内存利用率、总连接数、I0吞吐和磁盘空间监控

●计算节点监控提供计算节点的监控信息,包括CPU和内存利用率,读写IOPS ,磁盘空间

image.png控制台可以看到每一个节点的运行状况,对节点设置标签可以方便用户对节点进行过滤和监控,如果master节点和CPU利用率比较高,就要排查具体升高的原因,不排除是节点故障原因导致的。

另外需要关注的是从监控控制台关注的是一个存储的水位,存储的水位会随着业务的增加而缓慢增加,如果存储水位升到一定的比例,按现在来说就是90%以上的时候,整个集群会进入到一个只读模式,这样就会影响写入业务,进入只读模式是为了保护数据库磁盘不会达满。当达到90%的时候,就需要进行处理,可以删除一些历史数据,或者是提前联系厂商对集群进行扩容,可以考虑这两个方法。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
1天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
3天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
22 4
|
2天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
4天前
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用
|
7天前
|
Kubernetes Cloud Native 调度
云原生批量任务编排引擎Argo Workflows发布3.6,一文解析关键新特性
Argo Workflows是CNCF毕业项目,最受欢迎的云原生工作流引擎,专为Kubernetes上编排批量任务而设计,本文主要对最新发布的Argo Workflows 3.6版本的关键新特性做一个深入的解析。
|
13天前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
43 10
|
9天前
|
监控 Cloud Native 持续交付
云原生技术深度解析:重塑现代应用开发与部署范式####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在现代软件开发中的重要性。通过剖析容器化、微服务架构、持续集成/持续部署(CI/CD)等关键技术,本文旨在揭示云原生技术如何促进应用的敏捷性、可扩展性和高可用性,进而推动企业数字化转型进程。不同于传统摘要仅概述内容要点,本部分将融入具体案例分析,直观展示云原生技术在实际应用中的显著成效与挑战应对策略,为读者提供更加丰富、立体的理解视角。 ####
|
12天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
49 3
|
15天前
|
PHP 数据安全/隐私保护 开发者
PHP 7新特性解析与实践
【10月更文挑战第20天】本文将深入浅出地介绍PHP 7的新特性,包括性能提升、语法改进等方面。我们将通过实际代码示例,展示如何利用这些新特性优化现有项目,提高开发效率。无论你是PHP新手还是资深开发者,都能从中获得启发和帮助。
|
15天前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。