# 生成导出目标表列映射

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

为 MatrixOne 目标表生成源列可写入的目标列建议。该操作不保存导出任务或列映射。

```text
POST https://moi.matrixorigin.cn/newmoi/connectors/mo/column/mapping
```

## 调用前准备

1. 准备有目标工作区访问权限的[个人访问令牌](../../../../../guides/genesis/api-keys.md#创建和管理个人访问令牌)和[目标工作区 ID](../../../../../guides/ai-studio/resource-center/workspace.md#复制工作区-id)。
2. 从[查看连接器列表](../connectors/list-connectors.md#选择目标连接器)取得 MatrixOne 连接器 ID，并准备目标数据库、表和源列类型。

## 请求体

将 `$AI_STUDIO_API_KEY`、`$WORKSPACE_ID` 及示例中的连接器、数据库、表和列类型替换为实际值。

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 输入示例

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/connectors/mo/column/mapping" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d @- <<EOF
{
    "connector_id": "$CONNECTOR_ID",
    "database": "analytics",
    "table": "orders",
    "export_columns": {
      "source_id": "bigint",
      "order_total": "decimal(10,2)"
    }
  }
EOF
```

:::::
:::::{tab-item} 参数说明

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `connector_id` | string | 是 | MatrixOne 目标连接器 ID。 |
| `database` | string | 是 | 目标数据库名称。 |
| `table` | string | 是 | 目标表名称。 |
| `export_columns` | object | 是 | 待导出源列及其数据类型；对象键为源列名，值为类型字符串。 |

:::::
::::::
:::::::

## 成功响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "column_map": {
      "source_id": ["id"],
      "order_total": ["total_amount"]
    },
    "need_mapping_columns": ["created_at"]
  }
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |
| `data.column_map` | object | 以源列名为键、可兼容目标列列表为值的映射。 |
| `data.need_mapping_columns` | array of string | 目标表中不可为空且未设置默认值的列。 |

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "ErrServer",
  "msg": "无法读取目标表结构",
  "data": null
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 错误代码。 |
| `msg` | string | 可读错误信息。 |
| `data` | null | 错误响应中为 `null`。 |

:::::
::::::
:::::::

## 后续操作

将所选源列和目标列分别填写到[创建导出任务](create-export-task.md#matrixone-目标)的 `source_column` 与 `mapping_column`。为 `need_mapping_columns` 中的每列提供值后再提交导出任务。
