本文将为您介绍整库迁移的使用限制、任务生成规则和支持的数据源。
整库迁移是帮助提升用户效率、降低用户使用成本的一种快捷工具,它可以快速把一个MySQL数据库内所有表一并上传至MaxCompute,节省大量初始化数据上云的批量任务创建时间。
假设数据库内有100张表,您原本可能需要配置100次数据同步任务,但通过整库迁移可以一次性完成。同时,由于数据库的表设计规范性的约束限制,整库迁移无法保证一次性按照业务需求完成所有表的同步。
使用限制
考虑到数据库的表设计规范性,整库迁移具有以下限制:
- 目前支持MySQL、PostgreSQL、SQL Server、DRDS、PolarDB、AnalyticDB for PostgreSQL、HybridDB for MySQL、AnalyticDB for MySQL 3.0、Oracle和DM类型的数据源整库迁移至MaxCompute。
- 仅提供每日增量、每日全量的上传方式。
如果您需要一次性同步历史数据,则此功能无法满足您的需求,建议如下:
- 建议您配置为每日任务,而非一次性同步历史数据。您可以通过调度提供的补数据来对历史数据进行追溯,以避免全量同步历史数据后,还需要做临时的SQL任务来拆分数据的情况。
- 如果您需要一次性同步历史数据,请在任务开发页面配置任务后,单击运行。因为这两个操作均为一次性行为,完成后需通过SQL语句进行数据的转换。
如果您的每日增量上传有特殊业务逻辑,而非一个单纯的日期字段可以标识,则此功能无法满足您的需求,建议如下:- 数据库数据的增量上传有两种方式:通过binlog(DTS产品提供)和数据库提供数据变更的日期字段来实现。
目前数据集成支持的为后者,所以要求您的数据库有数据变更的日期字段。通过日期字段,系统会识别您的数据是否为业务日期当天变更,即可同步所有的变更数据。
- 为方便增量上传,建议您在创建所有数据库表的时候都有gmt_create和gmt_modify字段。同时,为了效率更高,建议增加ID为主键。
- 整库迁移提供分批和整批迁移的方式,分批上传为时间间隔,目前不提供数据源的连接池保护功能。
- 为了保障对数据库的压力负载,建议您使用分批迁移的方式。您可以按照时间间隔把表拆分为几批运行,避免对数据库的负载过大,影响正常的业务能力。
- 如果您有主、备库,建议同步任务全部同步备库数据。
- 批量任务中每张表都会有1个数据库连接,上限速度为1MB/s。如果您同时运行100张表的同步任务,就会有100个数据库进行连接,建议您根据自己的业务情况谨慎选择并发数。
- 所有生成任务的上限速度均为1MB/s,无法满足您对任务传输效率特定的要求。
- 为了保障对数据库的压力负载,建议您使用分批迁移的方式。您可以按照时间间隔把表拆分为几批运行,避免对数据库的负载过大,影响正常的业务能力。
- 仅提供整体的表名、字段名和字段类型映射。
整库迁移会自动创建MaxCompute表,分区字段为pt,类型为字符串String,格式为yyyymmdd。
说明 选择表时必须同步所有字段,且不能对字段进行编辑。
任务生成规则
完成配置后,根据选择的需要同步的表,依次创建MaxCompute表,生成数据同步任务。
MaxCompute表的表名、字段名和字段类型根据高级配置生成,如果没有填写高级配置,则与MySQL表的结构完全一致。表的分区为pt,格式为yyyymmdd。
生成的数据同步任务是按天调度的周期任务,会在第二天凌晨自动运行,传输速率为1MB/s,它在细节上会因为同步的方式、并发配置等有所不同,您可以在同步任务目录树的
中找到生成的任务,然后对其进行更加个性化的编辑操作。