Recomenda-se que os usuários do ClickHouse Cloud usem ClickPipes para a replicação do PostgreSQL para o ClickHouse. Isso oferece suporte nativo a Change Data Capture (CDC) de alto desempenho para PostgreSQL.
Este motor de tabela é experimental. Para usá-lo, defina
allow_experimental_materialized_postgresql_table como 1 em seus arquivos de configuração ou usando o comando SET:materialized_postgresql_tables_list, que especifica as tabelas a serem replicadas (também será possível adicionar o schema do banco de dados). Isso será muito melhor em termos de CPU, com menos conexões e menos slots de replicação no banco de dados PostgreSQL remoto.
Criando uma tabela
host:port— Endereço do servidor PostgreSQL.database— Nome do banco de dados remoto.table— Nome da tabela remota.user— Usuário do PostgreSQL.password— Senha do usuário.
Requisitos
-
A configuração wal_level deve ter o valor
logical, e o parâmetromax_replication_slotsdeve ter valor de pelo menos2no arquivo de configuração do PostgreSQL. -
Uma tabela com o motor
MaterializedPostgreSQLdeve ter uma chave primária — a mesma de um índice de identidade de réplica (por padrão, a chave primária) de uma tabela PostgreSQL (consulte detalhes sobre o índice de identidade de réplica). - Somente o banco de dados Atomic é permitido.
-
O motor de tabela
MaterializedPostgreSQLfunciona apenas com versões do PostgreSQL >= 11, pois a implementação exige a função do PostgreSQL pg_replication_slot_advance.
Colunas virtuais
-
_version— Contador de transações. Tipo: UInt64. -
_sign— Marca de exclusão. Tipo: Int8. Valores possíveis:1— A linha não foi excluída,-1— A linha foi excluída.
SELECT.
A coluna _version corresponde à posição de LSN no WAL, portanto pode ser usada para verificar o quão atualizada está a replicação.
A replicação de valores TOAST não é suportada. O valor padrão do tipo de dados será usado.