Files
doris/docs/zh-CN/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-SQL-BLOCK-RULE.md
Mingyu Chen 74a482ca7f [fix] fix docs build bug (#9293)
After this PR #9272, the `docs/build_help_zip.sh` will run failed.
This PR fix this issue.
But the help module still has some parse problem, I will fix it in next PR.

This CL mainly changes:
1. fix `docs/build_help_zip.sh` error
2. remove `sql-reference-v2` to `sql-reference`
3. modify build extension github action to run `docs/build_help_zip.sh`
2022-04-28 22:19:04 +08:00

3.0 KiB

title, language
title language
CREATE-SQL-BLOCK-RULE zh-CN

CREATE-SQL-BLOCK-RULE

Name

CREATE SQL BLOCK RULE

Description

该语句创建SQL阻止规则,该功能仅用于限制查询语句,不会限制explian语句的执行。

支持按用户配置SQL黑名单:

  • 通过正则匹配的方式拒绝指定SQL
  • 通过设置partition_num, tablet_num, cardinality, 检查一个查询是否达到其中一个限制
    • partition_num, tablet_num, cardinality 可以一起设置,一旦一个查询达到其中一个限制,查询将会被拦截

语法:

CREATE SQL_BLOCK_RULE rule_name 
[PROPERTIES ("key"="value", ...)];

参数说明:

  • sql:匹配规则(基于正则匹配,特殊字符需要转译),可选,默认值为 "NULL"
  • sqlHash: sql hash值,用于完全匹配,我们会在fe.audit.log打印这个值,可选,这个参数和sql只能二选一,默认值为 "NULL"
  • partition_num: 一个扫描节点会扫描的最大partition数量,默认值为0L
  • tablet_num: 一个扫描节点会扫描的最大tablet数量,默认值为0L
  • cardinality: 一个扫描节点粗略的扫描行数,默认值为0L
  • global:是否全局(所有用户)生效,默认为false
  • enable:是否开启阻止规则,默认为true

Example

  1. 创建一个名称为 test_rule 的阻止规则

    mysql> CREATE SQL_BLOCK_RULE test_rule 
        -> PROPERTIES(
        ->   "sql"="select * from order_analysis;",
        ->   "global"="false",
        ->   "enable"="true"
        -> );
    Query OK, 0 rows affected (0.01 sec)
    

    当我们去执行刚才我们定义在规则里的sql时就会返回异常错误,示例如下:

    mysql> select * from order_analysis;
    ERROR 1064 (HY000): errCode = 2, detailMessage = sql match regex sql block rule: order_analysis_rule
    
  2. 创建 test_rule2,将最大扫描的分区数量限制在30个,最大扫描基数限制在100亿行,示例如下:

    mysql> CREATE SQL_BLOCK_RULE test_rule2 
        -> PROPERTIES (
        -> "partition_num" = "30",
        -> "cardinality" = "10000000000",
        -> "global" = "false",
        -> "enable" = "true"
        -> );
    Query OK, 0 rows affected (0.01 sec)
    

Keywords

CREATE, SQL_BLCOK_RULE

Best Practice