影子库压测

定义

  1. CREATE SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ...
  2. ALTER SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ...
  3. ALTER SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
  4. DROP SHADOW RULE ruleName [, ruleName] ...
  5. DROP SHADOW ALGORITHM algorithmName [, algorithmName] ...
  6. shadowRuleDefinition: ruleName(resourceMapping, shadowTableRule [, shadowTableRule] ...)
  7. resourceMapping: SOURCE=resourceName, SHADOW=resourceName
  8. shadowTableRule: tableName(shadowAlgorithm [, shadowAlgorithm] ...)
  9. shadowAlgorithm: ([algorithmName, ] TYPE(NAME=shadowAlgorithmType, PROPERTIES([algorithmProperties] ...)))
  10. algorithmProperties: algorithmProperty [, algorithmProperty] ...
  11. algorithmProperty: key=value
  • 重复的ruleName无法被创建
  • resourceMapping 指定源数据库和影子库的映射关系,需使用 RDL 管理的 resource ,请参考 数据源资源
  • shadowAlgorithm 可同时作用于多个 shadowTableRule
  • algorithmName 未指定时会根据 ruleNametableNameshadowAlgorithmType 自动生成
  • shadowAlgorithmType 目前支持 COLUMN_REGEX_MATCHSIMPLE_NOTE
  • shadowTableRule 能够被不同的 shadowRuleDefinition 复用,因此在执行 DROP SHADOW RULE 时,对应的 shadowTableRule 不会被移除
  • shadowAlgorithm 能够被不同的 shadowTableRule 复用,因此在执行 ALTER SHADOW RULE 时,对应的 shadowAlgorithm 不会被移除

示例

  1. CREATE SHADOW RULE shadow_rule(
  2. SOURCE=demo_ds,
  3. SHADOW=demo_ds_shadow,
  4. 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]')))),
  5. t_order_item((TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar")))));
  6. ALTER SHADOW RULE shadow_rule(
  7. SOURCE=demo_ds,
  8. SHADOW=demo_ds_shadow,
  9. 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]')))),
  10. t_order_item((TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar")))));
  11. ALTER SHADOW ALGORITHM
  12. (simple_note_algorithm, TYPE(NAME=SIMPLE_NOTE, PROPERTIES("shadow"="true", "foo"="bar"))),
  13. (user_id_match_algorithm, TYPE(NAME=COLUMN_REGEX_MATCH,PROPERTIES("operation"="insert", "column"="user_id", "regex"='[1]')));
  14. DROP SHADOW RULE shadow_rule;
  15. DROP SHADOW ALGORITHM simple_note_algorithm;