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_name 和 last_name 列拼接为完整姓名。​
数据过滤​
我只需要同步 mytabl 中 id > 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→red、2→blue、3→red,blue、4→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_vip 和 is_svip 两列。​
按位解析 user_attr,若第 3 位为 1,则设置 is_vip 为 true;若第 5 位为 1,则设置 is_svip 为 true,否则设置为 false。​
合库场景中修改索引​
对于 cn_ecommerce 和 us_ecommerce 库中的 orders 表,移除原有主键 id,用 order_uuid 作为新的主键。​
​
对于 east 和 west 库中的 user_wallets 表,移除原有的主键 id,添加字段 region,region 的值与库名称一致,并将 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
这个页面对您有帮助吗?
有用
有用
无用
无用