大家好!
从 5.0.0 版本开始,DistSQL 提供了许多语法来帮助用户查询资源和规则配置,如
- SHOW SCHEMA RESOURCES
- SHOW SHARDING TABLE RULES
- SHOW SHARDING ALGORITHMS
- SHOW READWRITE_SPLITTING RULES
- …
但是,如果用户想通过 DistSQL 获取到一个 schema 的完整配置,就会比较困难。
另一方面,有用户想要通过 DistSQL 定义规则,并将它们导出为 YAML。相对的,也有用户想要将已有的 YAML 文件转换为 DistSQL 语句,从而彻底摆脱配置文件的束缚。
因此,我建议设计新的 DistSQL 语法,以帮助用户实现上述的功能。
其中,配置导出要更容易一些,我们可以这个任务开始。
作为参考,我考虑了以下语法:
EXPORT SCHEMA (CONFIGURATION|CONFIG) [FROM schemaName] [, FILE="filePath"]
当用户输入 EXPORT SCHEMA CONIFG
时,将 schema 中的资源和规则配置全部打印出来(按照 YAML 的文本格式进行组织);
当用户输入 EXPORT SCHEMA CONIFG, file="/Users/foo/config-sharding.yaml" 时,将 schema 中的资源和规则配置写入到目标 YAML 文件中。(Proxy 写文件的权限需要由用户保证,否则将抛出异常)
以上只是一个初步的想法,欢迎任何想法和建议。
我创建了一个关联的 issue,也可以在 GitHub 讨论: