六、分库分表至 MaxCompute 实践
1. 背景信息
1) 业务诉求
MySQL 分库分表的场景下,上游的表和库非常多,都需要同时写入一张MaxCompute 表,如果要同时配置多个任务则会导致配置非常复杂且运维困难。
针对上诉痛点,阿里云 DataWorks 数据集成分库分表同步解决方案提供了面向业务场景的同步任务配置化方案,支持不同数据源的一键同步功能,方便业务简单快速的进行数据同步。
2) 分库分表至 MaxCompute 同步解决方案
分库分表同步至 MaxCompute 解决方案是一种基于 binlog 实时同步、T+1 合并生成离线表的的实时同步解决方案。实时同步数据写入 log 表中,base 表每一个天分区存储全量数据。每天运行合并任务合并前一天的 base 表分区、log 表实时数据,产出新的全量分区,在查询数据时,一般需要查询 base 表最新分区。
在配置分库分表解决方案时,可以通过库表名、正则规则等方式限定源库源表,将符合限定条件的源库源表汇聚成一张目标表。
数据集成分库分表解决方案支持以下几种场景:
l 单库-分表:
Ø 单个物理库下面分表。
l 分库-分表:
Ø 有多个物理库,每个物理库有序号。
Ø 每个物理库有多个物理表,物理表有序号。
Ø 比如有 0-9 的 10 个分库,每个库有 0-99 的 100 个分表。
l 分库-不分表:
Ø 常见的有:每个分库下有同一个物理表名。
l 分库分表解决方案支持以下来源数据源类型:
Ø MySQL
Ø PolarDB for MySQL