GaussDB(DWS)查询过滤器原理与应用|世界动态
博客园 2023-06-08 02:31:50
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行。

本文分享自华为云社区《GaussDB(DWS)查询过滤器原理与应用》,作者:门前一棵葡萄树 。

一、概述

GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行。

主要应用场景包含以下两种:


(资料图片)

1. 异常熔断机制

配置异常规则后,查询触发异常规则后,异常信息将被记录在dbms_om.gs_blocklist_query系统表中。同一个查询触发异常规则次数超限(query_exception_count_limit)后,查询自动加入黑名单,黑名单信息同样保存在dbms_om.gs_blocklist_query系统表中。加入黑名单后,该查询将被隔离,拒绝执行。

2. 紧急拦截

作业引发CORE、hang或性能大幅下降等问题时,需要紧急规避时,可以将作业加入黑名单进行过滤。

原理介绍

查询过滤器使用作业Unique SQL ID保存和识别作业黑名单和异常信息,在SQL中常数值发生变化时作业Unique SQL ID不会随之发生变化。Unique SQL ID是遍历查询解析树计算出来的一个整数值,用于标识一类SQL。通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不会忽略。例如,以下两个查询:

select * from t1 where id = 1;select * from t1 where id = 2;

这两条SQL除过滤条件中的常量不同外,其他全部相同,由此生成的解析树拓扑完全相同,因此Unique SQL ID相同。Unique SQL ID的计算只会忽略常数值,而不会忽略其他差异,SQL语句“select * from t2 where id = 1;”与上述两个SQL的Unique SQL ID就不相同。

将作业加入黑名单主要有以下两种方式:

作业执行前判断作业是否在黑名单中,如果作业在黑名单中,拒绝作业执行,直接报错退出。

作业被拒绝执行后,对作业加入黑名单原因进行分析,问题解决后调用内置函数gs_remove_blocklist(unique_sql_id int8)将作业移除黑名单。

二、应用示例

2.1 异常熔断示例

1. 设置异常熔断阈值。假设设置query_exception_count_limit=1,即只要作业触发异常规则作业就会被加入黑名单。

2. 配置异常规则

创建CPU平均使用率异常规则cpu_percent_except,作业运行时间超过2000秒且CPU使用率达到30%时触发异常退出:

CREATE EXCEPT RULE cpu_percent_except WITH(ELAPSEDTIME=2000, CPUAVGPERCENT=30);

异常规则还支持BLOCKTIME、ALLCPUTIME、SPILLSIZE等异常的识别处理,具体可参考:异常规则简介与演变。

3. 创建资源池respool1关联异常规则cpu_percent_except

CREATE RESOURCE POOL respool1 WITH(except_rule="cpu_percent_except");

资源池支持最多关联63个异常规则集,每个异常规则集间独立生效,互不影响。

4. 创建业务用户usr1,关联资源池respool1:

CREATE USER usr1 RESOURCE POOL "respool1" PASSWORD "XXXXXX";

5. 用户usr1运行作业,作业运行时间超过2000秒且CPU使用率达到30%时触发“cpu_percent_except”异常规则,作业触发异常规则后资源管理对作业进行以下处理:

6. 查询作业黑名单和异常信息:

SELECT * FROM dbms_om.gs_blocklist_query; unique_sql_id | block_list | except_num | except_time---------------+------------+------------+---------------------------- 4066836196 | t          | 1 | 2022-08-08 18:00:00.596269(1 row)

7. 用户usr1再次运行作业触发异常熔断,GaussDB(DWS)的异常熔断机制禁止该作业执行。

ERROR:  The query is in the blocklist and cannot be run, unique_sql_id(4066836196).HINT:  If you want to run the query later, confirm the reason why the query is blocklisted and remove the query from the blocklist after resolving the problem.

8. 优化用户usr1所运行ID为4066836196的SQL后,将ID为4066836196的SQL从黑名单移除。

确认SQL异常原因,如果异常规则配置不合理,修改异常规则;如果异常规则合理,对SQL进行优化后重新运行。确认问题解决后将SQL移除黑名单。

select gs_remove_blocklist(4066836196); gs_remove_blocklist--------------------- t(1 row)

2.2 紧急拦截示例

查询过滤器使用作业Unique SQL ID识别和保存黑名单信息,为有效运用查询过滤器紧急拦截功能,建议TopSQL开启,在作业引发CORE、报错、性能下降等问题时可以快速获取作业Unique SQL ID。

2.2.1 获取作业Unique SQL ID

获取作业Unique SQL ID的几种方法:

1. 作业引发报错/性能下降

CN日志中获取作业query_id,执行以下命令查询作业Unique SQL ID。

select queryid,unique_sql_id,query from pgxc_wlm_session_info where queryid=query_id;

2. 作业引发CN示例CORE

解析CORE打印内存中保存的Unique SQL ID对应的变量参数值。

3. 作业引发DN实例CORE

作业引发DN实例CORE时,CN侧体现为作业报错,Unique SQL ID获取方式可以参考作业报错时Unique SQL ID获取方式。

4. EXPLAIN VERBOSE获取Unique SQL ID(通用方法,但是仅821及以上版本支持)

EXPLAIN VERBOSE不会实际执行SQL,因此一般不会导致问题发生,使用EXPLAIN VERBOSE XXX;可以打印得到作业Unique SQL ID。示例:

postgres=# explain verbose select count(1) from pg_class;                                                                           QUERY PLAN-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  id |               operation                | E-rows | E-distinct | E-width | E-costs ----+----------------------------------------+--------+------------+---------+--------- 1 | ->  Aggregate | 2 | | 8 | 52.94 2 | ->  Seq Scan on pg_catalog.pg_class | 1034 | | 0 | 50.34 Targetlist Information (identified by plan id) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 --Aggregate         Output: count(1) 2 --Seq Scan on pg_catalog.pg_class         Output: relname, relnamespace, reltype, reloftype, relowner, relam, relfilenode, reltablespace, relpages, reltuples, relallvisible, reltoastrelid, reltoastidxid, reldeltarelid, reldeltaidx, relcudescrelid, relcudescidx, relhasindex, relisshared, relpersistence, relkind, relnatts, relchecks, relhasoids, relhaspkey, relhasrules, relhastriggers, relhassubclass, relcmprs, relhasclusterkey, relrowmovement, parttype, relfrozenxid, relacl, reloptions, relreplident, relfrozenxid64 ====== Query Summary ===== -------------------------- Parser runtime: 0.027 ms Planner runtime: 0.561 ms Unique SQL Id: 2307078791(17 rows)

2.2.2 将作业加入黑名单

获取到作业Unique SQL ID后,调用内置函数gs_append_blocklist(unique_sql_id int8)将作业加入黑名单:

postgres=# select * from gs_append_blocklist(2307078791); gs_append_blocklist--------------------- t(1 row)

2.2.3 查询黑名单信息

作业加入黑名单后,查询系统表确认黑名单加入是否成功:

postgres=# SELECT * FROM dbms_om.gs_blocklist_query; unique_sql_id | block_list | except_num | except_time---------------+------------+------------+------------- 2307078791 | t          | 0 |(1 row)

2.2.4 再次执行作业触发紧急拦截

postgres=# select count(1) from pg_class;ERROR:  The query is in the blocklist and cannot be run, unique_sql_id(2307078791).HINT:  If you want to run the query later, confirm the reason why the query is blocklisted and remove the query from the blocklist after resolving the problem.

2.2.5 问题解决,将作业移出黑名单

postgres=# select gs_remove_blocklist(2307078791); gs_remove_blocklist--------------------- t(1 row)

点击关注,第一时间了解华为云新鲜技术~

GaussDB(DWS)查询过滤器原理与应用|世界动态

2023-06-08 02:31:50

今日热搜:豪华座驾——迈巴赫S480

2023-06-08 01:59:30

刚刚!华为重磅发布数据库 GaussDB,孟晚舟再发声

2023-06-08 01:44:27

美媒称布林肯将在几周内访华,中方能否证实?外交部回应|当前聚焦

2023-06-08 01:46:20

世界热点评!全国第一!两江新区这12名幼儿赴黔摘冠

2023-06-08 01:12:45

春天儿童画简笔画_春天儿童画_全球最新

2023-06-08 00:59:19

快消息!中银证券首席经济学家徐高:中国居民资产负债率相当健康,不需太过担心

2023-06-08 00:44:03

十恶是哪十恶_十善是哪十善

2023-06-08 00:45:25

浙能电力:水系锌离子目前尚未完成结题验收 但性能测试达到项目计划书指标要求

2023-06-08 00:10:04

@考生家长:给高考生的11条饮食建议快收好 焦点速读

2023-06-07 23:47:16

即将发布全球车型,哪吒汽车参加9月慕尼黑车展

2023-06-07 23:35:53

七旬村民被村支书打住院,数月无人管?当地副镇长:正处理

2023-06-07 23:08:33

中再资环:全资子(孙)公司、控股子公司收到各类政府补助款项约855万元_当前讯息

2023-06-07 22:41:27

快讯:中国刀削面飘香巴黎集市

2023-06-07 22:33:30

每日看点!高考2023:我们的期待

2023-06-07 22:26:44

上常从容与信言诸将能不文言文翻译通假字_上常从容与信言诸将能不,各有差翻译|天天热闻

2023-06-07 21:58:31

【文明在遵义】播州区:打造15分钟便民服务圈 让幸福生活“触手可及”! 全球短讯

2023-06-07 21:55:31

焦点讯息:23旭越惠诚2优先B票面利率为2.6200%

2023-06-07 21:28:13

“三个注重”提升人才工作效能 今日观点

2023-06-07 21:09:43

广州商学院四个新专业经省学位委员会确认成为学士学位授予专业

2023-06-07 20:57:52

重庆警方破获一电镀厂特大污染环境案_环球关注

2023-06-07 20:41:56

岳阳兴长(000819.SZ):公司惠州项目预计9月投产-即时焦点

2023-06-07 19:58:44

当前快播:意法半导体携手三安光电,推进中国碳化硅生态系统发展

2023-06-07 19:56:37

天天观热点:三分·天下 | “关心方案”能否让外卖小哥“脱困”

2023-06-07 20:04:03

碘化钾的作用核辐射(碘化钾的作用)-今日热讯

2023-06-07 19:47:09

戴燕妮以前_戴燕妮好恶心-环球视讯

2023-06-07 19:16:26

数百名非法移民冲过美墨边境大桥 墨西哥边防人员被撞倒

2023-06-07 18:44:28

当前速递!会计年终个人工作总结范文_会计年终个人工作总结

2023-06-07 18:50:53

重点聚焦!《淄博好医生》——高考来临,请告诉孩子这几个实用技巧!

2023-06-07 18:40:49

全球热资讯!澳优子公司拟向伊利方面出售新西兰奶粉工厂60%股权

2023-06-07 18:16:18

新消息丨致闽清1302个你:旗开得胜,金榜题名!

2023-06-07 18:05:47

天天关注:北向资金净买入25.1亿元 交易活跃度下降

2023-06-07 17:47:33

焦点资讯:简单描写露珠的句子

2023-06-07 17:41:29

电贝司好学吗(电贝司)

2023-06-07 17:43:04

生日礼物手工制作视频_手工生日礼物简单漂亮 滚动

2023-06-07 17:12:58

环球讯息:系统教程篇:设置的系统还原点不起作用的原因

2023-06-07 17:03:43

资讯推荐:2023年房屋征收,拆迁补偿协商处理,这5点要注意

2023-06-07 16:49:53

不向您的房屋添加转售价值的装修

2023-06-07 16:30:50

环球信息:折纸玫瑰花_折纸玫瑰

2023-06-07 16:44:10

过桥减持?西菱动力大股东分红前“突击”减持至5%以下,一致行动人神秘消失!

2023-06-07 16:06:48

上常从容与信言诸将能不文言文翻译通假字_上常从容与信言诸将能不,各有差翻译-视点

2023-06-07 16:12:19

2023内蒙古退休养老金调整公布吗?内蒙古企业退休工资如何计算?|环球微动态

2023-06-07 15:55:31

喜报:黑龙江能源职业学院在2023第三届“心上的中国”全国大学生525心理知识大赛中获佳绩

2023-06-07 15:50:11

今日观点!伊朗国产高超音速导弹首次亮相

2023-06-07 15:08:43

世界通讯!备战亚运!多支国家队来浙江集训

2023-06-07 15:02:01

动态焦点:睿怎么写好看图片(睿怎么写)

2023-06-07 14:12:27

差差漫画登录页面入口在线看免费 环球热门

2023-06-07 13:41:19

世界速看:板场供电所退伍老兵刘杰军魂依旧在 深山护光明

2023-06-07 13:12:16

我国第二大淡水湖持续305天的枯水期终告结束_环球聚看点

2023-06-07 12:29:58

【环球热闻】师情花意 这位老师制作43束花赠学生

2023-06-07 11:30:43

新疆:推进“乌—昌—石”重点区域大气环境整治 世界热讯

2023-06-07 11:14:24

急性腹泻的特点_急性腹泻

2023-06-07 10:21:40

“绿色低碳 循环发展”助力西山生态“颜值”转化为经济“产值”|全球资讯

2023-06-07 09:55:07

海安:共享辅具进社区 方便群众传真情

2023-06-07 09:22:17

苹果推出的Vision PRO会成为空间计算的iPhone时刻吗?

2023-06-07 08:51:23

董子畏_关于董子畏的简介

2023-06-07 08:31:54

天天报道:DNF2021剑宗加点(剑宗刷图加点最新2021)

2023-06-07 08:04:10

全球观察:开润股份(300577.SZ)将于6月14日发放2022年度现金红利 每10派0.9元

2023-06-07 07:13:24

元老离职!贝莱德中国区负责人变动,贝莱德:对中国市场的长期承诺不变

2023-06-07 07:12:58

nt检查是什么_抑郁检查的费用 聚焦

2023-06-07 06:54:26

上海航道局是央企吗_上海航道局

2023-06-07 06:59:46

嫣语赋_语嫣-全球热资讯

2023-06-07 06:44:36

环球快播:钱存银行一年,如何存年利率能达到3%?内行人:可以“这样存”

2023-06-07 06:37:09

天天微动态丨世界银行上调2023年全球经济预测,下调2024年经济前景

2023-06-07 06:19:53

当前快报:男生大姨夫是什么鬼_大姨父是什么意思男生大姨夫来了是啥症状

2023-06-07 05:46:46

全球热消息:白血公主泰国电影_白血公主

2023-06-07 05:08:24

少女与战车全集网盘_少女与战车全集

2023-06-07 05:07:22

天天快资讯丨小米11手机背景虚化怎么取消

2023-06-07 04:59:45

环球今亮点!发烧网络用语是啥意思_发烧网

2023-06-07 04:25:59

steam忘记密码怎么办邮箱不是自己的(steam忘记密码怎么办) 当前观点

2023-06-07 03:56:49

暖心!张家界机场为高考生再次开启“空中静音”模式|全球微头条

2023-06-07 03:16:03

滴滴车主之家客服电话(滴滴车主之家)-焦点热讯

2023-06-07 02:43:28

【全球新要闻】童趣出版有限公司电话_童趣出版有限公司

2023-06-07 02:41:35

全球快播:代账会计教程_代帐会计

2023-06-07 02:03:11

伺的拼音(窥伺的拼音)|环球快播

2023-06-07 01:04:02

67健康网_关于67健康网的介绍

2023-06-07 00:13:33

天天观速讯丨北约要在日本开设这一机构,马克龙反对!

2023-06-06 23:51:40

新资讯:学优律师事务所_学优

2023-06-06 23:32:26

广宇发展:子公司拟合资设立七家子公司 加快推进新能源项目获取

2023-06-06 23:26:09

高考成绩赋分怎么理解 为什么实行等级赋分制-今日要闻

2023-06-06 23:13:38

英特尔拉升涨近5%!英伟达CEO表示愿意合作

2023-06-06 22:45:53

全球看热讯:Joby希望电动空中出租车能满足大众需求

2023-06-06 22:15:13

双色球4注1000万元头奖,一半落佛山_快资讯

2023-06-06 21:52:05

上海事业单位退休案例分享,竟然有这么多!!!

2023-06-06 20:51:01

热推荐:驻马店市实验幼儿园开展世界环境日活动

2023-06-06 20:29:31

每日头条!未婚女性殖器实图

2023-06-06 20:13:04

苏州赡养律师收多少钱-天天热议

2023-06-06 20:09:51

送姐姐什么生日礼物好便宜点_送姐姐什么生日礼物好

2023-06-06 19:54:30

“锦绣山西 多彩非遗”宣传活动太原启幕 全球速看

2023-06-06 19:17:44

世界即时看!红 宝 丽: 2022年年度权益分派实施公告

2023-06-06 18:28:22

AI基金经理 一天就“下岗”?这家私募回应:主体还是人_当前速递

2023-06-06 18:14:19

湖南省地质勘查基金主要用于锡等战略性矿种的勘查 环球信息

2023-06-06 17:58:04

世界焦点!京东五星电器牵手华润万象生活,打造“家生活”消费新体验

2023-06-06 17:44:49

阿尔巴尼亚王族国王 海贼王天王族地位?

2023-06-06 14:55:40

这年头谁还买加价车?汉兰达销量暴跌,4S表示有优惠!

2023-06-06 13:29:19

安徽芜湖市见义勇为基金会理事长周晓梅一行来泉考察交流工作

2023-06-06 13:24:54

全球看点:财政部紧急下达救灾资金2亿元支持河南省做好小麦抢收、湿粮抢烘等减灾减损有关工作

2023-06-06 13:06:46

生物物理所等在基因改造的光卤化酶催化芳基卤化物的全细胞氢化/氘化研究中获进展

2023-06-06 11:55:57

全球新动态:省博物院上线“安博AR智慧导览”

2023-06-06 11:26:45

木笛 | 回望老宅院岁月——南泾堂90号片断(上)

2023-06-06 10:07:56