Skip to content

PostgreSQL Sink 集成

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

前提条件

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

配置步骤

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

配置示例

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

可参考以下参数示例:

参数建议值
host127.0.0.1
port5432
usernamepostgres
databaseflowmq
tablemqtt_kafka_events

目标表示例:

sql
CREATE TABLE IF NOT EXISTS mqtt_kafka_events (
  id BIGSERIAL PRIMARY KEY,
  source VARCHAR(255),
  value_time BIGINT,
  value REAL,
  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

参数支持表达式说明
host*数据库地址
port*数据库端口
username*数据库用户名
password*数据库密码
database*目标数据库
table*目标表
columns*列映射(name / data_type / is_primary_key / value

参数建议

  • 合理设置事务与批量写入参数
  • columns 映射中注意时间字段与时区处理

注意事项

  • 合理设置事务与批量写入参数
  • 注意时间字段与时区处理