CaptureChangePostgreSQL 2025.10.9.21

捆绑包

com.snowflake.openflow.runtime | runtime-database-cdc-processors-nar

描述

从 PostgreSQL 数据库读取 CDC 事件。处理器持续读取流中到达的事件,筛选与 TableStateService 提供的表相关的事件,并丢弃其余事件。处理当前批次的事件后,处理器确认复制槽的位置回到 PostgreSQL,让它修剪 WAL。处理器输出两种类型的 FlowFiles:DDLs,包含表的初始架构,以及每当该表的架构发生变化时的更新;DMLs,记录表示表中数据变更的记录。FlowFile 始终代表与单个表相关的数据。带有架构的 DDL 以 JSON 对象的形式写入到 FlowFile 内容中,其形式为:{ "columns": [ { "name": "<columnName>", "type": "<snowflakeType>", "nullable": <true|false>, "scale": <scale>, "precision": <precision> }, ... ], "primaryKeys": ["<primaryKey1>", "<primaryKey2>", ...] } DML 记录的结构为:{ "primaryKeys": { "<column>": <value>, ... }, "payload": { "<column>": <value>, ... }, "metadata": { "<column>": <value>, ... }

标签

cdc、event、jdbc、postgresql、sql

输入要求

FORBIDDEN

支持敏感的动态属性

false

属性

属性

描述

列筛选存储

存储每个表列筛选设置的服务。

JDBC 驱动程序位置

以逗号分隔的文件/文件夹列表和/或 URLs,包含驱动程序 JAR 及其依赖项(如果有)。例如“/var/tmp/postgresql-java-client-42.7.5.jar”

JDBC URL

数据库连接的 JDBC URL,即 jdbc:postgresql://localhost:5432/postgres

最大批处理大小

单次迭代中要处理的最大记录数

最长批处理等待时间

等待数据出现在 CDC 流中的最长时间。

密码

访问 PostgreSQL 数据库的密码

发布名称

要读取的 CDC 发布名称。

记录写入器

用于序列化 DML 事件的记录写入器

复制槽名称

要使用的复制槽的名称。最多 63 个字符。如果该插槽不存在,则由处理器创建。

SSL Context Service

支持加密套接字通信的 SSL Context Service

SSL 模式

连接 PostgreSQL 时是否使用和强制执行 SSL

TOASTed 值占位符

要放入 TOASTed 列中的值

TOASTed 值策略

确定如何处理 TOASTed 值。

表状态存储

保存复制表状态的共享存储。

用户名

访问 PostgreSQL 数据库的用户名

状态管理

范围

描述

CLUSTER

该处理器会存储数据库中当前 CDC 事件的“pointer”等信息,以便在重新启动时从同一位置继续运行,以及在 PostgreSQL 中创建的复制槽的名称。

关系

名称

描述

success

通过 CDC 流活动成功创建 FlowFile

写入属性

名称

描述

source.schema.name

事件来源表的架构名称

source.table.name

事件来源表的名称

cdc.event.type

FlowFile 携带的事件类型:ddl 或 dml

cdc.most.significant.position

Ddl 在 cdc 流中最重要的位置

cdc.least.significant.position

Ddl 在 cdc 流中最不重要的位置

cdc.event.seen.at

处理器读取 ddl 事件的时间戳