功能描述
Postgres的CDC源表,即Postgres的流式源表,用于依次读取PostgreSQL数据库全量快照数据和变更数据,保证不多读一条也不少读一条数据,即使发生故障,也能采用Exactly Once方式处理。
前提条件
PostgreSQL版本:要求Postgre版本为9.6或者10,11,12,且PostgreSQL的版本不能低于PostgreSQL 11。
增强型跨源连接:要与实例建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。
插件:若Postgres表有update等操作,需要在PostgreSQL中执行下列语句,注意:test.cdc_order需要修改为实际的数据库和表。
ALTER TABLE test.cdc_order REPLICA IDENTITY FULL
使用前请确认当前PostgreSQL是否包含默认的插件,可在PostgreSQL中使用下述语句查询当前插件。
SELECT name FROM pg_available_extensions;
若不包含默认插件名“decoderbufs”,则需要在创建PostgreSQL CDC源表中配置参数“decoding.plugin.name”,该参数指定PostgreSQL中已有的插件。
语法格式
create table postgresCdcSource ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) ) with ( 'connector' = 'postgres-cdc', 'hostname' = 'PostgresHostname', 'username' = 'PostgresUsername', 'password' = 'PostgresPassword', 'database-name' = 'PostgresDatabaseName', 'schema-name' = 'PostgresSchemaName', 'table-name' = 'PostgresTableName' );
参数说明
参数名 | 是否必填 | 类型 | 描述 |
connector | 是 | String | connector类型,需配置为'postgres-cdc'。 |
hostname | 是 | String | Postgres数据库的IP地址或者Hostname。 |
username | 是 | String | Postgres数据库用户名。 |
password | 是 | String | Postgres数据库服务的密码。 |
database-name | 是 | String | 数据库名称。 |
schema-name | 是 | String | Postgres Schema名称。 Schema名称支持正则表达式以读取多个Schema的数据,例如test(.)*表示以test开头的所有schema。 |
table-name | 是 | String | Postgres表名。 表名支持正则表达式去读取多个表的数据,例如cdc_order(.)*表示以cdc_order开头的所有表。 |
port | 否 | Integer | Postgres数据库服务的端口号。 |
decoding.plugin.name | 否 | String | 根据Postgres服务上安装的插件确定,支持的插件列表如下:decoderbufs(默认值)、wal2json、wal2json_rds、wal2json_streaming、wal2json_rds_streaming、pgoutput。 |
debezium. | 否 | String | 更细粒度控制Debezium客户端的行为,debezium.snapshot.mode' = 'never'。 建议每个表都设置debezium.slot.name参数,以避免出现“PSQLException: ERROR: replication slot "debezium" is active for PID 974”报错。 |
pwd_auth_name | 否 | String | DLI侧创建的Password类型的跨源认证名称。 使用跨源认证则无需在作业中配置账号和密码。 |
注意事项
安全性:Flink跨源开发场景中直接配置跨源认证信息存在密码泄露的风险,优先推荐您使用DLI提供的跨源认证。
性能:PostgreSQL CDC源表不支持并行读取,因为只有一个任务可以接收binlog事件。
Postgres CDC源表是一种强大的工具,可以帮助用户高效地处理PostgreSQL数据库中的变更数据,确保数据的一致性和完整性。
以上就是关于“postgres_Postgres CDC源表”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/74312.html