本文将为您介绍整库迁移的使用限制、任务生成规则和支持的数据源。

整库迁移是帮助提升用户效率、降低用户使用成本的一种快捷工具,它可以快速把一个MySQL数据库内所有表一并上传至MaxCompute,节省大量初始化数据上云的批量任务创建时间。

假设数据库内有100张表,您原本可能需要配置100次数据同步任务,但通过整库迁移可以一次性完成。同时,由于数据库的表设计规范性的约束限制,整库迁移无法保证一次性按照业务需求完成所有表的同步。

使用限制

考虑到数据库的表设计规范性,整库迁移具有以下限制:
  • 目前支持MySQLPostgreSQLSQL ServerDRDSPolarDBAnalyticDB for PostgreSQLHybridDB for MySQLAnalyticDB for MySQL 3.0OracleDM类型的数据源整库迁移至MaxCompute。
  • 仅提供每日增量、每日全量的上传方式。
    如果您需要一次性同步历史数据,则此功能无法满足您的需求,建议如下:
    • 建议您配置为每日任务,而非一次性同步历史数据。您可以通过调度提供的补数据来对历史数据进行追溯,以避免全量同步历史数据后,还需要做临时的SQL任务来拆分数据的情况。
    • 如果您需要一次性同步历史数据,请在任务开发页面配置任务后,单击运行。因为这两个操作均为一次性行为,完成后需通过SQL语句进行数据的转换。
    如果您的每日增量上传有特殊业务逻辑,而非一个单纯的日期字段可以标识,则此功能无法满足您的需求,建议如下:
    • 数据库数据的增量上传有两种方式:通过binlog(DTS产品提供)和数据库提供数据变更的日期字段来实现。

      目前数据集成支持的为后者,所以要求您的数据库有数据变更的日期字段。通过日期字段,系统会识别您的数据是否为业务日期当天变更,即可同步所有的变更数据。

    • 为方便增量上传,建议您在创建所有数据库表的时候都有gmt_creategmt_modify字段。同时,为了效率更高,建议增加ID为主键。
  • 整库迁移提供分批和整批迁移的方式,分批上传为时间间隔,目前不提供数据源的连接池保护功能。
    • 为了保障对数据库的压力负载,建议您使用分批迁移的方式。您可以按照时间间隔把表拆分为几批运行,避免对数据库的负载过大,影响正常的业务能力。
      • 如果您有主、备库,建议同步任务全部同步备库数据。
      • 批量任务中每张表都会有1个数据库连接,上限速度为1MB/s。如果您同时运行100张表的同步任务,就会有100个数据库进行连接,建议您根据自己的业务情况谨慎选择并发数。
    • 所有生成任务的上限速度均为1MB/s,无法满足您对任务传输效率特定的要求。
  • 仅提供整体的表名、字段名和字段类型映射。

    整库迁移会自动创建MaxCompute表,分区字段为pt,类型为字符串String,格式为yyyymmdd

    说明 选择表时必须同步所有字段,且不能对字段进行编辑。

任务生成规则

完成配置后,根据选择的需要同步的表,依次创建MaxCompute表,生成数据同步任务。

MaxCompute表的表名、字段名和字段类型根据高级配置生成,如果没有填写高级配置,则与MySQL表的结构完全一致。表的分区为pt,格式为yyyymmdd

生成的数据同步任务是按天调度的周期任务,会在第二天凌晨自动运行,传输速率为1MB/s,它在细节上会因为同步的方式、并发配置等有所不同,您可以在同步任务目录树的clone_database > 数据源名称 > mysql2odps_表名中找到生成的任务,然后对其进行更加个性化的编辑操作。