PostgreSQL CDC 客户端
支持的管道类型:
|
您可以使用此源来执行数据库复制。您可以将单独的管道与 JDBC 查询使用者或 JDBC 多表使用者源结合使用,以读取现有数据。然后使用 PostgreSQL CDC 客户端源启动管道,以处理后续更改。
后greSQL CDC客户端将单个事务视为单个记录。它可以生成两种类型的记录:一种用于数据更改,另一种用于数据定义语言 (DDL) 更新。
由于每个数据更改事务可以包含多个 CRUD 操作,因此 PostgreSQL CDC 客户端源还可以在记录中包含多个操作。因此,源不会将 CRUD 操作写入 sdc.operation.type 记录标头属性。根据您的使用案例,您可以使用脚本处理器根据需要转换记录。或者,您可以使用字段透视器和其他处理器来分隔数据,以便为每个操作创建记录。
配置 PostgreSQL CDC 客户端时,可以配置更改捕获详细信息,例如要从中读取的架构和表、要使用的初始更改以及要包括的操作。
定义要使用的复制槽的名称,并指定是否在关闭时删除复制槽。您还可以指定当源遇到不受支持的数据类型时的行为,并将记录中这些字段的数据作为未解析的字符串包括在内。当源数据库具有高精度时间戳时,可以将源配置为写入字符串值而不是日期时间值以保持精度。
要确定源连接到数据库的方式,请指定连接信息、查询间隔、重试次数以及所需的任何定制 JDBC 配置属性。 您可以配置高级连接属性。要使用早于 4.0 的 JDBC 版本,请指定驱动程序类名并定义运行状况检查查询。
数据库版本
- PostgreSQL 9.4.18
- PostgreSQL 9.6.2
- PostgreSQL 9.6.9
- PostgreSQL 10.4
连接到后地理数据库数据库时,不需要安装 JDBC 驱动程序。数据收集器包括后绿色SQL所需的JDBC驱动程序。
PostgreSQL 先决条件
若要使 PostgreSQL CDC 客户端源能够读取预写日志记录 (WAL) 更改的数据捕获信息,必须安装 wal2json 逻辑解码器。在每个被监视的 PostgreSQL 实例上安装 wal2json 以进行更改。
流集在 GitHub 上提供 wal2json 逻辑解码器。若要安装 wal2json,请按照 README.md 文件的“生成和安装”部分中的说明进行操作。
然后,按照 README.md 文件的“配置”部分中的配置说明进行操作。
架构、表名和排除模式
配置 PostgreSQL CDC 客户端源时,可以指定包含要处理的更改捕获数据的表。要指定表,请定义架构、表名模式和可选的排除模式。
定义架构和表名模式时,可以使用正则表达式跨多个架构定义一组表或一组表。需要时,还可以使用正则表达式定义排除模式,以从较大的集合中排除表的子集。
- 架构:销售
- 表名模式: 销售*
- 排除模式:销售。
初始更改
初始更改是预写日志记录 (WAL) 数据中要开始处理的点。启动管道时,PostgreSQL CDC 客户端将从指定的初始更改开始处理,并一直持续到您停止管道为止。
请注意,后greSQL CDC客户端进程仅更改捕获数据。如果需要现有数据,则可以在启动 PostgreSQL CDC 客户端管道之前,在单独的管道中使用 JDBC 查询使用者或 JDBC 多表使用者来读取表数据。
从最新更改
源处理启动管道后发生的所有更改。
从指定的日期时间
源处理在指定日期时间及以后发生的所有更改。使用以下格式:日-月-年-HH24:米:秒
。
从指定的日志序列号 (LSN)
源处理在指定的 LSN 及更高版本中发生的所有更改。使用指定的 LSN 时,源开始处理与 LSN 关联的时间戳。如果在WAL数据中找不到LSN,则源继续从下一个可用的更高LSN读取。
通常,数据库管理员可以提供要使用的 LSN。
例
您希望处理销售架构中的所有现有数据,然后捕获更改的数据,将所有数据写入 Google 大表。为此,请创建两个管道。
要从模式中读取现有数据,请将管道与 JDBC 多表使用者和 Googl