《专场8.3-开务数据库自治平台架构解析及应用分享-冯友旭.pdf》由会员分享,可在线阅读,更多相关《专场8.3-开务数据库自治平台架构解析及应用分享-冯友旭.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、开务数据库自治平台架构解析及应用分享开务数据库 高级软件研发工程师冯 友 旭目目 录录CONTENTSCONTENTS01开务数据库自治平台02开务数据库自治平台的参考架构03开务数据库自治平台的设计部署04开务数据库自治实践目录01开务数据库自治平台 SQL 执行缓慢 数据热点问题 资源分配不均匀 数据库系统不熟悉 参数配置过多 慢 SQL 分析 数据分布优化 弹性扩展和控制 用户画像 数据库系统为什么要自治?自动自主自我治理管控根据历史自动学习优化策略什么是数据库自治平台?自动决定有哪些优化的动作?执行计划、参数设置、物理资源、数据分布等自动决定何时执行这些优化?多种配置策略支持02开务数
2、据库自治平台的参考架构 根据数据库提供的内置或第三方周边工具支持。而关于数据存储,索引,持久化,性能等问题全部依赖于DBA的经验和能力。自治的演进Self-Adaptive Databasesearly 2010s 结合使用 DBMS 的成本模型估算,根据规则和特定模型评估来辅助决策,帮助 DBA 提出可能存在的最佳索引、数据分区等方案。具有一定自动化能力,仍然需要 DBA 介入。Self-Tuning Databases 具备预测未来的负载并作出调优 自动选择优化某个特定功能的方法以及这个优化所需要的资源。决定何时优化 面向应用负载的主动式智能化的自治系统,更主动、更自适应性Self-Dri
3、ving Databases 依托云计算,结合云的弹性伸缩特性扩展数据库的存储与计算能力,基于微服务/API 对数据库自治管理。Cloud Databases 1970s-1990s1990s-2000slate 2010s自治平台的特性模型配置参数,补丁/新版本升级,表空间重组,分区,复制模式等01 自主配置自动故障转移,自动对象恢复,预防性告警,自动伸缩等02 自主修复统计信息收集,索引设计,MQT 设计,分区设计,排序缓冲区优化,查询巡查等03 自主优化资源管控,负载管控等04 自主保护行为数据,一致性检查,健康检查等05 自主检查数据库管理系统数据库管理员在线变更数据库行为信息自主数据
4、库管理控制平台信息仓库行为数据操作系统/硬件/网络/应用程序仪表信息存储管理通用服务异常管理器自主管理功能人工干预数据库管理自动化数据库管理开务数据库自治平台的参考架构可视化引擎/规则引擎/ML 引擎变换管理器工作负载管理器03开务数据库的设计部署应用负载 Catalog自治信息仓库开务数据库自治架构的设计部署Node 1应用负载缓存Node 2.Node N文件或表暂存区(快速加载)应用负载 Pseudo Catalog开务数据库自治架构的设计部署Node 1应用负载缓存应用负载系统状态文件或表暂存区(快速加载)业务语句编译画像数据执行画像数据CPU 使用率SQL 语句磁盘活动网络活动.每个
5、计划执行N次开务数据库自治架构的设计部署Node 1应用负载缓存Node 2.Node N文件或表暂存区(快速加载)应用负载 Pseudo CatalogAIS负载分析负载诊断负载调整负载管理负载优化数据库管理员&开发者04开 务 数 据 库 自 治 实 践用户反馈现场反馈 select*from order_line where ol_supply_w_id in(XXX,XXX,XXX)性能执行过慢DBA 分析DBA 根据分析定位为分析行为信息定位,觉得是因为 ol_supply_w_id 列没有索引导致的,所以 DBA 在 order_line 表创建了ol_suppl_w_id_ind
6、ex 的普通索引实际效果虽然添加该索引,优化了上述SQL语句的性能。但是DBA的索引创建引发了更大的问题这张表在实际现场存在海量数据写入,在创建索引前平均每秒性能达到10W/S,但创建索引后,性能急剧下降,降低至只有1W左右。后续研发分析定位,由于该列 ol_supply_w_id 数据特点,导致创建该列普通索引后,写数据热点问题严重,后调整为 hash 索引解决该问题。传统数据库的优化?一次错误的慢 SQL 分析推荐优化方案 应用负载生命周期获取 分析应用负载健康状态 SQL 涉及表信息、语句以及相关执行频率 应用 SQL 数量变化,集群负载程度,影响数据变化应用负载 SQL 分布用户画像应
7、用负载级别画像描述以应用负载为核心,理解应用负载以及应用负载的行为和生命周期,对整个系统进行优化开务数据库的慢 SQL 优化场景异常 SQL 分析,系统问题定位开务自治平台从多个方向判断 SQL 健康状况需要考虑:预估行数偏差过大:查询逻辑计划 operator 与物理计划 operator 输入行数与输出行数之比的差距,如果存在差距过大(超过某一设定值),则说明对应的 sql 健康存在问题。执行时间偏差过大 重试次数过多 等待时间过长 机器学习预估 开务数据库的慢 SQL 优化场景开务数据库引入了 智能统计信息收集,为监控集群重新收集统计信息并结合 Application Insight的分
8、析结果,针对其标识的 不健康 SQL 语句 以及权重排序,对应用负载生成并整合 SQL 引擎所需的缺少或过时的统计信息。AIS开务数据库获取统计信息配置缺少统计信息统计信息冲突生成统计信息目标生成创建统计信息sqls监控对应开务数据库集群执行报告智能统计信息收集(智能统计信息收集系统)开务数据库的慢 SQL 优化场景1.对应用负载内的查询语句根据其重要程度进行排序整合,计算所创建或删除索引在应用负载整体的代价,并评估收益。2.基于启发式的规则建立推荐系统,结合实际运行数据,进行后验式的修正。3.持续监控该索引的运行情况和性能表现,并将操作前后的执行情况对比分析,以验证Index Advisor
9、 的能效。智能索引推荐(基于应用负载信息的索引优化建议)开务数据库的慢 SQL 优化场景针对workload 而非单条慢 SQL,盲目。以应用负载为出发点,掌握系统概况,根据 SQL 重要程度给出系统关键点应用负载级别分析系统画像输出,给出系统薄弱点,慢 SQL 分析等给出应用资源使用情况和优化目标用户画像刻画,输出优化目标指定系统级别的优化计划,比如针对统计信息、针对资源使用等持续关注应用负载生命周期,比较前后变化趋势,实现持续正反馈循环系统级别优化开务数据库自治优化特点开务数据库的其他自治场景优化Hint 手动指定计划支持A集群参数的自动调优B数据分区方式的调整C分布式场景下的优化推荐D.让数据库会思考?Inside-out vs Outside-in?开务数据库自治平台1.0发布关注开务数据库