文档首页/ 数据湖探索 DLI/ API参考/ SQL作业防御规则/ 批量获取系统预置SQL防御规则 - ListSqlJobSystemDefendRules
更新时间:2026-04-10 GMT+08:00
分享

批量获取系统预置SQL防御规则 - ListSqlJobSystemDefendRules

功能介绍

该API用于获取系统预置SQL防御规则。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限及授权项说明

URI

GET /v1/{project_id}/sql-defend-sys-rules

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目编号,用于资源隔离。获取方式请参考获取项目ID

约束限制:

取值范围:

只能由英文字母和数字组成,且长度为[1-64]个字符。

默认取值:

请求参数

响应参数

表2 响应Body参数

参数

参数类型

描述

rules

Array of SqlDefendSysRuleDto objects

系统预置规则信息。

total_count

Long

总个数。

表3 SqlDefendSysRuleDto

参数

参数类型

描述

rule_id

String

参数解释:

规则ID。请参考表4的规则ID。

约束限制:

取值范围:

枚举值的具体含义请参考表4

  • static_0001
  • static_0002
  • static_0003
  • static_0004
  • static_0005
  • static_0006
  • static_0007
  • dynamic_0001
  • dynamic_0002
  • running_0002
  • running_0003
  • running_0004

默认取值:

category

String

参数解释:

规则状态类型。请参考表4中的状态类别列。

约束限制:

取值范围:

支持以下枚举值:

  • static:静态规则
  • dynamic:动态规则
  • running:熔断规则

默认取值:

actions

Array of strings

可执行的动作。

engines

Array of strings

支持的引擎。

no_limit

Boolean

规则是否有限制值。

desc

String

规则描述。

最大长度:2000

param

SysRuleParam object

系统规则配置参数。

表4 DLI支持的系统防御规则

规则ID

规则名称

说明

类别

适用引擎

支持的动作

取值说明

系统默认创建规则

SQL语句示例

支持的引擎版本

dynamic_0001

Scan files number

扫描文件数的限制。

dynamic

spark

提示

拦截

取值范围:1-2000000

默认值:200000

NA

Spark 3.3.1

dynamic_0002

Scan partitions number

对单个表操作(select,delete,update,alter)涉及的分区数超限制。

dynamic

spark

提示

拦截

取值范围:1-500000

默认值:5000

select * from 分区表

Spark 3.3.1

running_0002

Memory used(MB)

SQL的占用内存峰值超绝对值限制。

running

spark

熔断

取值范围:1-8388608

NA

Spark 3.3.1

running_0003

Run time(S)

SQL已经运行的时长限制。

running

spark

熔断

单位:秒

取值范围:1-43200

NA

Spark 3.3.1

running_0004

Scan data(GB)

扫描数据量的限制。

running

spark

熔断

单位:GB

取值范围:1-10240

NA

Spark 3.3.1

running_0005

Shuffle data(GB)

Shuffle数据量的限制。

running

spark

熔断

单位:GB

取值范围:1-10240

默认值:2048

NA

Spark 3.3.1

Spark 2.4.5

static_0001

Count(distinct) occurrences

SQL中count(distinct)出现次数限制。

static

spark

提示

拦截

取值范围:1-100

默认值:10

SELECT COUNT(DISTINCT deviceId), COUNT(DISTINCT collDeviceId)

FROM table

GROUP BY deviceName, collDeviceName, collCurrentVersion;

Spark 3.3.1

static_0002

Not in<Subquery>

SQL中是否使用了not in <subquery>语句。

static

spark

提示

拦截

取值范围:是/否

默认值:是

SELECT *

FROM Orders o

WHERE Orders.Order_ID not in (Select Order_ID

FROM HeldOrders h

where h.order_id = o.order_id);

Spark 3.3.1

static_0003

Join occurrences

SQL中的join次数的限制。

static

spark

提示

拦截

取值范围:1-50

SELECT name, text FROM table_1 JOIN table_2 ON table_1.Id = table_2.Id

Spark 3.3.1

static_0004

Union occurrences

SQL中的union all次数的限制。

static

spark

提示

拦截

取值范围:1-100

select * from tables t1

union all select * from tables t2

union all select * from tables t3

Spark 3.3.1

static_0005

Subquery nesting layers

子查询嵌套层数的限制。

static

spark

提示

拦截

取值范围:1-20

select * from (

with temp1 as (select * from tables)

select * from temp1);

Spark 3.3.1

static_0006

Sql size(KB)

SQL文件大小的限制。

static

spark

提示

拦截

单位:KB

取值范围:1-1024

NA

Spark 3.3.1

static_0007

Cartesian product

多表关联时笛卡尔积的限制

static

spark

提示

拦截

取值范围:0-1

select * from A,B;

Spark 3.3.1

表5 SysRuleParam

参数

参数类型

描述

max

Long

阈值上限。

min

Long

阈值下限。

defaultValue

Long

阈值默认值。

desc

String

规则描述。

最大长度:2000

请求示例

响应示例

{
    "rules": [
        {
            "defaultLimit": 200000,
            "rule_id": "dynamic_0001",
            "category": "dynamic",
            "actions": [
                "hint",
                "intercept"
            ],
            "engines": [
                "spark"
            ],
            "no_limit": false,
            "auto_rule": true,
            "desc": "Scan files number",
            "param": {
                "desc": null,
                "type": null,
                "min": 1,
                "max": 2000000,
                "defaultValue": 200000
            },
            "engine_versions": {
                "spark": "3.3.1"
            }
        }
    ],
    "total_count": 1
}

状态码

状态码

描述

201

获取规则成功

400

请求错误。

500

内部服务器错误。

错误码

调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码

相关文档