---
title: MySQL Sink 集成
---

# MySQL Sink 集成

本文介绍如何将 FlowMQ 数据写入 MySQL。

## 前提条件

- 已了解管道结构与创建流程，参考 [数据集成](data-integration.md)；Sink 连接器总览见 [Sink](data-integration-output.md)
- MySQL 服务可访问
- 已具备目标库表写入权限

## 配置步骤

1. 在“数据管道”中创建管道，完成基础信息配置。
2. 在 Source 步骤选择 `Kafka`（Topic：`flowmq.mqtt.kafka`），Processors 按需配置。
3. 在 Sink 步骤选择 `MySQL`，配置 `host`、`database`、`table`、`columns` 等参数。
4. 点击“测试”验证连接。
5. 继续完成确认步骤。

## 配置示例

以下示例将 Kafka Topic `flowmq.mqtt.kafka` 中的样例消息写入目标系统。样例 JSON 与 Source 约定见 [Sink · 示例场景](data-integration-output.md#示例场景)。

可参考以下参数示例：

| 参数 | 建议值 |
|---|---|
| driver | `mysql` |
| host | `127.0.0.1` |
| port | `3306` |
| username | `root` |
| database | `flowmq` |
| table | `mqtt_kafka_events` |

目标表示例：

```sql
CREATE TABLE IF NOT EXISTS mqtt_kafka_events (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  source VARCHAR(255),
  value_time BIGINT,
  value FLOAT,
  unit_code VARCHAR(64),
  create_time TIMESTAMP NULL
);
```

`columns` 字段映射示例（对应样例消息）：

| name | data_type | is_primary_key | value |
|------|-----------|----------------|-------|
| source | VARCHAR | false | `${! json("source") }` |
| value_time | BIGINT | false | `${! json("data.timestamp") }` |
| value | FLOAT | false | `${! json("data.value") }` |
| unit_code | VARCHAR | false | `${! json("type") }` |
| create_time | TIMESTAMP | false | `${! json("time").ts_parse("2006-01-02T15:04:05.999Z07:00") }` |

> `data.timestamp` 为 Unix 毫秒，建议以 `BIGINT` 落库。写入 `TIMESTAMP` 列时请用 `ts_parse`（或 `${! now() }`），勿直接填入 ISO 字符串。

## 必要表单参数

参数名后带 `*` 表示控制台必填。「支持表达式」为「是」时，可使用 `${! ... }` 按消息动态取值，详见 [Processors](data-integration-processors-expressions.md)。

| 参数 | 支持表达式 | 说明 |
|------|------------|------|
| `driver*` | 否 | 数据库驱动（MySQL） |
| `host*` | 否 | 数据库地址 |
| `port*` | 否 | 数据库端口 |
| `username*` | 否 | 数据库用户名 |
| `password*` | 否 | 数据库密码 |
| `database*` | 否 | 目标数据库 |
| `table*` | 否 | 目标表 |
| `columns*` | 是 | 列映射（`name` / `data_type` / `is_primary_key` / `value`） |
| `max_in_flight*` | 否 | 并发写入上限 |

## 参数建议

- 建议目标表具备主键或唯一键，便于幂等写入
- `columns` 映射需与表结构类型一致，可用表达式取消息字段

## 注意事项

- 建议准备主键或唯一键实现幂等
- 字段类型映射需与表结构一致；毫秒时间戳用 `BIGINT` 落库，ISO 时间写入 `TIMESTAMP` 时使用 `ts_parse`
