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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习【视频】云原生数据仓库 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
相关文章
|
2天前
|
PHP 开发者
PHP 7新特性深度解析与实践应用
【9月更文挑战第17天】本文将深入探讨PHP 7的新特性及其对开发者的实际影响,同时通过实例演示如何有效利用这些特性优化代码和提高性能。我们将从类型声明的增强开始,逐步深入到其他关键改进点,最后通过一个综合案例展示如何将这些新特性应用于日常开发中。
|
2天前
|
消息中间件 Java Apache
RocketMQ消息回溯实践与解析
在分布式系统和高并发应用的开发中,消息队列扮演着至关重要的角色,而RocketMQ作为阿里巴巴开源的一款高性能消息中间件,以其高吞吐量、高可用性和灵活的配置能力,在业界得到了广泛应用。本文将围绕RocketMQ的消息回溯功能进行实践与解析,分享工作学习中的技术干货。
18 3
|
2天前
|
设计模式 人工智能 算法
PHP中的设计模式:策略模式的深入解析与实践软件测试中的人工智能革命:提升效率与准确性的新篇章
在PHP开发中,理解并运用设计模式是提升代码质量和可维护性的重要途径。本文聚焦于策略模式(Strategy Pattern),一种行为型设计模式,它允许在运行时选择算法或业务规则。通过本文,我们将深入探讨策略模式的定义、结构、使用场景以及如何在PHP项目中有效地实现和利用策略模式。不同于性能优化等技术性摘要,本文着重于提供对策略模式全面而实用的理解,助力开发者编写出更加灵活和可扩展的应用程序。 本文深入探讨了人工智能在软件测试领域的应用,揭示了其如何显著提高测试过程的效率和准确性。通过实际案例分析,展示了AI技术在自动化测试、缺陷检测及结果分析中的关键作用,并讨论了实施AI测试策略时面临的挑
12 3
|
12天前
|
API 云计算 开发者
使用宜搭平台带来的便利:技术解析与实践
【9月更文第8天】随着企业信息化建设的不断深入,业务流程自动化的需求日益增长。宜搭平台作为一种高效的应用构建工具,为企业提供了快速搭建各类业务系统的可能。本文将探讨使用宜搭平台给企业和开发者带来的便利,并通过具体的代码示例展示其优势。
47 11
|
6天前
|
PHP
PHP 7新特性深度解析与实践
【9月更文挑战第13天】本文将深入探讨PHP 7的新特性,包括性能提升、语法改进、错误处理等方面。我们将通过实例代码来展示这些新特性的使用方法和优势,帮助您更好地理解和应用PHP 7。
|
11天前
|
编译器 PHP 开发者
PHP 8新特性解析与应用实践
PHP 8作为PHP语言的最新版本,带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 8中的JIT编译器、联合类型、匹配表达式等关键更新,并通过实例演示如何在项目中有效利用这些新工具,帮助开发者提升代码质量和执行效率。
|
13天前
|
C# Android开发 开发者
Uno Platform 高级定制秘籍:深度解析与实践样式和模板应用,助你打造统一且高效的跨平台UI设计
【9月更文挑战第7天】Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 创建跨平台 UI 应用,覆盖 Windows、iOS、Android、macOS 和 WebAssembly。本文介绍 Uno Platform 中样式和模板的应用,助力开发者提升界面一致性与开发效率。样式定义控件外观,如颜色和字体;模板则详细定制控件布局。通过 XAML 定义样式和模板,并可在资源字典中全局应用或嵌套扩展。合理利用样式和模板能简化代码、保持设计一致性和提高维护性,帮助开发者构建美观高效的跨平台应用。
27 1
|
20天前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
55 0
|
20天前
|
开发者 安全 UED
JSF事件监听器:解锁动态界面的秘密武器,你真的知道如何驾驭它吗?
【8月更文挑战第31天】在构建动态用户界面时,事件监听器是实现组件间通信和响应用户操作的关键机制。JavaServer Faces (JSF) 提供了完整的事件模型,通过自定义事件监听器扩展组件行为。本文详细介绍如何在 JSF 应用中创建和使用事件监听器,提升应用的交互性和响应能力。
18 0
|
20天前
|
开发者 Java
JSF EL 表达式:乘技术潮流之风,筑简洁开发之梦,触动开发者心弦的强大语言
【8月更文挑战第31天】JavaServer Faces (JSF) 的表达式语言 (EL) 是一种强大的工具,允许开发者在 JSF 页面和后台 bean 间进行简洁高效的数据绑定。本文介绍了 JSF EL 的基本概念及使用技巧,包括访问 bean 属性和方法、数据绑定、内置对象使用、条件判断和循环等,并分享了最佳实践建议,帮助提升开发效率和代码质量。
26 0

热门文章

最新文章