KaiwuDBkaiwudb logo

KaiwuDB 技术博客专区

深入了解 KaiwuDB 负载行为数据采集

2023-06-29


KAP 基于数据库系统内部反馈的各项数据指标,可帮助用户全面掌握 KaiwuDB 集群的整体运行情况,实时监测集群相关性能,可提供整体资源和集群状态角度的系统监控。



除此之外,KaiwuDB 数据库内部开发实现基于负载业务的行为数据采集功能,为 KAP 提供更加全面的数据支持,为用户提供更为多元化的信息,方便用户监控 KaiwuDB 内部的业务负载处理情况,指导用户进行 SQL 调优等。




一、技术架构





从 SQL 来源、执行情况、计划内容、资源使用等角度收集负载的行为数据信息,之后将采集到的信息进行局部缓存、批量持久化。具体流程如下图所示:

1.png


二、行为数据采集





通过收集 SQL 语句执行过程各阶段行为数据信息,记录数据库处理负载业务的详细执行情况,提高 KaiwuDB 数据库可观测能力。行为数据指标主要包括如下内容:

2.png

WorkloadApplication name 等 session 部分信息
  • · Application name:应用名称

Statement语句的整体执行情况、行数、时间
  • · Statement content:SQL 语句的文本内容
  • · Statement params:SQL 语句常量化参数
  • · Total elapsed time:SQL 语句从进入 KaiwuDB 到返回结果总用时
  • · Total affected rows:SQL 语句的影响行数
  • · Retry count:事务重试次数计数

Resoure整体内存使用等 session 相关资源数
  • · Memory、Disk、CPU、Coroutines 等资源情况

Node节点信息

LogicPlan逻辑计划构建时间、算子、谓词等
  • · LogicalPlan time:从语法树生成逻辑计划用时
  • · Stats Profile:表相关信息
  • · Access Pattern:访问模式
  • · LogicalOperator:算子信息
  • · Predicate:谓词信息

PhysicalPlan物理计划构建时间、算子执行等相关信息
  • · PhysicalPlan time:从逻辑计划生成物理计划用时
  • · ProcessorSpec:Input/Output 数据来源和去向
  • · Type:算子类型


三、开关控制






负载行为数据采集贯穿整个 SQL 语句执行的生命周期,不可避免地对 SQL 语句的执行效率产生负面影响。因此我们细化对行为数据采集指标的控制开关,以适配不同用户的行为数据采集需求,做到无关指标屏蔽采集,尽可能减少数据采集带来的性能损耗。

开关设计:
  • · 全局开关 sql.workloadinfo.enabled:控制所有负载行为数据是否采集;

  • · 应用开关 sql.workloadinfo.application_name_list:控制仅对 application_name_list 内指定应用触发的负载业务进行行为数据采集;

  • · 用户开关 sql.workloadinfo.user_name_list:控制仅对 user_name_list 内指定用户触发的负载业务进行行为数据采集;

  • · 采集次数开关 sql.workloadinfo.maxcollectnum:控制对同一来源的相同 SQL 语句的最大采集次数。


四、应用洞察分析





基于这些负载角度的行为数据信息,我们可以实现如下洞察分析:
  • · 应用负载分类
    方便判断应用类型是 OLAP 还是 OLTP。行为数据采集的查询 SQL 类型语句在总业务中的占比,提供应用负载分类;

  • · 语句健康状况分析
    提供语句健康状况查询,方便用户快速识别有性能问题的 SQL 语句。通过分析 SQL 语句的的访问方式、执行时间,并对比其预估计划和实际执行的差距,考虑该语句在当前应用负载中的权重,将存在潜在性能问题的重要查询标记为不健康 SQL 语句,以便未来对这些查询进行重新优化;

  • · 应用负载洞察
    提供用户单独视图显示集群上运行的应用程序的摘要信息。具体包括:应用程序总体状况信息,应用负载具体信息和 SQL 语句细节;

  • · 增量变化
    提供用户感知应用负载随时间的增量变化。具体包括:数据量变化,如应用负载访问的表数据增量变化;SQL 语句量变化,如应用负载针对某些特殊场景季度性触发某些查询服务;用户场景需求变化,如新版本上线, 导致 DDL(数据定义语言)数量变化。



END



免费体验 KaiwuDB 全新功能

立即体验

关于我们
联系我们

KaiwuDB B站

KaiwuDB
B站

KaiwuDB 微信公众号

KaiwuDB
微信公众号

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1
400-624-5688-7
1V1 方案咨询
marketing@kaiwudb.org.cn