You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
创建 PostgreSQL 数据订阅任务
创建火山引擎版 PostgreSQL数据订阅任务
复制全文
下载 pdf
创建火山引擎版 PostgreSQL数据订阅任务
本场景介绍如何通过数据库传输服务 DTS 创建火山引擎版 PostgreSQL 数据订阅任务。
前提条件
  • 如果通过专有网络 Kafka 的方式消费数据,则按需设置消费端信息,具体如下所示:
  • 在需要使用专线实现数据订阅时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接
  • 在通过云原生消息引擎消费数据时,需提前准备以下环境:
  • 联系云原生消息引擎技术支持或提交工单申请开启公共服务区连接地址,使数据库传输服务 DTS 可以访问云原生消息引擎目标实例。
订阅前准备
  • 白名单与访问权限:当数据库实例的接入方式选择的是专有网络时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将专线所打通的 VPC 子网网段添加至数据库实例的白名单或安全组中。更多信息,请参见添加 DTS 服务器的 IP 地址段
  • 网络连通性:创建数据订阅任务之前,请确认源库和消费端的网络连通性与服务可用性。
  • 您还可以根据预检查项中的说明,来检查源库和目标库中各迁移对象做相应准备。更多详情,请参见预检查项(PostgreSQL)
注意事项
如果使用火山引擎版 PostgreSQL 数据库的大版本升级功能,升级后可能会导致已有的 PostgreSQL 订阅任务中的逻辑复制槽丢失,从而导致 PostgreSQL 订阅任务执行失败。如果发生这种情况,需要您重新创建 PostgreSQL 订阅任务。
限制说明
限制类
说明
源数据库限制
数据库版本:当前支持 10、11、12、13、14、15、16 和 17 版本的 PostgreSQL 实例。
消费端限制
  • 当消息订阅到内置中间件时,具有以下限制条件:
  • 当订阅的单行消息超过 10MB 时,消息会被丢弃。
  • 当消息订阅到内置中间件时,默认 Topic 仅包含一个 Partition,可以保证消息投递的有序性;如果有更大流量的投递需求,请选择将数据订阅到客户自有中间件。
  • 当消息订阅到 Kafka 时,具有以下限制条件:
  • 成功创建订阅任务后,不支持修改 Kafka Partition 的接收策略。
  • 如果消费端为专有网络 Kafka 或消息队列 Kafka 版时,创建订阅任务后,请勿修改分区 Partition 的数量。
  • 仅支持 SASL 认证且认证机制为 PLAIN,此处应指定为 PLAIN 机制的用户名。关于如何创建 PLAIN 机制的 SASL 用户,请参见创建 SASL 用户
  • 在消息订阅到 RocketMQ 时,具有以下限制条件:
  • 成功创建订阅任务后,不支持修改 RocketMQ 队列的接收策略。
  • 如果消费端为消息队列 RocketMQ 版时,创建订阅任务后,请勿修改分区队列的数量。
  • RocketMQ 不支持事务消息和延迟消息两种消息类型。
  • 在消息订阅到云原生消息引擎 BMQ 时,具有以下限制条件:
  • 成功创建订阅任务后,不支持修改云原生消息引擎 Partition 的接收策略。
  • 如果消费端为云原生消息引擎时,创建订阅任务后,请勿修改分区 Partition 的数量。
其他限制
  • 在选择订阅数据投递时,内置中间件为所有用户共享,仅适用于测试场景;业务场景中,建议选择客户自有中间件。
  • 创建数据订阅任务时,目前仅支持 Standard 链路规格。关于链路规格的详细信息,请参见产品规格
  • 如果将消息订阅到客户自有中间件(除云原生消息引擎外),在数据订阅过程中,请勿修改自有中间件实例的参数配置,否则任务将订阅失败。
  • Avro 格式订阅格式当前属于邀测阶段,如需使用请提交工单联系技术支持。
  • 在进行 PostgreSQL 同步任务时,PostgreSQL 的源端数据库账号需在源库创建触发器、函数等对象。因此,在同步过程中,请勿修改该账号在源库所创建的触发器、函数、内部表等对象的访问权限。
  • 将消息订阅到云原生消息引擎或消息队列 RocketMQ 版消费数据当前处于邀测阶段,如需使用,请提交工单联系技术支持。
支持的 SQL 语句
操作类型
SQL 操作语句
DML
INSERT、UPDATE、DELETE
DDL
CREATE TABLE、ALTER TABLE、DROP TABLE、TRUNCATE TABLE、CREAT INDEX、DROP INDEX、CREATE SEQUENCE、ALTER SEQUENCE、DROP SEQUENCE、DROP RULE
操作步骤
  1. 登录 DTS 控制台
  1. 在顶部菜单栏,选择项目和地域。
  1. 在左侧导航栏,单击数据订阅
  1. 数据订阅列表页面,单击创建订阅
  1. 配置源库页面,配置以下参数信息。
  • 类别
    参数
    说明
    基本信息
    任务名称
    (可选)自定义订阅任务名称。长度需在 256 个字符内。
    说明
    若未进行设置,系统将按照命名规则,默认生成一个以 dts- 开头命名的任务。
    链路规格
    按需选择订阅任务的链路规格,当前仅支持 Standard
    说明
    关于链路规格的详细信息,请参见产品规格
    基本配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。
    实例类型
    选择 PostgreSQL
    接入方式
    选择火山引擎版 PostgreSQL
    是否跨火山引擎账号
    按需选择是否跨账号传输数据,取值如下:
    • 本账号:选择本账号时,表示仅在本账号内实现数据传输。
    • 跨账号:选择跨账号时,表示将实现两个账号间的数据传输。
    说明
    • 在进行跨账号传输数据时,您需要通过目标端所在的账号登录数据库传输服务 DTS 控制台。
    跨账号ID
    输入源库所属的火山引擎账号 ID。
    说明
    在选择跨火山引擎账号进行数据传输时,需配置该参数。
    跨账号角色
    输入已授权 DTS 访问跨账号资源的 IAM 角色。
    说明
    在选择跨火山引擎账号进行数据传输时,需配置该参数。
    PostgreSQL 实例
    从下拉列表中选择目标实例。
    数据库账号
    输入数据库账号信息。
    数据库密码
    输入数据库密码。
    测试连接
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。
    • 连接认证失败,无法正常创建连接, 请联系客服:当出现该报错提示时,请提交工单联系技术人员。
    中间件配置
    选择已有数据源
    您可以按需选择是否使用已录入的实例:
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 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. 单击下一步:配置订阅对象
  1. 配置订阅对象页面,设置相关参数信息。
  • 说明
  • 若暂时不需要启动订阅任务,您可以在完成配置订阅对象后,单击页面右下角的保存,保存订阅任务,表示成功创建订阅任务后不启动此任务。
  • 保存后该订阅任务的状态为待启动,当需要启动此任务时,在数据订阅列表页面,单击目标未启动订阅任务操作列下的配置订阅通道。具体操作,请参见步骤 5 及后续步骤。
  • 参数
    说明
    基本信息
    订阅格式
    选择数据订阅格式。订阅格式支持火山引擎 ProtoCanal ProtoCanal JSONAvro 格式Debezium JSON 格式。关于订阅格式的详细信息,请参见数据订阅格式
    说明
    Avro 格式Debezium JSON 格式当前属于邀测阶段,如需使用请提交工单联系技术支持。
    Kafka Partition 策略
    按需选择目标 Topic 的 Partition 接收策略。支持以下接收策略:
    • 统一投递至 Partition 0
    • 按照库名和表名的联合 hash 值投递到不同 Partition
    • 按主键的 hash 值投递到不同 Partition
    • 按指定列的 hash 值投递到不同 Partition
    注意
    • 当接入方式选择专有网络 Kafka消息队列 Kafka 版时,支持配置此参数。
    • 当订阅任务正式启动后,不支持以下操作:
    • 在 DTS 控制台修改 Kafka Partition 的接收策略。
    • 在 Kafka 中修改分区 Partition 的数量。
    RocketMQ 队列策略
    按需选择目标 Topic 的队列接收策略。支持以下接收策略:
    • 按照库名和表名的联合 hash 值投递到不同队列
    • 按主键的 hash 值投递到不同队列
    • 按指定列的 hash 值投递到不同队列
    注意
    • 当接入方式选择消息队列 RocketMQ 时,支持配置此参数。
    • 当订阅任务正式启动后,不支持以下操作:
    • 在 DTS 控制台修改 RocketMQ 队列的接收策略。
    • 在 RocketMQ 中修改队列的数量。
    BMQ Partition 接受策略
    按需选择目标 Topic 的 Partition 接收策略。支持以下接收策略:
    • 统一投递至 Partition 0
    • 按照库名和表名的联合 hash 值投递到不同 Partition
    • 按主键的 hash 值投递到不同 Partition
    • 按指定列的 hash 值投递到不同 Partition
    注意
    • 当接入方式选择云原生消息引擎时,支持配置此参数。
    • 当订阅任务正式启动后,不支持以下操作:
    • 在 DTS 控制台修改云原生消息引擎 Partition 的接收策略。
    • 在云原生消息引擎中修改分区 Partition 的数量。
    订阅类型
    当前仅支持勾选增量订阅
    订阅对象
    订阅对象中选择待订阅的对象。选择目标订阅对象后,您可以在右侧已选择对象框中再次确认需要订阅的对象。同时,如果在订阅对象区域勾选了整库,则在已选择对象区域不支持展开该数据库。
    高级配置
    已选库表
    支持重新单独对所选库表进行重新配置,具体配置如下:
    • Topic:从下拉列表中按需设置表投递在 Kafka 中的 Topic,支持批量修改所有目标表的 Topic。当中间件配置接入方式选择消息队列 Kafka 版专有网络 Kafka 时支持该配置。
    • 指定计算 hash 值的列:输入用于计算 hash 值的列名。之后,将按照此列的 hash 值,将数据投递到指定 Partition 或队列。支持为所有库表批量选择计算 hash 值的列。当投递策略选择按指定列的 hash 值投递到不同 Partition按指定列的 hash 值投递到不同队列时支持该配置。
    开启 ETL 配置
    选择是否开启 ETL 功能。
    • :表示开启 ETL 功能。
    • 在开启 ETL 功能后,您可以参考 DSL 语法配置数据处理规则,在 Code goes here... 输入框内输入数据处理 ETL 规则即 DSL 脚本,单击校验语法,验证数据处理语句是否正确。
    • :表示不开启 ETL 功能。
    说明
    • 订阅数据投递客户自有中间件,且接入方式消息队列 RocketMQ 版时,支持该配置。
    • ETL 配置当前仅支持设置 Tag,请按需设置。
    • 当您在 Code goes here... 输入框内输入 SQL 语句后,需单击校验语法,验证数据处理语句是否正确。
    库表自动投递规则
    库表自动投递规则是指将数据库里的表数据通过 DTS 投递到 Topic 时,支持按照表名匹配规则自动匹配表名,然后将匹配到的表数据自动投递到对应的 Topic。
    选择是否开启库表自动投递规则
    • 开启库表自动投递规则
    1. 开启库表自动投递规则后,在库表匹配规则列表中,单击添加一行。
    1. 在库表匹配规则输入框中输入正则表达式,格式为 DBRegex\.TableRegex
    1. 在下拉框中选择目标 Topic。即将匹配到该正则表达式的表名中的数据,投递到目标 Topic。
    • 不开启库表自动投递规则。DTS 默认不开启库表自动投递规则
    说明
    • 最多可给订阅任务配置 10 个库表匹配规则。
    • 优先级数值越小,其优先级越高。用鼠标拖拽规则,可以上下调整规则的优先级。
    • 消息投递 Topic 的优先级:库表自动投递规则 > 自定义库表投递 Topic > 创建订阅任务时指定的默认 Topic。
    • 需要同时满足以下条件时,才支持配置该参数:
    • 源数据库的实例类型为 PostgreSQL。
    • 订阅数据投递选择客户自有中间件接入方式选择消息队列 Kafka 专有网络 Kafka
    错误重试时间
    源库或目标库断连后,若能在该时间内重新连上,订阅任务即可自动恢复。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
    开启毫秒级延迟监控
    按需设置是否开启毫秒级延迟监控。开启后,可实现高精度、全链路、主动式的端到端延迟度量,有效提升监控的稳定性和对网络中断、空闲断流等异常场景的感知能力。
    开启后,DTS 会向源库写入心跳,需要源端账号具备 SELECTINSERTUPDATE 权限。您也可以在源端手动创建心跳表以开启毫秒级延迟监控功能,操作步骤,请参见手动创建心跳表
    说明
    在通过Kafka 或 RocketMQ 消费云数据库 PostgreSQL 版实例数据时,需要配置该参数。
    自动跳过无权限表
    按需选择是否自动跳过无权限表。当遇到无权限表时,系统将自动跳过,不会中断任务,但可能会因数据丢失导致业务异常,建议同时配置事件告警规则。详细操作,请参见配置创建事件规则
  1. 单击预检查
  1. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定
  • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。
  • 如果修改了源端、目标端的数据库实例信息或订阅任务的参数配置,那么建议您重新发起预检查,否则可能会致使任务启动失败或者任务中断。
  1. 预检查配置向导页面,根据检查结果执行以下操作:
  • 单击操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试
  • 单击操作列的忽略,忽略本次告警继续启动订阅任务。同时,也可以单击忽略全部,一键忽略全部告警信息。
说明
  • 当预检查结果失败时,请勿忽略本次告警。
  • 选择忽略告警并启动订阅任务后,可能会存在某些隐患,具体信息,请参见界面提示。
  1. 预检查页面右下角,单击确认订单
  1. 根据创建任务的计费类型,选择配置方式:
  • 按量付费
  • 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务
  • 包年包月
  1. 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务
  1. 确认订单信息配置向导页面,确认实例的计费信息。
  1. (可选)单击代金券兑换,在代金券兑换对话框,输入代金券兑换码后单击兑换
  1. (可选)在代金券区域,按需勾选可用代金券,单次仅支持选中一张,即可抵扣部分费用。也可不使用代金券。
  1. 单击下一步
说明
支付完成配置向导页面,显示支付成功则任务创建成功。
  • 成功创建数据订阅任务后,您可以在数据库传输服务 DTS 控制台的订阅任务列表查看到数据订阅任务。
后续操作
  1. 消费订阅数据
相关 API
API
描述
调用 CreateTransmissionTask 接口创建数据库传输服务任务。
调用 ModifyTransmissionTask 接口修改传输任务。
最近更新时间:2026.08.27 16:33:49
这个页面对您有帮助吗?
有用
有用
无用
无用