创建SQL限流任务
调试
您可以在API Explorer中调试该接口。
接口约束
- 分布式实例不支持SQLID类型和自治限流任务。
- 不支持对系统级别用户(例如root等)进行SQL限流。
- 每个实例最多支持1000条限流任务。
- 对于关键词限流任务,一个关键词中包含英文逗号视作以逗号分隔的两个关键词,作用时不区分关键词前后顺序。
- 限流功能仅支持8.0及以上版本实例。
URI
POST /v3/{project_id}/instances/{instance_id}/limit-task
|
名称 |
是否必选 |
说明 |
|---|---|---|
|
project_id |
是 |
参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 |
|
instance_id |
是 |
参数解释: 实例ID,此参数是用户创建实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为36个字符。 默认取值: 不涉及。 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
是 |
String |
参数解释: 用户Token。 通过调用IAM服务获取用户Token接口获取。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
X-Language |
否 |
String |
参数解释: 语言。 约束限制: 不涉及。 取值范围:
默认取值: en-us |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
task_scope |
是 |
String |
参数解释: 限流任务范围。 约束限制: 不涉及。 取值范围: 目前支持SQL,SESSION两种级别范围。 默认取值: 不涉及。 |
|
start_time |
否 |
String |
参数解释: 任务开始时间。 约束限制: 当“task_scope”为SQL时必传。 格式必须为yyyy-mm-ddThh:mm:ss+0000。 取值范围: 大于等于当前时间(UTC时间)的前两分钟。 默认取值: 不涉及。 |
|
end_time |
否 |
String |
参数解释: 任务结束时间。 约束限制: 当“task_scope”为SQL时必传。 格式必须为yyyy-mm-ddThh:mm:ss+0000。 取值范围: 大于任务开始时间。 默认取值: 不涉及。 |
|
limit_type |
是 |
String |
参数解释: 限流类型。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
|
limit_type_value |
是 |
String |
参数解释: 限流类型值。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
|
key_words |
否 |
String |
参数解释: 关键词。 约束限制: 当“limit_type”为SQL_TYPE时,必传。 取值范围: 多个关键词以逗号隔开,数量范围为[2,100]个,每个关键词长度范围[2,64]位,关键词不允许包含 " 或 \ 或 {} 或 null值以及非首尾的空格符。 默认取值: 不涉及。 |
|
task_name |
是 |
String |
参数解释: 限流任务名称。 约束限制: 不涉及。 取值范围: 只能为英文字母大小写,下划线,数字和$符,最大长度为100个字符。 默认取值: 不涉及。 |
|
sql_model |
否 |
String |
参数解释: SQL模板。 约束限制: 如果“limit_type”为SQLID,必传。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
parallel_size |
是 |
Integer |
参数解释: 并发数。 约束限制: 大于等于零的整数。 取值范围: [0, 2147483647] 默认取值: 不涉及。 |
|
cpu_utilization |
否 |
Integer |
参数解释: CPU利用率阈值。 约束限制: 如果“limit_type”为SESSION_ACTIVE_MAX_COUNT,则“cpu_utilization”必选。 不支持和内存利用率阈值同时为0,如果选择只限制CPU、内存中的其中一个,则另一个必须传值0。 取值范围: 整数,取值范围[0,100)。 默认取值: 不涉及。 |
|
memory_utilization |
否 |
Integer |
参数解释: 内存利用率阈值。 约束限制: 如果“limit_type”为SESSION_ACTIVE_MAX_COUNT,则“memory_utilization”必选。 不支持和CPU利用率阈值同时为0,如果选择只限制CPU、内存中的其中一个,则另一个必须传值0。 取值范围: 整数,取值范围[0,100)。 默认取值: 不涉及。 |
|
databases |
否 |
String |
参数解释: 实例的数据库列表,每个数据库以英文逗号形式隔。 约束限制: 如果“limit_type”为SQL_TYPE,则“databases”必选。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
node_infos |
否 |
Array of objects |
参数解释: CN节点信息列表,详情参见表4。 约束限制: 如果“limit_type”为SQL_ID,则“node_infos”必选。 |
响应参数
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
task_id |
String |
参数解释: 限流任务ID。 取值范围: 不涉及。 |
|
task_scope |
String |
参数解释: 任务限流范围。 取值范围: 目前支持SQL,SESSION两种级别范围。 |
|
limit_type |
String |
参数解释: 任务限流类型。 取值范围:
|
|
limit_type_value |
String |
参数解释: 任务限流类型值。 取值范围:
|
|
databases |
String |
参数解释: 实例的数据库列表,每个数据库以英文逗号形式隔开。 取值范围: 不涉及。 |
|
task_name |
String |
参数解释: 限流任务名。 取值范围: 不涉及。 |
|
sql_model |
String |
参数解释: SQL模板,仅当任务类型为SQL_ID时,返回该值。 取值范围: 不涉及。 |
|
key_words |
String |
参数解释: 关键词,仅当任务类型为SQL_TYPE时,返回该值。 取值范围: 不涉及。 |
|
status |
String |
参数解释: 限流任务状态。 取值范围: 当前支持:CREATING,UPDATING,DELETING,WAIT_EXECUTE,EXCUTING,TIME_OVER,DELETED,CREATE_FAILED,UPDATE_FAILED,DELETE_FAILED,EXCEPTION,NODE_SHUT_DOWN。 |
|
instance_id |
String |
参数解释: 实例ID。 取值范围: 不涉及。 |
|
rule_name |
String |
参数解释: 规则名。 取值范围: 不涉及。 |
|
parallel_size |
Integer |
参数解释: 并发数。 取值范围: [0, 2147483647] |
|
cpu_utilization |
Integer |
参数解释: CPU利用率阈值,仅当任务类型为SESSION_ACTIVE_MAX_COUNT时,返回该值且只保留整数部分。 取值范围: [0,100) |
|
memory_utilization |
Integer |
参数解释: 内存利用率阈值,仅当任务类型为SESSION_ACTIVE_MAX_COUNT时,返回该值且只保留整数部分。 取值范围: [0,100) |
|
start_time |
String |
参数解释: 限流任务开始时间,格式为yyyy-mm-ddThh:mm:ssZ。当“task_scope”为SQL时会返回该参数。 取值范围: 不涉及。 |
|
end_time |
String |
参数解释: 限流任务结束时间,格式为yyyy-mm-ddThh:mm:ssZ。当“task_scope”为SQL时会返回该参数。 取值范围: 不涉及。 |
|
created |
String |
参数解释: 创建时间,格式为yyyy-mm-ddThh:mm:ss+0000。 取值范围: 不涉及。 |
|
updated |
String |
参数解释: 更新时间,格式为yyyy-mm-ddThh:mm:ss+0000。 取值范围: 不涉及。 |
|
creator |
String |
参数解释: 创建者。 取值范围: 不涉及。 |
|
modifier |
String |
参数解释: 更新者。 取值范围: 不涉及。 |
|
node_infos |
Array of 表6 objects |
参数解释: CN节点信息列表,如果类型为SQLID,返回该值且与请求参数相同。 |
|
job_id |
String |
参数解释: 工作流ID。 取值范围: 不涉及。 |
请求示例
- 创建限流范围是SQL级别,限流类型是SQL_ID的限流任务。
https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_scope" : "SQL", "start_time" : "2023-06-06T01:47:20+0800", "end_time" : "2023-06-07T01:47:20+0800", "limit_type" : "SQL_ID", "limit_type_value" : "39b6a1a", "task_name" : "test1", "sql_model" : "select * from a where b = ?", "parallel_size" : 100, "node_infos" : [ { "node_id" : "46d996fdda594f58b17fe509061e0893no14", "sql_id" : "39b6a1a" } ] } - 创建限流范围是SQL级别,限流类型是SQL_TYPE的限流任务。
https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_scope" : "SQL", "start_time" : "2023-06-06T01:47:20+0800", "end_time" : "2023-06-07T01:47:20+0800", "limit_type" : "SQL_TYPE", "limit_type_value" : "select", "task_name" : "test1", "key_words" : "table1,id", "parallel_size" : 100, "databases" : "test1" } - 创建限流范围是SESSION级别,限流类型是SESSION_ACTIVE_MAX_COUNT的限流任务。
https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/3d39c18788b54a919bab633874c159dfin14/limit-task { "task_name" : "test", "task_scope" : "SESSION", "limit_type" : "SESSION_ACTIVE_MAX_COUNT", "limit_type_value" : "CPU_OR_MEMORY", "cpu_utilization" : 80, "memory_utilization" : 80, "parallel_size" : 100 }
响应示例
{
"task_id" : "59b6a1a278844ac48119d86512e0000",
"task_scope" : "SQL",
"task_name" : "test1",
"limit_type" : "SQL_TYPE",
"limit_type_value" : "select",
"instance_id" : "cb651ac71c5a447685ef981e44a0422fin14",
"key_words" : "test",
"databases" : "test1",
"status" : "creating",
"parallel_size" : 100,
"rule_name" : "dsa48119d86512e0000bin066a1a27",
"start_time" : "2023-12-30T02:00:00Z",
"end_time" : "2023-12-30T02:00:00Z",
"created" : "2023-12-30T02:00:00Z",
"updated" : "2023-12-30T02:00:00Z",
"creator" : "dbs_rds_guangzhou_l00417929_01",
"job_id" : "d8819ac11297598d06e591b5786aab86"
}
状态码
- 正常
- 异常
请参见状态码。
错误码
请参见错误码。