This is an automated email from the ASF dual-hosted git repository. zhangliang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new 1ef2f19a190 Add `CREATE DEFAULT SINGLE TABLE RULE` docs. (#20211) 1ef2f19a190 is described below commit 1ef2f19a190bd0053e7509b0fafab063ef2f5df3 Author: Jieker <jieker_m...@163.com> AuthorDate: Tue Aug 16 22:05:14 2022 +0800 Add `CREATE DEFAULT SINGLE TABLE RULE` docs. (#20211) * Add `CREATE DEFAULT SINGLE TABLE RULE` docs. * Change docs about loadBanlancerType. --- .../readwrite-splitting/_index.cn.md | 7 ++ .../readwrite-splitting/_index.en.md | 7 ++ .../create-readwrite-splitting-rule.cn.md | 74 ++++++++++++++++++++++ .../create-readwrite-splitting-rule.en.md | 74 ++++++++++++++++++++++ .../reference/distsql/syntax/reserved-word.cn.md | 15 ++++- .../reference/distsql/syntax/reserved-word.en.md | 9 +++ 6 files changed, 183 insertions(+), 3 deletions(-) diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.cn.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.cn.md new file mode 100644 index 00000000000..8cc7952ea84 --- /dev/null +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.cn.md @@ -0,0 +1,7 @@ ++++ +title = "读写分离" +weight = 1 +chapter = true ++++ + +本章节将对读写分离特性的语法进行详细说明。 diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.en.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.en.md new file mode 100644 index 00000000000..687895005d3 --- /dev/null +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/_index.en.md @@ -0,0 +1,7 @@ ++++ +title = "Readwrite-Splitting" +weight = 1 +chapter = true ++++ + +This chapter describes the syntax of readwrite splitting. diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.cn.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.cn.md new file mode 100644 index 00000000000..35c77d312f0 --- /dev/null +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.cn.md @@ -0,0 +1,74 @@ ++++ +title = "CREATE READWRITE_SPLITTING RULE" +weight = 2 ++++ + +## 描述 + +`CREATE DEFAULT SINGLE TABLE RULE` 语法用于创建读写分离规则 + +### 语法定义 + +```sql +CreateReadwriteSplittingRule ::= + 'CREATE' 'READWRITE_SPLITTING' 'RULE' readwriteSplittingDefinition ( ',' readwriteSplittingDefinition )* + +readwriteSplittingDefinition ::= + ruleName '(' ( staticReadwriteSplittingDefinition | dynamicReadwriteSplittingDefinition ) ( ',' loadBanlancerDefinition )? ')' + +staticReadwriteSplittingDefinition ::= + 'WRITE_RESOURCE' '=' writeResourceName ',' 'READ_RESOURCES' '(' ruleName (',' ruleName)* ')' + +dynamicReadwriteSplittingDefinition ::= + 'AUTO_AWARE_RESOURCE' '=' resourceName ( ',' 'WRITE_DATA_SOURCE_QUERY_ENABLED' '=' ('TRUE' | 'FALSE') )? + +loadBanlancerDefinition ::= + 'TYPE' '(' 'NAME' '=' loadBanlancerType ( ',' 'PROPERTIES' '(' 'key' '=' 'value' ( ',' 'key' '=' 'value' )* ')' )? ')' + +ruleName ::= + identifier + +writeResourceName ::= + identifier + +resourceName ::= + identifier +``` + +### 补充说明 + +- 支持创建静态读写分离规则和动态读写分离规则; +- 动态读写分离规则依赖于数据库发现规则; +- `loadBanlancerType` 指定负载均衡算法类型,请参考负载均衡算法; +- 重复的 `ruleName` 将无法被创建。 + +### 示例 + +#### 创建静态读写分离规则 + +```sql +CREATE READWRITE_SPLITTING RULE ms_group_0 ( + WRITE_RESOURCE=write_ds, + READ_RESOURCES(read_ds_0,read_ds_1), + TYPE(NAME=random) +); +``` + +#### 创建动态读写分离规则 + +```sql +CREATE READWRITE_SPLITTING RULE ms_group_1 ( + AUTO_AWARE_RESOURCE=group_0, + WRITE_DATA_SOURCE_QUERY_ENABLED=false, + TYPE(NAME=random,PROPERTIES(read_weight='2:1')) +); +``` + +### 保留字 + +`CREATE`、`READWRITE_SPLITTING`、`WRITE_RESOURCE`、`READ_RESOURCES`、`AUTO_AWARE_RESOURCE`、`WRITE_DATA_SOURCE_QUERY_ENABLED` +、`TYPE`、`NAME`、`PROPERTIES`、`TRUE`、`FALSE` + +### 相关链接 + +- [保留字](/cn/reference/distsql/syntax/reserved-word/) \ No newline at end of file diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.en.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.en.md new file mode 100644 index 00000000000..c9768303978 --- /dev/null +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/readwrite-splitting/create-readwrite-splitting-rule.en.md @@ -0,0 +1,74 @@ ++++ +title = "CREATE READWRITE_SPLITTING RULE" +weight = 2 ++++ + +## Description + +The `CREATE READWRITE_SPLITTING RULE` syntax is used to create a readwrite splitting rule. + +### Syntax + +```sql +CreateReadwriteSplittingRule ::= + 'CREATE' 'READWRITE_SPLITTING' 'RULE' readwriteSplittingDefinition ( ',' readwriteSplittingDefinition )* + +readwriteSplittingDefinition ::= + ruleName '(' ( staticReadwriteSplittingDefinition | dynamicReadwriteSplittingDefinition ) ( ',' loadBanlancerDefinition )? ')' + +staticReadwriteSplittingDefinition ::= + 'WRITE_RESOURCE' '=' writeResourceName ',' 'READ_RESOURCES' '(' ruleName (',' ruleName)* ')' + +dynamicReadwriteSplittingDefinition ::= + 'AUTO_AWARE_RESOURCE' '=' resourceName ( ',' 'WRITE_DATA_SOURCE_QUERY_ENABLED' '=' ('TRUE' | 'FALSE') )? + +loadBanlancerDefinition ::= + 'TYPE' '(' 'NAME' '=' loadBanlancerType ( ',' 'PROPERTIES' '(' 'key' '=' 'value' ( ',' 'key' '=' 'value' )* ')' )? ')' + +ruleName ::= + identifier + +writeResourceName ::= + identifier + +resourceName ::= + identifier +``` + +### Supplement + +- Support the creation of static readwrite-splitting rules and dynamic readwrite-splitting rules +- Dynamic readwrite-splitting rules rely on database discovery rules +- `loadBanlancerType` specifies the load balancing algorithm type, please refer to Load Balance Algorithm +- Duplicate `ruleName` will not be created + +### Example + +#### Create a statics readwrite splitting rule + +```sql +CREATE READWRITE_SPLITTING RULE ms_group_0 ( + WRITE_RESOURCE=write_ds, + READ_RESOURCES(read_ds_0,read_ds_1), + TYPE(NAME=random) +); +``` + +#### Create a dynamic readwrite splitting rule + +```sql +CREATE READWRITE_SPLITTING RULE ms_group_1 ( + AUTO_AWARE_RESOURCE=group_0, + WRITE_DATA_SOURCE_QUERY_ENABLED=false, + TYPE(NAME=random,PROPERTIES(read_weight='2:1')) +); +``` + +### Reserved word + +`CREATE`, `READWRITE_SPLITTING`, `WRITE_RESOURCE`, `READ_RESOURCES`, `AUTO_AWARE_RESOURCE` +, `WRITE_DATA_SOURCE_QUERY_ENABLED`, `TYPE`, `NAME`, `PROPERTIES`, `TRUE`, `FALSE` + +### Related links + +- [Reserved word](/en/reference/distsql/syntax/reserved-word/) diff --git a/docs/document/content/reference/distsql/syntax/reserved-word.cn.md b/docs/document/content/reference/distsql/syntax/reserved-word.cn.md index 9df06802188..03e7b8a86b4 100644 --- a/docs/document/content/reference/distsql/syntax/reserved-word.cn.md +++ b/docs/document/content/reference/distsql/syntax/reserved-word.cn.md @@ -12,9 +12,18 @@ weight = 3 #### SHARDING -`CREATE`、`ALTER`、`DEFAULT`、`SHARDING`、`BROADCAST`、`BINDING`、`DATABASE`、`TABLE`、`STRATEGY`、`RULE`、`RULES`、`ALGORITHM`、`DATANODES` -、`DATABASE_STRATEGY`、`TABLE_STRATEGY`、`KEY_GENERATE_STRATEGY`、`RESOURCES`、`SHARDING_COLUMN`、`KEY`、`GENERATOR`、`TYPE` -、`SHARDING_COLUMNS`、`KEY_GENERATOR`、`SHARDING_ALGORITHM`、`COLUMN`、`NAME`、`PROPERTIES` +`CREATE`、`ALTER`、`DEFAULT`、`SHARDING`、`BROADCAST`、`BINDING`、`DATABASE`、`TABLE`、`STRATEGY`、`RULE`、`RULES`、`ALGORITHM` +、`DATANODES`、`DATABASE_STRATEGY`、`TABLE_STRATEGY`、`KEY_GENERATE_STRATEGY`、`RESOURCES`、`SHARDING_COLUMN`、`KEY` +、`GENERATOR`、`TYPE`、`SHARDING_COLUMNS`、`KEY_GENERATOR`、`SHARDING_ALGORITHM`、`COLUMN`、`NAME`、`PROPERTIES` + +#### Single Table + +`CREATE`、`SHARDING`、`SINGLE`、`TABLE`、`RULE`、`RESOURCE` + +#### Readwrite Splitting + +`CREATE`、`READWRITE_SPLITTING`、`WRITE_RESOURCE`、`READ_RESOURCES`、`AUTO_AWARE_RESOURCE`、`WRITE_DATA_SOURCE_QUERY_ENABLED` +、`TYPE`、`NAME`、`PROPERTIES`、`TRUE`、`FALSE` ### 补充说明 diff --git a/docs/document/content/reference/distsql/syntax/reserved-word.en.md b/docs/document/content/reference/distsql/syntax/reserved-word.en.md index 33aa803f6c7..88edd374116 100644 --- a/docs/document/content/reference/distsql/syntax/reserved-word.en.md +++ b/docs/document/content/reference/distsql/syntax/reserved-word.en.md @@ -16,6 +16,15 @@ weight = 3 , `DATANODES`, `DATABASE_STRATEGY`, `TABLE_STRATEGY`, `KEY_GENERATE_STRATEGY`, `RESOURCES`, `SHARDING_COLUMN`, `KEY` , `GENERATOR`, `TYPE`, `SHARDING_COLUMNS`, `KEY_GENERATOR`, `SHARDING_ALGORITHM`, `COLUMN`, `NAME`, `PROPERTIES` +#### Single Table + +`CREATE`, `SHARDING`, `SINGLE`, `TABLE`, `RULE`, `RESOURCE` + +#### Readwrite Splitting + +`CREATE`, `READWRITE_SPLITTING`, `WRITE_RESOURCE`, `READ_RESOURCES`, `AUTO_AWARE_RESOURCE` +, `WRITE_DATA_SOURCE_QUERY_ENABLED`, `TYPE`, `NAME`, `PROPERTIES`, `TRUE`, `FALSE` + ### Supplement - The above reserved words are not case-sensitive \ No newline at end of file