CREATE SHADOW RULE
描述
CREATE SHADOW RULE
语法用于创建影子库压测规则。
语法定义
语法 铁路图
CreateShadowRule ::=
'CREATE' 'SHADOW' 'RULE' ifNotExists? shadowRuleDefinition (',' shadowRuleDefinition)*
ifNotExists ::=
'IF' 'NOT' 'EXISTS'
shadowRuleDefinition ::=
ruleName '(' storageUnitMapping shadowTableRule (',' shadowTableRule)* ')'
storageUnitMapping ::=
'SOURCE' '=' storageUnitName ',' 'SHADOW' '=' storageUnitName
shadowTableRule ::=
tableName '(' shadowAlgorithm ')'
shadowAlgorithm ::=
'TYPE' '(' 'NAME' '=' shadowAlgorithmType ',' propertiesDefinition ')'
ruleName ::=
identifier
storageUnitName ::=
identifier
tableName ::=
identifier
algorithmName ::=
identifier
shadowAlgorithmType ::=
string
propertiesDefinition ::=
'PROPERTIES' '(' key '=' value (',' key '=' value)* ')'
key ::=
string
value ::=
literal
补充说明
- 重复的
ruleName
无法被创建; storageUnitMapping
指定源数据库和影子库的映射关系,需使用RDL
管理的STORAGE UNIT
,请参考 存储单元;shadowAlgorithm
可同时作用于多个shadowTableRule
;algorithmName
会根据ruleName
、tableName
和shadowAlgorithmType
自动生成;shadowAlgorithmType
目前支持VALUE_MATCH
、REGEX_MATCH
和SQL_HINT
;ifNotExists
子句用于避免出现Duplicate shadow rule
错误。
示例
- 创建影子库压测规则
CREATE SHADOW RULE shadow_rule(
SOURCE=demo_ds,
SHADOW=demo_ds_shadow,
t_order(TYPE(NAME="SQL_HINT")),
t_order_item(TYPE(NAME="VALUE_MATCH", PROPERTIES("operation"="insert","column"="user_id", "value"='1')))
);
- 使用
ifNotExists
子句创建影子库压测规则
CREATE SHADOW RULE IF NOT EXISTS shadow_rule(
SOURCE=demo_ds,
SHADOW=demo_ds_shadow,
t_order(TYPE(NAME="SQL_HINT")),
t_order_item(TYPE(NAME="VALUE_MATCH", PROPERTIES("operation"="insert","column"="user_id", "value"='1')))
);
保留字
CREATE
、SHADOW
、RULE
、SOURCE
、SHADOW
、TYPE
、NAME
、PROPERTIES
相关链接
当前内容版权归 ShardingSphere 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 ShardingSphere .