Skip to main content

Visão geral

Este guia mostra como usar ClickHouse e S3 para implementar uma arquitetura com armazenamento e computação separados. A separação entre armazenamento e computação significa que os recursos de computação e de armazenamento são gerenciados de forma independente. No ClickHouse, isso proporciona melhor escalabilidade, eficiência de custos e flexibilidade. Você pode escalar os recursos de armazenamento e computação separadamente, conforme necessário, otimizando desempenho e custos. Usar ClickHouse com S3 como backend é especialmente útil em casos de uso em que o desempenho de consulta sobre dados “frios” é menos crítico. O ClickHouse oferece suporte ao uso do S3 como armazenamento para a engine MergeTree por meio da S3BackedMergeTree. Esse mecanismo de tabela permite aproveitar a escalabilidade e os benefícios de custo do S3, mantendo o desempenho de inserção e consulta da engine MergeTree. Observe que implementar e gerenciar uma arquitetura com separação entre armazenamento e computação é mais complexo do que em implantações padrão do ClickHouse. Embora o ClickHouse autogerenciado permita a separação entre armazenamento e computação, como discutido neste guia, recomendamos o uso do ClickHouse Cloud, que permite usar o ClickHouse nessa arquitetura sem necessidade de configuração, por meio da mecanismo de tabela SharedMergeTree. Este guia pressupõe que você esteja usando o ClickHouse versão 22.8 ou superior.
Não configure nenhuma política de ciclo de vida no AWS/GCS. Isso não é suportado e pode resultar em tabelas corrompidas.
1

Use o S3 como disco do ClickHouse

Criando um disco

Crie um novo arquivo no diretório config.d do ClickHouse para armazenar a configuração de storage:
Copie o XML a seguir para o arquivo recém-criado, substituindo BUCKET, ACCESS_KEY_ID, SECRET_ACCESS_KEY pelas informações do bucket da AWS no qual você deseja armazenar seus dados:
Se você precisar detalhar ainda mais as configurações do disco S3, por exemplo, para especificar uma region ou enviar um header HTTP personalizado, você pode encontrar a lista de configurações relevantes aqui.Você também pode substituir access_key_id e secret_access_key pelo seguinte, que tentará obter credenciais das variáveis de ambiente e dos metadados do Amazon EC2:
Depois de criar o arquivo de configuração, você precisa alterar o proprietário do arquivo para o usuário e o grupo clickhouse:
Agora, você pode reiniciar o servidor ClickHouse para que as alterações entrem em vigor:
2

Criar uma tabela armazenada no S3

Para testar se o disco S3 foi configurado corretamente, podemos tentar criar e consultar uma tabela.Crie uma tabela especificando a nova política de armazenamento S3:
Observe que não foi necessário especificar o engine como S3BackedMergeTree. O ClickHouse converte automaticamente o tipo de engine internamente se detectar que a tabela está usando S3 para armazenamento.Mostre que a tabela foi criada com a política correta:
O resultado deverá ser o seguinte:
Agora, vamos inserir algumas linhas na nossa nova tabela:
Vamos verificar se as linhas foram inseridas:
No console da AWS, se seus dados foram inseridos com sucesso no S3, você deverá ver que o ClickHouse criou novos arquivos no bucket especificado.Se tudo funcionou como esperado, agora você está usando o ClickHouse com storage e compute separados!
3

Implementação de replicação para tolerância a falhas (opcional)

Não configure nenhuma política de ciclo de vida da AWS/GCS. Isso não é compatível e pode resultar em tabelas corrompidas.
Para tolerância a falhas, você pode usar vários nós do servidor ClickHouse distribuídos por várias regiões da AWS, com um bucket do S3 para cada nó.A replicação com disks S3 pode ser realizada usando o table engine ReplicatedMergeTree. Consulte o guia a seguir para obter detalhes:

Leitura adicional

Última modificação em 23 de julho de 2026