1、表分片信息的来源是由分布式数据库引入的,因此对于表信息的管理也应该由分布式数据库产品本身来解决,因此在分布式数据库选型的时候需要关注这点功能是否具备以及实现效果如何
下方内容主要针对OLTP场景下表与表间有JOIN关系时的复杂分片逻辑处理进行解答(自动打散的分片场景不适用于复杂OLTP场景,则本次不讨论)
2、分片信息的有效管理应该包含:
2.1)分片策略:页面展示或其他有效途径直观展示数据表按照什么规则拆分(范围、哈希、匹配等)
2.2)分片键:页面展示或其他有效途径直观展示数据表通过哪个字段进行拆分,是否另外存在数据分区
2.3)分片表间关联:页面展示或其他有效途径直观展示 OLTP场景内存在表和表之间的JOIN关联,如何能够展示有关联的表之间的分片联动情况
2.4)分片信息的存储:有统一存放的位置便于环境迁移过程中能够快速恢复或复用,而非零散存储
3、监控不合理的分片信息并高效调整与第2点内的内容息息相关
3.1)分片策略的有效监控和调整:需要产品本身对于数据表内数据类型与分片规则主动校验是否匹配
3.2)分片键的有效监控和调整:本条主要和分片表间关联、数据倾斜有关,需要结合分片表间关联字段是否与分片键一致,若有多个表间关联情况下要有对应取舍或使用全局表等策略;数据分片键的选择需要尽可能实现数据的均匀打散,以便发挥分布式数据库的并行计算能力;
当然还有其他不同因素影响,上述描述的为主要原因,同时也要关注分布式数据库自身的性能表现
综上所述:通过人工处理分片信息的优化需要技术人员对业务流、数据流、表结构设计、性能优化等多方面信息非常熟练,也能够预见单个系统靠人工来处理的话需要耗费大量精力,更不论一个企业有多个甚至上百个业务系统了。因此选择一款具备上述能力的分布式数据库产品为最佳推荐,目前行业内的分布式数据库百花齐放,也希望分布式数据库厂商能够不断提供好的能力。
分布式数据库推荐:根据行业调研和各家产品官网信息来看,目前阿里、腾讯能够具备这样的专家能力,希望能同步赋能产品;热璞数据库产品已经具备这样的能力且有复杂场景打磨值得期待;其他厂商希望能够在便于运维方向多多加油,让非互联网客户能够便捷使用。