创建SQL限流规则
功能介绍
添加SQL限流规则。目前仅支持MySQL数据库。 使用限制如下:
- 规则举例详细说明:例如关键字是"select~a", 含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,即若执行SQL命令包含select与a两个关键字视为命中此条并发控制规则。
 - 当SQL语句匹配多条限流规则时,优先生效最新添加的规则,之前的规则不再生效。
 - 限流规则关键字有顺序要求,只会按顺序匹配。如:a~and~b 只会匹配 xxx a>1 and b>2,而不会匹配 xxx b>2 and a>1。
 - 关键字可能大小写敏感,请执行 "show variables like 'rds_sqlfilter_case_sensitive'或者到实例参数设置页面进行确认。
 - 部分版本只读实例不允许设置限流规则,如果要设置限流规则,请到主实例上进行添加。
 - 系统表不限制、不涉及数据查询的不限制、root账号在特定版本下不限制。
 
URI
POST /v3/{project_id}/instances/{instance_id}/sql-limit/rules
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        是  | 
      
        String  | 
      
        参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。  | 
     
| 
        instance_id  | 
      
        是  | 
      
        String  | 
      
        参数解释: 实例ID。标识实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        datastore_type  | 
      
        是  | 
      
        String  | 
      
        参数解释: 数据库类型。 约束限制: 不涉及。 取值范围: 
 默认取值: 不涉及。  | 
     
| 
        sql_limit_rules  | 
      
        是  | 
      
        Array of CreateSqlLimitRuleOption objects  | 
      
        参数解释: 需要创建的SQL限流规则列表,一次最多创建5个。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。  | 
     
| 
        database_name  | 
      
        否  | 
      
        String  | 
      
        参数解释: 数据库名称。 约束限制: 仅支持MySQL实例的数据库。 取值范围: 不涉及。 默认取值: 不涉及。  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        sql_type  | 
      
        是  | 
      
        String  | 
      
        参数解释: SQL类型。 约束限制: 不涉及。 取值范围: 
 默认取值: 不涉及。  | 
     
| 
        max_concurrency  | 
      
        是  | 
      
        Integer  | 
      
        参数解释: 最大并发数。 约束限制: 不涉及。 取值范围: [0, 2^31-1],实际取决于查询。 默认取值: 不涉及。  | 
     
| 
        pattern  | 
      
        是  | 
      
        String  | 
      
        参数解释: SQL限流规则。 约束限制: 限流规则以~分隔关键字,例如select~a。规则举例详细说明:例如关键字是"select~a", 含义为:select以及a为该并发控制所包含的两个关键字,~为关键字间隔符,即若执行SQL命令包含select与a两个关键字视为命中此条并发控制规则。 取值范围: 不涉及。 默认取值: 不涉及。  | 
     
| 
        max_waiting  | 
      
        否  | 
      
        Integer  | 
      
        参数解释: 最大等待时间。 约束限制: 不涉及。 取值范围: [0, 2^31-1],实际取决于查询。 默认取值: 不涉及。  | 
     
| 
        his_sql_limit_switch  | 
      
        否  | 
      
        Boolean  | 
      
        参数解释: 历史SQL限流开关。 约束限制: 
 取值范围: 
 默认取值: 不涉及。  | 
     
响应参数
状态码:200
无。
请求示例
创建SQL限流规则。
POST https://das.cn-north-1.myhuaweicloud.com/v3/054c630ff780d4cc2f40c00d7f6fb21d/instances/d871e13ee1044e21a473330cd67047cbin01/sql-limit/rules
{
  "sql_limit_rules" : [ {
    "sql_type" : "SELECT",
    "pattern" : "select~t2~var",
    "max_concurrency" : 100
  }, {
    "sql_type" : "DELETE",
    "pattern" : "delete~t1~name",
    "max_concurrency" : 1
  } ],
  "datastore_type" : "MySQL"
}
 响应示例
无。
状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        200  | 
      
        Success.  | 
     
| 
        400  | 
      
        Client error.  | 
     
| 
        500  | 
      
        Client error.  | 
     
错误码
请参见错误码。