Flink CDC对pg数据库可以同步整个库吗?postgresql数据库
对于 PostgreSQL 数据库,Flink CDC 支持同步整个数据库的所有表。以下是具体操作步骤:
1. 首先,安装和启动 PgLogical 来避免同步暂停。可以使用以下命令:
$ sudo -u postgres /usr/pgsql-11/bin/pglogical replicate setup \
--replication-sets my_replication \
--dbname=db_name \
--user=username \
--password=password \
--set=my_replication \
--pool=default
2. 在 Flink CDC 的配置文件中,指定要同步的数据库名称,并进行相应的配置,例如:
connector.startup-modes = initial
table.catalog = catalogName
table.schema = schemaName
...
connector.uri = "postgresql://localhost:5432/database_name"
3. 运行 Flink CDC 作业。Flink CDC 会自动发现 PostgreSQL 数据库中的所有表,并进行 schema 解析和初始化。然后,它将实时消费表的变更事件(DML)。
用户还可以根据需要进行表的过滤或选择性同步:
- 可以通过在配置文件中添加以下属性来过滤不需要同步的表:
table.ignore-tables = exclude .ignore_this_table., exclude .another_table.
- 或者,可以单独指定要同步的表:
table.include-tables = only .need_to_sync_this_table.
使用以上配置方式,您可以让 Flink CDC 同步 PostgreSQL 数据库中的所有表或者选择特定的表进行同步。在初始化时,Flink CDC 会读取所有表的 schema,并实时消费变更日志。
对于PostgreSQL数据库,Flink CDC支持同步整个数据库的所有表。
具体操作步骤是:
安装和启动PgLogical避免同步暂停
shell
Copy
$ sudo -u postgres /usr/pgsql-11/bin/pglogical replicate setup \
--replication-sets my_replication \
--dbname=db_name \
--user=username \
--password=password \
--set=my_replication \
--pool=default
在Flink CDC配置文件中,指定要同步的数据库名称
properties
Copy
connector.startup-modes = initial
table.catalog = catalogName
table.schema = schemaName
...
connector.uri = "postgresql://localhost:5432/database_name"
运行Flink CDC作业
Flink CDC会自动发现PostgreSQL database中所有表,并进行schema解析和初始化。然后实时消费表的变更事件(DML)。
用户可以过滤不需要同步的表
properties
Copy
table.ignore-tables = exclude .ignore_this_table., exclude .another_table.
用户也可以单独指定要同步的表
properties
Copy
table.include-tables = only .need_to_sync_this_table.
以上这种方式,可以让Flink CDC同步PostgreSQL database中的所有(或指定)表。
初始化时会读取所有表的schema,然后实时消费变更日志。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。