摘要: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。[page]
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)将作业加入黑名单:[page]
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)
点击关注,第一时间了解华为云新鲜技术~
上一篇:【世界速看料】高考首日,咸阳考场秩序井然场外家长翘首以盼
下一篇:最后一页
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔
今日PlayStation官方宣布,淘宝618品类日,PlayStation双手柄套装至高立减930元。
十年寒窗苦读日,一朝金榜题名时,6月7日,2023年全国高考拉开帷幕,上
鞭牛士 6月7日消息,据看头网消息,6月6日,东方卫视开启海派直播,用
谷歌浏览器是一款安全快速的网页浏览器,界面简洁,用户只需要在地址栏
无悔华夏是专注于中华文化的问答游戏,玩家可以通过游戏学习到丰富的历
1、原局是进不去了,重新开始吧!重新开一局吧重新下载,也有可能是系
1、《宿建德江》是唐代诗人孟浩然的代表作之一。2、这是一首刻画秋江暮
市场信息报讯 连日来,山西省长治市平顺县广泛开展发扬“四敢”精神大
在5月15日,2022年河南“最美职工”发布仪式上,河南豫光金铅股份有限
日前,互联网协会进行了一项小型研究,探索互联网边缘的发展和创新,重
塞尔达传说王国之泪飞弛之物在哪?游戏中,斯斯亚伊-飞弛之物神庙位于鸟
1、你可以百度一下正和农家院,就能找到他的联系方式。2、绝对正宗的农
据新华社电中国科研团队研发出一种能够快速溶解肿瘤并抑制肿瘤细胞转移
近日,北京瑞景祥殡仪服务有限公司因违反价格法,被北京市石景山区市场
6月7日,由杨国宗、字德海等州、市领导组成的巡考组前往大理市部分高考
想必现在有很多小伙伴对于软硬兼施的意思方面的知识都比较想要了解,那
2023年新加坡羽毛球公开赛6日展开首轮较量,中国男单选手石宇奇以2:0战
想必现在有很多小伙伴对于诞辰和生日的区别方面的知识都比较想要了解,
想必现在有很多小伙伴对于庐州是现在的哪个城市方面的知识都比较想要了
拓维信息:关于2022年股票期权与限制性股票激励计划之限制性股票预留授
报考中级经济师现场审核带学历证明、工作证明以及身份证明,由于中级经
【长春高新回应股价跌停:公司经营一切正常集采对业绩影响“中性偏好”
彭博6月7日消息,三星电子表示,该公司将于7月下旬在首尔举行的GalaxyU
由BradleySmith教授领导的圣母大学的一组研究人员偶然发现了一种新技术
1、你好。2、请问这首歌曲是不是《都是寂寞犯的错》?具体歌词如下:窗
想必现在有很多小伙伴对于火车开头字母的意思方面的知识都比较想要了解
想必现在有很多小伙伴对于嫦娥五号的重大意义方面的知识都比较想要了解
06月07日,兆龙互连股价大涨。截至今日收盘,兆龙互连上涨8 57%,收盘
登康口腔06月07日主力资金净流出1296 64万元,涨跌幅为1 39%,主力净量
1、外资:LS母线槽。2、施耐德母线槽。3、古河母线槽。本文为大家分享到
1、预售25号,默认在25号之内发货都算是正常发货!但是你承诺13号发货
富德生命安顺康伴至全意外险(升级版)是富德生命人寿承保的一款意外保障
每经记者:叶峰每经编辑:肖芮冬大盘全天震荡分化,沪指震荡微涨,创业
近日,佳木斯市市长王铁,前进区委书记黄远志一行到佳木斯地面站项目调
天源环保(301127)06月07日在投资者互动平台表示:尊敬的投资者,您好
塞尔达传说王国之泪飞弛之物在哪?游戏中,斯斯亚伊-飞弛之物神庙位于鸟
为进一步提升人才工作整体效能,山东省泰安市岱岳区粥店街道把培养人才
恩捷股份(002812)06月07日在投资者互动平台表示:您好,公司现有隔膜
南京一大学生宿舍内被害,疑似被人用刀捅伤身亡,嫌疑人已被控制文 小
中国5月末黄金储备6727万盎司,4月末为6676万盎司,为连续第7个月增加
中新网北京6月7日电(记者张素邢翀)中国外交部发言人汪文斌6月7日主持例
天龙集团(300063)06月07日在投资者互动平台表示:尊敬的投资者您好。
A股三大指数今日涨跌不一,截至收盘,沪指涨0 08%,深成指跌0 6%,北证
经审理查明,被告人陈克祥在先后担任岳阳市畜牧水产局局长、岳阳市城市
过去三年,里拉对美元已贬值67%。而为支撑土耳其里拉汇率,并为经常账
行情表现6月7日收盘价当日涨跌幅五日涨跌幅螺纹3621 00元 吨-0 93%4 56
同花顺金融研究中心6月7日讯,有投资者向百洋医药提问,请问付董,百洋
卡霍夫卡水电站位于俄罗斯控制的扎波罗热核电站下游,该核电站依靠卡霍
据海关统计,今年前5个月,我国有进出口实绩的民营企业43 9万家,同比
6月7日,2023年全国高考正式开启。记者从广州市公安局获悉,高考首日,
研学游又 "火 "了—— "全链 "发力,打造 "游学江苏 "品牌
奥雅股份06月07日主力资金净流出589 59万元,涨跌幅为-3 01%,主力净量
汪文斌回应称,中美之间保持着必要沟通,当前中美关系面临挑战,责任不
6月6日,天津地区的空铁联运再次升级,天津航空与携程旅行协同综合交通
文章转载来源:奇幻空间来源:钛媒体App,作者:杜志强,编辑:钟毅在
卡霍夫卡水电站位于俄罗斯控制的扎波罗热核电站下游,该核电站依靠卡霍
券中社6月7日讯,港交所将在本月19日推出人民币双柜台模式,联席营运总
同花顺金融研究中心6月7日讯,有投资者向赛摩智能提问,请问公司有无电
收评:创业板指跌1 61%续创新低AI概念股逆势大涨,概念股,创业板,个股,
想必现在有很多小伙伴对于由俭入奢易由奢入俭难意思方面的知识都比较想
想必现在有很多小伙伴对于一视同仁的意思方面的知识都比较想要了解,那
平安证券:拿地收缩聚焦,热度分化加剧,土拍,推地,平安证券,土地市场,
英国抵押贷款机构Halifax的数据显示,英国5月份房价出现2012年以来的首
今(7)日圈内传出电视剧《山河令》制片人马韬去世的消息,红星新闻记
6月6日晚间,荣盛发展(002146 SZ)披露了对深圳证券交易所2022年年报问
该批房源共涉及26个项目,总建筑面积约76 6万平方米,共计7087套,备案
AscendantStudios已确认其即将推出的第一人称魔法射击游戏《不朽者传奇
原标题:2900多条假订单!江苏扬州警方破获一起骗取电商平台补贴诈骗案
让现金从Gfinity的账面和资产负债表上流出。这并不是成功的标志。
2023年6月2日,“向新生·行致远”北京金融科技中心招商中心开放仪式在
(1)无财产争议案件:普通民事、经济、行政案件,不涉及财产的,根据
1、氢气是一种可燃气体,也是非常常见的一种气体。2、事实上,氢气对人
看来国家是动真格了?第二批央企总部离京“正式启动”,央企,北京,国企,
6月6日晚间,中炬高新发布公告称,公司董事会于2023年6月6日收到张华先
同花顺金融研究中心6月7日讯,有投资者向*ST民控提问,为什么我的提问
手机这种移动通讯设备闲置已经相当的普及了,大多数的手机用户,对手机
近日,成都市教育局公布了第十五批艺术教育特色学校。成都东部新区三岔
PS会员双倍折扣优惠活动上线,PlayStationPlus用户购买游戏可享受双倍
纯苯:昨日纯苯市场重心下滑。华东主流成交于6520-6580元 吨,山东成交
陈都灵的一组美照曝光,她盘发搭配缎面长裙尽显质感,整个人优雅十足,
1、长征红军不怕远征难,万水千山只等闲。2、五岭逶迤腾细浪,乌蒙磅礴
为什么中国的股票交易不能当天买当天卖呢世界都这样吗?为什么中国的股
汽车的本质,在于提供安全、舒适、便捷的出行方式。随着电动化、智能化
为什么中国的股票交易不能当天买当天卖呢世界都这样吗?为什么中国的股
汽车的本质,在于提供安全、舒适、便捷的出行方式。随着电动化、智能化
6月3日,求职者在招聘会现场查看岗位信息。当日,“职在银川,位你而来
交通运输部的数据显示,5月,31个省(区、市)和新疆生产建设兵团共有5
品名规格报价涨跌单位地区日期锌合金Z320330-20430230元 吨广东2023-6-
·意法半导体和三安光电将成立一家合资制造厂,进行8英寸碳化硅(SiC)
经审理查明,被告人陈克祥在先后担任岳阳市畜牧水产局局长、岳阳市城市
推荐露营、避暑、亲水、休闲、文化、商旅六大主题70余处具有丰富业态的
近年来,涟源市共有86家企业获得强制性产品、食品农产品、管理体系等24
6月7日,新乡投资集团公告,其2023年度第三期中期票据将于6月8日至6月9
浙能电力6月7日在互动平台表示,水系锌离子目前尚未完成结题验收,但性
商报全媒体讯(椰网 海拔新闻记者郭尚)三亚市气象台6月6日12时57分发
根据生意社监测数据显示,截止2023年6月7日,国产工业级丙二醇市场价格
周大生:公司会加大在华东、华南的开店力度
挖贝网10月11日,华兴股份(873760)近日发布公告,公司于2022年4月21
本周,谷歌报告了其在YouTube上标记和删除暴力极端主义视频的努力进展
X 关闭
银行理财产品是什么?银行理财产品有哪些种类?
降准指的是什么意思?降准对老百姓意味着什么?
国债是怎么赚钱的?国债利率下降会不会亏损呢?
国债收益率下跌说明什么?国债收益率下跌还可以买入吗?
X 关闭