Pular para o conteúdo principal
O ClickHouse fornece um cliente nativo de linha de comando para executar consultas SQL diretamente em um servidor ClickHouse. Ele oferece suporte tanto ao modo interativo (para executar consultas em tempo real) quanto ao modo em lote (para scripts e automação). Os resultados das consultas podem ser exibidos no terminal ou exportados para um arquivo, com suporte a todos os formatos de saída do ClickHouse, como Pretty, CSV, JSON e outros. O cliente fornece feedback em tempo real sobre a execução da consulta, com uma barra de progresso e o número de linhas lidas, bytes processados e tempo de execução da consulta. Ele oferece suporte tanto a opções de linha de comando quanto a arquivos de configuração.

Instalação

Para baixar o ClickHouse, execute:
Para instalá-lo também, execute:
Consulte Instalar o ClickHouse para ver outras opções de instalação. Diferentes versões do cliente e do servidor são compatíveis entre si, mas alguns recursos podem não estar disponíveis em clientes mais antigos. Recomendamos usar a mesma versão no cliente e no servidor.

Execute

Se você apenas baixou o ClickHouse, mas não o instalou, use ./clickhouse client em vez de clickhouse-client.
Para se conectar a um servidor ClickHouse, execute:
Especifique detalhes adicionais da conexão conforme necessário: Para ver a lista completa de opções de linha de comando, consulte Opções de linha de comando.

Conectar ao ClickHouse Cloud

As informações do seu serviço no ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud. Selecione o serviço ao qual você deseja se conectar e clique em Connect:

Escolha Native, e os detalhes serão exibidos junto com um exemplo de comando clickhouse-client:

Armazenando conexões em um arquivo de configuração

Você pode armazenar os detalhes de conexão de um ou mais servidores ClickHouse em um arquivo de configuração. O formato é o seguinte:
Consulte a seção sobre arquivos de configuração para mais informações.
Para focar na sintaxe da consulta, os exemplos a seguir omitem os detalhes da conexão (--host, --port etc.). Lembre-se de adicioná-los ao usar os comandos.

Modo interativo

Usando o modo interativo

Para executar o ClickHouse em modo interativo, basta:
Isso abre o Read-Eval-Print Loop (REPL), no qual você pode começar a digitar consultas SQL interativamente. Depois de se conectar, você verá um prompt no qual poderá inserir consultas:
No modo interativo, o formato de saída padrão é PrettyCompact. Você pode alterar o formato na cláusula FORMAT da consulta ou especificando a opção de linha de comando --format. Para usar o formato Vertical, você pode usar --vertical ou especificar \G ao final da consulta. Nesse formato, cada valor é impresso em uma linha separada, o que é conveniente para tabelas com muitas colunas. No modo interativo, por padrão, tudo o que for digitado é executado quando você pressiona Enter. Não é necessário usar ponto e vírgula ao final da consulta. Você pode iniciar o cliente com o parâmetro -m, --multiline. Para inserir uma consulta de várias linhas, digite uma barra invertida \ antes da quebra de linha. Depois de pressionar Enter, será solicitado que você digite a próxima linha da consulta. Para executar a consulta, finalize-a com um ponto e vírgula e pressione Enter. O ClickHouse Client é baseado em replxx (semelhante ao readline), portanto usa atalhos de teclado familiares e mantém um histórico. O histórico é gravado em ~/.clickhouse-client-history por padrão. Para sair do cliente, pressione Ctrl+D ou digite um dos seguintes comandos em vez de uma consulta:
  • exit ou exit;
  • quit ou quit;
  • q, Q ou :q
  • logout ou logout;

Informações sobre o processamento de consultas

Ao processar uma consulta, o cliente mostra:
  1. Progress, que por padrão é atualizado no máximo 10 vezes por segundo. Em consultas rápidas, pode não haver tempo para que o progresso seja exibido.
  2. A consulta formatada após o parsing, para depuração.
  3. O resultado no formato especificado.
  4. O número de linhas no resultado, o tempo decorrido e a velocidade média de processamento da consulta. Todos os volumes de dados se referem a dados não comprimidos.
Você pode cancelar uma consulta longa pressionando Ctrl+C. No entanto, ainda será necessário aguardar um pouco até que o servidor interrompa a solicitação. Não é possível cancelar uma consulta em determinadas etapas. Se você não aguardar e pressionar Ctrl+C uma segunda vez, o cliente será encerrado. O ClickHouse Client permite fornecer dados externos (tabelas temporárias externas) para consultas. Para mais informações, consulte a seção Dados externos para processamento de consultas.

Aliases

Você pode usar os seguintes aliases no REPL:
  • \l - SHOW DATABASES
  • \d - SHOW TABLES
  • \c <DATABASE> - USE DATABASE
  • . - repete a última consulta

Atalhos de teclado

  • Alt (Option) + Shift + e - abre o editor com a consulta atual. É possível especificar qual editor usar com a variável de ambiente EDITOR. Por padrão, é usado o vim.
  • Alt (Option) + # - comenta a linha.
  • Ctrl + r - pesquisa difusa no histórico.
A lista completa de todos os atalhos de teclado disponíveis está em replxx.
Para configurar corretamente o funcionamento da tecla meta (Option) no MacOS:iTerm2: Vá para Preferences -> Profile -> Keys -> Left Option key e clique em Esc+

Modo em lote

Usando o modo em lote

Em vez de usar o ClickHouse Client de forma interativa, você pode executá-lo em modo em lote. No modo em lote, o ClickHouse executa uma única consulta e é encerrado imediatamente — não há prompt interativo nem loop. Você pode especificar uma única consulta assim:
Você também pode usar a opção de linha de comando --query:
É possível fornecer uma consulta via stdin:
Supondo que exista uma tabela messages, você também pode inserir dados pela linha de comando:
Quando --query é especificado, toda entrada é anexada à requisição após uma quebra de linha.

Inserindo um arquivo CSV em um serviço remoto do ClickHouse

Este exemplo insere um arquivo CSV com um conjunto de dados de exemplo, cell_towers.csv, em uma tabela existente, cell_towers, no banco de dados default:

Exemplos de inserção de dados pela linha de comando

Há várias maneiras de inserir dados pela linha de comando. O exemplo abaixo insere duas linhas de dados CSV em uma tabela do ClickHouse usando o modo em lote:
No exemplo abaixo, cat <<_EOF inicia um heredoc que lê tudo até encontrar _EOF novamente e então exibe o conteúdo:
No exemplo abaixo, o conteúdo de file.csv é enviado para a saída padrão usando cat e redirecionado para clickhouse-client como entrada:
No modo em lote, o formato de dados padrão é TabSeparated. Você pode definir o formato na cláusula FORMAT da consulta, conforme mostrado no exemplo acima.

Consultas com parâmetros

Você pode especificar parâmetros em uma consulta e passar valores para ela com opções de linha de comando. Isso evita formatar a consulta com valores dinâmicos específicos no cliente. Por exemplo:
Também é possível definir parâmetros em uma sessão interativa:

Sintaxe da consulta

Na consulta, coloque entre chaves os valores que você quer preencher usando parâmetros de linha de comando, no seguinte formato:

Exemplos

Geração de SQL com IA

O ClickHouse Client inclui assistência de IA integrada para gerar consultas SQL a partir de descrições em linguagem natural. Esse recurso ajuda os usuários a escrever consultas complexas sem precisar de conhecimento aprofundado de SQL. A assistência de IA funciona imediatamente se você tiver definida a variável de ambiente OPENAI_API_KEY ou ANTHROPIC_API_KEY. Para configurações mais avançadas, consulte a seção Configuração.

Uso

Para usar a geração de SQL com IA, adicione o prefixo ?? à sua consulta em linguagem natural:
A IA irá:
  1. Explorar automaticamente o esquema do seu banco de dados
  2. Gerar SQL adequado com base nas tabelas e colunas encontradas
  3. Executar a consulta gerada imediatamente

Exemplo

Configuração

A geração de SQL com IA exige que um provedor de IA seja configurado no arquivo de configuração do ClickHouse Client. Você pode usar OpenAI, Anthropic ou qualquer serviço de API compatível com OpenAI.

Fallback baseado em variáveis de ambiente

Se nenhuma configuração de IA for especificada no arquivo de configuração, o ClickHouse Client tentará usar automaticamente as variáveis de ambiente:
  1. Primeiro, verifica a variável de ambiente OPENAI_API_KEY
  2. Se não a encontrar, verifica a variável de ambiente ANTHROPIC_API_KEY
  3. Se não encontrar nenhuma das duas, os recursos de IA serão desativados
Isso permite uma configuração rápida sem arquivos de configuração:

Arquivo de configuração

Para ter mais controle sobre as configurações de IA, configure-as no arquivo de configuração do ClickHouse Client localizado em:
  • $XDG_CONFIG_HOME/clickhouse/config.xml (ou ~/.config/clickhouse/config.xml se XDG_CONFIG_HOME não estiver definido) (formato XML)
  • $XDG_CONFIG_HOME/clickhouse/config.yaml (ou ~/.config/clickhouse/config.yaml se XDG_CONFIG_HOME não estiver definido) (formato YAML)
  • ~/.clickhouse-client/config.xml (formato XML, local legado)
  • ~/.clickhouse-client/config.yaml (formato YAML, local legado)
  • Ou especifique um local personalizado com --config-file

Usando APIs compatíveis com OpenAI (por exemplo, OpenRouter):
Exemplos de configuração mínima:

Parâmetros

  • api_key - Sua chave de API para o serviço de IA. Pode ser omitida se estiver definida em uma variável de ambiente:
    • OpenAI: OPENAI_API_KEY
    • Anthropic: ANTHROPIC_API_KEY
    • Observação: a chave de API no arquivo de configuração tem prioridade sobre a variável de ambiente
  • provider - O provedor de IA: openai ou anthropic
    • Se omitido, usa fallback automático com base nas variáveis de ambiente disponíveis
  • model - O modelo a ser usado (padrão: específico do provedor)
    • OpenAI: gpt-4o, gpt-4, gpt-3.5-turbo, etc.
    • Anthropic: claude-3-5-sonnet-20241022, claude-3-opus-20240229, etc.
    • OpenRouter: use a nomenclatura de modelo deles, como anthropic/claude-3.5-sonnet
  • base_url - Endpoint de API personalizado para serviços compatíveis com OpenAI (opcional)
  • timeout_seconds - Tempo limite da solicitação, em segundos (padrão: 30)
  • enable_schema_access - Permite que a IA explore os esquemas do banco de dados (padrão: true)
  • max_steps - Número máximo de passos de chamada de ferramenta para explorar esquemas (padrão: 10)
  • temperature - Controla o nível de aleatoriedade: 0.0 = determinístico, 1.0 = criativo (padrão: 0.0)
  • max_tokens - Comprimento máximo da resposta em tokens (padrão: 1000)
  • system_prompt - Instruções personalizadas para a IA (opcional)

Como funciona

O gerador de SQL com IA usa um processo em várias etapas:
  1. Descoberta do esquema
A IA usa ferramentas integradas para explorar seu banco de dados
  • Lista os bancos de dados disponíveis
  • Descobre as tabelas nos bancos de dados relevantes
  • Examina a estrutura das tabelas por meio de instruções CREATE TABLE
  1. Geração de consultas
Com base no esquema descoberto, a IA gera SQL que:
  • Corresponde à sua intenção em linguagem natural
  • Usa os nomes corretos de tabelas e colunas
  • Aplica junções e agregações apropriadas
  1. Execução
O SQL gerado é executado automaticamente, e os resultados são exibidos

Limitações

  • Requer uma conexão ativa com a internet
  • O uso da API está sujeito a limites de taxa e custos do provedor de IA
  • Consultas complexas podem exigir vários refinamentos
  • A IA tem acesso somente leitura às informações de esquema, não aos dados reais

Segurança

  • As chaves de API nunca são enviadas aos servidores do ClickHouse
  • A IA vê apenas informações do esquema (nomes de tabelas/colunas e tipos), não os dados reais
  • Todas as consultas geradas respeitam as permissões existentes do seu banco de dados

String de conexão

Uso

Como alternativa, o ClickHouse Client oferece suporte à conexão com um servidor ClickHouse usando uma string de conexão semelhante à do MongoDB, PostgreSQL e MySQL. A sintaxe é a seguinte:

Observações

Se o nome de usuário, a senha ou o banco de dados tiverem sido especificados na string de conexão, eles não poderão ser especificados usando --user, --password ou --database (e vice-versa). O componente de host pode ser um hostname ou um endereço IPv4 ou IPv6. Endereços IPv6 devem estar entre []:
Strings de conexão podem conter vários hosts. O ClickHouse Client tentará se conectar a esses hosts na ordem em que aparecem (da esquerda para a direita). Depois que a conexão for estabelecida, não será feita nenhuma tentativa de conexão com os hosts restantes. A string de conexão deve ser especificada como o primeiro argumento de clickHouse-client. A string de conexão pode ser combinada com um número arbitrário de outras opções de linha de comando, exceto --host e --port. As seguintes chaves são permitidas para query_parameters: Codificação percentual Caracteres fora do conjunto ASCII dos EUA, espaços e caracteres especiais nos parâmetros a seguir devem ser codificados em percentual:
  • user
  • password
  • hosts
  • database
  • query parameters

Exemplos

Conecte-se ao localhost na porta 9000 e execute a consulta SELECT 1.
Conecte-se ao localhost como o usuário john, com a senha secret, o host 127.0.0.1 e a porta 9000
Conecte-se a localhost como o usuário default, no host com endereço IPv6 [::1] e porta 9000.
Conecte-se ao localhost pela porta 9000 no modo multilinha.
Conecte-se a localhost pela porta 9000 com o usuário default.
Conecte-se ao localhost pela porta 9000 e use o banco de dados my_database como padrão.
Conecte-se a localhost na porta 9000, use por padrão o banco de dados my_database especificado na string de conexão e estabeleça uma conexão segura com o parâmetro abreviado s.
Conecte-se ao host padrão usando a porta padrão, o usuário padrão e o banco de dados padrão.
Conecte-se ao host padrão usando a porta padrão, com o usuário my_user e sem senha.
Conecte-se a localhost usando o email como nome de usuário. O símbolo @ é codificado em formato percentual como %40.
Conecte-se a um dos dois hosts: 192.168.1.15, 192.168.1.25.

Formato do ID da consulta

No modo interativo, o ClickHouse Client mostra o ID de cada consulta. Por padrão, o ID é formatado assim:
Um formato personalizado pode ser especificado em um arquivo de configuração, dentro de uma tag query_id_formats. O placeholder {query_id} na string de formato é substituído pelo ID da consulta. São permitidas várias strings de formato dentro da tag. Esse recurso pode ser usado para gerar URLs e facilitar a análise de desempenho de consultas. Exemplo
Com a configuração acima, o ID de uma consulta é exibido no formato a seguir:

Arquivos de configuração

O ClickHouse Client usa o primeiro arquivo existente entre os seguintes:
  • Um arquivo definido pelo parâmetro -c [ -C, --config, --config-file ].
  • ./clickhouse-client.[xml|yaml|yml]
  • $XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml] (ou ~/.config/clickhouse/config.[xml|yaml|yml] se XDG_CONFIG_HOME não estiver definido)
  • ~/.clickhouse-client/config.[xml|yaml|yml]
  • /etc/clickhouse-client/config.[xml|yaml|yml]
Veja um arquivo de configuração de exemplo no repositório do ClickHouse: clickhouse-client.xml

Opções de variáveis de ambiente

O nome de usuário, a senha e o host podem ser definidos por meio das variáveis de ambiente CLICKHOUSE_USER, CLICKHOUSE_PASSWORD e CLICKHOUSE_HOST. Os argumentos de linha de comando --user, --password ou --host, ou uma string de conexão (se especificada), têm prioridade sobre as variáveis de ambiente.

Opções de linha de comando

Todas as opções de linha de comando podem ser especificadas diretamente na linha de comando ou definidas como padrão no arquivo de configuração.

Opções gerais

Opções de conexão

Em vez das opções --host, --port, --user e --password, o cliente também oferece suporte a strings de conexão.

Opções de consulta

Configurações da consulta

As configurações da consulta podem ser especificadas como opções de linha de comando no cliente, por exemplo:
Consulte Configurações para ver a lista de configurações.

Opções de formatação

Detalhes da execução

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