Sharding
Definition
Sharding Table Rule
CREATE SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition] ...
ALTER SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition] ...
DROP SHARDING TABLE RULE tableName [, tableName] ...
DROP SHARDING ALGORITHM algorithmName [, algorithmName] ...
shardingTableRuleDefinition:
tableName(resources [, shardingColumn] [, shardingAlgorithm] [, keyGenerateStrategy])
resources:
RESOURCES(resourceName [, resourceName] ...))
shardingColumn:
SHARDING_COLUMN= columnName
shardingAlgorithm:
TYPE (NAME= shardingAlgorithmType [, PROPERTIES([algorithmProperties] )] )
keyGenerateStrategy:
GENERATED_KEY(COLUMN = columnName,strategyDefinition)
strategyDefinition:
TYPE (NAME= keyGenerateStrategyType [, PROPERTIES([algorithmProperties] )] )
algorithmProperties:
algorithmProperty [, algorithmProperty] ...
algorithmProperty:
key = value
RESOURCES
needs to use data source resources managed by RDL
shardingAlgorithmType
specifies the type of automatic sharding algorithm, please refer to Auto Sharding Algorithm
keyGenerateStrategyType
specifies the distributed primary key generation strategy, please refer to Key Generate Algorithm
Duplicate tableName
will not be created
shardingAlgorithm
can be reused by different Sharding Table Rule
, so when executing DROP SHARDING TABLE RULE
, the corresponding shardingAlgorithm
will not be removed
To remove shardingAlgorithm
, please execute DROP SHARDING ALGORITHM
Sharding Binding Table Rule
CREATE SHARDING BINDING TABLE RULES(bindTableRulesDefinition [, bindTableRulesDefinition] ...)
ALTER SHARDING BINDING TABLE RULES(bindTableRulesDefinition [, bindTableRulesDefinition] ...)
DROP SHARDING BINDING TABLE RULES
bindTableRulesDefinition:
(tableName [, tableName] ... )
ALTER
will overwrite the binding table configuration in the database with the new configuration
Sharding Broadcast Table Rule
CREATE SHARDING BROADCAST TABLE RULES (tableName [, tableName] ... )
ALTER SHARDING BROADCAST TABLE RULES (tableName [, tableName] ... )
DROP SHARDING BROADCAST TABLE RULES
ALTER
will overwrite the broadcast table configuration in the database with the new configuration
Example
Sharding Table Rule
CREATE SHARDING TABLE RULE t_order (
RESOURCES(resource_0,resource_1),
SHARDING_COLUMN= order_id,
TYPE (NAME= hash_mod,PROPERTIES("sharding-count" = 4 )),
GENERATED_KEY(COLUMN = another_id,TYPE (NAME= snowflake,PROPERTIES("worker-id" = 123 )))
);
ALTER SHARDING TABLE RULE t_order (
RESOURCES(resource_0,resource_1),
SHARDING_COLUMN= order_id,
TYPE (NAME= hash_mod,PROPERTIES("sharding-count" = 10 )),
GENERATED_KEY(COLUMN = another_id,TYPE (NAME= snowflake,PROPERTIES("worker-id" = 123 )))
);
DROP SHARDING TABLE RULE t_order, t_order_item;
DROP SHARDING ALGORITHM t_order_hash_mod;
Sharding Binding Table Rule
CREATE SHARDING BINDING TABLE RULES (
(t_order,t_order_item),
(t_1,t_2)
);
ALTER SHARDING BINDING TABLE RULES (
(t_order,t_order_item)
);
DROP SHARDING BINDING TABLE RULES;
Sharding Broadcast Table Rule
CREATE SHARDING BROADCAST TABLE RULES (t_b,t_a);
ALTER SHARDING BROADCAST TABLE RULES (t_b,t_a,t_3);
DROP SHARDING BROADCAST TABLE RULES;