You need to enable JavaScript to run this app.
导航
大查询防御
最近更新时间:2025.11.07 15:47:30首次发布时间:2025.11.07 15:47:30
复制全文
我的收藏
有用
有用
无用
无用

适用场景

在生产环境中,需为业务模块划分资源使用,避免大查询或业务 BUG 导致集群资源过载、影响其他业务;EMR Serverless Doris 的引擎提供多种资源隔离或查询熔断方式。

适用版本

产品形态

引擎

部署方式

适用版本

Serverless 实例
(全托管)

Doris

存算一体

2.1.x版本及以上

操作步骤

存算一体与存算分离(湖仓版)

对于大查询防御通常有如下两种方法。

需要结合业务实际情况来选择使用。

添加 SQL 黑名单

-- 1.创建block规则
CREATE SQL_BLOCK_RULE rule_001
PROPERTIES (
  "SQL" = "select \\* from t",  -- SQL内容 (注意转译符号)
  "cardinality" = "1000",       -- 扫描数据量
  "partition_num" = "30",      -- 扫描分区数
  "tablet_num" = "10",          -- 扫描分桶数
  "global" = "true",          -- 若为false则为用户级别生效  
  "enable" = "true"
);

-- 2.若创建的是用户级别规则 则需要绑定用户
set property for 'root' 'SQL_block_rules' = 'rule_001';

增加大查询熔断资源组

说明

本样例中的数值仅用作参考,请结合业务使用姿势与__internal_schema.audit_log的指标进行参考,并建议完整测试后再执行,避免影响线上已有查询。

-- 1.创建大查询熔断负载组
create workload Policy test_cancel_Policy
Conditions(query_time > 1000)
Actions(cancel_query) 
properties('enabled'='true'); 

-- 2.查看所有资源组
SHOW WORKLOAD POLICY;

存算分离(多仓版)

存算分离(多仓版)场景下,结合上述 SQL 黑名单与大查询熔断资源组功能,实现单个计算仓库内的用户级隔离;或通过绑定不同计算仓库,完成资源隔离。