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>, ... }
输入要求¶
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 事件的时间戳 |