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

获取SQL防御规则 - ShowSqlJobDefendRule

功能介绍

该API用于获取单个SQL防御规则。

调试

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

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限及授权项说明
  • 如果使用身份策略授权,需具备如下身份策略权限。

    授权项

    Action

    访问级别

    Access Level

    资源类型(*为必须)

    Resource Type (*: required)

    条件键

    Condition Key

    别名

    Alias

    依赖的授权项

    Dependencies

    dli:sqldefendrule:get

    Read

    -

    -

    -

    -

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

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

约束限制:

取值范围:

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

默认取值:

rule_id

String

参数解释:

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

约束限制:

取值范围:

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

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

默认取值:

请求参数

响应参数

表2 响应Body参数

参数

参数类型

描述

rule_uuid

String

规则唯一标识。

最大长度:64

project_id

String

项目编号。

最大长度:64

rule_name

String

参数解释:

自定义SQL防御规则名称。

请参考数据湖探索用户指南中“SQL防御系统规则”。

约束限制:

最小长度:1

最大长度:32

取值范围:

默认取值:

rule_id

String

参数解释:

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

约束限制:

取值范围:

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

  • 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

参数解释:

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

约束限制:

取值范围:

支持以下枚举值:

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

默认取值:

engine_rules

Object

参数解释:

规则支持的动作。请参考表3中的支持的动作。

约束限制:

取值范围:

支持以下枚举值:

  • hint:提示
  • intercept:拦截
  • fuse:熔断

默认取值:

queue_names

Array of strings

队列名称。

desc

String

用户规则描述。

最大长度:2000

sys_desc

String

系统规则描述。

create_time

Long

规则创建时间。

update_time

Long

规则更新时间。

表3 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

请求示例

响应示例

{
    "rule_uuid": "168d21df-904c-402a-887c-0cee41dd55cc",
    "project_id": "330e068af1334c9782f4226acc00a2e2",
    "rule_name": "sql_running_0005_system",
    "rule_id": "running_0005",
    "category": "running",
    "engine_rules": {
        "fuse": 2048
    },
    "queue_names": [
        "ci_sql"
    ],
    "desc": "system default rule",
    "create_time": 1767924865715,
    "update_time": 1767924865715,
    "sys_desc": "Shuffle data(GB)"
}

状态码

状态码

描述

201

获取规则成功

400

请求错误。

500

内部服务器错误。

错误码

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

相关文档