您可以通过Groovy自定义转换插件自定义编写Groovy代码,对Record进行转换。从而实现在数据同步过程中,将某个字段的值大写全部转小写、加一个前缀或后缀等。

前提条件

配置Groovy节点前,您需要先配置好相应的输入节点,详情请参见实时同步支持的数据源

背景信息

Groovy自定义转换插件通过Groovy编译器编译执行您配置的Groovy代码,代码需要继承com.alibaba.di.plugin.center.transformer.Transformer类,并且实现Record evaluate(Record record)方法。Maven依赖如下。
<groupId>com.alibaba.di</groupId>
    <artifactId>plugin.center.base</artifactId>
    <version>1.0.0-SNAPSHOT</version>

操作步骤

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 鼠标悬停至新建图标,单击数据集成 > 实时同步
    您也可以找到相应的业务流程,右键单击数据集成,选择新建 > 实时同步
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    注意 节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
  4. 单击提交
  5. 在实时同步节点的编辑页面,鼠标单击转换 > Groovy并拖拽至编辑面板,连线已配置好的输入节点。
  6. 单击Groovy节点,在节点配置对话框中,配置各项参数。
    转换
    参数 描述
    Groovy代码 以配置一个实时读取MySQL数据至DataHub,并经过转换为第一个字段加上GROOVY后缀为例,输入以下代码。
    import com.alibaba.di.plugin.center.element.Column;
    import com.alibaba.di.plugin.center.element.StringColumn;
    import com.alibaba.di.plugin.center.record.Record;
    import com.alibaba.di.plugin.center.transformer.Transformer;
    
    class MyTransformer extends Transformer {
        @Override
        public Record evaluate(Record record) {
            Column column = record.getColumn(0);
            String newValue = column.asString() + "GROOVY";
            record.setColumn(0, new StringColumn(newValue));
            return record;
        }
    }
    输出字段 选择上游节点的输出字段作为当前节点的输入。
    自定义字段 通过自定义转换插件转换后,该Groovy节点最终的输出字段。
  7. 单击工具栏中的保存图标。