Skip to main content
Skip to main content

[experimental] MaterializedPostgreSQL

使用PostgreSQL数据库表的初始数据转储创建ClickHouse数据库,并启动复制过程,即执行后台作业,以便在远程PostgreSQL数据库中的PostgreSQL数据库表上发生新更改时应用这些更改。

ClickHouse服务器作为PostgreSQL副本工作。它读取WAL并执行DML查询。DDL不是复制的,但可以处理(如下所述)。

创建数据库

Engine参数

  • host:port — PostgreSQL服务地址
  • database — PostgreSQL数据库名
  • user — PostgreSQL用户名
  • password — 用户密码

设置

必备条件

  • 在postgresql配置文件中将wal_level设置为logical,将max_replication_slots设置为2

  • 每个复制表必须具有以下一个replica identity:

  1. default (主键)

  2. index

总是先检查主键。如果不存在,则检查索引(定义为副本标识索引)。 如果使用index作为副本标识,则表中必须只有一个这样的索引。 你可以用下面的命令来检查一个特定的表使用了什么类型:

注意

  1. TOAST不支持值转换。将使用数据类型的默认值。

使用示例