DataWorks数据集成在整库实时同步任务中,支持通过函数表达式为目标表字段赋值。
使用限制
当前仅数据来源为MySQL或PolarDB,数据去向为MaxCompute或Hologres的整库实时同步任务,支持在目标表字段赋值时使用函数表达式定义赋值。
支持的函数和语法
支持的函数
| 函数名称 | 说明 | 参数 | 表达式示例 | 
| CONCAT | 字符串连接。 | 
 |  | 
| DATE_FORMAT | 将时间戳转换为特定格式的时间字符串。 | 
 |  | 
| TO_TIMESTAMP | 将时间转换成10位或者13位时间戳。 | 
 |  | 
| DATE_CONVERT | 将特定格式位于特定时区的时间字符串转换为另一种特定格式位于另一特定时区的时间字符串。 | 
 |  | 
| SUBSTRING | 获取字符串中的子串。 | 
 |  | 
| LOWER | 字符串转小写。 | 
 |  | 
| UPPER | 字符串转大写。 | 
 |  | 
支持的语法
- 仅支持函数调用表达式,表达式内容为函数名、括号和参数,不支持其他类型表达式,例如: - DATE_FORMAT(#{create_time},"millis","Asia/Shanghai","yyyyMMdd")。
- 函数表达式参数支持使用 - ""引用字符常量,例如:- CONCAT("hello","world")。
- 函数表达式参数支持使用数字引用数值常量,例如: - SUBSTRING(#{col1},0,10)。
- 函数表达式的参数支持嵌套函数调用,例如: - CONCAT(SUSTRING(#{col1},0,10),"test")。
- 函数表达式的参数支持使用 - #{}引用上游节点输出列值。
- 函数表达式的参数支持使用 - ${}引用内置变量,支持的内置变量类型与各通道附加列设置可选的内置变量类型相同,例如:- CONCAT(SUSTRING(#{col1},0,10),${DATASOURCE_NAME_SRC})。
- 函数名和内置变量名大小写不敏感。 
前提条件
操作步骤
一、进入整库实时任务编辑页
- 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的,在下拉框中选择对应工作空间后单击进入数据集成。 
- 在左侧导航栏单击  ,进入同步任务页面。 ,进入同步任务页面。
- 找到已创建的整库实时同步任务,单击操作列的,进入同步任务编辑页。 
二、在目标表添加函数处理列
添加的函数处理需要写入到目标表的列中,您可以先编辑目标表结构添加字段。
- 在整库实时任务编辑页,单击下一步,找到目标表映射区域,单击刷新映射。 
- 找到需要增加函数处理列的目标表,单击目标表名列  按钮进入目标表结构编辑页面。 按钮进入目标表结构编辑页面。 
- 在字段区域单击添加字段,配置完成后单击应用并刷新映射。  - 您也可通过批量操作中的目标表结构-批量修改和新增字段选项,对多个目标表添加函数处理列。  
三、定义函数表达式
- 在目标表字段赋值列单击配置,进入字段赋值页面。  
- 在目标表字段区域找到已添加的函数处理列,选择赋值方式为函数。然后在赋值列填写函数内容。支持的函数和语法,请参见支持的函数和语法。 