You need to enable JavaScript to run this app.
导航
创建公网自建 PostgreSQL数据订阅任务
最近更新时间:2024.12.23 14:04:22首次发布时间:2022.09.01 09:56:20

本场景介绍如何通过数据库传输服务 DTS 创建公网自建 PostgreSQL 数据订阅任务。

前提条件

  • 已自主搭建 PostgreSQL 数据库,且此数据库可通过公网访问。

  • 如果通过专有网络 Kafka 的方式消费数据,则按需设置消费端信息,具体如下所示:

    • 在使用 VPN 实现数据订阅时,自建数据库所属的本地网络已通过 VPN 网关接入火山引擎。详细操作,请参见搭建云上 VPC 与云下多数据中心网络互通

    • 在需要使用专线实现数据订阅时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接

  • 当通过消息队列 RocketMQ 版消费数据时,需提前创建 RocketMQ 实例和密钥。详细信息,请参见创建 RocketMQ 实例创建密钥

  • 在通过云原生消息引擎消费数据时,需提前准备以下环境:

    • 创建云原生消息引擎实例和 Topic。详细操作,请参见创建资源池创建 Topic

    • 开启数据库传输服务 DTS 访问云原生消息引擎目标实例的访问权限。详细操作,请参见开启 DTS 连接

订阅前准备

  • 白名单与访问权限:

    • 当数据库实例的接入方式选择的是公网自建时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将 DTS 服务器 IP 地址添加至数据库实例的白名单或安全组中。不同地域下的 DTS 服务器 IP 地址不同,具体如下所示:
      • 华南 1(广州)、华北 2(上海)和华北 2(北京)的 DTS 服务器 IP 地址是 221.194.189.0/27,157.148.90.32/27,180.184.132.64/27,61.129.54.64/27,220.196.172.32/27,117.135.143.32/27,220.196.168.32/27,116.132.250.32/27,111.45.13.32/27,125.88.248.32/27,180.153.35.32/27,220.181.65.32/27,220.181.65.64/27

      • 亚太东南(柔佛)的 DTS 服务器 IP 地址是 101.47.0.32/27,220.181.65.32/27,220.181.65.64/27

      • 中国香港的 DTS 服务器 IP 地址是 101.47.65.32/28,101.47.65.48/28
          关于 DTS 服务器 IP 地址段的详细信息,请参见添加 DTS 服务器的 IP 地址段

    • 当数据库实例的接入方式选择的是专有网络时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将子网网段添加至数据库实例的白名单或安全组中。华南1(广州)子网网段是 172.31.0.0/20,华北2(上海)和华北2(北京)子网网段是 192.168.3.0/24,亚太东南(柔佛)子网网段是 192.168.0.0/24。更多信息,请参见添加 DTS 服务器的 IP 地址段
  • 网络连通性:创建数据订阅任务之前,请确认源库和消费端的网络连通性与服务可用性。

  • 您还可以根据预检查项中的说明,来检查源库和目标库中各迁移对象做相应准备。更多详情,请参见预检查项(PostgreSQL)

限制说明

限制类说明
源数据库限制数据库版本:当前支持 10、11、12 和 13 版本的 PostgreSQL 实例。

消费端限制

  • 当消息订阅到内置中间件时,具有以下限制条件:
    • 当订阅的单行消息超过 10MB 时,消息会被丢弃。
  • 当消息订阅到 Kafka 时,具有以下限制条件:
    • 成功创建订阅任务后,不支持修改 Kafka Partition 的接收策略。

    • 如果消费端为专有网络 Kafka 或消息队列 Kafka 版时,创建订阅任务后,请勿修改分区 Partition 的数量。

    • 仅支持 SASL 认证且认证机制为 PLAIN,此处应指定为 PLAIN 机制的用户名。关于如何创建 PLAIN 机制的 SASL 用户,请参见创建 SASL 用户

  • 在消息订阅到 RocketMQ 时,具有以下限制条件:
    • 成功创建订阅任务后,不支持修改 RocketMQ 队列的接收策略。
    • 如果消费端为消息队列 RocketMQ 版时,创建订阅任务后,请勿修改分区队列的数量。
    • RocketMQ 不支持事务消息和延迟消息两种消息类型。
  • 在消息订阅到云原生消息引擎 BMQ 时,具有以下限制条件:
    • 成功创建订阅任务后,不支持修改云原生消息引擎 Partition 的接收策略。
    • 如果消费端为云原生消息引擎时,创建订阅任务后,请勿修改分区 Partition 的数量。

其他限制

  • 成功创建数据订阅任务后,不支持更改链路规格类型。关于链路规格的详细信息,请参见产品规格
  • 如果将消息订阅到客户自有中间件(除云原生消息引擎外),在数据订阅过程中,请勿修改自有中间件实例的参数配置,否则任务将订阅失败。
  • Avro 格式订阅格式当前属于邀测阶段,如需使用请提交工单联系技术支持。
  • 将消息订阅到云原生消息引擎或消息队列 RocketMQ 版消费数据当前处于邀测阶段,如需使用,请提交工单联系技术支持。

支持的 SQL 语句

操作类型SQL 操作语句
DMLINSERT、UPDATE、DELETE
DDLCREATE TABLE、ALTER TABLE、DROP TABLE、TRUNCATE TABLE、CREAT INDEX、DROP INDEX、CREATE SEQUENCE、ALTER SEQUENCE、DROP SEQUENCE、DROP RULE

操作步骤

  1. 登录 DTS 控制台

  2. 在顶部菜单栏,选择项目和地域。

  3. 在左侧导航栏,单击数据订阅

  4. 数据订阅列表页面,单击创建订阅

  5. 配置源库页面,配置以下参数信息。

类别参数说明

基本信息

任务名称

(可选)自定义订阅任务名称。命名规则如下:

  • 以字母开头。

  • 长度需在 64 个字符内。

  • 只能包含字母、数字、下划线(_)和中划线(-)。

链路规格

按需选择订阅任务的链路规格,当前支持 CompactStandard

说明

成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格

基本配置

选择已有数据源

您可以按需选择是否使用已录入的实例:

  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理

  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。

实例类型选择 PostgreSQL

接入方式

选择公网自建 PostgreSQL

PostgreSQL 实例从下拉列表中选择目标实例。
数据库账号输入数据库账号信息。
数据库密码输入数据库密码。

测试连接

当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接源库。具体提示信息如下:

  • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。

  • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认输入的用户名和密码无误。

  • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。

中间件配置

选择已有数据源

您可以按需选择是否使用已录入的实例:

  • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理

  • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。

订阅内置中间件私有网络从下拉列表中选择目标私有网络。

子网

从下拉列表中选择目标私有网络内的子网。

说明

目标私有网络内的子网至少要包含 1 个可用 IP。

客户自有中间件消息队列 Kafka 版Kafka 实例从下拉列表中选择目标实例。
Topic从下拉列表中选择目标 Topic 信息。

Kafka 用户

输入 Kafka 用户名。

说明

仅支持 SASL 认证且认证机制为 PLAIN,此处应指定为 PLAIN 机制的用户名。

密码输入 Kafka 用户密码。

专有网络 Kafka

Broker

输入所有 Broker 的 IP 地址及端口号,格式为 host1:port1,例如 10.1.1.1:9093。当存在多个 Broker 时,需使用英文逗号(,)隔开。

Topic输入目标 Topic 信息。

私有网络

从下拉列表中选择目标私有网络,具体如下所示:

  • 专线连接:通过专线 CEN 实现数据连通时,选择 CEN 下所属的任意私有网络。

  • VPN 连接:通过 VPN 实现数据连通时,选择 VPN 网关绑定的私有网络。

子网

从下拉列表中选择私有网络中的子网。

说明

在订阅到专有网络 Kafka 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。

Kafka 用户

输入 Kafka 用户名。

说明

仅支持 SASL 认证且认证机制为 PLAIN,此处应指定为 PLAIN 机制的用户名。

密码输入 Kafka 用户密码。
消息队列 RocketMQ 版RocketMQ 实例从下拉列表中选择目标实例。
Topic从下拉列表中选择目标 Topic 信息。
AccessKey ID输入密钥的 AccessKey ID。关于密钥的详细信息,请参见管理密钥
AccessKey Secret输入密钥的 AccessKey Secret。
云原生消息引擎BMQ 实例从下拉列表中选择目标实例。
Topic从下拉列表中选择目标 Topic 信息。
BMQ 用户输入云原生消息引擎 BMQ 用户名。
数据库密码输入云原生消息引擎 BMQ 用户密码。

测试连接

当测试连接失败时,根据失败提示信息修改相关配置后,再次测试是否可以成功连接实例。具体提示信息如下:

  • 连接认证失败,请检查用户名和密码是否正确

    • 当您将消息订阅到专有网络 Kafka 或消息队列 Kafka 版,出现该报错提示时,您需要确认用户名和密码的准确性。

    • 当您将消息订阅到消息队列 RocketMQ 版,出现该报错提示时,您需要确认 AccessKey ID 和 AccessKey Secret 的准确性。

  • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术人员。

  • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。

  • 连接认证失败,请检查网络是否正常:当您将消息订阅到专有网络 Kafka 时,才会出现该报错提示。当出现该报错提示时,请确认网络的连通性。

  • 专有网络需要子网有 * 个可用 IP,当前私有网络内子网可用 IP 数不足,无法创建任务,请检查私有网络内子网资源:当您将消息订阅到专有网络 Kafka 时,才会出现该报错提示。当出现该报错提示时,您需要调整私有网络子网内可用的 IP 数量,以保证目标私有网络内子网内有足够的 IP。

Project 与计费

项目

(可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目
说明

  • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限

  • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目

  • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。

标签

(可选)单击添加标签,设置标签键和标签值,为实例添加标签。标签的键值对规则如下:

    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

    • 大小写敏感,且长度在 1~128 个字符内。

    • 使用 UTF-8 编码的 Unicode 格式。

    • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。

  • (可选)值

    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

    • 大小写敏感,且长度在 0~256 个字符内。

    • 使用 UTF-8 编码的 Unicode 格式。

说明

  • 标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者或环境等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述

  • 标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。

  • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。

  • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。

计费类型

按需选择计费方式,当前支持按量计费包年包月两种计费方式。

说明

关于计费的详细信息,请参见计费说明

购买时长

按需选择包年包月的购买时长。

说明

在计费方式选择包年包月时,支持设置购买时长。

  1. 单击下一步:配置订阅对象

  2. 配置订阅对象页面,配置以下参数信息。

    说明

    • 若暂时不需要启动订阅任务,您可以在完成配置订阅对象后,单击页面右下角的保存,保存订阅任务,表示成功创建订阅任务后不启动此任务。
    • 保存后该订阅任务的状态为待启动,当需要启动此任务时,在数据订阅列表页面,单击目标未启动订阅任务操作列下的配置订阅通道。具体操作,请参见步骤 5 及后续步骤。
    参数说明

    基本信息

    订阅格式

    选择数据订阅格式。 订阅格式支持火山引擎ProtoCanal ProtoCanal JSONAvro格式。关于订阅格式的详细信息,请参见数据订阅格式

    说明

    Avro 格式 当前属于邀测阶段,如需使用请提交工单联系技术支持。

    Kafka Partition 策略

    按需选择目标 Topic 的 Partition 接收策略。支持以下接收策略:

    • 统一投递至 Partition 0

    • 按照库名和表名的联合 hash 值投递到不同 Partition

    • 按主键的 hash 值投递到不同 Partition

    注意

    • 当接入方式选择专有网络 Kafka消息队列 Kafka 版时,支持配置此参数。

    • 当订阅任务正式启动后,不支持以下操作:

      • 在 DTS 控制台修改 Kafka Partition 的接收策略。

      • 在 Kafka 中修改分区 Partition 的数量。

    RocketMQ 队列策略

    按需选择目标 Topic 的队列接收策略。支持以下接收策略:

    • 按照库名和表名的联合 hash 值投递到不同队列

    • 按主键的 hash 值投递到不同队列

    注意

    • 当接入方式选择消息队列 RocketMQ 时,支持配置此参数。

    • 当订阅任务正式启动后,不支持以下操作:

      • 在 DTS 控制台修改 RocketMQ 队列的接收策略。

      • 在 RocketMQ 中修改队列的数量。

    BMQ Partition 接受策略

    按需选择目标 Topic 的 Partition 接收策略。支持以下接收策略:

    • 统一投递至 Partition 0

    • 按照库名和表名的联合 hash 值投递到不同 Partition

    • 按主键的 hash 值投递到不同 Partition

    注意

    • 当接入方式选择云原生消息引擎时,支持配置此参数。

    • 当订阅任务正式启动后,不支持以下操作:

      • 在 DTS 控制台修改云原生消息引擎 Partition 的接收策略。

      • 在云原生消息引擎中修改分区 Partition 的数量。

    订阅类型当前仅支持勾选增量订阅
    订阅对象订阅对象中选择待订阅的对象。选择目标订阅对象后,您可以在右侧已选择对象框中再次确认需要订阅的对象。同时,如果在订阅对象区域勾选了整库,则在已选择对象区域不支持展开该数据库。

    高级配置

    开启 ETL 配置

    选择是否开启 ETL 功能。关于ETL的详细信息,请参见 ETL 简介

    • :使用 DSL 语法配置数据处理规则,并在 Code goes here... 输入框内输入 SQL 语句。详细信息,请参见 DSL 语法

    • :不开启 ETL 功能。

    说明

    • 订阅数据投递客户自有中间件,且接入方式消息队列 RocketMQ 版时,支持该配置。

    • ETL 配置当前仅支持设置 Tag,请按需设置。

    • 当您在 Code goes here... 输入框内输入 SQL 语句后,需单击校验语法,验证数据处理语句是否正确。

    错误重试时间源库或目标库断连后,若能在该时间内重新连上,订阅任务即可自动恢复。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
  3. 单击预检查

  4. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定

    • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。

    • 如果修改了源端、目标端的数据库实例信息或迁移任务的参数配置,那么建议您重新发起预检查,否则可能会致使任务启动失败或者任务中断。

  5. 预检查配置向导页面,根据检查结果执行以下操作:

    • 单击操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试

    • 单击操作列的忽略,忽略本次告警继续启动订阅任务。同时,也可以单击忽略全部,一键忽略全部告警信息。

      说明

      • 当预检查结果失败时,请勿忽略本次告警。

      • 选择忽略告警并启动订阅任务后,可能会存在某些隐患,具体信息,请参见界面提示。

      • 关于预检查的具体说明,请参见预检查项(PostgreSQL)

  6. 预检查页面右下角,单击确认订单

  7. 根据创建任务的计费类型,选择配置方式:

    • 按量付费
      确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

    • 包年包月

      1. 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

      2. 确认订单信息配置向导页面,确认实例的计费信息。

      3. (可选)单击代金券兑换,在代金券兑换对话框,输入代金券兑换码后单击兑换

      4. (可选)在代金券区域,按需勾选可用代金券,单次仅支持选中一张,即可抵扣部分费用。也可不使用代金券。

      5. 单击下一步

      说明

      支付完成配置向导页面,显示支付成功则任务创建成功。

成功创建数据订阅任务后,您可以在数据库传输服务 DTS 控制台的订阅任务列表查看到数据订阅任务。

后续操作

  1. 新建消费组

  2. 消费订阅数据

相关 API

API描述
CreateTransmissionTask调用 CreateTransmissionTask 接口创建数据库传输服务任务。
ModifyTransmissionTask调用 ModifyTransmissionTask 接口修改传输任务。