Creating a SQL Throttling Rule
Function
This API is used to create a SQL throttling rule. Currently, this function is supported only for MySQL databases. The restrictions are as follows:
- Keywords are separated by a tilde (~), for example, select~a. A throttling rule will be applied to SQL statements containing keywords select and a.
- If a SQL statement matches multiple rules, only the latest rule is applied.
- Keywords of a throttling rule are sorted in a specific order, and the system will match them from first to last. For example, if one rule contains the keyword a~and~b, the system only matches xxx a>1 and b>2.
- Generated keywords may be case-sensitive. Execute show variables like 'rds_sqlfilter_case_sensitive' or go to the console to check parameter settings for specifying case-sensitivity.
- Throttling rules can only be added for primary instances.
- System catalogs are not restricted, queries which do not involve data are not restricted, and the root user is not restricted in specific versions.
Authorization Information
Each account has permissions to call all APIs, but IAM users must have the required permissions specifically assigned.
- If you are using role/policy-based authorization, see the required permissions in Permissions Policies and Supported Actions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
das:clouddba:createSqlLimitRules
Write
Instance
-
-
-
URI
POST /v3/{project_id}/instances/{instance_id}/sql-limit/rules
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
project_id |
Yes |
String |
Definition Project ID of a tenant in a region To obtain this value, see Obtaining a Project ID. Constraints N/A Range The value can contain 32 characters. Only letters and digits are allowed. Default Value N/A |
|
instance_id |
Yes |
String |
Definition Unique ID of an instance Constraints N/A Range The value can contain 32 characters. Only letters and digits are allowed. Default Value N/A |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
datastore_type |
Yes |
String |
Definition Database type Constraints N/A Range
Default Value N/A |
|
sql_limit_rules |
Yes |
Array of CreateSqlLimitRuleOption objects |
Definition SQL throttling rules to be created. A maximum of 5 rules can be created at a time. Constraints N/A Range N/A Default Value N/A |
|
database_name |
No |
String |
Definition Database name Constraints Only MySQL databases are supported. Range N/A Default Value N/A |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
sql_type |
Yes |
String |
Definition SQL type Constraints N/A Range
Default Value N/A |
|
max_concurrency |
Yes |
Integer |
Definition Maximum concurrent SQL statements Constraints N/A Range [0, 2^31-1]. The actual value depends on the query result. Default Value N/A |
|
pattern |
Yes |
String |
Definition SQL throttling rule Constraints Keywords are separated by a tilde (~), for example, select~a. The throttling rule will be applied to SQL statements containing keywords select and a. Range N/A Default Value N/A |
|
max_waiting |
No |
Integer |
Definition Maximum waiting time Constraints N/A Range [0, 2^31-1]. The actual value depends on the query result. Default Value N/A |
|
his_sql_limit_switch |
No |
Boolean |
Definition Whether historical SQL throttling rules are enabled Constraints
Range
Default Value N/A |
Response Parameters
Status code: 200
None
Example Requests
Creating a SQL throttling rule
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"
}
Example Responses
None
Status Codes
|
Status Code |
Description |
|---|---|
|
200 |
Successful response |
|
400 |
Client error |
|
500 |
Client error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot