摘要: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)将作业移除黑名单。
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)
查询过滤器使用作业Unique SQL ID识别和保存黑名单信息,为有效运用查询过滤器紧急拦截功能,建议TopSQL开启,在作业引发CORE、报错、性能下降等问题时可以快速获取作业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)
获取到作业Unique SQL ID后,调用内置函数gs_append_blocklist(unique_sql_id int8)将作业加入黑名单:
postgres=# select * from gs_append_blocklist(2307078791); gs_append_blocklist--------------------- t(1 row)
作业加入黑名单后,查询系统表确认黑名单加入是否成功:
postgres=# SELECT * FROM dbms_om.gs_blocklist_query; unique_sql_id | block_list | except_num | except_time---------------+------------+------------+------------- 2307078791 | t | 0 |(1 row)
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.
postgres=# select gs_remove_blocklist(2307078791); gs_remove_blocklist--------------------- t(1 row)
点击关注,第一时间了解华为云新鲜技术~
标签:
上一篇 : *ST越博与财务总监徐方伟收警示函 业绩预告两度不准
下一篇 : 最后一页
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔
06-08 05:18:46
中国经济网北京6月7日讯证监会江苏监管局网站日前公布的《江苏证监局关
06-08 04:39:40
科技、数码、互联网新闻如今都成为了大众所关注的热点了,因为在我们的
06-08 04:32:47
明日特攻队礼包兑换码是多少·在明日特攻队这款非常好玩的3d休闲解压射
06-08 03:17:17
三德科技(SZ300515,收盘价:15 11元)6月7日晚间发布公告称,截至本
06-08 03:15:55
兴业证券预计达利食品(03799)2023-25年归母净利润为32 4 36 4 40 9亿元。
06-08 02:48:02
想必现在有很多小伙伴对于泰罗科学管理理论的中心问题是什么方面的知识
06-08 02:12:15
大家都知道周杰伦的妻子是昆凌,两个人同框的时候就是粉丝吃狗粮的时候
06-08 01:37:05
据台湾“中央社”消息,6月7日,鸿海集团旗下富智康子公司富智捷(Mobi
06-08 01:09:19
富阳区政府召开第23次常务会议杭州网发布时间:2023-06-0714:23富阳日
06-08 00:42:55
同花顺金融研究中心6月7日讯,有投资者向拱东医疗提问,尊敬的董秘,请
06-07 23:52:50
想必现在有很多小伙伴对于韶关特产方面的知识都比较想要了解,那么今天
06-07 22:48:30
观点网讯:6月7日,港股部分内房股走强。截至发稿,合景泰富集团涨7 79
06-07 22:35:22
如今,在全世界第二大流动沙漠——塔克拉玛干沙漠腹地,被誉为“深地一
06-07 21:57:50
1、阴部。2、出尿的地方叫尿道。本文就为大家分享到这里,希望看了会喜
06-07 21:59:14
6月6日,中国长城披露了深交所对其2022年年报下发的问询函,问询内容主
06-07 21:41:36
中新网西宁6月7日电 (张世雷 韩世峰 李隽)7日,记者从国家税务总
06-07 20:53:49
渤海化学公告,全资子公司渤海石化拟投资建设丙烯酸酯和高吸水性树脂新
06-07 20:47:34
全球首发!省人医专家参与的临床试验公布重大成果,为高血压治疗投下“
06-07 20:16:50
金百泽在互动平台表示,公司研发了400G光模块PCB关键工艺技术,该技术
06-07 19:46:53
艺术家对月球基地活动的印象。宾夕法尼亚大学的研究人员提出了一种改进
06-07 19:16:52
活动现场。活动现场。红网时刻衡阳6月7日讯(通讯员刘寅晖)为科学防控
06-07 18:22:01
1、凹凸曼App是一个专属大码mm的时尚穿搭、美妆和健康瘦身的移动应用。
06-07 18:32:57
日前南方发生一辆电车撞收费站起火致死案例,您还敢选电车吗?作为普通
06-07 17:36:15
今天是高考首日,上午首场语文考试刚刚结束,大家最关心的作文题目就已
06-07 17:13:01
Etched ai是一家美国语言模型推理专用芯片设计研发商,公司致力于构建
06-07 17:07:10
夏雨差点成了武打戏演员(主题)齐鲁晚报记者 宋说 由
06-07 16:57:32
机器之心发布作者:之江实验室当前,生成式大模型已经为学术研究甚至是
06-07 16:31:19
新洲四中好邻居爱心送考十年不断---湖北日报讯(通讯员陶火应)6月6日
06-07 15:21:30
如何用CATIA给工业设计加上“创意的翅膀”?- 凯思软件企业研发创新体
06-07 14:47:19
金投网提供2023癸卯年1公斤金制纪念币价格(2023年06月07日),2023癸
06-07 14:36:44
长江全长有多长?长江全长6387千米。长江发源于世界屋脊——青藏高原
06-07 13:22:24
唯一药物即将退出中国罕见病患者遇到罕见时刻,
06-07 13:10:26
智通财经APP获悉,国有大行存款利率或即将全面进入“2时代”。据报道,
06-07 12:25:19
6月7日,中国消费者协会(以下简称“中消协”)发布培训班退费骗局警示
06-07 12:01:01
中国女排在圆满完成了世界女排联赛日本名古屋站的4场比赛之后,根据计
06-07 09:52:28
席间,让甄衍更觉不寻常的是,赵蝎儿一直热情地在给狗蛋劝酒,这狗蛋也
06-07 09:37:02
同花顺数据显示,2023年6月6日,创业慧康获外资卖出14 87万股,占流通
06-07 09:14:22
关于抖音平台上发布的“云南一导游暗讽游客不消费”视频的调查进展通报
06-07 08:28:42
想必现在有很多小伙伴对于炫狗是什么梗,炫神为什么叫炫狗方面的知识都
06-07 07:40:44
1、了字加一笔有孒、子、孑、孓。2、一、了的释义[le]用在动词或形容词
06-07 07:43:25
想必现在有很多小伙伴对于圣女果网络上是什么梗(圣女果网络意义)方面
06-07 07:23:31
1、解答:已知:超声波在海水中的传播速度是v=1500m s。2、超声波传到
06-07 06:40:09
1、散光是因为当我们的眼睛看一个物体时,物体的每一个像都会反射出一
06-07 06:20:05
美国《华盛顿邮报》网站6月2日刊登专栏作家法里德·扎卡里亚的文章,题
06-07 06:05:10
1、我们教室墙上贴了一张十要十不要“六要六不要”顺利过中考如果把中
06-07 05:40:42
1、半轴是差速器与驱动轮之间传递扭矩的实心轴,其内端一般通过花键与
06-07 05:33:51
在孩子的成长过程中,父亲的角色是至关重要的。父亲的用心关注和教育,
06-07 04:46:54
1、假的!当时世界上都不支持中国对越南动武,如果有这种事,中国还不
06-07 04:23:42
乌克兰官员称目前扎波罗热核电站辐射在正常范围内:据媒体,乌克兰国家
06-07 03:38:48
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔
2023-06-08
中国经济网北京6月7日讯证监会江苏监管局网站日前公布的《江苏证监局关
2023-06-08
科技、数码、互联网新闻如今都成为了大众所关注的热点了,因为在我们的
2023-06-08
明日特攻队礼包兑换码是多少·在明日特攻队这款非常好玩的3d休闲解压射
2023-06-08
三德科技(SZ300515,收盘价:15 11元)6月7日晚间发布公告称,截至本
2023-06-08
日前从邢台市新闻办举办的南宫专场新闻发布会获悉,今年以来,南宫市坚持外引内育,大力开展招商引资,...
近日,从海带中制造环保纱线的材料创新者AlgiKnit宣布获得1300万美元(8735 6万元)的A轮融资,以通过加...
概念特点1、 定义:纤维是天然或人工合成的细丝状物质,纺织纤维则是指用来纺织布的纤维。2、 纺织纤...
中新网西宁11月21日电 题:青海水润高原:从“大动脉”到“毛细血管”的精准管理 作者 谈林明...
中新网西宁11月21日电 (记者 张添福)青海省卫生健康委员会21日消息,该省第3例本土确诊病例经过20...
Copyright © 2015-2022 南极纤维网版权所有 备案号:粤ICP备2022077823号-13 联系邮箱: 317 493 128@qq.com