更新时间:2024-05-07 GMT+08:00

配置目标端数据信息

概述

本节主要提供数据集成任务目标端信息的配置说明。目标端信息用于告诉ROMA Connect如何将待集成的数据写入到目标端,包括数据源、数据存储信息等。对于不同的数据源类型,其目标端信息配置有所差异。

数据迁移过程中若目标端数据存在主键冲突,则根据主键自动更新数据。

支持“定时&实时”模式的目标端数据类型

仅支持“定时”模式的目标端数据类型

OBS

API

任务的“集成模式”为“定时”或“实时”时,可以选择API作为目标端数据源,具体配置如下。
表1 目标端API信息

参数

配置说明

请求参数

构造API请求的参数定义,例如要集成到目标端的数据,需要在Body中携带。请根据API数据源的定义如实填写。

  • Params:请求URL中问号后面定义的参数,只能对参数传递固定值。Params参数的填写跟Body参数的form-data方式类似。
  • Headers:RESTful请求的消息头参数,只能对参数传递固定值。Headers参数的填写跟Body参数的form-data方式类似。
  • Body:RESTful请求消息体的底层参数,与“数据根字段”组成发给目标端API的Body消息体,源端数据通过Body参数传递到目标端。Body支持“form-data”和“raw”两种形式,具体请参见Body参数配置说明

数据根字段

发送到目标端的JSON格式Body消息体中,参数字段集上层公共字段的路径。“数据根字段”与“请求参数”中配置的Body参数组成发给目标端API的Body消息体。

例如Body参数为:{"c":"xx","d":"xx"},数据根字段定义a.b,则封装后的请求数据为{"a":{"b":{"c":"xx","d":"xx"}}}。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

Body参数配置说明:

  • form-data方式:

    “键”填写为API数据源定义的Body参数名称,“键”的值设置为空。“键”在Mapping信息中作为“目标字段名”,以此映射和传递源端字段的值。

    图1 form-data方式
  • raw方式:

    raw方式持JSON、Array和嵌套JSON格式。填写发送给目标端API的JSON格式Body示例,ROMA Connect根据示例以及Mapping映射配置,替换示例中参数的值,最终将源端数据传递给目标端。raw方式的Body示例如下。

    • JSON格式:
      {
      	"id": 1,
      	"name": "name1"
      }

      Body填写JSON,数据根字段无需写值,Mapping信息填写字段名。

    • Array格式:
      {
      	"record":[
      		{
      			"id": 1,
      			"name": ""
      		}
      	]
      }

      数据根字段写入JSONArray对象名,例如:record。Mapping信息填写字段名。

    • 嵌套JSON格式:
      {
      	"startDate":"",
      	"record":[
      		{
      			"id": 1,
      			"name": ""
      		}
      	]
      }

      数据根字段无需填写值,Mapping信息中,json字段直接填写字段名,jsonArray中的字段填写具体路径,例如:record[0].id

ActiveMQ

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择ActiveMQ作为目标端数据源,具体配置如下。
表2 目标端ActiveMQ信息

参数

配置说明

目标端类型

选择ActiveMQ数据源的消息传递模型,可选择“Topic”和“Queue”。

目标端名称

填写待集成数据要发送到的Topic或Queue名称,请确保该Topic或Queue已存在。

元数据

定义写入到目标端的JSON格式数据中,每一个底层key-value型数据元素。源端有多少个字段需要集成,则目标端需要定义相同个数的元数据。

  • 别名:对元数据的自定义名称。
  • 类型:元数据的数据类型,需要与源端数据中对应字段的数据类型一致。
  • 解析路径:元数据的完整路径,具体请参见元数据解析路径配置说明

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

元数据解析路径配置说明:

  • JSON格式数据中不含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b.c,元素d的完整路径为a.b.d,元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b.c,元素d的解析路径需设置为a.b.d

    {
       "a": {
          "b": {
             "c": "xx",
             "d": "xx"
          }
       }
    }
  • JSON格式数据中含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b[i].c,元素d的完整路径为a.b[i].d。元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b[i].c,元素d的解析路径需设置为a.b[i].d

    {
       "a": {
          "b": [{
             "c": "xx",
             "d": "xx"
          },
          {
             "c": "yy",
             "d": "yy"
          }
          ]
       }
    }

以上面JSON格式数据中不含数组的样例为例,目标端为ActiveMQ的配置示例如下图所示。

图2 ActiveMQ配置示例

ArtemisMQ

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择ArtemisMQ作为目标端数据源,具体配置如下。
表3 目标端ArtemisMQ信息

参数

配置说明

目标端类型

选择ArtemisMQ数据源的消息传递模型,可选择“Topic”和“Queue”。

目标端名称

填写待集成数据要发送到的Topic或Queue名称,请确保该Topic或Queue已存在。

扩展元数据

定义写入到目标端的JSON格式数据中,每一个底层key-value型数据元素。源端有多少个字段需要集成,则目标端需要定义相同个数的元数据。

  • 别名:对元数据的自定义名称。
  • 类型:元数据的数据类型,需要与源端数据中对应字段的数据类型一致。
  • 解析路径:元数据的完整路径,具体请参见元数据解析路径配置说明

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

元数据解析路径配置说明:

  • JSON格式数据中不含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b.c,元素d的完整路径为a.b.d,元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b.c,元素d的解析路径需设置为a.b.d

    {
       "a": {
          "b": {
             "c": "xx",
             "d": "xx"
          }
       }
    }
  • JSON格式数据中含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b[i].c,元素d的完整路径为a.b[i].d。元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b[i].c,元素d的解析路径需设置为a.b[i].d

    {
       "a": {
          "b": [{
             "c": "xx",
             "d": "xx"
          },
          {
             "c": "yy",
             "d": "yy"
          }
          ]
       }
    }

目标端为ArtemisMQ的配置与ActiveMQ的类似,配置示例可参考ActiveMQ配置示例

DB2

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择DB2作为目标端数据源,具体配置如下。
表4 目标端DB2信息

参数

配置说明

目标端表

选择待集成数据要写入的数据表。选择数据表后,单击“选择表字段”,可以选择只需要写入的数据列字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

DWS

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择DWS作为目标端数据源,具体配置如下。
表5 目标端DWS信息

参数

配置说明

目标端表

选择待集成数据要写入的数据表。选择数据表后,单击“选择表字段”,可以选择只需要写入的数据表字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

Kafka

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择Kafka作为目标端数据源,具体配置如下。
表6 目标端Kafka信息

参数

配置说明

Topic名称

选择要写入数据的Topic名称。

Key

填写消息的Key值,表示消息存储在指定分区,可以当成有序消息队列使用。如果Key为空,则消息分布式存储在不同的消息分区。

元数据

定义写入到目标端Kafka消息的数据字段。源端有多少个字段需要集成,则目标端需要定义相同个数的元数据。

  • 别名:对元数据的自定义名称。
  • 类型:元数据的数据类型,需要与源端数据中对应字段的数据类型一致。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

目标端为Kafka的配置示例如下图所示,id、name和info为要写入到Kafka数据源的数据字段。

图3 Kafka配置示例

写入Kafka的消息内容结构为{"id":"xx", "name":"yy", "info":"zz"},其中xx、yy、zz为从源端传入的数据值。

MySQL

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择MySQL作为目标端数据源,具体配置如下。
表7 目标端MySQL信息

参数

配置说明

目标端表

选择已有的表,单击“选择表字段”,可以选择只需要集成的数据列字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

MongoDB

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择MongoDB作为目标端数据源,具体配置如下。
表8 目标端MongoDB信息

参数

配置说明

目标表

选择MongoDB数据源中要写入数据的数据集合(数据集合相当于关系型数据库的数据表)。选择数据集合后,单击“选择集合字段”,可以选择只需要写入的数据列字段。

是否upsert

写入目标端的数据是否进行更新插入,即是否在目标端数据集合中直接更新已有数据字段。

Upsert键

仅当“是否upsert”选择开启时需要配置。

选择要更新插入的数据字段。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

OBS

返回页首

任务的“集成模式”为“定时”时,可以选择OBS作为目标端数据源,具体配置如下。
表9 目标端OBS信息

参数

配置说明

对象类型

选择写入OBS数据源的数据文件类型,当前支持“文本文件”和“二进制文件”。

编码方式

仅当“对象类型”选择“文本文件”时需要配置。

选择写入OBS数据源的数据文件编码方式,可选择“UTF-8”和“GBK”。

Path

填写数据要写入OBS数据源的对象名。Path的值不能以斜杠(/)结尾。

文件名前缀

填写文件名前缀,与“时间格式”配合使用,用于定义写入OBS数据源的文件名称。

时间格式

选择文件名中的时间格式,与“文件名前缀”配合使用,用于定义数据写入OBS数据源的文件名称。

文件类型

选择写入OBS数据源的数据文件格式,文本文件支持txt和csv格式,二进制文件支持xls和xlsx格式。

高级属性

仅当“文件类型”选择“csv”时需要配置。

选择是否配置文件的高级属性。

换行符

仅当“高级属性”选择“是”时需要配置。

填写文件内容的换行符,用于区分文件中的不同数据行。

使用包围符

仅当“高级属性”选择“是”时需要配置。

若选择“是”,则数据文件中的每个数据字段都会用双引号(")包围。若数据字段中存在与分隔符、换行符相同的符号时,可以避免字段被错误的拆分为2个字段。例如源数据中有1个数据字段aa|bb,在集成到目标数据文件时设置了|为分隔符,如果选择使用包围符,则目标数据文件中该字段为"aa|bb",不会被拆分为aa和bb两个字段。

字段分隔符

仅当“文件类型”选择“txt”或者“高级属性”选择“是”时需要配置。

填写文件内容的字段分隔符,用于区分每行数据中的不同字段。

是否添加文件头

选择是否为写入的数据文件添加文件头。文件头为添加在文件中的首行或者开头若干行信息,帮助识别和区分文件内容。

文件头

仅当“是否添加文件头”选择“是”时需要配置。

填写文件头的内容信息,多个文件头信息需要用英文逗号(,)隔开。

元数据

定义写入到目标端文件的数据字段。源端有多少个字段需要集成,则目标端需要定义相同个数的元数据。

  • 别名:对元数据的自定义名称。
  • 类型:元数据的数据类型,需要与源端数据中对应字段的数据类型一致。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

目标端为OBS的配置示例如下图所示,id、name和info为要写入到OBS数据源的数据字段。

图4 OBS配置示例

Oracle

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择Oracle作为目标端数据源,具体配置如下。
表10 目标端Oracle信息

参数

配置说明

目标端表

选择已有的表,单击“选择表字段”,可以选择只需要集成的数据列字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

Oracle数据源作为目标端时,主键字段对应的源端字段如果为空,该条记录会默认抛弃,不会产生调度日志错误码。

PostgreSQL

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择PostgreSQL作为目标端数据源,具体配置如下。
表11 目标端PostgreSQL信息

参数

配置说明

是否自动建表

选择是否自动创建新的数据表。

目标表名称

仅当“是否自动建表”开启时显示。

填写自动建表的表名称。

目标端表

仅当“是否自动建表”关闭时显示。

选择待集成数据要写入的数据表,单击“选择表字段”,可以选择只需要集成的数据列字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

RabbitMQ

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择RabbitMQ作为目标端数据源,具体配置如下。
表12 目标端RabbitMQ信息

参数

配置说明

是否创建新队列

选择是否在源端RabbitMQ数据源创建一个新队列。

  • 选择是,表示创建一个新队列,并把待集成数据发送到该队列。
  • 选择否,表示把待集成数据发送到已有队列。

交换方式

选择RabbitMQ数据源中,交换器将消息转发到队列的路由方式。若“是否创建新队列”选择“是”,则选择新队列的交换方式;若“是否创建新队列”选择“否”,则选择已有目标队列一致的交换方式。

  • Direct:若消息的路由关键字与队列完全匹配,则消息会转发到队列。
  • Topic:若消息的路由关键字与队列模糊匹配,则消息会转发到队列。
  • Fanout:所有消息都会转发到队列。
  • Headers:若消息的Headers属性与队列完全匹配,则消息会转发到队列。

交换机名称

填写RabbitMQ数据源的交换器名称。若“是否创建新队列”选择“是”,则配置新队列的交换器名称;若“是否创建新队列”选择“否”,则配置已有目标队列一致的交换器名称。

路由关键字

仅当“交换方式”选择“Direct”或“Topic”时需要配置。

RabbitMQ把路由关键字作为判断条件,符合条件的消息将转发到队列。若“是否创建新队列”选择“是”,则配置新队列的路由关键字;若“是否创建新队列”选择“否”,则配置已有目标队列一致的路由关键字。

消息参数

仅当“交换方式”选择“Headers”时需要配置。

RabbitMQ把Headers作为判断条件,符合条件的消息将转发到新队列。若“是否创建新队列”选择“是”,则配置新队列的Headers键值对;若“是否创建新队列”选择“否”,则配置已有目标队列一致的Headers键值对。

队列名称

仅当“是否创建新队列”选择“是”时需要配置。

填写新队列的名称,自定义。

自动删除

当没有客户端连接队列时,队列是否自动删除。

持久化

队列中的消息是否持久化保存。

元数据

定义写入到目标端的JSON格式数据中,每一个底层key-value型数据元素。源端有多少个字段需要集成,则目标端需要定义相同个数的元数据。

  • 别名:对元数据的自定义名称。
  • 类型:元数据的数据类型,需要与源端数据中对应字段的数据类型一致。
  • 解析路径:元数据的完整路径,具体请参见元数据解析路径配置说明

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例

元数据解析路径配置说明:

  • JSON格式数据中不含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b.c,元素d的完整路径为a.b.d,元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b.c,元素d的解析路径需设置为a.b.d

    {
       "a": {
          "b": {
             "c": "xx",
             "d": "xx"
          }
       }
    }
  • JSON格式数据中含数组

    如以下写入目标端的JSON格式数据,元素a的完整路径定义为a,元素b的完整路径为a.b,元素c的完整路径为a.b[i].c,元素d的完整路径为a.b[i].d。元素c和d为底层数据元素。

    此场景下,元素c的解析路径需要设置为a.b[i].c,元素d的解析路径需设置为a.b[i].d

    {
       "a": {
          "b": [{
             "c": "xx",
             "d": "xx"
          },
          {
             "c": "yy",
             "d": "yy"
          }
          ]
       }
    }

以上面JSON格式数据中不含数组的样例为例,目标端为RabbitMQ的配置示例如下图所示。

图5 RabbitMQ配置示例

SQL Server

返回页首

任务的“集成模式”为“定时”或“实时”时,可以选择SQL Server作为目标端数据源,具体配置如下。
表13 目标端SQL Server信息

参数

配置说明

目标端表

选择已有的表,单击“选择表字段”,可以选择只需要集成的数据列字段。

批次号字段

选择目标表中类型为string并且字段长度大于14的字段作为批次号字段,且该批次号字段不能和Mapping信息中的目标字段重复。

该字段值将为一个随机数,用来标识同一批次的数据,同一批次插入的数据具有相同的批次号,表示这些数据是同一批次插入的,可以用来定位或者解析回滚。

批次号格式

批次号格式支持yyyyMMddHHmmss和UUID,yyyyMMddHHmmss可能会有重复,请尽可能使用UUID以确保唯一性。

映射规则

配置ROMA Connect源端数据字段到目标端数据字段的映射规则,把获取到的源端数据转换成写入目标端的数据。具体映射说明参见配置映射规则

  • 映射模式:通过列表形式填写源端和目标端的字段名,增加源端数据字段到目标端数据字段的映射关系。
  • 脚本模式:通过JavaScript脚本实现从源端读取数据后先进行处理再写入目标端,脚本样例参见脚本映射样例