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

数据库传输服务

复制全文
下载 pdf
源为公有网络 MySQL
同步至火山引擎版 Elasticsearch
复制全文
下载 pdf
同步至火山引擎版 Elasticsearch
本场景介绍如何在数据库传输服务 DTS 控制台创建公有网络 MySQL 同步至火山引擎版 Elasticsearch。​
前提条件​
  • 已在公网环境中自行搭建 MySQL,并创建数据库账号。​
​
  • 已确认源端和目标端的网络连通性与服务可用性。​
注意事项​
  • 当源库为自建 MySQL 时,您需要关注以下信息:​
  • 同步时,如果源库进行主备切换,否则会导致同步任务失败。​
  • 在同步期间,如果源库执行了重启操作,同步任务会暂时中断并自动尝试修复,如果任务长时间没恢复,请提交工单联系技术支持。​
  • 由于数据库传输服务 DTS 的延迟时间是根据同步到目标库最后一条数据的时间戳和当前时间戳对比得出,源库长时间未执行 DML 操作可能会导致延迟信息不准确。如果任务显示的延迟时间过大,您可以在源库执行一个 DML 操作来更新延迟信息。​
说明​
当同步对象为整库时,您可以创建心跳表,心跳表每秒定期更新或写入数据。​
  • 在数据同步的过程中,若遇到目标库中已存在同主键或唯一键的情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致或任务失败等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。​
  • 表结构一致时:全量同步的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。​
  • 表结构不一致时:可能会导致无法初始化数据,只能同步部分列数据或同步失败。​
  • 在源端中,如果某个数据库未被加入同步对象,则不能对已加入同步对象的数据库执行 DDL 操作,否则同步任务会失败。​
  • 在 MySQL 数据库中不能频繁地对同一张表进行 DDL 操作,频繁的 DDL 操作可能导致 DTS 元信息更新失败,存在断流风险。规避方法是在 console 中,DDL 操作至少间隔 1~3 秒。​
限制说明​
应用限制​
​
类型​
说明​
源库限制​
  • 数据库版本:当前支持 5.5、5.6、5.7 和 8.0 的 MySQL 实例。​
说明​
当 MySQL 实例的版本为 5.5 时,只支持结构同步和数据同步,不支持用户初始化。​
  • 在源库的实例版本大于等于 5.6 时,gtid_mode 和 enforce_gtid_consistency 取值均需为 ON。​
说明​
当 MySQL 的版本小于 8.0 且未开启参数 gtid_mode 时,可能会在数据同步过程中导致外键级联删除失败,从而造成数据差异。​
  • 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据同步的速率。​
  • 支持 InnoDB 数据库存储引擎,暂不支持 MariaDB 数据库引擎。​
  • 待同步的表需具备主键或唯一非空约束,且字段具有唯一性,否则可能会导致数据不一致。​
  • Binlog 日志的要求如下:​
  • 需开启 Binlog 日志功能,且设置参数 binlog_format 为 row 、binlog_row_image 为 full,否则预检查提示报错,且无法成功启动数据同步任务。​
  • Binlog 日志至少要保留 24 小时,建议保留 7 天以上的日志,否则 DTS 可能因无法获取日志从而导致任务失败,某些情况下也可能导致数据丢失。​
  • 涉及外键依赖的表,需要同时同步,否则将导致数据同步失败。​
  • 单任务中表的数量建议不超过 2 万,库的数量不超过 1000 个。当有大量库表需要同步时,建议拆分为多个任务。​
  • 源端数据库不支持配置多节点 Proxy 地址。在增量数据同步阶段,DTS 需与特定数据库实例建立稳定的长连接。多节点 Proxy 的负载均衡或路由机制可能引发连接漂移或日志解析失败问题。建议您直接配置单一节点的连接地址,或采用数据库网关(DG)进行接入。​
目标库限制​
当前支持以下实例版本:​
  • Elasticsearch 实例:6.7.1、6.8.23 和 7.10.2 版本。​
  • Opensearch 实例:2.9.0 和 3.3.0 版本。​
其他限制​
  • 执行数据同步前需评估源库和目标库的性能,建议在业务低峰期执行数据同步。否则全量数据同步时 DTS 占用源和目标库一定的读写资源,可能会导致数据库的负载上升。​
  • 当源库为 MySQL 8.0 版本时,在配置同步任务时,您需要手动对以下账号直接授予数据同步的相关权限:​
  • 源库或目标库的账号是通过 Role 进行相关权限授权的。​
  • 需要进行用户同步的账号是通过 Role 进行相关权限授权的。​
  • 同步任务仅支持表格。​
​
操作限制​
当前仅支持同步 DML 语句到 Elasticsearch。​
支持的同步架构​
  • 一对一单向同步​
  • 一对多单向同步​
  • 多对一单向同步​
关于数据库传输服务 DTS 支持的同步拓扑类型和使用说明,请参见数据同步拓扑。​
支持的 SQL 操作​
​
操作类型​
SQL 操作语句​
DML​
INSERT、UPDATE、DELETE​
​
数据库账号最小权限策略​
​
数据库​
结构初始化​
全量初始化​
增量同步​
源库​
SELECT 权限​
SELECT 权限​
REPLICATION SLAVE、REPLICATION CLIENT 和 SELECT 权限。​
Elasticsearch 普通用户​
  • 索引:读写、编辑、删除权限​
  • 文档:增、删、改、查权限​
​
​
​
​
  1. 在创建同步任务页面的配置源库及目标库配置向导页面,配置以下参数信息。​
  • ​
    类别​
    参数​
    说明​
    基本信息​
    任务名称​
    (可选)自定义同步任务名称。长度需在 256 个字符内。​
    说明​
    若未进行设置,系统将按照命名规则,默认生成一个以 dts- 开头命名的任务。​
    ​
    链路规格​
    按需选择同步任务的链路规格,当前支持 Compact、Medium 和 Standard。​
    说明​
    成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格。​
    ​
    同步拓扑​
    根据业务需要选择同步拓扑,当前仅支持单向同步。​
    说明​
    关于同步拓扑的更多信息,请参见数据同步拓扑。​
    源库配置​
    选择已有数据源​
    您可以按需选择是否使用已录入的实例:​
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理。​
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。​
    ​
    实例类型​
    选择 MySQL。​
    ​
    接入方式​
    选择公有网络 MySQL。​
    说明​
    在同步公有网络 MySQL 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。​
    ​
    地域​
    选择目标实例所属地域。​
    ​
    主机地址​
    输入目标库自建实例的主机地址。​
    ​
    端口​
    输入目标自建实例的端口号。​
    ​
    数据库账号​
    输入目标实例的数据库账号。​
    ​
    数据库密码​
    输入目标实例数据库账号对应的密码。​
    ​
    连接方式​
    按需选择非加密连接或 SSL 安全连接,建立更加安全可靠的同步链路。​
    说明​
    • 当选择 SSL 安全连接时,您需提前开通公有网络 MySQL 实例的 SSL 加密功能。​
    • 当同步任务选择非加密连接且任务正常运行时,开通了公有网络 MySQL 实例的 SSL 加密功能可能会导致非加密任务失败。​
    ​
    SSL 加密证书​
    单击上传 SSL 加密证书上传 CA 证书。当连接方式选择了 SSL 安全连接时,支持该配置。​
    ​
    测试连接​
    单击测试连接,验证是否成功连接实例。​
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:​
    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。​
    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。​
    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。​
    目标库配置​
    选择已有数据源​
    您可以按需选择是否使用已录入的实例:​
    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理。​
    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。​
    ​
    实例类型​
    选择 Elasticsearch。​
    ​
    接入方式​
    选择火山引擎版 Elasticsearch。​
    ​
    ES 实例​
    从下拉列表中选择目标 Elasticsearch 实例。​
    说明​
    • 您可以通过实例 ID 或名称搜索目标实例。​
    • 在创建数据同步任务之前,请确认您的云搜索服务实例是否已配置白名单。若已配置白名单,则需将实例所在的私有网络子网网段添加至该实例中;若该实例未配置白名单,则无需对实例白名单进行变动。详细操作,请参见配置实例私网 IP 白名单。​
    ​
    数据库账号​
    输入目标实例的数据库账号。​
    ​
    数据库密码​
    输入目标实例数据库账号对应的密码。​
    ​
    测试连接​
    单击测试连接,验证是否成功连接实例。​
    说明​
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。​
    Project 与计费​
    项目​
    (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目。​
    说明​
    • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限。​
    • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目。​
    • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。​
    ​
    标签​
    (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:​
    • 键​
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。​
    • 大小写敏感,且长度在 1~128 个字符内。​
    • 使用 UTF-8 编码的 Unicode 格式。​
    • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:、VOLC: 等。​
    • (可选)值​
    • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。​
    • 大小写敏感,且长度在 0~256 个字符内。​
    • 使用 UTF-8 编码的 Unicode 格式。​
    说明​
    • 支持模糊搜索选择已有标签键和标签值。​
    • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。​
    • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。​
    ​
    计费方式​
    按需选择计费方式,当前支持按量计费和包年包月两种计费方式。​
    说明​
    关于计费的详细信息,请参见计费说明。​
    ​
    购买时长​
    按需选择包年包月的购买时长。​
    说明​
    在计费方式选择包年包月时,支持设置购买时长,同时您还可以勾选到期自动续费,系统会在任务到期前自动续费。​
    ​
  1. 单击下一步:配置同步对象。​
  1. 在配置同步对象配置向导页面,配置相关参数信息,如下表所示。​
说明​
  • 若暂时不需要启动同步任务,您可以在完成同步对象配置后,单击页面右下角的保存。​
  • 保存后会跳转回同步任务列表页,此时任务状态为待启动,您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务。​
  • ​
    参数​
    ​
    说明​
    同步类型​
    ​
    按需选择同步类型,当前支持结构初始化、全量初始化步和增量同步。​
    说明​
    • 默认勾选增量同步。​
    • 在勾选结构初始化或全量初始化时,预检查完成后,数据库传输服务 DTS 会将源实例中待同步对象的数据在目标实例中初始化,作为后续增量同步数据的基础。​
    索引拼接规则​
    ​
    按需选择索引的拼接规则,支持表名和库名+表名选项:​
    • 表名:当您选择表名后,在目标 Elasticsearch 实例中创建的索引名和表名相同。​
    • 库名+表名:当您选择库名+表名后,在目标 Elasticsearch 实例中创建的索引名为库名+表名。​
    说明​
    成功创建同步任务后,再修改索引拼接规则会重置同步对象的命名,须谨慎操作。​
    主键冲突处理​
    ​
    选择当目标库已存在同主键值的行时的处理方法,当前仅支持选择冲突覆盖,即使用源库数据覆盖目标库数据,同步任务可正常启动。​
    同步起始点​
    ​
    设置从某指定位点或时间点拉取 Binlog 日志,取值如下:​
    • 系统默认:默认为任务启动时间点。​
    • 指定 GTID:在输入框内输入指定的 GTID,格式为 source_id:transaction_id。​
    • 指定 GTID_EXECUTED:在输入框内输入指定的 GTID_EXECUTED,格式为 source_id:transaction_id,当存在多个时,可使用英文逗号(,)隔开。关于如何获取实例的 GTID_EXECUTED,请参见如何获取实例的 GTID_EXECUTED。​
    • 指定时间戳:单击输入框,选择日期,单击选择时间设置时间点,然后单击确定。​
    说明​
    • 当同步类型勾选了全量初始化时,不支持此步骤。​
    • 在同步类型同时勾选了全量初始化和增量同步时,同步起始点默认为当前时间点且不支持修改。​
    • GTID、GTID_EXECUTED 必须是源端合法的值,否则预检查时会报错。​
    • 当选择指定时间戳时,您设置的时间必须要晚于源端 Binlog 的最早时间。当没有对应时间 Binlog 时,则选取最接近 Binlog 的起点。​
    同步类型选择​
    ​
    选择需要同步的操作类型,当前仅支持同步 DML 语句,即支持同步 DELETE、Insert、Update,默认勾选全部 DML 操作语句,可按需调整。​
    是否开启外键检查​
    ​
    按需选择是否开启外键检查,开启外键检查后,支持同步源库的外键级联更新、删除等操作,从而保证数据同步的完整性和一致性。​
    同步对象​
    ​
    选择需要同步的表对象。同时,您可以在已选择对象区域中实现以下操作:​
    • 重命名库或表:单击目标库、表后的笔状图标,重命名库、表,支持通过普通搜索和全局搜索方式查询目标对象。如果在同步对象区域勾选了整库,则在已选择对象区域仅支持修改库名,且不支持展开该数据库。单击批量映射,可以批量修改库或表名,更多信息请参见库表批量映射。​
    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表等目标。​
    • 过滤表内数据:勾选过滤数据,可以实现对表内数据的过滤。​
    说明​
    在同步对象或已选择对象区域支持通过正则表达式搜索目标对象。​
    过滤条件​
    ​
    (可选)在开启过滤条件时,可以在全量数据扫描阶段即开始过滤数据,进而提高同步性能,您可以在目标库、表或视图的过滤条件列,单击笔状图标,设置过滤条件,然后单击校验语句,验证是否满足过滤条件。​
    说明​
    • 该功能当前属于邀测阶段,如需使用,请提交工单联系技术支持。​
    • 当同步对象的库、表或视图勾选了过滤数据,才支持配置此字段。​
    • 过滤条件当前支持=、!=、<、>、<=、>=、in、is null、and 和 or操作符。​
    库表字段配置​
    ​
    配置库表字段相关信息,可以将文档自定义路由至 Elasticsearch 实例的分片中:​
    • Type 名称:您可以自定义 Type 名称,单击批量设置 Type 名称,支持批量设置 Type 的名称。命名规则如下;​
    • 不能包含英文逗号(,)或井号(#)。​
    • 不可以英文句号(.)开头,不可以下划线(_)开头除(_doc)外。​
    • 长度需在 255 个字符内,且名称前后不可包含空白字符。​
    说明​
    • 当前只有 7.x 及之前版本的 ES 实例支持自定义 Type 名称,8.x 及之后版本和 OpenSearch 版本的 ES 实例不支持自定义 Type 名称。​
    • 在目标端索引已存在时,Type 名称需和您自定义的名称保持一致,否则结构迁移失败。​
    • 是否_routing:确定是否需要自定义路由模式。同时支持将多个数据库名称的 _routing 设置为是或否。​
    • 是:您可以将文档自定义路由至 Elasticsearch 的分片中。​
    • 否:只能将文档通过 _id 路由至 Elasticsearch 的分片中。​
    • _routing 列:自定义将文档索引至 Elasticsearch 分片内。默认为 _id。​
    • _id 取值:自定义构建文档 _id 值。当选择多个字段组成 _id 时,需使用下划线(_)连接。​
    高级配置​
    开启 ETL 配置​
    选择是否开启 ETL 功能。关于 ETL 的详细信息,请参见 ETL 简介。​
    • 是:表示开启 ETL 功能。​
    • 开启 ETL 规则后,单击快速配置字段映射/过滤规则,在快速配置字段映射/过滤规则对话框配置同步对象,单击确定,即可快速生成 ETL 语句。​
    • 在开启 ETL 功能后,您可以参考 DSL 语法配置数据处理 ETL 规则,在输入 ETL 语句或使用 ETL 助手生成语句…文本框中输入数据处理 ETL 规则即 DSL 脚本,单击校验语法,验证数据处理语句是否正确。​
    • 您也可以使用 ETL 助手,使用自然语言生成 ETL 语句。在 ETL 语句文本框的右上角,单击 ETL 助手,输入 ETL 需求,然后按回车键。待生成 ETL 后,将生成的 ETL 语句复制到 ETL 文本框中。ETL 助手拥有多种 ETL 语句生成能力,更多信息,请参见 ETL 助手能力。​
    • 否:表示不开启 ETL 功能。​
    ​
    错误重试时间​
    在同步任务中,当源库和目标库断连后导致同步任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。​
    ​
​
​
最近更新时间:2026.07.30 10:00:15
这个页面对您有帮助吗?
有用
有用
无用
无用