暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从PolarDB MySQL版同步至云原生数据仓库AnalyticDB PostgreSQL

2023-10-24
154

云原生数据仓库AnalyticDB PostgreSQL版(原分析型数据库PostgreSQL版)为您提供简单、快速、经济高效的PB级云端数据仓库解决方案。通过数据传输服务DTS(Data Transmission Service),您可以将PolarDB MySQL版同步至云原生数据仓库AnalyticDB PostgreSQL,帮助您快速实现对海量数据的即席查询分析、ETL处理和可视化探索。

前提条件

注意事项

  • DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
  • 全量初始化过程中,并发INSERT会导致目标实例的表碎片,全量初始化完成后,目标实例的表空间比源集群的表空间大。

同步类型链路配置费用
库表结构同步和全量数据同步不收费。
增量数据同步收费,详情请参见计费概述

同步限制

  • 同步对象仅支持数据表。
  • 不支持BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT类型的数据同步。
  • 暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。
  • 在数据同步时,请勿对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。

支持同步的SQL操作

  • DML操作:INSERT、UPDATE、DELETE。
  • DDL操作:ADD COLUMN。

    说明

    不支持CREATE TABLE操作,如果您需要将新增的表作为同步对象,则需要执行新增同步对象操作。

支持的同步架构

  • 1对1单向同步。
  • 1对多单向同步。
  • 多对1单向同步。

PolarDB MySQL版云原生数据仓库AnalyticDB PostgreSQL
DatabaseSchema
TableTable

操作步骤

  1. 购买数据同步作业,详情请参见购买流程

    说明

    购买时,选择源实例为PolarDB、目标实例为AnalyticDB PostgreSQL,并选择同步拓扑为单向同步。

  2. 登录数据传输控制台
  3. 在左侧导航栏,单击数据同步。
  4. 在同步作业列表页面顶部,选择同步的目标实例所属地域。
  5. 定位至已购买的数据同步实例,单击配置同步链路。
  6. 配置同步通道的源实例及目标实例信息。

    配置源和目标实例信息

    类别配置说明
    同步作业名称DTS会自动生成一个同步作业名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
    源实例信息实例类型固定为PolarDB实例。
    实例地区购买数据同步实例时选择的源PolarDB MySQL版集群的地域信息,不可变更。
    PolarDB实例ID选择PolarDB MySQL版集群ID。
    数据库账号填入PolarDB MySQL版集群的数据库账号。

    说明

    该账号需具备待同步对象的读权限。

    数据库密码填入该数据库账号的密码。
    目标实例信息实例类型固定为AnalyticDB for PostgreSQL,无需设置。
    实例地区购买数据同步实例时选择的目标实例地域信息,不可变更。
    实例ID选择云原生数据仓库AnalyticDB PostgreSQL实例ID。
    数据库名称填入云原生数据仓库AnalyticDB PostgreSQL实例中,待同步的目标表所属的数据库名称。
    数据库账号填入云原生数据仓库AnalyticDB PostgreSQL的初始账号,详情请参见创建数据库账号

    说明

    您也可以填入具备RDS_SUPERUSER权限的账号,创建方法请参见用户权限管理

    数据库密码填入数据库账号的密码。
  7. 单击页面右下角的授权白名单并进入下一步。

    说明

    • 如果源或目标数据库是阿里云数据库实例(例如RDS MySQL、云数据库MongoDB版等)或ECS上的自建数据库,DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单或ECS的安全规则中,您无需手动添加,请参见DTS服务器的IP地址段
    • DTS任务完成或释放后,建议您手动删除添加的DTS服务器IP地址段。
  8. 配置同步策略及同步对象。

    mysql同步至ADB4PG

    类别配置说明
    同步策略配置同步初始化默认情况下,您需要同时选中结构初始化和全量数据初始化。预检查完成后,DTS会将源实例中待同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。
    目标已存在表的处理模式
    • 清空目标表的数据

      在预检查阶段跳过同名对象存在性检查的检查项目。全量初始化之前将目标表的数据清空。适用于完成同步任务测试后的正式同步场景。

    • 忽略报错并继续执行

      在预检查阶段跳过同名对象存在性检查的检查项目。全量初始化时直接追加数据。适用于多张表同步到一张表的汇总同步场景。

    同步操作类型

    根据业务需求选择需要同步的操作类型:

    • Insert
    • Update
    • Delete
    • AlterTable
    选择同步对象

    在源库对象框中单击待同步的表,然后单击向右小箭头图标将其移动至已选择对象框。

    说明

    映射名称更改

    如需更改同步对象在目标实例中的名称,请使用对象名映射功能,详情请参见库表列映射

    源表DMS_ONLINE_DDL过程中是否复制临时表到目标库

    如源库使用数据管理DMS(Data Management Service)执行Online DDL变更,您可以选择是否同步Online DDL变更产生的临时表数据。

    • 是:同步Online DDL变更产生的临时表数据。

      说明

      Online DDL变更产生的临时表数据过大,可能会导致同步任务延迟。

    • 否:不同步Online DDL变更产生的临时表数据,只同步源库的原始DDL数据。

      说明

      该方案会导致目标库锁表。

    源、目标库无法连接重试时间

    当源、目标库无法连接时,DTS默认重试720分钟(即12小时),您也可以自定义重试时间。如果DTS在设置的时间内重新连接上源、目标库,同步任务将自动恢复。否则,同步任务将失败。

    说明

    由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。

  9. 设置待同步的表在云原生数据仓库AnalyticDB PostgreSQL中的主键列和分布列信息。

    说明

    当您在上一步中选择了结构初始化才会出现该页面。关于主键列和分布列的详细说明,请参见表的约束定义表分布键定义

  10. 上述配置完成后,单击页面右下角的预检查并启动。

    说明

    • 在同步作业正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动同步作业。
    • 如果预检查失败,单击具体检查项后的提示,查看失败详情。
      • 您可以根据提示修复后重新进行预检查。
      • 如无需修复告警检测项,您也可以选择确认屏蔽、忽略告警项并重新进行预检查,跳过告警检测项重新进行预检查。
  11. 在预检查对话框中显示预检查通过后,关闭预检查对话框,同步作业将正式开始。
  12. 等待同步作业的链路初始化完成,直至处于同步中状态。

    您可以在数据同步页面,查看数据同步作业的状态。查看同步作业状态云原生数据仓库AnalyticDB PostgreSQL版(原分析型数据库PostgreSQL版)为您提供简单、快速、经济高效的PB级云端数据仓库解决方案。通过数据传输服务DTS(Data Transmission Service),您可以将PolarDB MySQL版同步至云原生数据仓库AnalyticDB PostgreSQL,帮助您快速实现对海量数据的即席查询分析、ETL处理和可视化探索。

    前提条件

    注意事项

    • DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
    • 全量初始化过程中,并发INSERT会导致目标实例的表碎片,全量初始化完成后,目标实例的表空间比源集群的表空间大。

    同步类型链路配置费用
    库表结构同步和全量数据同步不收费。
    增量数据同步收费,详情请参见计费概述

    同步限制

    • 同步对象仅支持数据表。
    • 不支持BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT类型的数据同步。
    • 暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。
    • 在数据同步时,请勿对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。

    支持同步的SQL操作

    • DML操作:INSERT、UPDATE、DELETE。
    • DDL操作:ADD COLUMN。
      说明
      不支持CREATE TABLE操作,如果您需要将新增的表作为同步对象,则需要执行新增同步对象操作。

    支持的同步架构

    • 1对1单向同步。
    • 1对多单向同步。
    • 多对1单向同步。

    PolarDB MySQL版云原生数据仓库AnalyticDB PostgreSQL
    DatabaseSchema
    TableTable

    操作步骤

    1. 购买数据同步作业,详情请参见购买流程
      说明
      购买时,选择源实例为PolarDB、目标实例为AnalyticDB PostgreSQL,并选择同步拓扑为单向同步。
    2. 登录数据传输控制台
    3. 在左侧导航栏,单击数据同步。
    4. 在同步作业列表页面顶部,选择同步的目标实例所属地域。
    5. 定位至已购买的数据同步实例,单击配置同步链路。
    6. 配置同步通道的源实例及目标实例信息。
      配置源和目标实例信息
      类别配置说明
      同步作业名称DTS会自动生成一个同步作业名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
      源实例信息实例类型固定为PolarDB实例。
      实例地区购买数据同步实例时选择的源PolarDB MySQL版集群的地域信息,不可变更。
      PolarDB实例ID选择PolarDB MySQL版集群ID。
      数据库账号填入PolarDB MySQL版集群的数据库账号。
      说明
      该账号需具备待同步对象的读权限。
      数据库密码填入该数据库账号的密码。
      目标实例信息实例类型固定为AnalyticDB for PostgreSQL,无需设置。
      实例地区购买数据同步实例时选择的目标实例地域信息,不可变更。
      实例ID选择云原生数据仓库AnalyticDB PostgreSQL实例ID。
      数据库名称填入云原生数据仓库AnalyticDB PostgreSQL实例中,待同步的目标表所属的数据库名称。
      数据库账号填入云原生数据仓库AnalyticDB PostgreSQL的初始账号,详情请参见创建数据库账号
      说明
      您也可以填入具备RDS_SUPERUSER权限的账号,创建方法请参见用户权限管理
      数据库密码填入数据库账号的密码。
    7. 单击页面右下角的授权白名单并进入下一步。
      说明
      • 如果源或目标数据库是阿里云数据库实例(例如RDS MySQL、云数据库MongoDB版等)或ECS上的自建数据库,DTS会自动将对应地区DTS服务的IP地址添加到阿里云数据库实例的白名单或ECS的安全规则中,您无需手动添加,请参见DTS服务器的IP地址段
      • DTS任务完成或释放后,建议您手动删除添加的DTS服务器IP地址段。
    8. 配置同步策略及同步对象。
      mysql同步至ADB4PG
      类别配置说明
      同步策略配置同步初始化默认情况下,您需要同时选中结构初始化和全量数据初始化。预检查完成后,DTS会将源实例中待同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。
      目标已存在表的处理模式
      • 清空目标表的数据

        在预检查阶段跳过同名对象存在性检查的检查项目。全量初始化之前将目标表的数据清空。适用于完成同步任务测试后的正式同步场景。

      • 忽略报错并继续执行

        在预检查阶段跳过同名对象存在性检查的检查项目。全量初始化时直接追加数据。适用于多张表同步到一张表的汇总同步场景。

      同步操作类型

      根据业务需求选择需要同步的操作类型:

      • Insert
      • Update
      • Delete
      • AlterTable
      选择同步对象

      在源库对象框中单击待同步的表,然后单击向右小箭头图标将其移动至已选择对象框。

      说明
      映射名称更改

      如需更改同步对象在目标实例中的名称,请使用对象名映射功能,详情请参见库表列映射

      源表DMS_ONLINE_DDL过程中是否复制临时表到目标库
      如源库使用数据管理DMS(Data Management Service)执行Online DDL变更,您可以选择是否同步Online DDL变更产生的临时表数据。
      • 是:同步Online DDL变更产生的临时表数据。
        说明
        Online DDL变更产生的临时表数据过大,可能会导致同步任务延迟。
      • 否:不同步Online DDL变更产生的临时表数据,只同步源库的原始DDL数据。
        说明
        该方案会导致目标库锁表。
      源、目标库无法连接重试时间
      当源、目标库无法连接时,DTS默认重试720分钟(即12小时),您也可以自定义重试时间。如果DTS在设置的时间内重新连接上源、目标库,同步任务将自动恢复。否则,同步任务将失败。
      说明
      由于连接重试期间,DTS将收取任务运行费用,建议您根据业务需要自定义重试时间,或者在源和目标库实例释放后尽快释放DTS实例。
    9. 设置待同步的表在云原生数据仓库AnalyticDB PostgreSQL中的主键列和分布列信息。
      说明
      当您在上一步中选择了结构初始化才会出现该页面。关于主键列和分布列的详细说明,请参见表的约束定义表分布键定义
    10. 上述配置完成后,单击页面右下角的预检查并启动。
      说明
      • 在同步作业正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动同步作业。
      • 如果预检查失败,单击具体检查项后的提示,查看失败详情。
        • 您可以根据提示修复后重新进行预检查。
        • 如无需修复告警检测项,您也可以选择确认屏蔽、忽略告警项并重新进行预检查,跳过告警检测项重新进行预检查。
    11. 在预检查对话框中显示预检查通过后,关闭预检查对话框,同步作业将正式开始。
    12. 等待同步作业的链路初始化完成,直至处于同步中状态。
      您可以在数据同步页面,查看数据同步作业的状态。查看同步作业状态
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论