影子库压测
          
        
定义
CREATE SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
ALTER SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
ALTER SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
DROP SHADOW RULE ruleName [, ruleName] ...
DROP SHADOW ALGORITHM algorithmName [, algorithmName] ...
shadowRuleDefinition: ruleName(resourceMapping, shadowTableRule [, shadowTableRule] ...)
resourceMapping: SOURCE=resourceName, SHADOW=resourceName
shadowTableRule: tableName(shadowAlgorithm [, shadowAlgorithm] ...)
shadowAlgorithm: ([algorithmName, ] TYPE(NAME=shadowAlgorithmType, PROPERTIES([algorithmProperties] ...)))
algorithmProperties: algorithmProperty [, algorithmProperty] ... 
algorithmProperty: key=value
- 重复的ruleName无法被创建
- resourceMapping指定源数据库和影子库的映射关系,需使用 RDL 管理的- resource,请参考 数据源资源
- shadowAlgorithm可同时作用于多个- shadowTableRule
- algorithmName未指定时会根据- ruleName、- tableName和- shadowAlgorithmType自动生成
- shadowAlgorithmType目前支持- COLUMN_REGEX_MATCH和- SIMPLE_NOTE
- shadowTableRule能够被不同的- shadowRuleDefinition复用,因此在执行- DROP SHADOW RULE时,对应的- shadowTableRule不会被移除
- shadowAlgorithm能够被不同的- shadowTableRule复用,因此在执行- ALTER SHADOW RULE时,对应的- shadowAlgorithm不会被移除
示例
CREATE SHADOW RULE shadow_rule(
SOURCE=demo_ds,
SHADOW=demo_ds_shadow,
t_order((simple_note_algorithm, TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", foo="bar"))),(TYPE(NAME=COLUMN_REGEX_MATCH, PROPERTIES("operation"="insert","column"="user_id", "regex"='[1]')))), 
t_order_item((TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar")))));
ALTER SHADOW RULE shadow_rule(
SOURCE=demo_ds,
SHADOW=demo_ds_shadow,
t_order((simple_note_algorithm, TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", foo="bar"))),(TYPE(NAME=COLUMN_REGEX_MATCH, PROPERTIES("operation"="insert","column"="user_id", "regex"='[1]')))), 
t_order_item((TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar")))));
ALTER SHADOW ALGORITHM 
(simple_note_algorithm, TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar"))), 
(user_id_match_algorithm, TYPE(NAME=COLUMN_REGEX_MATCH,PROPERTIES("operation"="insert", "column"="user_id", "regex"='[1]')));
DROP SHADOW RULE shadow_rule;
DROP SHADOW ALGORITHM simple_note_algorithm;