您提供的 DistSQL 语法存在以下问题:
缺少规则名称:
ALTER READWRITE_SPLITTING RULE
需要指定具体的规则名称,但示例中直接跟了数据源配置。
修正:应在readwrite_ds
前补充规则名称(例如rule_name
)。READ_STORAGE_UNITS 格式错误:
参数READ_STORAGE_UNITS
的值应使用方括号[]
包裹多个读库数据源,且数据源名称需用引号标注。TYPE 参数格式不完整:
TYPE
的PROPERTIES
中权重值应为数值类型(无需引号),且需为所有读库分别配置权重。
修正后的正确语法示例:
ALTER READWRITE_SPLITTING RULE rule_name (
WRITE_STORAGE_UNIT = "write_ds",
READ_STORAGE_UNITS("read_ds00"),
TYPE(NAME = "random", PROPERTIES("read_weight" = 1))
);
若需配置多个读库及权重(例如 read_ds00 权重为 1,read_ds01 权重为 2):
ALTER READWRITE_SPLITTING RULE rule_name (
WRITE_STORAGE_UNIT = "write_ds",
READ_STORAGE_UNITS("read_ds00", "read_ds01"),
TYPE(NAME = "weight", PROPERTIES("read_ds00" = 1, "read_ds01" = 2))
);
注意:
- 若负载均衡算法为
random
,则所有读库权重默认相等,无需单独配置PROPERTIES
。
- 若使用
weight
算法,需显式指定每个读库的权重值。
内容由零声教学AI助手提供,问题来源于学员提问