
# 配置数据映射处理器
"数据映射"处理器用于将源端数据转换为目标端格式的数据。后续节点可通过payload方式引用数据映射处理器的输出数据。
支持映射的类型：
- 数据库：DB2、MySql、Oracle、PostgreSQL/openGauss、Sql Server
- 消息系统：ActiveMQ、ArtemisMQ、RabbitMQ
- 普通数据类型：JSON、XML、CSV
#### 配置参数
| 参数     | 说明                                                                                             |
|:---|:---|
| 源端数据源  | 设置源端数据源，数据库类型的数据源在选择完表之后会自动显示字段信息，其他格式的数据源需要通过导入文件或者手动增加的形式来添加字段。导入的文件目前主要支持json，xml和csv格式导入。  |
| 目的端数据源 | 设置目的端数据源，数据库类型的数据源在选择完表之后会自动显示字段信息，其他格式的数据源需要通过导入文件或者手动增加的形式来添加字段。导入的文件目前主要支持json，xml和csv格式导入。 |
   
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532799129.png "点击放大")
使用技巧：
- 映射方式：鼠标左键单击源端数据源需要映射的数据字段，再单击目标端数据源对应的字段，即可建立关联。 ![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879177.png "点击放大")
  
  
- 输出引用方式：后续节点可通过payload方式引用数据映射处理器的输出数据，例如，${075007\|payload.ID}。 ${075007\|payload.ID}，即${节点id\|payload.xxx}的形式，如果后续节点想要引用"数据映射"处理器的输出数据，可通过该形式来引用。
  注：节点id可通过单击"数据映射"处理器获取到。
  
 
#### 源端与目标端均为数据库类型
- 流：调用openapi接口获取MySql获取数据，映射为Oracle数据表中的字段，并将映射的字段作为Oracle添加数据的输入。 ![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879179.png "点击放大")
  
  

- 数据映射配置： ![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002538560669.png "点击放大")
  
  

- 数据的使用：作为Oracle新增记录的输入 ![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879181.png "点击放大")
  
  
 
#### 目的端-数据格式为XML样例
当目的端数据源，选择数据格式"XML"时，根标签：root（默认），用户可修改为其他字段，但不可为"空"。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532799135.png "点击放大")
源端MySQL数据库表 demo.statistics 中的数据：
| id    | city     |
|:---|:---|
| uuid1 | suzhou   |
| uuid2 | shanghai |
   
数据映射输出数据为：
```
<root>
    <custom>
        <key1>uuid1</key1>
        <key2>
            <level2>suzhou</level2>
        </key2>
    </custom>
    <custom>
        <key1>uuid2</key1>
        <key2>
            <level2>shanghai</level2>
        </key2>
    </custom>
</root>
```
#### 目的端-数据格式为CSV样例
是否跳过标题：CSV文件的表头，数值 true/false：输出数据是/否含有表头。
分隔符：文件中每列数据通过单元格进行分隔，单元格可以为"制表符"、"空格"、"逗号"、"分号"。
**场景1：**目的端数据源选择数据格式"CSV"，是否跳过标题：true，字段分隔符：逗号 。
导入文件时，当是否跳过标题选择"true"，默认解析csv第一行为字段名。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879183.png)
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002501119110.png "点击放大")
源端MySQL数据库表 demo.statistics 中的数据：
| id    | city     |
|:---|:---|
| uuid1 | suzhou   |
| uuid2 | shanghai |
   
数据映射输出数据为：
```
ManufacturerId, ProductName
uuid1, suzhou
uuid2, shanghai
```
**场景2：**目的端数据源选择数据格式"CSV"，是否跳过标题：false，字段分隔符：逗号。
导入文件时，当是否跳过标题选择"false"，不使用导入文件的头字段，系统默认设置字段filedN。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002500959270.png)
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879185.png "点击放大")
源端MySQL数据库表 demo.statistics 中的数据：
| id    | city     |
|:---|:---|
| uuid1 | suzhou   |
| uuid2 | shanghai |
   
数据映射输出数据为：
```
uuid1, suzhou
uuid2, shanghai
```
#### 源端-数据格式为JSON样例
以下面的组合应用为例，该组合应用的主要功能是调用Open API获取OBS指定桶的对象列表，并将结果中的桶名称和对象名称通过数据映射，映射到MySql指定表中的相关字段，然后使用MySql添加记录的操作将桶名和对象名存储到MySql中。
其中，对象存储服务 OBS产生的结果是数据映射的源端数据源，MySql是目的端数据源。
可以通过使用Open API调用OBS连接器执行获取桶内对象列表的操作结果获得源端数据源的导入文件，或者根据OBS连接器执行获取桶内对象列表的操作结果手动添加字段信息。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532799141.png "点击放大")
当源端数据源的类型为"JSON"时，在使用数据映射时选择数据格式"JSON"，将源端数据源的输出作为源端数据源页签中"导入文件"的输入，根据文件的编码格式选择导入文件编码，可选项有GB2312、UTF-8和ASCII。此时源端数据源页签中会根据导入的文件内容自动生成相应的字段。
目的端数据格式选择"MySQL"，在选择表名后，目的端数据源页签会自动生成数据库表中的字段。
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002506682108.png "点击放大")
源端导入的文件内容：
```
{
    "responseHeaders": {
        "bucket-location": "cn",
        "connection": "keep-alive"
    },
    "objectSummaries": [
        {
            "bucketName": "test0223",
            "objectKey": "test0424.txt",
            "owner": {
                "displayName": null,
                "id": "uuid"
            },
            "metadata": {
                "responseHeaders": {},
                "originalHeaders": {}
            },
            "objectContent": null
        }
    ]
}
```
数据映射输出结果为：
![](https://support.huaweicloud.com/usermanual-roma/zh-cn_image_0000002532879189.png)
