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 92c49788d1c Add property documentation for CosIdModShardingAlgorithm,
CosIdIntervalShardingAlgorithm and CosIdSnowflakeIntervalShardingAlgorithm
(#20922)
92c49788d1c is described below
commit 92c49788d1c3b60e2bc1bfcb3575ef3cb6a53eb7
Author: Ling Hengqian <[email protected]>
AuthorDate: Sun Sep 11 20:15:00 2022 +0800
Add property documentation for CosIdModShardingAlgorithm,
CosIdIntervalShardingAlgorithm and CosIdSnowflakeIntervalShardingAlgorithm
(#20922)
---
.../common-config/builtin-algorithm/sharding.cn.md | 54 ++++++++++++++++
.../common-config/builtin-algorithm/sharding.en.md | 71 +++++++++++++++++++---
2 files changed, 117 insertions(+), 8 deletions(-)
diff --git
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
index 09e9d1027dd..3fa70f0d2ca 100644
---
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
+++
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
@@ -21,6 +21,20 @@ ShardingSphere 内置提供了多种分片算法,按照类型可以划分为
| -------------- | -------- | ------ |
| sharding-count | int | 分片数量 |
+#### 基于 CosId 的取模分片算法
+
+基于 `me.ahoo.cosid:cosid-core` 的工具类实现的取模分片算法。
+参考 https://github.com/apache/shardingsphere/issues/14047 的讨论。
+
+类型:COSID_MOD
+
+可配置属性:
+
+| *属性名称* | *数据类型* | *说明* |
+|-------------------| -------- |------------------------|
+| mod | int | 分片数量 |
+| logic-name-prefix | String | 分片数据源或真实表的前缀格式 |
+
#### 哈希取模分片算法
类型:HASH_MOD
@@ -103,6 +117,46 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
| datetime-interval-amount (?) | int | 分片键时间间隔,超过该时间间隔将进入下一分片
| 1 |
| datetime-interval-unit (?) | String | 分片键时间间隔单位,必须遵循 Java ChronoUnit
的枚举值。例如:MONTHS
| DAYS |
+#### 基于 CosId 的固定时间范围的分片算法
+
+基于 `me.ahoo.cosid:cosid-core` 的工具类实现的固定时间范围的分片算法。
+当分片键为 JSR-310 的所含类或与时间相关的类,将转换为`java.time.LocalDateTime`后再做下一步分片。
+参考 https://github.com/apache/shardingsphere/issues/14047 的讨论。
+
+类型:COSID_INTERVAL
+
+可配置属性:
+
+| *属性名称* | *数据类型* | *说明*
| *默认值* |
+|--------------------------|---------|--------------------------------------------------------------------------------------------|
------- |
+| zone-id | String | 时区,必须遵循 `java.time.ZoneId` 的所含值。
例如:Asia/Shanghai | |
+| logic-name-prefix | String | 分片数据源或真实表的前缀格式
| |
+| datetime-lower | String | 时间分片下界值,格式与 `yyyy-MM-dd HH:mm:ss`
的时间戳格式一致 | |
+| datetime-upper | String | 时间分片上界值,格式与 `yyyy-MM-dd HH:mm:ss`
的时间戳格式一致 | |
+| sharding-suffix-pattern | String | 分片数据源或真实表的后缀格式,必须遵循 Java
DateTimeFormatter 的格式,必须和 `datetime-interval-unit` 保持一致。例如:yyyyMM | |
+| datetime-interval-unit | String | 分片键时间间隔单位,必须遵循 Java ChronoUnit
的枚举值。例如:MONTHS | |
+| datetime-interval-amount | int | 分片键时间间隔,超过该时间间隔将进入下一分片
| |
+
+#### 基于 CosId 的雪花ID固定时间范围的分片算法
+
+基于 `me.ahoo.cosid:cosid-core` 的工具类实现的雪花ID固定时间范围的分片算法。
+当分片键为 JSR-310 的所含类或与时间相关的类,将转换为`java.time.LocalDateTime`后再做下一步分片。
+参考 https://github.com/apache/shardingsphere/issues/14047 的讨论。
+
+类型:COSID_INTERVAL_SNOWFLAKE
+
+可配置属性:
+
+| *属性名称* | *数据类型* | *说明*
| *默认值* |
+|--------------------------|---------|---------------------------------------------------------------------------------------------------|
------- |
+| zone-id | String | 时区,必须遵循 `java.time.ZoneId` 的所含值。
例如:Asia/Shanghai | |
+| logic-name-prefix | String | 分片数据源或真实表的前缀格式
| |
+| datetime-lower | String | 时间分片下界值,格式与 `yyyy-MM-dd HH:mm:ss`
的时间戳格式一致 | |
+| datetime-upper | String | 时间分片上界值,格式与 `yyyy-MM-dd HH:mm:ss`
的时间戳格式一致 | |
+| sharding-suffix-pattern | String | 分片数据源或真实表的后缀格式,必须遵循 Java
DateTimeFormatter 的格式,必须和 `datetime-interval-unit` 保持一致。例如:yyyyMM |
|
+| datetime-interval-unit | String | 分片键时间间隔单位,必须遵循 Java ChronoUnit
的枚举值。例如:MONTHS | |
+| datetime-interval-amount | int | 分片键时间间隔,超过该时间间隔将进入下一分片
| |
+
### 复合分片算法
#### 复合行表达式分片算法
diff --git
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
index ffb14ded913..df6bf478f29 100644
---
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
+++
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
@@ -23,6 +23,20 @@ Attributes:
| -------------- | ---------- | -------------- |
| sharding-count | int | Sharding count |
+#### Modulo sharding algorithm provided by CosId
+
+Modulo sharding algorithm implemented by the tool class based on
`me.ahoo.cosid:cosid-core`.
+See the discussion at https://github.com/apache/shardingsphere/issues/14047 .
+
+Type: COSID_MOD
+
+Attributes:
+
+| *Name* | *DataType* | *Description*
|
+|-------------------| --------
|---------------------------------------------------|
+| mod | int | Sharding count
|
+| logic-name-prefix | String | Prefix pattern of sharding data sources or
tables |
+
#### Hash Modulo Sharding Algorithm
Type: HASH_MOD
@@ -97,14 +111,55 @@ Type: INTERVAL
Attributes:
-| *Name* | *DataType* | *Description*
| *Default Value* |
-| ---------------------------- | ---------- |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
--------------- |
-| datetime-pattern | String | Timestamp pattern of sharding
value, must can be transformed to Java LocalDateTime. For example: yyyy-MM-dd
HH:mm:ss, yyyy-MM-dd or HH:mm:ss etc. But Gy-MM etc. related to
`java.time.chrono.JapaneseDate` are not supported | - |
-| datetime-lower | String | Datetime sharding lower
boundary, pattern is defined `datetime-pattern`
| - |
-| datetime-upper (?) | String | Datetime sharding upper
boundary, pattern is defined `datetime-pattern`
| Now |
-| sharding-suffix-pattern | String | Suffix pattern of sharding data
sources or tables, must can be transformed to Java LocalDateTime, must be
consistent with `datetime-interval-unit`. For example: yyyyMM
| - |
-| datetime-interval-amount (?) | int | Interval of sharding value
| 1 |
-| datetime-interval-unit (?) | String | Unit of sharding value interval,
must can be transformed to Java ChronoUnit's Enum value. For example: MONTHS
| DAYS |
+| *Name* | *DataType* | *Description*
| *Default Value* |
+| ---------------------------- | ----------
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
--------------- |
+| datetime-pattern | String | Timestamp pattern of sharding
value, must can be transformed to Java LocalDateTime. For example: yyyy-MM-dd
HH:mm:ss, yyyy-MM-dd or HH:mm:ss etc. But Gy-MM etc. related to
`java.time.chrono.JapaneseDate` are not supported | - |
+| datetime-lower | String | Datetime sharding lower
boundary, pattern is defined `datetime-pattern`
| - |
+| datetime-upper (?) | String | Datetime sharding upper
boundary, pattern is defined `datetime-pattern`
| Now |
+| sharding-suffix-pattern | String | Suffix pattern of sharding data
sources or tables, must can be transformed to Java LocalDateTime, must be
consistent with `datetime-interval-unit`. For example: yyyyMM
| - |
+| datetime-interval-amount (?) | int | Interval of sharding value,
after which the next shard will be entered
| 1
|
+| datetime-interval-unit (?) | String | Unit of sharding value interval,
must can be transformed to Java ChronoUnit's Enum value. For example: MONTHS
| DAYS |
+
+#### Fixed interval sharding algorithm provided by CosId
+
+A fixed time range sharding algorithm implemented by the tool class based on
`me.ahoo.cosid:cosid-core`.
+When the sharding key is a JSR-310 containing class or a time-related class,
it will be converted to `java.time.LocalDateTime` before the next sharding.
+See the discussion at https://github.com/apache/shardingsphere/issues/14047.
+
+Type:COSID_INTERVAL
+
+Attributes:
+
+| *Name* | *DataType* | *Description*
| *Default Value* |
+|--------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
------- |
+| zone-id | String | Time zone, which must follow the
contained value of `java.time.ZoneId`. For example: Asia/Shanghai
| |
+| logic-name-prefix | String | Prefix pattern of sharding data sources
or tables
| |
+| datetime-lower | String | Datetime sharding lower boundary,
pattern is consistent with the timestamp format of `yyyy-MM-dd HH:mm:ss`
| |
+| datetime-upper | String | Datetime sharding upper boundary,
pattern is consistent with the timestamp format of `yyyy-MM-dd HH:mm:ss`
| |
+| sharding-suffix-pattern | String | Suffix pattern of sharding data sources
or tables, must can be transformed to Java LocalDateTime, must be consistent
with `datetime-interval-unit`. For example: yyyyMM | |
+| datetime-interval-unit | String | Unit of sharding value interval, must
can be transformed to Java ChronoUnit's Enum value. For example: MONTHS
| |
+| datetime-interval-amount | int | Interval of sharding value, after which
the next shard will be entered
|
+
+#### Snowflake key-based fixed interval sharding algorithm provided by CosId
+
+Snowflake ID sharding algorithm with fixed time range implemented by tool
class based on `me.ahoo.cosid:cosid-core`.
+When the sharding key is a JSR-310 containing class or a time-related class,
it will be converted to `java.time.LocalDateTime` before the next sharding.
+See the discussion at https://github.com/apache/shardingsphere/issues/14047.
+
+Type:COSID_INTERVAL_SNOWFLAKE
+
+Attributes:
+
+| *Name* | *DataType* | *Description*
| *Default Value* |
+|--------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
------- |
+| zone-id | String | Time zone, which must follow the
contained value of `java.time.ZoneId`. For example: Asia/Shanghai
| |
+| logic-name-prefix | String | Prefix pattern of sharding data sources
or tables
| |
+| datetime-lower | String | Datetime sharding lower boundary,
pattern is consistent with the timestamp format of `yyyy-MM-dd HH:mm:ss`
| |
+| datetime-upper | String | Datetime sharding upper boundary,
pattern is consistent with the timestamp format of `yyyy-MM-dd HH:mm:ss`
| |
+| sharding-suffix-pattern | String | Suffix pattern of sharding data sources
or tables, must can be transformed to Java LocalDateTime, must be consistent
with `datetime-interval-unit`. For example: yyyyMM | |
+| datetime-interval-unit | String | Unit of sharding value interval, must
can be transformed to Java ChronoUnit's Enum value. For example: MONTHS
| |
+| datetime-interval-amount | int | Interval of sharding value, after which
the next shard will be entered
|
+
### Complex Sharding Algorithm