企业首次上云的时候,会有数据表批量同步与同步增全量数据的需求,Dataphin的离线整库迁移提供了生成批量集成管道任务的途径,适用于该场景。在Dataphin V3.11中,整库迁移功能在目标表重名检查与同步方式上都做了功能升级,一起来了解一下吧~
一、新增目标表重名校验
背景:整库迁移目前仅支持将数据写入新建的目标表中,如果目标库已经存在同名表,原先在整库迁移中提供了自动删除数据源中同名表的功能。如果没有勾选该功能,点击生成管道后若发现有重名表,就会报错无法生成管道任务,需要重新配置整库迁移。如果勾选了删除同名表,点击生成管道后会自动删除目标数据库中的重名表再重新新建一张表。但是由于在删除表操作前,界面上看不到即将被删除的表,用户对于什么表将被删除毫无感知,有可能会导致目标库中已有的重要表被删除。
功能:针对上述的场景,Dataphin在V3.11中新增了校验表名的功能。选择需要同步的数据表之后,点击校验表名,即校验目标数据库的开发和生产环境中是否存在同名的目标表,如存在,校验不通过。此时可采取两种措施:第一,如确认目标库中已有的重名表可以删除,则勾选自动删除数据源中同名表后再点击生成管道;第二,如目标库中已有的重名表不可被删除,则需要配置表名转换,通过替换表名字符或增加目标表名前后缀,生成不重名的目标表。
价值:目标表重名校验是一个小而美的功能,它将原先因存在重复表名导致的报错前置到任务配置过程中,免去了生成管道时报错后的再次配置工作,优化提升了配置流程。另外,它让用户可以充分感知到存在哪些重名表,用户可以先判断这些表的重要性,判断是否是可删除的,再做出相应的后续配置操作,防止目标库中重要的表被误删从而导致严重的后果。
二、同步方式功能升级
背景:原先的整库迁移默认生成每日调度的周期任务,但对于仅需要同步一次全量数据的场景来说,需要手动将所有任务下线,操作较为繁琐。另外,还有增全量同步的场景下,需要一次全量加每日增量的同步方式。针对该场景,本次我们对于通过整库迁移生成的集成任务的调度方式做了功能优化。
功能:本次我们将同步方式改为每日同步、单次同步、每日同步+单次同步。另外本期我们还新增了MaxCompute作为来源数据源类型以满足用户需要将数据在MaxCompute项目间同步的场景,下面我们就以MaxCompute整库迁移到MaxCompute作为例子介绍一下本期升级的功能:
- 选择每日同步,将生成每日调度的周期任务,此时需要为来源端的MaxCompute数据库配置每日同步分区,如配置了ds=${bizdate},意为每天从来源表抽取ds=${bizdate}的数据同步到目标表的ds=${bizdate}的分区中(同步到目标表的分区ds=${bizdate}为系统默认配置)。该方式一般用于同步每日增量数据。
- 选择单次同步,即生成手动任务,可手动点击运行进行一次数据同步。单次同步时可以选择将目标表创建为分区表还是非分区表,选择创建为分区表的时候,需要指定该次同步写入目标表哪个分区。此时需要为来源端的MaxCompute数据库配置单次同步分区,可配置范围分区。该方式一般用于同步历史全量数据。
- 选择每日同步+单次同步,每一张表都将同时生成一个每日调度的周期任务与一个手动任务,且数据将写入同一张目标表(分区表)。需要分别指定每日同步任务和单次同步任务中同步的分区。如下图的配置,将左侧的单次同步写入分区填入20230710,在右侧的每日同步分区填写ds=${bizdate},单次同步分区填写范围分区/*query*/ds>=20230710,业务含义为将业务日期为20230710及之前的全量数据一次性写入目标表ds=20230710的分区中,在业务日期为20230710之后的数据,以每日增量的方式,写入目标表的对应分区中。
价值:3.11新增的同步方式可以覆盖更多业务场景,包括全量历史数据一次性上云,以及增全量数据同步等场景。
总结:数据上云是构建数据中台的第一步,可根据具体的业务场景,选择合适的Dataphin整库迁移方式,提高数据集成的效率。