
# 自动推荐SQL限流规则 - RecommendSqlLimitRule
#### 功能介绍
根据条件（包括模板所代表的SQL平均时长，条数，最大执行时长，前三者混合）自动推荐SQL限流规则。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:recommendSqlLimitRule | list | instance    | -   | -  | -      |
     
  
 
#### URI
POST /v3/{project_id}/instances/{instance_id}/das-recommend-sql-limit-rule
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| instance_id | 是    | String | **参数解释：** 实例ID，实例的唯一标识。可通过查看实例列表或者实例详情获取实例ID信息。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                                |
   
#### 请求参数
表2请求Body参数 
| 参数                         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| engine_type                | 是    | String | **参数解释：** 数据库引擎类型。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                              |
| rds_recommendation_type    | 否    | String | **参数解释：** RDS推荐类型。 **约束限制：** 不涉及。 **取值范围：** - count：执行次数  - average_time：平均执行时间  - max_time：最大执行时间  - all：全部   **默认取值：** 不涉及。 |
| taurus_recommendation_type | 否    | String | **参数解释：** TaurusDB推荐类型。 **约束限制：** 不涉及。 **取值范围：** - count：执行次数  - average_time：平均执行时间   **默认取值：** 不涉及。                                                                                                                                                         |
| recommend_count            | 是    | Long   | **参数解释：** 推荐规则的数量。 **约束限制：** 不涉及。 **取值范围：** - 1：TOP1  - 5：TOP5  - 10：TOP10   **默认取值：** 不涉及。                                                                                                                          |
| node_id                    | 否    | String | **参数解释：** 数据库节点ID，实例节点的唯一标识。可通过查看实例详情节点列表获取节点ID信息。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                          |
   
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数              | 参数类型                                                    | 描述                                                                                                                                                                            |
|:---|:---|:---|
| sql_limit_infos | Array of [表4] objects | **参数解释：** SQL限流信息列表。                                                                                                                             |
| instance_id     | String                                                  | **参数解释：** 实例ID，实例的唯一标识。可通过查看实例列表或者实例详情获取实例ID信息。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 |
   
 表4SqlLimitInfo 
| 参数             | 参数类型                                          | 描述                                                                                                                           |
|:---|:---|:---|
| keyword        | String                                        | **参数解释：** MySQL限流关键字。 **取值范围：** 不涉及。 |
| raw_sql        | [表5] Object | **参数解释：** MySQL原始SQL信息。 **取值范围：** 不涉及。 |
| average_time   | Double                                        | **参数解释：** 平均执行时间。 **取值范围：** 不涉及。    |
| count          | Double                                        | **参数解释：** 数量。 **取值范围：** 不涉及。     |
| max_time       | Long                                          | **参数解释：** 最大执行时间。 **取值范围：** 不涉及。    |
| recommend_type | String                                        | **参数解释：** 推荐类型。 **取值范围：** 不涉及。     |
| exe_time       | Long                                          | **参数解释：** 总执行时长。 **取值范围：** 不涉及。    |
   
 表5RawSql 
| 参数         | 参数类型   | 描述                                                                                                                           |
|:---|:---|:---|
| session_id | Long   | **参数解释：** 会话ID。 **取值范围：** 不涉及。    |
| host       | String | **参数解释：** 会话主机IP。 **取值范围：** 不涉及。  |
| sql        | String | **参数解释：** 会话SQL语句。 **取值范围：** 不涉及。   |
| time       | Long   | **参数解释：** 会话持续时间。 **取值范围：** 不涉及。  |
| user       | String | **参数解释：** 会话用户名。 **取值范围：** 不涉及。 |
| db         | String | **参数解释：** 会话数据库名。 **取值范围：** 不涉及。  |
| sql_type   | String | **参数解释：** SQL类型。 **取值范围：** 不涉及。   |
   
#### 请求示例
```
POST https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/bcfa975193f1402fa11a6d4fd6baf5fbin01/das-recommend-sql-limit-rule
 
{
  "engine_type": "mysql",
  "recommend_count": 1,
  "rds_recommendation_type": "average_time"
}
```
#### 响应示例
**状态码： 200**
Success.
```
{
  "instance_id": "bcfa975193f1402fa11a6d4fd6baf5fbin01",
  "sql_limit_infos": [
    {
      "keyword": "something",
      "raw_sql": {
        "session_id": 123456,
        "host": "192.168.1.1",
        "sql": "select 1",
        "time": 12312312,
        "user": "testUser",
        "db": "test_db",
        "sql_type": "Insert"
      },
      "average_time": 0.1,
      "count": 1.0,
      "max_time": 12,
      "recommend_type": "all",
      "exe_time": 1
    }
  ]
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | Success.      |
| 400 | Client error. |
| 500 | Server error. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
