建议 ClickHouse Cloud 用户使用 ClickPipes 将 PostgreSQL 复制到 ClickHouse。它原生支持 PostgreSQL 的高性能 CDC (变更数据捕获) 。
此表引擎为 Experimental。要使用它,请在配置文件中将
allow_experimental_materialized_postgresql_table 设为 1,或使用 SET 命令:materialized_postgresql_tables_list setting 指定要复制的表 (后续还将支持添加 database schema) 。这样在 CPU、连接数以及远程 PostgreSQL database 内部的 replication slots 方面都会更优。
创建表
host:port— PostgreSQL 服务器地址。database— 远程数据库名称。table— 远程表名。user— PostgreSQL 用户。password— 用户密码。
要求
-
在 PostgreSQL 配置文件中,wal_level 的值必须为
logical,且max_replication_slots参数的值必须至少为2。 -
使用
MaterializedPostgreSQL引擎的表必须具有主键,并且该主键必须与 PostgreSQL 表的副本标识索引 (默认情况下为主键) 一致 (参见副本标识索引的详细信息) 。 - 仅允许使用 Atomic 数据库。
-
MaterializedPostgreSQL表引擎仅适用于 PostgreSQL 11 及以上版本,因为其实现依赖 PostgreSQL 的 pg_replication_slot_advance 函数。
虚拟列
SELECT 查询中始终可用。
_version 列等于 WAL 中的 LSN 位置,因此可用于检查复制的最新状态。
不支持复制 TOAST 的值。将使用该数据类型的默认值。