- Data Hackers Newsletter
- Posts
- ClickHouse em Docker: tudo que você precisa saber
ClickHouse em Docker: tudo que você precisa saber
Aprenda a rodar o ClickHouse utilizando Docker, desde o download da imagem até as melhores configurações para seu ambiente de desenvolvimento
Se você está buscando uma maneira eficiente de rodar o ClickHouse, um sistema de gerenciamento de banco de dados orientado a colunas que se destaca em consultas analíticas em tempo real, este post é para você. Neste guia, vamos explorar como executar o ClickHouse utilizando Docker, desde o download da imagem oficial até as configurações mais recomendadas para garantir um ambiente de desenvolvimento otimizado.
O ClickHouse é conhecido por sua capacidade de processar grandes volumes de dados de forma rápida e eficiente, retornando resultados em menos de um segundo. Vamos abordar os passos necessários para instalar, configurar e aproveitar ao máximo essa poderosa ferramenta analítica em sua infraestrutura Docker.
O que é o ClickHouse?
O ClickHouse é um sistema de gerenciamento de banco de dados (DBMS) orientado a colunas de alto desempenho, projetado especificamente para processamento analítico online (OLAP). Disponível tanto como um software open-source quanto como uma oferta em nuvem, ele se destaca na execução de consultas analíticas complexas e é cada vez mais utilizado por empresas que necessitam de análises de dados em tempo real.
Características principais do ClickHouse
Armazenamento orientado a colunas: O ClickHouse organiza tabelas como uma coleção de colunas, permitindo que apenas as colunas necessárias para a consulta sejam lidas, resultando em operações de filtro e agregação muito mais rápidas.
Consultas rápidas: Ele é otimizado para consultas analíticas em tempo real, podendo processar bilhões de linhas e retornar resultados em menos de um segundo.
Replicação e integridade de dados: O sistema utiliza uma estratégia de replicação assíncrona multi-mestre, garantindo redundância e recuperação automática em caso de falhas.
Controle de acesso: Implementa a gestão de contas de usuários e controle de acesso baseado em funções.
Suporte a SQL: Oferece suporte a uma linguagem de consulta declarativa baseada em SQL, permitindo uma variedade de operações de consulta.
Algoritmos de junção adaptativa: O desempenho das consultas é otimizado com a escolha adaptativa do algoritmo de junção.
Esses aspectos fazem do ClickHouse uma ferramenta eficiente e robusta para análises de dados.

O ClickHouse é excelente para análises de dados em tempo real, e pode ser rodado usando Docker
Como rodar o ClickHouse em Docker?
Para rodar o ClickHouse em Docker, siga os passos abaixo:
1. Pré-requisitos
Antes de começar, assegure-se de ter:
Docker Desktop instalado no seu sistema. Você pode baixar em Docker Desktop e seguir as instruções de instalação.
Familiaridade básica com Docker e comandos do terminal.
2. Baixar a imagem do ClickHouse
Inicie abrindo o terminal e execute o seguinte comando para baixar a imagem oficial do ClickHouse no Docker Hub:
docker pull clickhouse/clickhouse-server
Recomenda-se usar uma versão específica em vez do latest para evitar problemas futuros. Por exemplo:
docker pull clickhouse/clickhouse-server:24.3.6
3. Executar o contêiner do ClickHouse
Após o download da imagem, execute o contêiner com o comando abaixo:
docker run -d --name clickhouse-server -p 8123:8123 -p 9000:9000 clickhouse/clickhouse-server
Este comando executa o contêiner em modo destacado, tornando o servidor ClickHouse acessível nas portas 8123 (HTTP) e 9000 (TCP).
4. Configurar o contêiner
Para garantir a persistência dos dados e otimizar a configuração, utilize o seguinte comando:
docker run -d --name clickhouse-server \
--ulimit nofile=262144:262144 \
--volume=$(pwd)/data:/var/lib/clickhouse \
--volume=$(pwd)/logs:/var/log/clickhouse-server \
clickhouse/clickhouse-server:24.3.6
Os volumes permitem que você mantenha os dados e logs mesmo após o encerramento do contêiner.
5. Usar Docker Compose (opcional)
Para configurações mais complexas, você pode usar o Docker Compose. Crie um arquivo docker-compose.yml com o seguinte conteúdo:
version: '3'
services:
clickhouse-server:
image: clickhouse/clickhouse-server:24.3.6
container_name: clickhouse-server
ulimits:
nofile:
soft: 262144
hard: 262144
volumes:
- ./data:/var/lib/clickhouse
- ./logs:/var/log/clickhouse-server
ports:
- "8123:8123"
- "9000:9000"
Inicie os serviços definidos com:
docker-compose up -d
6. Verificar a instalação
Para acessar o cliente ClickHouse e verificar se tudo está funcionando, execute:
docker exec -it clickhouse-server clickhouse-client
Uma consulta simples pode confirmar a instalação:
SELECT * FROM system.databases;
Como instalar o cliente ClickHouse no Ubuntu?
Para instalar o cliente ClickHouse no Ubuntu, siga os seguintes passos:
Configurar o repositório Debian: Adicione o repositório oficial do ClickHouse ao seu sistema.
Instalar o ClickHouse server e cliente: Execute o seguinte comando no terminal:
Iniciar o servidor ClickHouse: Após a instalação, inicie o servidor ClickHouse.
Conectar-se ao servidor usando o cliente: Utilize o
clickhouse-clientpara se conectar ao servidor ClickHouse, que, por padrão, conecta alocalhost:9000.
Para mais detalhes sobre a instalação, consulte a documentação oficial do ClickHouse.
Qual é a senha padrão do usuário Docker do ClickHouse?
Ao trabalhar com ClickHouse em um ambiente Docker, é importante entender a questão da segurança. A senha padrão do usuário Docker do ClickHouse não é definida. O usuário default não possui uma senha atribuída, o que significa que ele não tem acesso à rede a menos que uma senha seja configurada.
Para definir uma senha, utilize a variável de ambiente CLICKHOUSE_PASSWORD ao iniciar o contêiner, garantindo um acesso seguro.
Melhores configurações para o ClickHouse em Docker
Configurar o ClickHouse em um ambiente Docker pode melhorar significativamente o desempenho e a escalabilidade das suas aplicações. Aqui estão algumas configurações recomendadas:
1. Recursos de CPU e RAM
Alocar recursos suficientes ao contêiner é essencial. O ideal é que o ambiente tenha pelo menos 32 GB de RAM. Se sua configuração tiver menos de 16 GB, ajuste os seguintes parâmetros:
Reduza o cache de marca para 500 MB no arquivo
config.xml.Limite o número de threads de consultas para 1.
Ajuste o max_block_size para 8192 ou menos.
2. Armazenamento
Use SSDs sempre que possível para um desempenho superior. Se não for viável, opte por discos rígidos SATA de 7200 RPM. Considere implementar RAID-10 para HDDs e RAID-0 para SSDs.
3. Configurações de Rede
Utilize uma rede com pelo menos 10 Gb de largura de banda em configurações distribuídas para a transferência eficiente de dados.
4. Sistema de Arquivos
O Ext4 é um sistema de arquivos recomendado. Evite sistemas que realizam compressão, pois o ClickHouse já possui métodos de compressão embutidos.
5. Segurança e antivírus
Configure qualquer software antivírus para ignorar as pastas que contêm arquivos de dados do ClickHouse, evitando a degradação do desempenho.
6. Configurações do Kernel do Linux
Utilize uma versão atualizada do kernel Linux para evitar problemas de compatibilidade que possam impactar a performance do ClickHouse.
Com essas orientações e configurações, você pode otimizar o desempenho do ClickHouse em um ambiente Docker, assegurando uma instalação robusta e eficiente.
Considerações finais
Ao longo deste guia, você explorou como instalar e configurar o ClickHouse utilizando o Docker, desde o download da imagem até as melhores práticas para otimizar seu ambiente de desenvolvimento. Com recursos como armazenamento orientado a colunas e consultas em tempo real, a implementação do ClickHouse em sua infraestrutura pode potenciar suas análises de dados.
As configurações discutidas, incluindo alocação de recursos e gestão de segurança, são cruciais para garantir um desempenho robusto e eficiente. Com esses conhecimentos, você está preparado para aproveitar ao máximo o ClickHouse e transformar a maneira como lida com grandes volumes de dados.