Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Interface PostgreSQL

Sem suporte no ClickHouse Cloud

O ClickHouse oferece suporte ao protocolo wire do PostgreSQL, o que permite usar clientes Postgres para se conectar ao ClickHouse. Em certo sentido, o ClickHouse pode se passar por uma instância PostgreSQL, permitindo que você conecte ao ClickHouse um aplicativo cliente PostgreSQL para o qual o ClickHouse ainda não oferece suporte direto (por exemplo, Amazon Redshift).

Para ativar o protocolo wire do PostgreSQL, adicione a configuração postgresql_port ao arquivo de configuração do seu servidor. Por exemplo, você pode definir a porta em um novo arquivo XML na pasta config.d:

<clickhouse>
    <postgresql_port>9005</postgresql_port>
</clickhouse>

Inicie o servidor ClickHouse e procure uma mensagem de log semelhante à seguinte que mencione Listening for PostgreSQL compatibility protocol:

{} <Information> Application: Listening for PostgreSQL compatibility protocol: 127.0.0.1:9005

Conecte o psql ao ClickHouse

O comando a seguir mostra como conectar o cliente PostgreSQL psql ao ClickHouse:

psql -p [port] -h [hostname] -U [username] [database_name]

Por exemplo:

psql -p 9005 -h 127.0.0.1 -U alice default

O cliente psql pede a senha:

Password for user alice:
psql (14.2, server 22.3.1.1)
WARNING: psql major version 14, server major version 22.
         Some psql features might not work.
Type "help" for help.

default=>

E pronto! Agora você tem um cliente PostgreSQL conectado ao ClickHouse, e todos os comandos e consultas são executados no ClickHouse.

Usando SSL

Se você tiver SSL/TLS configurado na sua instância do ClickHouse, postgresql_port usará as mesmas configurações (a porta é compartilhada entre clientes seguros e não seguros).

Cada cliente tem sua própria forma de se conectar usando SSL. O comando a seguir demonstra como fornecer os certificados e a chave para conectar o psql ao ClickHouse com segurança:

psql "port=9005 host=127.0.0.1 user=alice dbname=default sslcert=/path/to/certificate.pem sslkey=/path/to/key.pem sslrootcert=/path/to/rootcert.pem sslmode=verify-ca"

Configurando a autenticação de usuários do ClickHouse com SCRAM-SHA-256

Para garantir uma autenticação de usuários segura no ClickHouse, recomenda-se usar o protocolo SCRAM-SHA-256. Configure o usuário especificando o elemento password_scram_sha256_hex no arquivo users.xml. O hash da senha deve ser gerado com num_iterations=4096.

Certifique-se de que o cliente psql oferece suporte a SCRAM-SHA-256 e o negocie durante a conexão.

Exemplo de configuração para o usuário user_with_sha256 com a senha abacaba:

<user_with_sha256>
    <password_scram_sha256_hex>04e7a70338d7af7bb6142fe7e19fef46d9b605f3e78b932a60e8200ef9154976</password_scram_sha256_hex>
</user_with_sha256>

Consulte a documentação do PostgreSQL para mais detalhes sobre as configurações de SSL do PostgreSQL.

Navigation