复古 护眼 海天 深邃 暗黑 默认

规则变更流程

规则变更流程用于官方 DistSQL-only 功能生成可审查的数据库治理变更时,引导用户完成需求确认、预览、执行和校验。 它不是一个独立业务功能;用户通常会在具体的数据加密、数据脱敏、广播表、读写分离、影子库或分片任务中进入这个流程。

适用场景

  • 创建、修改或删除 ShardingSphere 规则。
  • 变更前需要查看将要执行的规则 DistSQL 或其他变更产物。
  • 不希望自动执行,希望导出人工执行包。
  • 执行后需要按功能插件自身边界确认规则状态或 workflow 执行结果。

基本流程

阶段 用户操作 关注点
描述需求 说明要变更的逻辑库、表、列和治理目标。 信息越明确,生成的计划越稳定。
补充信息 根据提示补齐算法、参数、密钥占位符或执行偏好。 敏感值应通过受保护渠道提供。
审查计划 查看生成的待执行规则 DistSQL、变更产物和影响范围。 确认是否符合业务预期。
预览变更 要求先预览,不修改运行时状态。 检查将执行的语句和副作用。
执行变更 确认自动执行,或导出人工执行包后由运维执行。 有副作用的变更必须经过确认。
校验结果 执行后按功能插件返回规则状态或 workflow 执行结果。 确认变更是否生效。

计划响应字段

规划工具会返回 plan_id,用于把已生成计划连接到 workflow resource、预览、执行和校验工具。 执行前应先通过 workflow resource 审查已持久化的计划。 当用户需要再次确认时,应先预览再执行。

面向模型的规划响应可能包含:

  • algorithm_recommendations:根据 Proxy 可见插件目录或用户显式输入选择的候选算法。
  • property_requirements:所选算法的必填或可选属性;缺少必填属性时,workflow 会保持在澄清状态,而不是生成不安全产物。
  • resources_to_readnext_actions:继续 workflow 所需的资源和工具导航提示。
  • distsql_artifacts:在当前功能插件边界内生成的可审查规则 DistSQL。

变更执行选择

用户说法 用户会得到什么 关注点
“先预览,不要执行。” 只返回变更内容和影响范围。 适合先确认待执行语句、变更产物和副作用。
“确认执行刚才的计划。” 执行已经预览并确认的变更。 适合用户已经完成审查的场景。
“导出人工执行包。” 返回可由运维人员审查和执行的语句。 适合需要审批、变更窗口或受控环境执行的场景。

敏感输入

规则变更可能需要密钥或凭证等敏感字段。 这些值不应写入普通文档、聊天记录或日志。

推荐处理方式:

  • 在算法属性中使用敏感值占位符对象,例如 {"secret_ref": "placeholder://secret-value-1"}
  • 先通过 execution_mode=preview 审查规则 DistSQL;预览响应只显示中性占位符或 ******
  • 如果工作流仍包含敏感值占位符,自动执行会在产生副作用前停止,并返回 secret_reference_manual_execution_required
  • 使用人工执行包时,执行人员在 MCP 和 AI 应用之外的受控环境中替换真实值后再执行。

ShardingSphere-MCP 只记录需要人工替换的敏感值槽位,不会从外部系统获取真实敏感值。

审查重点

  • 待执行语句是否符合预期规则变更。
  • 变更产物是否符合当前功能插件的能力边界。
  • 官方功能插件只在各自文档边界内生成规则 DistSQL,不生成物理 DDL、索引、迁移、回填、洗数、物理元数据探测或存储单元变更任务。
  • 是否会修改运行时规则、元数据或数据。
  • 是否需要人工执行、备份、回滚预案或业务审批。
  • 校验结果是否符合对应功能插件声明的规则状态或 workflow 执行结果边界。