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.
URI
POST /v3/{project_id}/instances/{instance_id}/sql-limit/rules
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Explanation: Project ID of a tenant in a region To obtain this value, see Obtaining a Project ID. Constraints: N/A Values: The value can contain 32 characters. Only letters and digits are allowed. Default value: N/A |
instance_id |
Yes |
String |
Explanation: Unique ID of an instance Constraints: N/A Values: 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 |
Explanation: Database type Constraints: N/A Values:
Default value: N/A |
sql_limit_rules |
Yes |
Array of CreateSqlLimitRuleOption objects |
Explanation: SQL throttling rules to be created. A maximum of 5 rules can be created at a time. Constraints: N/A Values: N/A Default value: N/A |
database_name |
No |
String |
Explanation: Database name Constraints: Only MySQL databases are supported. Values: N/A Default value: N/A |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
sql_type |
Yes |
String |
Explanation: SQL type Constraints: N/A Values:
Default value: N/A |
max_concurrency |
Yes |
Integer |
Explanation: Maximum concurrent SQL statements Constraints: N/A Values: [0, 2^31-1]. The actual value depends on the query result. Default value: N/A |
pattern |
Yes |
String |
Explanation: 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. Values: N/A Default value: N/A |
max_waiting |
No |
Integer |
Explanation: Maximum waiting time Constraints: N/A Values: [0, 2^31-1]. The actual value depends on the query result. Default value: N/A |
his_sql_limit_switch |
No |
Boolean |
Explanation: Whether historical SQL throttling rules are enabled Constraints:
Values:
Default value: N/A |
Response Parameters
Status code: 200
None
Example Request
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 Code
Status Code |
Description |
---|---|
200 |
Successful request |
400 |
Client error. |
500 |
Client error. |
Error Code
For details, 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