开发者学堂课程【全链路数据治理-全域数据集成:分库分表至 MaxCompute 实践】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1082/detail/16064
分库分表至 MaxCompute 实践
分库分表至 MaxCompute 实践
最后来为大家介绍分库分表同步至 MaxCompute 的最佳实践。
首先业务背景也是 MySQL 在分库分表的场景下,上游的表和库数量非常多,如果需要同时写入一张MaxCompute表,那同时配置多个任务则会导致配置非常复杂,且运为比较困难。针对上述的痛点,data verse数据集成分户分表同步解决方案提供了一键同步的功能,方便业务快速简单的进行数据同步。
分库分表同步至MaxCompute的同步解决方案是一种基于binglog的实时同步,T加一合成并生成离线表的实时同步解决方案,实时同步数据会写入log表中,Base表每一个天分去存储全量数据,每一天运行合并任务,合并前一天的base表分区;logo表实时数据会产出新的全量分区,在查询数据时一般需要查询base表最新的分区。在配置分库分表解决方案时,可以通过库表名、正则规则等方式限定原库原表,并将符合限定条件的原库原表生成一张目标表。
分库分表解决方案,目前已经支持以下场景,包括单库到分表,比如说分库到分表,分库到部分表。分库分表解决方案支持的类型,有MySQL以及PoloDB for MySQL两种数据源类型。在使用限制上,这个分库分表同步至MaxCompute是需要使用data verse独享数据集成资源组的。表数量上限,单数据源,原库支持的上限是50,那单数据源,原表的上限支持是5000,那单同步任务逻辑表数量上限是3000。同时,我们也会有跨时区的限制,同步解决方案暂时不支持跨时区的数据同步,如果同步任务中同步的数据源与使用的data verse资源组不在一个时区,那会导致这个同步的数据出现错误。
接下来是实际的操作时间,准备工作新建MySQL数据源之前我们已经讲过几遍了,就不再做进一步的追述了,包括添加MaxCompute数据源。
在任务配置这创建完同步任务后,可以选择分库分表实时同步至MaxCompute,然后可以配置我们的网络原接,在我们的数据来源中选择多个数据源作为分库分表解决方案的数据源,然后点击各个数据源,可以进行收缩和展开。同时,可以设置一些任务相关的名称。接下来我们会进入分库分表源表的配置,比如说我们具备一些自动生成逻辑表相关的功能。接下来在步骤中会有一个自动生成逻辑表的按钮,在数据源列表中,如果选择部分数据源,可以用作生成逻辑表的扫描数据源,那假设我使用两个预设规则生成逻辑表,第一个将来源表名后缀数字不同的表合成为目标表以及直接将来源表相同的表合成为目标表,在这有一些表的数据源会自动生成一些名字,那具体的规则和目标表的名称,大家可以参考这个表格。
接下来就是手动配置逻辑表的功能,刚才是自动的,那如果你这个自动的生成不符合预期结果的话,同过编辑它的匹配规则也可以实现手动配置逻辑表的能力。接下来是我们全局分库的一些规则,可以限定来源的库,这个限定条件可以被应用到下方的所有相关的同步表。下面是逻辑表的编辑规则,每一个同步表的限定条件分为库限定和表限定,全局分布规则会继承同步规则,处于不可编辑状态,如需编辑,可以在全局分布规则中编辑。在全局分布规则之上,还可以编辑某一逻辑表的库的限定条件。
接下来设置目标表,单击刷新表映射会出现这个目标表的列表,单击MaxCompute的表名,可以预览这些表结构。那同时,我们在这个数据同步里支持表结构的配置,我们默认的表生命周期是30天,大家可以基于自己的需求,编辑这个表的生命周期。同时我们可以设置表力度的同步规则,支持DML的同步规则,比如说想在离线表里保留原库删除的数据,可以进行这样的一个配置。同时,我们可以支持DDL的消息处理规则,当原库新增符合规律子表时,同步解决方案会自动包含这个子表,并且通过实时同步同步创建表以来所有的增量数据,删除指标也是同理。
运行资源设置大家可以参考,我们之前是添加了独享调度资源组和独享数据集成资源组来做这样一个运行,数据集成资源组就是在数据集成相关使用的资源会使用我们独享数据集成资源组,那我们刚才提到这个场景当中会有一些离线调度的能力,这个离线调度大家可以使用公共的调度资源组,也可以使用独享的调度资源组。
独享和公共的区别就是在某一些场景下,比如说高峰期的时候,公共有时候会资源紧张,就比如说你可能数据集成资源是足够的,但是这个离线的调度可能资源不够了,那这个任务可也可能会晚一些运行,所以说,如果想要保证资源和稳定性的话,可以购买两种独享资源组。
配置完成之后,就直接可以把我们这个任务提交运行了,那接下来是任务运维,任务运维可以查看任务相关的各种状态以及任务节点之间依赖的关系,因为刚才我们说了我们创建了多个不同的任务。
同时,我们可以进行这个增减这个数据源的一个操作,我们可以直接在同步解决方案当中增加或者减少同步的数据源来修改我们的这个同步任务。除了支持增减数据源,还支持增减表,大家可以在修改同步任务的时候进行添加逻辑表或者删除逻辑表。
后面有我们一些正则表达式的参考,大家如果有一些不同的规则,可以参考这个表格来进行一些正则表达式的撰写,以上就是我们这节课的所有内容。