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

数据库传输服务

复制全文
下载 pdf
ETL 任务管理
在 DTS 同步或订阅任务中配置 ETL
复制全文
下载 pdf
在 DTS 同步或订阅任务中配置 ETL
数据库传输服务 DTS 提供流式数据 ETL(Extract Transform Load)数据处理功能。您可以在创建同步或订阅任务时,通过编辑 DSL 脚本语言定义数据处理逻辑,对源库数据进行抽取、转换、加工和装载。本文介绍如何在 DTS 的同步或订阅任务中配置 ETL。
注意事项
  • 当您在 ETL 脚本配置了新增列的操作时,您需要手动在目标数据库的表格中添加列。否则 ETL 脚本不生效。
  • 当您在 ETL 脚本中转换了列的属性,例如将 bigint 转换为 vachar,您需要手动在目标数据库的表格中修改目标列的属性。否则 ETL 脚本不生效。
  • 在 ETL 助手中,ETL 语句由 AI 模型生成,少量转换结果可能会不准确,仅供参考。
ETL 助手能力
数据库传输服务 DTS 支持自然语言转 ETL 功能,该功能可以帮助您将自然语言生成规范的 ETL 语句,降低 ETL 编写和学习门槛。
ETL 助手能力
提问示例
字段映射
product 库的 goods 表中,把 'product_name' 字段改名为 'item_name'
数据拼接
customer 库的 contacts 表中,将 first_namelast_name 列拼接为完整姓名。
数据过滤
我只需要同步 mytablid > 1000,并且 location 字段等于 'hangzhou' 的数据。
JSON 解析
shopping_item 表中的格式为字符串类型的 item_info 解析为 json,并将结果保存到 item_info_json 列。
数据过滤
对于表 A 或表 B,如果 created_at 早于 '2024-06-30',则删除该记录。
数据脱敏
对于 user_info 表,把 mobile_phone 字段的第 8 ~ 11 位替换为星号,同时将 uid 列的前 2 位也替换为星号。
类型转换 + 数据映射
把商品表 products 中类型为 SET('red','blue','green','yellow')color 字段转换为字符串,其中 1→red2→blue3→red,blue4→green
条件分支 + 新增字段
对于 user_info 表,添加 memo 列,若 60 > age >= 30, 设置 memo 为中年;若 age >= 60 则设置 memo 为老年;若 30 > age >= 18, 设置 memo 为青年;否则设置 memo 为少年。
数据过滤 + 时间解析
orders 库的 processlog 表添加一个列 process_year,值为当前时间的年份。
create_time 列由字符串格式 'yyyyMMddHHmmss' 转换为标准时间格式 'yyyy-MM-dd HH:mm:ss'
位操作 + 新增字段
对于 user_info 表,添加 is_vipis_svip 两列。
按位解析 user_attr,若第 3 位为 1,则设置 is_viptrue;若第 5 位为 1,则设置 is_sviptrue,否则设置为 false
合库场景中修改索引
对于 cn_ecommerceus_ecommerce 库中的 orders 表,移除原有主键 id,用 order_uuid 作为新的主键。
对于 eastwest 库中的 user_wallets 表,移除原有的主键 id,添加字段 regionregion 的值与库名称一致,并将 region + user_id 设置为主键。
数据过滤 + 数据脱敏
cn_users 库的 orders 表里过滤掉 order_status 不为 1 的订单,并将 id_card 进行脱敏处理,只保留前三位和后四位,中间部分用 * 替换。
使用 Hash 操作为数据脱敏
将用户表 user_info 中的身份证号 id_card 字段转换为 MD5 哈希值。
支持的数据库
ETL 支持的源库和目标库如下所示:
  • 源库和支持的版本。
  • 源库
    版本
    火山引擎 MySQL
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
    火山引擎版 veDB MySQL
    MySQL 8.0
    公有网络 MySQL
    • MySQL 5.5
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
    专有网络 MySQL
    • MySQL 5.5
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
  • 目标库和支持的版本。
  • 实例类型
    目标库
    版本
    MySQL
    火山引擎版 MySQL
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
    火山引擎版 veDB MySQL
    MySQL 8.0
    公有网络 MySQL
    • MySQL 5.5
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
    专有网络 MySQL
    • MySQL 5.5
    • MySQL 5.6
    • MySQL 5.7
    • MySQL 8.0
    ElasticSearch
    火山引擎版 ElasticSearch
    • 6.7.1
    • 7.10.2
    专有网络 ElasticSearch
    • 6.7.1
    • 7.10.2
    公有网络 ElasticSearch
    • 6.7.1
    • 7.10.2
在创建数据同步或订阅任务时配置 ETL
本文以创建数据同步任务为例,介绍如何在创建任务时配置 ETL 规则。修改现有任务的 ETL 包含以下两种方式:
  • 若现有任务已启用 ETL,则支持对现有任务 ETL 的 DSL 脚本进行修改。
  • 若现有任务未启用 ETL,则支持开启现有任务的 ETL,同时也支持关闭任务的 ETL。此功能仅适用于从 MySQL 同步到 ElasticSearch 的同步任务。
操作步骤
  1. 创建同步任务。详细信息,请参见创建并启动同步任务
  1. 配置同步对象步骤的高级配置时,开启 ETL 配置选择
  1. 输入 ETL 语句或使用 ETL 助手生成语句…文本框中输入数据处理 ETL 规则即 DSL 脚本。关于数据处理语句的详细信息,请参见 DSL 语法
  • 数据库传输服务 DTS 支持自然语言转 ETL 功能,该功能可以帮助您将自然语言生成规范的 ETL 语句,降低 ETL 编写和学习门槛。使用自然语言生成 ETL 语句的方法如下。
  1. 在 ETL 语句文本框的右上角,单击 ETL 助手
  1. ETL 助手对话框中输入 ETL 需求,然后按回车键。ETL 助手拥有多种 ETL 能力,更多信息,请参见 ETL 助手能力
  1. 待生成 ETL 后,您可以复制 ETL 语句至 ETL 文本框中。
  1. 单击检验语法,验证数据处理语句是否正确。
说明
  • 当有错误提示时,您需要根据错误提示修改数据处理语句。
在已有同步或订阅任务中修改 ETL 配置
本文以在同步任务中修改 ETL 配置为例,介绍如何修改任务中的 ETL 规则。
注意事项
  • 在修改已有的 ETL 规则时,您需要先将同步对象从已选择对象移至同步对象中,再重新添加至已选择对象后,再修改 ETL 规则。
  • 已有同步任务上修改 ETL 配置暂不支持对目标端表的表结构进行变更,如果需要变更,您需要在启动同步任务前在目标端变更表结构。
  • ETL 规则的修改仅对启动同步任务后的增量数据生效,对修改 ETL 配置前的历史数据不生效。
  • ETL 规则的 DSL 脚本配置的字段不能为过滤条件过滤的字段,否则会导致任务异常。
  • ETL 规则的 DSL 脚本大小写敏感,库名、表名、字段名称需要和源库保持完全一致。
  • ETL 规则的 DSL 脚本不支持多行表达式,您可以使用 e_compose 函数将多个表达式组合成一个表达式。
修改 ETL 配置
  1. 登录 DTS 控制台
  1. 在顶部菜单栏,选择项目和地域。
  1. 在左侧导航栏,单击数据同步
  • 现有任务已启用 ETL
  1. 数据同步列表页面,单击目标任务的名称。
  1. 在任务详情页面,单击任务配置
  1. 任务配置页签的高级配置区域,单击编辑
  1. ETL 规则调试与更新控制面板,配置 ETL 规则。
说明
若要验证您配置的 ETL 规则是否能在目标表中达到预期效果,您可以单击调试进行验证。详细配置信息,请参见通过 ETL Playground 工具校验 ETL 规则
  1. 单击校验语法,验证 ETL 规则的准确性,当有错误提示时,您需要根据错误提示修改数据处理语句。
  1. 单击更新 ETL
  • 现有任务未启用 ETL
  1. 单击单向目标同步任务的配置
  1. 在修改同步任务页面的高级配置区域,将开启 ETL 配置设置为,开启 ETL 功能。
  • 开启 ETL 规则后,单击快速配置字段映射/过滤规则,在快速配置字段映射/过滤规则对话框配置同步对象,单击确定,即可快速生成 ETL 语句。
  • 在开启 ETL 功能后,您可以参考 DSL 语法配置数据处理 ETL 规则,在输入 ETL 语句或使用 ETL 助手生成语句…文本框中输入数据处理 ETL 规则即 DSL 脚本,单击校验语法,验证数据处理语句是否正确。
  • 您也可以使用 ETL 助手,使用自然语言生成 ETL 语句。在 ETL 语句文本框的右上角,单击 ETL 助手,输入 ETL 需求,然后按回车键。待生成 ETL 后,将生成的 ETL 语句复制到 ETL 文本框中。ETL 助手拥有多种 ETL 语句生成能力,更多信息,请参见 ETL 助手能力
  1. 单击启动任务
关闭 ETL 配置
当前仅支持关闭从 MySQL 同步到 ElasticSearch 同步任务的 ETL 配置。
  1. 登录 DTS 控制台
  1. 在顶部菜单栏,选择项目和地域。
  1. 在左侧导航栏,单击数据同步
  1. 单击单向目标同步任务的配置
  1. 在修改同步任务页面的高级配置区域,将开启 ETL 配置设置为否,关闭 ETL 功能。
  1. 单击启动任务
最近更新时间:2026.08.27 16:33:49
这个页面对您有帮助吗?
有用
有用
无用
无用