首页 > 资讯 > > 正文

GaussDB(DWS)查询过滤器原理与应用

来源:博客园 2023-06-07 15:44:21
摘要: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)

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

x
推荐阅读

GaussDB(DWS)查询过滤器原理与应用

2023-06-07 15:44:21

【世界热闻】最舒适的初夏时光

2023-06-07 14:41:17

内蒙古超高压供电圆满完成响沙湾2号主变停电检修

2023-06-07 13:42:32

全球简讯:五一前往五台山的进山车辆停在什么地方?

2023-06-07 12:29:20

中国电商让韩国海关爆仓:有消费者的物流延迟一个月

2023-06-07 10:07:40

【焦点热闻】福州附属第一医院预约挂号系统_福州附属第一医院预约挂号

2023-06-07 09:23:09

同济科技第二大股东拟对7项议案投反对票 今公开征集投票权

2023-06-07 07:59:08

上海丽洲休闲俱乐部_上海丽洲休闲俱乐部_世界新动态

2023-06-07 06:33:22

齐家控股(08395)发盈警 预期年度净亏损不多于1050万港元 天天微速讯

2023-06-07 05:44:17

天天热消息:秋葵的营养价值有哪些_秋葵的营养价值

2023-06-07 04:41:58
相关新闻

GaussDB(DWS)查询过滤器原理与应用

2023-06-07 15:44:21

【世界热闻】最舒适的初夏时光

2023-06-07 14:41:17

内蒙古超高压供电圆满完成响沙湾2号主变停电检修

2023-06-07 13:42:32

全球简讯:五一前往五台山的进山车辆停在什么地方?

2023-06-07 12:29:20

中国电商让韩国海关爆仓:有消费者的物流延迟一个月

2023-06-07 10:07:40

【焦点热闻】福州附属第一医院预约挂号系统_福州附属第一医院预约挂号

2023-06-07 09:23:09

同济科技第二大股东拟对7项议案投反对票 今公开征集投票权

2023-06-07 07:59:08

上海丽洲休闲俱乐部_上海丽洲休闲俱乐部_世界新动态

2023-06-07 06:33:22

齐家控股(08395)发盈警 预期年度净亏损不多于1050万港元 天天微速讯

2023-06-07 05:44:17

天天热消息:秋葵的营养价值有哪些_秋葵的营养价值

2023-06-07 04:41:58

环球今亮点!浙江台州一渔船在维修改造时发生火灾 致4人死亡

2023-06-07 03:28:40

【全球报资讯】中泰化学(002092.SZ)控股股东及一致行动人完成增持 合计增持金额达10.01亿元

2023-06-07 03:04:33

韩信国士无双是什么意思(王者荣耀国士无双韩信英雄教学视频) 全球新要闻

2023-06-07 02:16:46

馅饼面怎么和面才松软?

2023-06-07 01:40:48

美股异动 | 美国制商银行涨超4% 获高管增持1万股普通股股份 世界即时看

2023-06-07 00:12:01

龙虎榜 | 尚纬股份今日跌停 上榜营业部席位全天合计净卖出2558.8万元 今日讯

2023-06-06 23:20:49

地下城传说装备怎么处理_传说地下城在哪里

2023-06-06 21:59:03

今日观点!马克龙反对北约在日本东京开设联络处,外交部回应

2023-06-06 21:14:32

歹徒冒充新加坡华助会行骗 华助会提醒公众勿上当

2023-06-06 19:55:58

内蒙古最新光伏用地细则发布!严禁占用耕地、草地,鼓励利用沙戈荒、采煤沉陷区土地

2023-06-06 19:08:44

赛升药业:约3800万元完成购买新三板公司天广实0.7932%股份 动态焦点

2023-06-06 18:04:04

每日动态!比亚迪全新F品牌命名曝光 或称为“方程豹汽车”

2023-06-06 17:29:42

【世界时快讯】新莱福上市首日涨38% 超募1.15亿元首季及去年业绩降

2023-06-06 16:41:03

动态焦点:2023全国“放鱼日”主会场活动举行 放流经济物种550余万尾

2023-06-06 16:16:35

算盘的口诀表_算盘

2023-06-06 14:57:46

【环球快播报】建设人与自然和谐共生的美丽河南 河南亮出“环保成绩单”

2023-06-06 14:03:36

美方以销售设备涉芬太尼为由制裁中国实体和个人,商务部回应-环球快消息

2023-06-06 13:49:36

世界最新:中医问诊之问睡眠

2023-06-06 12:12:09

扎克伯格推出新款MR头显,华为回应盘古Chat传闻,投资人称天涯已被时代抛弃,多地对网约车按下暂停键,这就是今天的其他大新闻!

2023-06-06 11:46:52

美财政部以销售设备涉芬太尼为由制裁中国实体和个人,商务部:坚决反对 环球观速讯

2023-06-06 10:43:13

车险商业险包括哪些具体什么意思-当前热闻

2023-06-06 10:04:50

贝恩同意!JJJ谈灰熊本赛季:被“羞辱”对我们是好事 更有饥饿感

2023-06-06 09:21:57

8杯冰水都解不了的燥热,全靠它摆平!清香鲜美还补水!_每日热议

2023-06-06 07:48:57

天天快播:绿豆长牙了还能吃吗_长牙的土豆能吃吗

2023-06-06 06:51:53

城市漫游、日行数万步……年轻人旅游呈现新特点_播资讯

2023-06-06 05:58:16

报道:悦读书“成长股天王”杨飞的枕边书:《如何选择成长股》和《我喜欢生命本来的样子》

2023-06-06 04:48:33

ST高升:控股股东拟增持1亿元-1.5亿元|关注

2023-06-06 04:01:28

高盛:拜登气候法案的潜力被低估 ESG投资者正在错失机会

2023-06-06 02:51:00

可以养宠物看着宠物慢慢长大的游戏有哪些 高人气云养宠物的手游推荐 世界新动态

2023-06-06 02:04:22

全球热消息:海报|太平洋不是日本的下水道

2023-06-06 01:00:26

环球关注:通厕所服务电话_通厕所

2023-06-06 00:14:34

Oppo以合理的价格发布了A53智能手机

2023-06-05 23:43:47

新聊斋志异聂小倩谁演_聂小倩 电视剧新聊斋志异之小倩中的人物

2023-06-05 22:23:34

美国上周末多地发生枪击事件 多人死伤|世界速讯

2023-06-05 21:46:51

全球头条:李世民杀外甥,姐姐求情,李世民说了8个字,姐姐无言

2023-06-05 21:23:35

谷歌集成 AI 搜索体验被指反应太慢 查询结果加载时间过长

2023-06-05 19:41:37

当前滚动:喜报!烟台市中医医院谭松入选“烟台最美科技工作者”

2023-06-05 18:37:05

全球即时看!粘胶短纤商品报价动态(2023-06-05)

2023-06-05 18:18:14

B站大幅减亏,但元气恢复还需时间_信息

2023-06-05 17:46:57

太原公积金缴存比例是多少?2023年太原住房公积金如何缴存?_环球头条

2023-06-05 16:23:31

全球短讯!十年来,山东将“绿水青山”写进近20部法律

2023-06-05 15:45:37

医药商业股震荡走高 第一医药涨超9%

2023-06-05 15:04:25

世界环境日丨福建两地发布2022年生态环境状况 环球热门

2023-06-05 14:07:38

环球即时:银行行长表示:若存款金额达到“这个数”,可以和银行谈利率

2023-06-05 13:31:49

环球热资讯!华安张江光大园REIT完成扩募 有效认购资金约15.53亿元

2023-06-05 13:10:44

谷歌“弃三星用高通”,智能手表“芯战”风雨欲来

2023-06-05 12:21:17

脑机接口概念低开高走 创新医疗拉红涨超5%_每日速讯

2023-06-05 11:11:43

组织举办健康知识讲座-环球热推荐

2023-06-05 10:30:12

环球视讯!【原】写作一年多,首次公开我的日更目的。

2023-06-05 09:55:14

高德红外与杭州余杭区政府签署合作 共同探索智能物联终端等领域_快看

2023-06-05 08:57:57

NBC环球高管Joe Benarroch将加入推特

2023-06-05 08:00:27

“开卷”6·18|家电企业和自己“打架”

2023-06-05 07:04:38

美国密苏里州发生枪击事件 致2死4伤

2023-06-05 05:48:26

环球视讯!石家庄工程职业学院命案_石家庄工程职业学院

2023-06-05 02:58:24

李隆基端午的诗 环球今热点

2023-06-05 00:46:06

20位单亲母讲述-二十位单亲毌亲讲述

2023-06-04 22:47:11

观焦点:电脑开机黑屏只有鼠标任务管理器也打不开(电脑开机黑屏只有鼠标)

2023-06-04 21:47:53

全球今热点:西媒:皇马对凯恩的兴趣不会影响哈弗茨,俱乐部计划同时签下二者

2023-06-04 20:23:17

中外合作专业什么意思啊值得读吗

2023-06-04 19:12:12

中国星辰|这是一封中国航天员从“天宫”发来的回信

2023-06-04 18:14:56

微资讯!马克思主义基本原理专题测试答案(mosfet管的测试原理是什么)

2023-06-04 17:33:01

皇马官宣与阿扎尔解约!效力4年进7球夺8冠,或32岁就选择退役

2023-06-04 16:18:31

广西首份RCEP项下输菲律宾原产地证书和声明签发-全球今热点

2023-06-04 15:13:53

科治好三招教你远离“鼠标手”|视焦点讯

2023-06-04 14:28:09

安徽通管局李庆坤:安徽省算力建设已取得显著进展|焦点热文

2023-06-04 13:38:47

产业振兴 环境改善 乡风文明 安徽扎实推进宜居宜业和美乡村建设(高质量发展调研行)|焦点短讯

2023-06-04 12:38:21

工伤赔偿后能否向侵权人追偿_热头条

2023-06-04 11:17:06

煲饭可以加什么粗粮? 当前头条

2023-06-04 10:56:47

全球滚动:哪里可以看轩辕剑_网上可以看轩辕剑第5集不

2023-06-04 09:59:03

山东师范大学国家专项_山东师范大学地方专项是什么意思

2023-06-04 09:04:15

欣欣然的意思是什么呢_欣欣然的意思是什么

2023-06-04 08:03:42

全球焦点!pu皮是什么皮

2023-06-04 06:42:19

武则天男宠又叫什么(武则天的男宠行房图片)

2023-06-04 05:15:22

直方图怎么做成的_直方图怎么做 天天新动态

2023-06-04 03:37:50

8岁男孩摆摊1小时赚584元,什么项目这么好赚?

2023-06-04 02:05:19

全球新消息丨苹果手机如何清空相册(iphone怎么一键清空相册)

2023-06-03 23:59:27

太阳系八大行星介绍月球(太阳系八大行星介绍)

2023-06-03 22:12:36

当前关注:bar是什么意思单位_bar是什么意思

2023-06-03 21:07:52

辽宁女子接连存钱4年,2018年慌张报警:我存的1310万被银行吞了

2023-06-03 20:06:36

【建设平安云梦】云梦:“学校老师”来电采购物资?当心被骗!

2023-06-03 19:25:28

新动态:雷阵雨+大风!北京多区发布雷电蓝色预警,请注意防范

2023-06-03 18:18:05

巴黎官宣37岁拉莫斯合同到期离队!效力2年夺3冠,沙超或成下一站

2023-06-03 17:18:32

今日讯!田志强深入万泉等镇调研槟榔地改种情况

2023-06-03 16:55:16

直击|印度三辆列车相撞:至少288人死亡、约900人受伤 全球热点

2023-06-03 15:49:10

新版电子税务局如何添加办税员 每日精选

2023-06-03 14:55:43

全球播报:《小美人鱼》反派超美剧照:喜欢黑人鱼的蛇蝎美人

2023-06-03 14:02:10

dover组_dover

2023-06-03 12:52:04

揽胜LWB将于11月下旬在广州车展上首次亮相

2023-06-03 12:03:52

珍草堂染发剂多少钱一盒_珍草堂染发剂怎么样 全球快报

2023-06-03 11:04:40

天天最资讯丨2023年第1号省总林长令发布 全年造林486.68万亩 种草32.86万亩

2023-06-03 10:17:20