AnalyticDB MySQL 3.0 是基于数据库的并行数据模型,存储建模亲和 MPP 计算模型,内部实现为哪几级架构?
第一级是集群实例级并行,用户实例被划分为多个存储节点组(Worker Group),每个 Worker Group 由 N(通常是 3,也可以是其他基数)个 Worker 构成。Worker 相当于用户数据节点容器,分组的目标是保证系统大规模扩展时不会出现通信膨胀、也方便系统并行升级和运维。 第二级是 DB 并行,用户数据库被切分为 N 个物理分库( Shard,也叫数据分片),每个 Shard 是独立的 Raft Group 以保证数据强一致,多个 Shard 就形成了 multi-raft 的并行。Shard 是可以是 Hash 或者 Range 分区,通常 Hash 分区可以做数据对齐以避免数据大表 JOIN 的数据 Shuffle;Shard 可以在需要的时候在不同 Worker Group 之间均衡或者迁移,Shard 本身也会支持动态分裂和合并。 第三是表内并行,对于数仓场景的历史数据存储通常有数据分区的概念,例如 TPC-DS 中 store sales 就可以根据时间周期分区,数据分区除方便数据生命周期管理外还可以支持查询分区裁剪和 DFP,有助于大幅缩小数据计算范围。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。