概述
在线迁移支持通过消息队列实现数据迁移上云。当业务对数据实时性要求较高、周期调度方式无法满足需求时,可以通过消息队列接收源端数据变更事件,并触发迁移服务进行同步。本文介绍通过消息队列迁移数据的适用场景及操作步骤。
同步任务功能目前需要提工单申请白名单。
使用场景
适用于需要持续迁移增量数据的场景。源端数据存储通过消息队列接收对象变更事件(如新增或更新),迁移服务根据队列中的事件信息自动触发数据同步,实现对指定 Bucket 或前缀下数据的持续迁移。
该方式适合在业务持续产生新数据、需要将新增或变更数据及时同步到目标存储的场景中使用,例如数据实时备份、跨平台数据分发或存储迁移过程中对新增数据的持续同步。使用时需要在源数据存储侧提前配置事件通知并关联消息队列,由迁移服务消费队列中的事件以触发同步任务。

使用消息队列进行数据迁移时,源数据存储服务和消息队列服务可能会产生相应费用。具体费用以各服务提供商的计费规则为准,请在使用前根据实际业务需求进行评估。
消息队列使用限制
数据地址和迁移任务对消息队列有如下限制。
源数据地址需要关联消息队列,目的地址无需关联。
关联消息队列后的源数据地址仅可用于创建同步任务,不能用于创建非同步任务。
一个消息队列只能关联一个同步任务。该消息队列仅可用于迁移其所属 Bucket 的数据,不能用于迁移其他 Bucket。若创建数据地址时指定了前缀,如需要迁移同一 Bucket 下其他前缀的数据,需要通过非同步任务实现。
操作步骤
创建数据地址前,请先创建消息队列,并在源数据存储服务中配置相应的事件通知,并通过上传测试文件验证事件通知是否生效。有关创建消息队列及配置事件通知的操作,请参见消息队列配置。
通过在线迁移服务控制台使用消息队列迁移数据的操作步骤如下:
创建源数据地址。请根据源数据类型选择对应迁移教程中的迁移实施文档。例如,源数据存储在 AWS S3 中,创建源数据地址的操作请参见步骤二:创建源地址。创建源地址时,需要填写消息队列相关参数。以下示例仅作参考,请按实际信息填写。
参数
是否必填
说明
访问域名
是
消息队列的访问域名。
SQS示例:https://sqs.ap-southeast-1.amazonaws.com/{AwsRootUid}}/{SqsName}。
SMQ示例:http://{AliyunUid}}.mns.cn-wulanchabu.aliyuncs.com
队列名
是
消息队列名称。
SQS示例:test-aws-sqs
SMQ示例:test-oss-smq
区域
是
消息队列所在区域。
SQS示例:ap-southeast-1
SMQ示例:cn-wulanchabu
AccessKeyId
是
消息队列访问密钥ID。
SQS示例:AK******78
SMQ示例:AK******66
SecretAccessKey
是
消息队列访问密钥。
SQS示例:6B******Vh
SMQ示例:6A******Wz
创建目的数据地址。请根据源数据类型选择对应迁移教程中的迁移实施文档。例如,源数据存储在 AWS S3 中,需要将数据迁移至阿里云对象存储 OSS,创建目的数据地址的操作请参见迁移实施。
创建数据迁移任务。请根据源数据类型选择对应迁移教程中的迁移实施文档。例如,源数据存储在 AWS S3 中,需要将数据迁移至阿里云对象存储 OSS,创建数据迁移任务的操作请参见步骤四:创建迁移任务。创建任务时,需选择同步任务的标签页,具体操作参考文档中相关流程。
后续操作
创建同步任务后,支持对任务执行以下管理操作:
查看迁移报告。例如,源数据存储在 AWS S3 中,迁移报告生成后将被存储在指定的对象存储(OSS)Bucket中,具体操作请参见查看迁移报告。
查看迁移日志。例如,源数据存储在 AWS S3 中,可通过 SLS 查看日志,具体操作请参见查看迁移日志。
目前同步任务不支持对失败文件进行重试,仅支持暂停任务,并可在后续重新启动。
同步任务的迁移报告可能会在较长时间内处于推送状态,因为系统需要持续对报告内容进行实时更新。目前迁移报告仅支持按天维度生成。迁移报告生成具有以下特点:
延迟性
报告按天周期生成,但不保证在周期结束后的固定时间内即可获取。由于报告生成过程中可能涉及数据合并和推送,在消息量较大的高峰时段,报告生成时间可能会出现延迟。因此,按天生成的报告不保证在 T+1 时即可获取 T 日的报告。完整性标识
当报告目录下生成 manifest.json 文件时,表示该时间段的报告已全部生成完成,可以进行下载或处理。串行生成
报告按照时间顺序生成,系统会优先生成时间较早的报告。在当前时间段的报告生成完成之前,不会开始生成后续时间段的报告。报告推送至用户 Bucket 时也遵循相同的时间顺序。