SlideShare a Scribd company logo
1 of 19
Download to read offline
https://opengauss.org
openGauss⾃治运维能⼒的技术演进
华为⾼斯实验室
王天庆
https://opengauss.org
LOGO
PART 1 AI能⼒整体规划
4
数据库结合⼈⼯智能的不同阶段
openGauss AI发展全景 - AI Framework for Database
AI Framework
AI算法(机器学习/深度学习等)
AI in SQL AI in DBMS AI in Kernel
全技术栈
AI/ ML/ DL
全应⽤场景
SQL/DBMS/Kernel
全⽤户
User/DBA/Developer
深度学习平台 机器学习库 优化算法/⾃研算法
In-DB Analytics
Knobs Tuning Learned Optimizer
Workload
Forecasting
View/ Partition Advisor
Workload Scheduling
Index Advisor
Self Diagnosis/ Healing Learned Index/Storage
Self Assembler
In-DB Optimization
In-DB Operator
Self Security
异构计算 KunPeng X86 Ascend GPU
DB4AI AI4DB
Self Monitor
AI in DBMS:全⾯提升数据库智能化⽔平,应对不同⾏业多样化负载
2 ⾃诊断⾃愈,Always Online
1 ⾃调优,持续⾼性能 3 ⾃组装,全场景数据
丰富的⾏业应⽤、⽀持多样化负载
• 业务场景和负载多样化,单⼀通⽤数据库平
台⽆法满⾜
• 现有的产品研发模式⽆法满⾜定制化交付
组件化⾃组装
• 组件微服务化:基于搜索优化理论,突破组
合空间爆炸问题
• ⾃组装技术:基于最优控制论,软件执⾏栈
轻量化、组件组合最优化
⾃诊断
• 诊断引擎:⽀持AI和Rule引擎结合的基于Trace智
能诊断系统
• 诊断模式库:⽀持常⻅故障模式库,智能可扩展的
模式库
⾃愈&故障预警
• 统计信息恢复:根据系统查询数据STAT⽼化程度
⾃动修复统计信息
• 故障预警:预测软件&硬件故障,故障检测时间⼩
于5s
云化智能调优
• 参数⾃调优:调优时间:天!分钟级;相⽐普通
DBA调参,DB性能提升20%以上
• 索引推荐:基于⽤户的单条语句或批量负载,推荐
合适索引
云化负载预测&在线调参
• 负载预测:准确预测负载性能,⽀撑⽤户⾼效编排
业务、智能负载调度
• 在线调参:结合数据库负载预测模型动态调参,让
数据库执⾏性能最⼤化
参数⾃调优&推荐
资源负载预测
⾃愈⾃诊断架 One-Stack-Fit-All ⾃组装框架
7
openGauss⾃治运维框架DBMind
DBMind
数据湖
openGauss / GaussDB Kernel V5
⾃
治
服
务
层
数
据
采
集
层
SQL诊断和调优
慢SQL发
现
智能查询
重写
数据库运维
离线参数
调优
在线参数
调优
智能巡检
SQL表现
评估
故障规则库
异常节点
修复
慢盘检测
及恢复
分布键推
荐
安全
敏感信息
发觉
索引推荐
时序向量库 算法模型库
⾃动会话
查杀
SQL注⼊
检测
⾃动扩缩
容
智能业务
调度
锁等待关系链路图 机器学习引擎
监督学习 强化学习
⾃动化引擎
规则引擎
数据访问层API
秒级采集
系统资源
信息
分钟级采集
数据库实
例信息
审计⽇志
数据库⽇
志
全量SQL
流⽔
数
据
计
算
层
SQL热点数据访问
异常⾏为
分析
物化视图
推荐
Hint推荐
监
控 趋势预测 历史曲线 扩容提示 异常预警 健康指数 综合报告
...
(数据缓存层)
数据持久化
数据管理平台
数据总线
Self-Monitoring
时序预测模块
异常分析模块
慢SQL发现模块
告警通知管理器
Self-Healing
OS修复⼯具集
SQL⾃优化模块
⾃配置模块
Self-Diagnosis
慢SQL分析模块
Workload异常分析
模块
控制总线
采集数据 下发命令
timer
Agent Agent Agent Agent
Agent (collector):从DB上采集数据、负责执⾏AI Service下发的命令
数据存储平台:负责存储数据,如Prometheus, elastic search等功能
AI Service: DBMind核⼼服务,包括⾃监控、⾃诊断、⾃愈三个部分,利⽤机
器学习(深度学习)算法、故障模式库等进⾏问题的发现、分析与解决;
数据总线:⽤于将从DB上收集的数据传送到数据管理平台
控制总线:⽤于下发AI Service的运维命令
AI Service
8
DBMind-Service设计
核⼼处理流程
阶段1:指标数据采集平台定期采集数
据库实例的监控指标,并将其存储在
时序数据库中,如Prometheus.
阶段2:DBMind定期从时序数据库中
获取监控指标,根据监控指标进⾏分
析和诊断,并将诊断后的结果存储起
来。
阶段3:当⽤户需要检查数据库状态
时,通过浏览器访问DBMind的web服
务,DBMind将诊断后的结果返回给⽤
户。
9
DBMind数据采集平台
DBMind采集平台关键点:
1. DBMind Service与采集平台类别解耦:
默认⽀持Prometheus, 同时兼容InfluxDB、openTSDB以及
MongoDB等;
2. 对于⼤规模节点的采集:
DBMind不需关注,因为⼤规模采集均是通过Prometheus、
InfluxDB等时序数据库进⾏收集和存储,该类产品的线性扩展
能⼒、HA都很强,在开源软件界经过多年时间验证;
3. 对于采集:
当前默认⽅案是基于Prometheus协议实现了openGauss-
exporter等,⽤于对数据库节点的数据采集;Prometheus协议
是简单、易处理的,稍加改造即可⽤于openTSDB、InfluxDB
等采集⽅案中
4. 控制指令下发:
需要实现Agent接收来⾃DBMind service的控制命令,执⾏数
据库状态即时查询及变更。
指标采集部分
指标存储部分 结果存储部分
LOGO
PART 2 AI能⼒介绍
AI in DBMS: 参数调优与诊断能⼒介绍
调优参数列表:根据不同的场景预设,⽤户也可以根据经验配置;
调优⽅法概括:结合深度强化学习与全局优化算法,针对不同类别的参数进⾏细粒度调优。
调优效果评估:观察benchmark的跑分结果,预置的benchmark丰富,极简可扩展。
离线参数调优流程概述:
1. 利⽤⻓期参数调优总结出的先验规则进⾏参数配置诊断与⽣成数据库workload报告;
2. 根据系统的workload、环境信息推荐初始参数配置,包括推荐参数值、建议最⼤值和最⼩值(⽤以保证
稳定性,供⽤户结合⾃身经验进⾏选择);
3. 利⽤训练好的强化学习模型进⾏调优,或者使⽤全局优化算法在给定的参数空间内进⾏搜索;
4. 常规评价调优效果好坏的⽅法是跑benchmark获得反馈,调优框架除⽀持常规benchmark如TPC-C、
TPC-H等,还为⽤户提供了⾃定义benchmark的框架,⽤户只需要进⾏少量⼯作进⾏适配即可;⽬前还
在演进⽀持Performance Model的参数调优,将更进⼀步加快调优速度;.
在线参数调优流程概述:
1. 采集⽤户系统内的统计信息和workload,根据训练好的监督学习模型和先验规则,推荐给⽤户对应的参数
配置。
AI in DBMS: 慢SQL透视能⼒介绍
使⽤场景介绍:
1. 上线业务预检测:上线⼀批新业务前,使⽤SQL诊断功能评估此次上线业务的预估执⾏时⻓,便于⽤户参考是否应该修改上线业务。
2. Workload分析:能够对现有workload进⾏分析,将现有workload⾃动分为若⼲类别,并依次分析此类别SQL语句执⾏代价,以及各个类别之间的相似
程度;
3. SQL透视:能够将workload进⾏可视化,通过不同颜⾊和距离远近判断SQL语句之间的相似性,从⽽供⽤户直观地分析SQL语句的特点。
SQL透视效果 具备较⾼的预测准确率 华为云DAS上基于海量数据训练后的SQL透视效果
流程示意:
13
AI in DBMS: 数据库指标监控、预测与慢SQL根因分析
数据库指标(metric)是数据库与⽤户⾏为健康的重要标志,数据库中的异常⾏为可能导致数据库指标产⽣异常,因此对指标进⾏有
效的监控显得⼗分必要。其中,慢SQL也可以看做是数据库的⼀种监控指标。当前⽀持来⾃Prometheus采集到的数据。
数据库状态监控(database monitoring),指对数据库运⾏指标进⾏全⽅位实时监控。系统能够发现和识别数据库异常以及潜在的
性能问题,并及时将数据库异常报告给⽤户,通过针对各项运⾏指标的统计分析报告,帮助管理员、运维⼈员、决策者多视⻆了解数
据库的运⾏状态,从⽽更好的应对数据库的需求及规划。
1 时序预测、异常检测等 2 慢SQL根因分析
利⽤时序预测算法,可以预测数据库监控指标的未
来趋势,并可基于此进⾏故障预警、容量规划等。
同时,采⽤此算法也可进⾏异常检测。
慢SQL是DBA在⽇常数据库运维时最头疼的问题之⼀,特别对于“性能波动”型慢SQL,由于问
题难以复现,因此根因分析过程更为棘⼿。
openGauss根据⻓期在数据库领域的积累,构建出慢SQL故障根因特征库,利⽤AI算法给出慢
SQL产⽣的原因,并据此给出对应的解决建议。
AI in Kernel: 单Query/ Workload级别索引推荐能⼒介绍
使⽤场景介绍:
根据⽤户的Workload整体信息,为⽤户推荐需要创建的索引。 单Query索引推荐的核⼼⽅法:
采⽤索引设计和优化的相关理论,基于原⽣的词法和语法解析,对查询语句中的⼦句和谓词
进⾏分析和处理,再结合字段选择度、聚合条件、多表Join关系等输出最终建议。
索引性能验证的⽅法:
通过修改优化器相应的数据结构,利⽤优化器评估,进⽽判断创建该索引后,对优化器⽣成
执⾏计划的影响。该过程可以不⽤真正创建索引,即业内所谓的“假设索引”,业内也多采⽤此
种⽅法。
Workload级别索引推荐的核⼼⽅法:
通过⽤户输⼊(或⾃主采集)得到的workload信息,根据预设模型,进⼀步评估创建索引对
整体Workload的影响,从⽽从候选索引中筛选出若核⼼索引。
>=50% 20%<=.<50% 5%<=.<20%
0%<=.<5% -5%<=.<0% -20%<=.<-5%
-50%<=.<-20% <-50%
从单条到workload
端到端索引推荐的原理细节
对索引推荐效果的整体评估:
TPC-DS: 除40%左右⽆明显变化外,其余语句均有不同程度的执⾏时间缩短;
TPC-C: 与原⽣索引基本持平,⽐⽆索引有巨⼤性能提升。
使⽤示例:使⽤gs_index_advise() 推荐索引,性能提⾼10000倍!
← 建议在lineitem表的l_orderkey列上创建索引。
⽆索引 原索引 算法⼀ 算法⼆
tpmC 3.22 135.64 134.27 134.49
tpmTOTAL 8.06 299.64 299.24 298.69
Transaction Count 120.67 4495.00 4489.00 4480.67
TPC-C TPC-DS
• Cost为使⽤代价线性拟合预测时间,拟合参数通过历史
数据回归获得。
• 深度学习模型⽐Cost线性模型在预测准确率上有显著提
升。
• R-LSTM模型收敛速度⽐TBCNN模型显著提升,但在较
复杂场景下(如TPC-DS)容易过拟合。
• TBCNN在简单场景下和R-LSTM准确率⽐较接近,在复
杂场景下表现出较强的泛化能⼒,但训练速度过慢。
  TPC-H JOB TPC-DS
  Cost TBCNN R-LSTM Cost TBCNN R-LSTM Cost TBCNN R-LSTM
训练耗时
(s)
  590 79   1990 425   31204.5 477
平均准确
率
5.90E+06 1.9(1.8) 1.4(1.3) 1.20E+06 4.2(4.0) 10.6(4.1) 1.30E+07 6.9(4.3) 28.9(7.8)
TPC-H JOB TPC-DS
TPC-H JOB TPC-DS
数据收集 特征提取 模型训练/推理 多任务学习
cost
rows
AI in Kernel:AI优化器之基于在线学习的查询性能预测
实验结论:
AI in SQL:原⽣DB4AI引擎
使⽤Create Model语法实现数据库内AI训练和模型
存储:
• 通过数据库并⾏训练算法,实现库内训练加速;
• 通过执⾏代价估计及资源管控,实现迭代轮次和
模型参数最优化;
• 提供可视化执⾏计划,实现AI可查、可解释性。
使⽤Predict By语法实现数据库内AI模型推理:
• 基于数据集和查询特征进⾏模型归类;
• 优化器通过同类模型的精准度,⾃适应选择算
法,实现最优化模型推理
• AI推理算⼦结合其他执⾏算⼦,实现关联分析
训练语句
(Create
Model)
推理语句
(Predict By)
优
化
器
AI算⼦执⾏估计
Create Model语句
执⾏计划
适应算法选择
其他算⼦关联分析
执⾏计划
执
⾏
器
执⾏算⼦
执⾏算⼦资源管控
存
储
引
擎
置乱数据及
数据分⽚
算法模型
算⼦并⾏训练算法
抽取数据
推理算⼦和其他
SQL执⾏算⼦
抽取数据
17
附:Getting Started with DBMind!
步骤序号 步骤简介 核⼼命令或⽹址 补充说明
1 前置安装(包括Prometheus以及exporters),⽤于
采集监控数据
1). 2).
https://prometheus.io/
download/
3). gs_dbmind component
opengauss_exporter ...
gs_dbmind component
reprocessing_exporter ...
1). 下载Prometheus并启动
2). 下载并启动node-exporter
3). 部署openGauss-exporter以
及reporcessing-exporter
4). 配置Prometheus,以便采
集来⾃exporter的数据
2 DBMind Service 配置初始化 gs_dbmind service setup -c
CONF_DIRECTORY --
interactive
交互式地配置数据源、数据存
放地点等信息
3 启动/关闭DBMind Service gs_dbmind service start -c
CONF_DIRECTORY
gs_dbmind service stop -c
CONF_DIRECTORY
4 查看DBMind诊断结果 gs_dbmind component
slow_query_diagnosis show ...
gs_dbmind component
forecast show ...
https://gitee.com/opengauss/openGauss-server/tree/master/src/gausskernel/dbmind

18
任务 语法
训练 CREATE MODEL model_name
USING architecture_name,
[FEATURES {attribute_list},
TARGET attribute_name,
[,attribute_name]*],
FROM ([schema.]table_name |
subquery)
WITH (hyper_parameter_name [=
{hp_value}]) [, ...]*]
推测 PREDICT BY model_name
[ (FEATURES attribute [, attribute]
+]) ]
解释 EXPLAIN MODEL model
举例:
Create Model price_model using logistic_regression Features size, lot Target price < 1000 from Houses;
Select id, Predict by price_model(Features size, lot), size from houses;
附:Getting Started with DB4AI!
https://opengauss.org
数/据/驱/动 成/就/未/来
THANKS!

More Related Content

What's hot

Real-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotReal-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotXiang Fu
 
Architecture for building scalable and highly available Postgres Cluster
Architecture for building scalable and highly available Postgres ClusterArchitecture for building scalable and highly available Postgres Cluster
Architecture for building scalable and highly available Postgres ClusterAshnikbiz
 
High-speed Database Throughput Using Apache Arrow Flight SQL
High-speed Database Throughput Using Apache Arrow Flight SQLHigh-speed Database Throughput Using Apache Arrow Flight SQL
High-speed Database Throughput Using Apache Arrow Flight SQLScyllaDB
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySparkRussell Jurney
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDBNAVER D2
 
Postgresql 12 streaming replication hol
Postgresql 12 streaming replication holPostgresql 12 streaming replication hol
Postgresql 12 streaming replication holVijay Kumar N
 
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr SarnaDatabase Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr SarnaScyllaDB
 
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
Advanced Hadoop Tuning and Optimization - Hadoop ConsultingAdvanced Hadoop Tuning and Optimization - Hadoop Consulting
Advanced Hadoop Tuning and Optimization - Hadoop ConsultingImpetus Technologies
 
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetPostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetLucian Oprea
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...Databricks
 
Understanding Data Partitioning and Replication in Apache Cassandra
Understanding Data Partitioning and Replication in Apache CassandraUnderstanding Data Partitioning and Replication in Apache Cassandra
Understanding Data Partitioning and Replication in Apache CassandraDataStax
 
New Directions for Apache Arrow
New Directions for Apache ArrowNew Directions for Apache Arrow
New Directions for Apache ArrowWes McKinney
 
The Past, Present and Future of Big Data @LinkedIn
The Past, Present and Future of Big Data @LinkedInThe Past, Present and Future of Big Data @LinkedIn
The Past, Present and Future of Big Data @LinkedInSuja Viswesan
 
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Yoshiyasu SAEKI
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsAlexander Korotkov
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfAlkin Tezuysal
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMakerKris Buytaert
 

What's hot (20)

Real-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache PinotReal-time Analytics with Trino and Apache Pinot
Real-time Analytics with Trino and Apache Pinot
 
Architecture for building scalable and highly available Postgres Cluster
Architecture for building scalable and highly available Postgres ClusterArchitecture for building scalable and highly available Postgres Cluster
Architecture for building scalable and highly available Postgres Cluster
 
High-speed Database Throughput Using Apache Arrow Flight SQL
High-speed Database Throughput Using Apache Arrow Flight SQLHigh-speed Database Throughput Using Apache Arrow Flight SQL
High-speed Database Throughput Using Apache Arrow Flight SQL
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySpark
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
 
Postgresql 12 streaming replication hol
Postgresql 12 streaming replication holPostgresql 12 streaming replication hol
Postgresql 12 streaming replication hol
 
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr SarnaDatabase Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
 
RubiX
RubiXRubiX
RubiX
 
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
Advanced Hadoop Tuning and Optimization - Hadoop ConsultingAdvanced Hadoop Tuning and Optimization - Hadoop Consulting
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
 
PostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_CheatsheetPostgreSQL High_Performance_Cheatsheet
PostgreSQL High_Performance_Cheatsheet
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 
Understanding Data Partitioning and Replication in Apache Cassandra
Understanding Data Partitioning and Replication in Apache CassandraUnderstanding Data Partitioning and Replication in Apache Cassandra
Understanding Data Partitioning and Replication in Apache Cassandra
 
New Directions for Apache Arrow
New Directions for Apache ArrowNew Directions for Apache Arrow
New Directions for Apache Arrow
 
The Past, Present and Future of Big Data @LinkedIn
The Past, Present and Future of Big Data @LinkedInThe Past, Present and Future of Big Data @LinkedIn
The Past, Present and Future of Big Data @LinkedIn
 
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problems
 
Hadoop Platform at Yahoo
Hadoop Platform at YahooHadoop Platform at Yahoo
Hadoop Platform at Yahoo
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdf
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
 

Similar to openGauss DBMind.pdf

Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用Jerry Wen
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Community
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构Chen Fei
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum锐 张
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多ITband
 
《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdfmarkmind
 
Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里li luo
 
用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning家弘 周
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 

Similar to openGauss DBMind.pdf (20)

Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
 
Cdc@ganji.com
Cdc@ganji.comCdc@ganji.com
Cdc@ganji.com
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf
 
Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里
 
用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Taobao base
Taobao baseTaobao base
Taobao base
 

openGauss DBMind.pdf

  • 5. openGauss AI发展全景 - AI Framework for Database AI Framework AI算法(机器学习/深度学习等) AI in SQL AI in DBMS AI in Kernel 全技术栈 AI/ ML/ DL 全应⽤场景 SQL/DBMS/Kernel 全⽤户 User/DBA/Developer 深度学习平台 机器学习库 优化算法/⾃研算法 In-DB Analytics Knobs Tuning Learned Optimizer Workload Forecasting View/ Partition Advisor Workload Scheduling Index Advisor Self Diagnosis/ Healing Learned Index/Storage Self Assembler In-DB Optimization In-DB Operator Self Security 异构计算 KunPeng X86 Ascend GPU DB4AI AI4DB Self Monitor
  • 6. AI in DBMS:全⾯提升数据库智能化⽔平,应对不同⾏业多样化负载 2 ⾃诊断⾃愈,Always Online 1 ⾃调优,持续⾼性能 3 ⾃组装,全场景数据 丰富的⾏业应⽤、⽀持多样化负载 • 业务场景和负载多样化,单⼀通⽤数据库平 台⽆法满⾜ • 现有的产品研发模式⽆法满⾜定制化交付 组件化⾃组装 • 组件微服务化:基于搜索优化理论,突破组 合空间爆炸问题 • ⾃组装技术:基于最优控制论,软件执⾏栈 轻量化、组件组合最优化 ⾃诊断 • 诊断引擎:⽀持AI和Rule引擎结合的基于Trace智 能诊断系统 • 诊断模式库:⽀持常⻅故障模式库,智能可扩展的 模式库 ⾃愈&故障预警 • 统计信息恢复:根据系统查询数据STAT⽼化程度 ⾃动修复统计信息 • 故障预警:预测软件&硬件故障,故障检测时间⼩ 于5s 云化智能调优 • 参数⾃调优:调优时间:天!分钟级;相⽐普通 DBA调参,DB性能提升20%以上 • 索引推荐:基于⽤户的单条语句或批量负载,推荐 合适索引 云化负载预测&在线调参 • 负载预测:准确预测负载性能,⽀撑⽤户⾼效编排 业务、智能负载调度 • 在线调参:结合数据库负载预测模型动态调参,让 数据库执⾏性能最⼤化 参数⾃调优&推荐 资源负载预测 ⾃愈⾃诊断架 One-Stack-Fit-All ⾃组装框架
  • 7. 7 openGauss⾃治运维框架DBMind DBMind 数据湖 openGauss / GaussDB Kernel V5 ⾃ 治 服 务 层 数 据 采 集 层 SQL诊断和调优 慢SQL发 现 智能查询 重写 数据库运维 离线参数 调优 在线参数 调优 智能巡检 SQL表现 评估 故障规则库 异常节点 修复 慢盘检测 及恢复 分布键推 荐 安全 敏感信息 发觉 索引推荐 时序向量库 算法模型库 ⾃动会话 查杀 SQL注⼊ 检测 ⾃动扩缩 容 智能业务 调度 锁等待关系链路图 机器学习引擎 监督学习 强化学习 ⾃动化引擎 规则引擎 数据访问层API 秒级采集 系统资源 信息 分钟级采集 数据库实 例信息 审计⽇志 数据库⽇ 志 全量SQL 流⽔ 数 据 计 算 层 SQL热点数据访问 异常⾏为 分析 物化视图 推荐 Hint推荐 监 控 趋势预测 历史曲线 扩容提示 异常预警 健康指数 综合报告 ... (数据缓存层) 数据持久化 数据管理平台 数据总线 Self-Monitoring 时序预测模块 异常分析模块 慢SQL发现模块 告警通知管理器 Self-Healing OS修复⼯具集 SQL⾃优化模块 ⾃配置模块 Self-Diagnosis 慢SQL分析模块 Workload异常分析 模块 控制总线 采集数据 下发命令 timer Agent Agent Agent Agent Agent (collector):从DB上采集数据、负责执⾏AI Service下发的命令 数据存储平台:负责存储数据,如Prometheus, elastic search等功能 AI Service: DBMind核⼼服务,包括⾃监控、⾃诊断、⾃愈三个部分,利⽤机 器学习(深度学习)算法、故障模式库等进⾏问题的发现、分析与解决; 数据总线:⽤于将从DB上收集的数据传送到数据管理平台 控制总线:⽤于下发AI Service的运维命令 AI Service
  • 9. 9 DBMind数据采集平台 DBMind采集平台关键点: 1. DBMind Service与采集平台类别解耦: 默认⽀持Prometheus, 同时兼容InfluxDB、openTSDB以及 MongoDB等; 2. 对于⼤规模节点的采集: DBMind不需关注,因为⼤规模采集均是通过Prometheus、 InfluxDB等时序数据库进⾏收集和存储,该类产品的线性扩展 能⼒、HA都很强,在开源软件界经过多年时间验证; 3. 对于采集: 当前默认⽅案是基于Prometheus协议实现了openGauss- exporter等,⽤于对数据库节点的数据采集;Prometheus协议 是简单、易处理的,稍加改造即可⽤于openTSDB、InfluxDB 等采集⽅案中 4. 控制指令下发: 需要实现Agent接收来⾃DBMind service的控制命令,执⾏数 据库状态即时查询及变更。 指标采集部分 指标存储部分 结果存储部分
  • 11. AI in DBMS: 参数调优与诊断能⼒介绍 调优参数列表:根据不同的场景预设,⽤户也可以根据经验配置; 调优⽅法概括:结合深度强化学习与全局优化算法,针对不同类别的参数进⾏细粒度调优。 调优效果评估:观察benchmark的跑分结果,预置的benchmark丰富,极简可扩展。 离线参数调优流程概述: 1. 利⽤⻓期参数调优总结出的先验规则进⾏参数配置诊断与⽣成数据库workload报告; 2. 根据系统的workload、环境信息推荐初始参数配置,包括推荐参数值、建议最⼤值和最⼩值(⽤以保证 稳定性,供⽤户结合⾃身经验进⾏选择); 3. 利⽤训练好的强化学习模型进⾏调优,或者使⽤全局优化算法在给定的参数空间内进⾏搜索; 4. 常规评价调优效果好坏的⽅法是跑benchmark获得反馈,调优框架除⽀持常规benchmark如TPC-C、 TPC-H等,还为⽤户提供了⾃定义benchmark的框架,⽤户只需要进⾏少量⼯作进⾏适配即可;⽬前还 在演进⽀持Performance Model的参数调优,将更进⼀步加快调优速度;. 在线参数调优流程概述: 1. 采集⽤户系统内的统计信息和workload,根据训练好的监督学习模型和先验规则,推荐给⽤户对应的参数 配置。
  • 12. AI in DBMS: 慢SQL透视能⼒介绍 使⽤场景介绍: 1. 上线业务预检测:上线⼀批新业务前,使⽤SQL诊断功能评估此次上线业务的预估执⾏时⻓,便于⽤户参考是否应该修改上线业务。 2. Workload分析:能够对现有workload进⾏分析,将现有workload⾃动分为若⼲类别,并依次分析此类别SQL语句执⾏代价,以及各个类别之间的相似 程度; 3. SQL透视:能够将workload进⾏可视化,通过不同颜⾊和距离远近判断SQL语句之间的相似性,从⽽供⽤户直观地分析SQL语句的特点。 SQL透视效果 具备较⾼的预测准确率 华为云DAS上基于海量数据训练后的SQL透视效果 流程示意:
  • 13. 13 AI in DBMS: 数据库指标监控、预测与慢SQL根因分析 数据库指标(metric)是数据库与⽤户⾏为健康的重要标志,数据库中的异常⾏为可能导致数据库指标产⽣异常,因此对指标进⾏有 效的监控显得⼗分必要。其中,慢SQL也可以看做是数据库的⼀种监控指标。当前⽀持来⾃Prometheus采集到的数据。 数据库状态监控(database monitoring),指对数据库运⾏指标进⾏全⽅位实时监控。系统能够发现和识别数据库异常以及潜在的 性能问题,并及时将数据库异常报告给⽤户,通过针对各项运⾏指标的统计分析报告,帮助管理员、运维⼈员、决策者多视⻆了解数 据库的运⾏状态,从⽽更好的应对数据库的需求及规划。 1 时序预测、异常检测等 2 慢SQL根因分析 利⽤时序预测算法,可以预测数据库监控指标的未 来趋势,并可基于此进⾏故障预警、容量规划等。 同时,采⽤此算法也可进⾏异常检测。 慢SQL是DBA在⽇常数据库运维时最头疼的问题之⼀,特别对于“性能波动”型慢SQL,由于问 题难以复现,因此根因分析过程更为棘⼿。 openGauss根据⻓期在数据库领域的积累,构建出慢SQL故障根因特征库,利⽤AI算法给出慢 SQL产⽣的原因,并据此给出对应的解决建议。
  • 14. AI in Kernel: 单Query/ Workload级别索引推荐能⼒介绍 使⽤场景介绍: 根据⽤户的Workload整体信息,为⽤户推荐需要创建的索引。 单Query索引推荐的核⼼⽅法: 采⽤索引设计和优化的相关理论,基于原⽣的词法和语法解析,对查询语句中的⼦句和谓词 进⾏分析和处理,再结合字段选择度、聚合条件、多表Join关系等输出最终建议。 索引性能验证的⽅法: 通过修改优化器相应的数据结构,利⽤优化器评估,进⽽判断创建该索引后,对优化器⽣成 执⾏计划的影响。该过程可以不⽤真正创建索引,即业内所谓的“假设索引”,业内也多采⽤此 种⽅法。 Workload级别索引推荐的核⼼⽅法: 通过⽤户输⼊(或⾃主采集)得到的workload信息,根据预设模型,进⼀步评估创建索引对 整体Workload的影响,从⽽从候选索引中筛选出若核⼼索引。 >=50% 20%<=.<50% 5%<=.<20% 0%<=.<5% -5%<=.<0% -20%<=.<-5% -50%<=.<-20% <-50% 从单条到workload 端到端索引推荐的原理细节 对索引推荐效果的整体评估: TPC-DS: 除40%左右⽆明显变化外,其余语句均有不同程度的执⾏时间缩短; TPC-C: 与原⽣索引基本持平,⽐⽆索引有巨⼤性能提升。 使⽤示例:使⽤gs_index_advise() 推荐索引,性能提⾼10000倍! ← 建议在lineitem表的l_orderkey列上创建索引。 ⽆索引 原索引 算法⼀ 算法⼆ tpmC 3.22 135.64 134.27 134.49 tpmTOTAL 8.06 299.64 299.24 298.69 Transaction Count 120.67 4495.00 4489.00 4480.67 TPC-C TPC-DS
  • 15. • Cost为使⽤代价线性拟合预测时间,拟合参数通过历史 数据回归获得。 • 深度学习模型⽐Cost线性模型在预测准确率上有显著提 升。 • R-LSTM模型收敛速度⽐TBCNN模型显著提升,但在较 复杂场景下(如TPC-DS)容易过拟合。 • TBCNN在简单场景下和R-LSTM准确率⽐较接近,在复 杂场景下表现出较强的泛化能⼒,但训练速度过慢。   TPC-H JOB TPC-DS   Cost TBCNN R-LSTM Cost TBCNN R-LSTM Cost TBCNN R-LSTM 训练耗时 (s)   590 79   1990 425   31204.5 477 平均准确 率 5.90E+06 1.9(1.8) 1.4(1.3) 1.20E+06 4.2(4.0) 10.6(4.1) 1.30E+07 6.9(4.3) 28.9(7.8) TPC-H JOB TPC-DS TPC-H JOB TPC-DS 数据收集 特征提取 模型训练/推理 多任务学习 cost rows AI in Kernel:AI优化器之基于在线学习的查询性能预测 实验结论:
  • 16. AI in SQL:原⽣DB4AI引擎 使⽤Create Model语法实现数据库内AI训练和模型 存储: • 通过数据库并⾏训练算法,实现库内训练加速; • 通过执⾏代价估计及资源管控,实现迭代轮次和 模型参数最优化; • 提供可视化执⾏计划,实现AI可查、可解释性。 使⽤Predict By语法实现数据库内AI模型推理: • 基于数据集和查询特征进⾏模型归类; • 优化器通过同类模型的精准度,⾃适应选择算 法,实现最优化模型推理 • AI推理算⼦结合其他执⾏算⼦,实现关联分析 训练语句 (Create Model) 推理语句 (Predict By) 优 化 器 AI算⼦执⾏估计 Create Model语句 执⾏计划 适应算法选择 其他算⼦关联分析 执⾏计划 执 ⾏ 器 执⾏算⼦ 执⾏算⼦资源管控 存 储 引 擎 置乱数据及 数据分⽚ 算法模型 算⼦并⾏训练算法 抽取数据 推理算⼦和其他 SQL执⾏算⼦ 抽取数据
  • 17. 17 附:Getting Started with DBMind! 步骤序号 步骤简介 核⼼命令或⽹址 补充说明 1 前置安装(包括Prometheus以及exporters),⽤于 采集监控数据 1). 2). https://prometheus.io/ download/ 3). gs_dbmind component opengauss_exporter ... gs_dbmind component reprocessing_exporter ... 1). 下载Prometheus并启动 2). 下载并启动node-exporter 3). 部署openGauss-exporter以 及reporcessing-exporter 4). 配置Prometheus,以便采 集来⾃exporter的数据 2 DBMind Service 配置初始化 gs_dbmind service setup -c CONF_DIRECTORY -- interactive 交互式地配置数据源、数据存 放地点等信息 3 启动/关闭DBMind Service gs_dbmind service start -c CONF_DIRECTORY gs_dbmind service stop -c CONF_DIRECTORY 4 查看DBMind诊断结果 gs_dbmind component slow_query_diagnosis show ... gs_dbmind component forecast show ... https://gitee.com/opengauss/openGauss-server/tree/master/src/gausskernel/dbmind

  • 18. 18 任务 语法 训练 CREATE MODEL model_name USING architecture_name, [FEATURES {attribute_list}, TARGET attribute_name, [,attribute_name]*], FROM ([schema.]table_name | subquery) WITH (hyper_parameter_name [= {hp_value}]) [, ...]*] 推测 PREDICT BY model_name [ (FEATURES attribute [, attribute] +]) ] 解释 EXPLAIN MODEL model 举例: Create Model price_model using logistic_regression Features size, lot Target price < 1000 from Houses; Select id, Predict by price_model(Features size, lot), size from houses; 附:Getting Started with DB4AI!