Instale o ClickHouse usando Docker
docker pull:
Versões
- A tag
latestaponta para o lançamento mais recente da branch estável mais atual. - Tags de branch como
22.2apontam para o lançamento mais recente da branch correspondente. - Tags de versão completa como
22.2.3e22.2.3.5apontam para o lançamento correspondente. - A tag
headé gerada com base no commit mais recente da branch padrão. - Cada tag tem o sufixo opcional
-alpine, indicando que foi gerada com base emalpine.
Compatibilidade
- A imagem amd64 requer suporte a instruções SSE3. Praticamente todas as CPUs x86 após 2005 oferecem suporte a SSE3.
- A imagem arm64 requer suporte à arquitetura ARMv8.2-A e, adicionalmente, ao registrador Load-Acquire RCpc. O registrador é opcional na versão ARMv8.2-A e obrigatório na ARMv8.3-A. Compatível com instâncias Graviton >=2, Azure e GCP. Exemplos de dispositivos não compatíveis são Raspberry Pi 4 (ARMv8.0-A) e Jetson AGX Xavier/Orin (ARMv8.2-A).
- Desde o ClickHouse 24.11, as imagens Ubuntu passaram a usar
ubuntu:22.04como imagem base. Isso requer o Docker na versão >=20.10.10, contendo o patch. Como alternativa, você pode usardocker run --security-opt seccomp=unconfined, porém isso tem implicações de segurança.
Como usar esta imagem
Iniciar a instância do servidor
default, sem senha.
Conecte-se a ele usando um cliente nativo
Conecte-se usando curl
Parando / removendo o container
Rede
o usuário predefinido
default não tem acesso à rede, a menos que a senha seja definida;
veja “Como criar o banco de dados e o usuário padrão na inicialização” e “Gerenciar o usuário default” abaixo--network=host
(o que também pode proporcionar melhor desempenho de rede):
O usuário default do exemplo acima está disponível apenas para requisições via localhost
Volumes
/var/lib/clickhouse/- pasta principal onde o ClickHouse armazena os dados/var/log/clickhouse-server/- logs
/etc/clickhouse-server/config.d/*.xml- arquivos com ajustes na configuração do servidor/etc/clickhouse-server/users.d/*.xml- arquivos com ajustes nas configurações de usuário/docker-entrypoint-initdb.d/- pasta com scripts de inicialização do banco de dados (veja abaixo).
Capacidades do Linux
Configuração
Inicie a instância do servidor com uma configuração personalizada
Inicie o servidor com um usuário personalizado
--user e monte /var/lib/clickhouse e /var/log/clickhouse-server dentro do contêiner. Caso contrário, a imagem emitirá um erro e não iniciará.
Iniciar o servidor como root
Como criar o banco de dados e o usuário padrão na inicialização
default) e um banco de dados ao iniciar um contêiner. Você pode fazer isso usando as variáveis de ambiente CLICKHOUSE_DB, CLICKHOUSE_USER, CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT e CLICKHOUSE_PASSWORD:
Gerenciando o usuário default
default tem o acesso de rede desabilitado por padrão caso CLICKHOUSE_USER, CLICKHOUSE_PASSWORD e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT não estejam definidos.
Há uma forma de disponibilizar o usuário default de modo inseguro definindo a variável de ambiente CLICKHOUSE_SKIP_USER_SETUP como 1:
Como estender esta imagem
*.sql, *.sql.gz ou *.sh em /docker-entrypoint-initdb.d. Depois que o entrypoint chamar initdb, ele executará todos os arquivos *.sql, executará todos os scripts *.sh marcados como executáveis e fará o source de todos os scripts *.sh não executáveis encontrados nesse diretório para realizar inicializações adicionais antes de iniciar o serviço.
Os scripts em
/docker-entrypoint-initdb.d são executados em ordem alfabética pelo nome do arquivo. Se seus scripts tiverem dependências entre si (por exemplo, um script que cria views precisa ser executado depois do script que cria as tabelas referenciadas), verifique se os nomes dos arquivos estão na ordem correta.CLICKHOUSE_USER & CLICKHOUSE_PASSWORD, que serão usadas pelo clickhouse-client durante a inicialização.
Por exemplo, para adicionar outro usuário e banco de dados, adicione o seguinte a /docker-entrypoint-initdb.d/init-db.sh: