Skip to content

MySQL Sink 集成

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

前提条件

  • 已了解管道结构与创建流程,参考 数据集成;Sink 连接器总览见 Sink
  • MySQL 服务可访问
  • 已具备目标库表写入权限

配置步骤

  1. 在“数据管道”中创建管道,完成基础信息配置。
  2. 在 Source 步骤选择 Kafka(Topic:flowmq.mqtt.kafka),Processors 按需配置。
  3. 在 Sink 步骤选择 MySQL,配置 hostdatabasetablecolumns 等参数。
  4. 点击“测试”验证连接。
  5. 继续完成确认步骤。

配置示例

以下示例将 Kafka Topic flowmq.mqtt.kafka 中的样例消息写入目标系统。样例 JSON 与 Source 约定见 Sink · 示例场景

可参考以下参数示例:

参数建议值
drivermysql
host127.0.0.1
port3306
usernameroot
databaseflowmq
tablemqtt_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 字段映射示例(对应样例消息):

namedata_typeis_primary_keyvalue
sourceVARCHARfalse${! json("source") }
value_timeBIGINTfalse${! json("data.timestamp") }
valueFLOATfalse${! json("data.value") }
unit_codeVARCHARfalse${! json("type") }
create_timeTIMESTAMPfalse${! json("time").ts_parse("2006-01-02T15:04:05.999Z07:00") }

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

必要表单参数

参数名后带 * 表示控制台必填。「支持表达式」为「是」时,可使用 ${! ... } 按消息动态取值,详见 Processors

参数支持表达式说明
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