Instalação
Execute
Se você apenas baixou o ClickHouse, mas não o instalou, use
./clickhouse client em vez de clickhouse-client.| Opção | Descrição |
|---|---|
--port <port> | A porta em que o servidor ClickHouse aceita conexões. As portas padrão são 9440 (TLS) e 9000 (sem TLS). Observe que o ClickHouse Client usa o protocolo nativo, e não HTTP(S). |
-s [ --secure ] | Se deve usar TLS (normalmente detectado automaticamente). |
-u [ --user ] <username> | O usuário do banco de dados com o qual se conectar. Por padrão, a conexão é feita com o usuário default. |
--password <password> | A senha do usuário do banco de dados. Você também pode especificar a senha de uma conexão no arquivo de configuração. Se não especificar a senha, o cliente a solicitará. |
-c [ --config ] <path-to-file> | O local do arquivo de configuração do ClickHouse Client, caso ele não esteja em um dos locais padrão. Consulte Arquivos de configuração. |
--connection <name> | O nome de um conjunto de detalhes da conexão pré-configurado no arquivo de configuração. |
Conectar ao ClickHouse Cloud
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
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
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:
exitouexit;quitouquit;q,Qou:qlogoutoulogout;
Informações sobre o processamento de consultas
- 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.
- A consulta formatada após o parsing, para depuração.
- O resultado no formato especificado.
- 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.
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
\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 ambienteEDITOR. Por padrão, é usado ovim.Alt (Option) + #- comenta a linha.Ctrl + r- pesquisa difusa no histórico.
Modo em lote
Usando o modo em lote
--query:
stdin:
messages, você também pode inserir dados pela linha de comando:
--query é especificado, toda entrada é anexada à requisição após uma quebra de linha.
Inserindo um arquivo CSV em um serviço remoto do ClickHouse
cell_towers.csv, em uma tabela existente, cell_towers, no banco de dados default:
Exemplos de inserção de dados pela linha de comando
cat <<_EOF inicia um heredoc que lê tudo até encontrar _EOF novamente e então exibe o conteúdo:
cat e redirecionado para clickhouse-client como entrada:
TabSeparated.
Você pode definir o formato na cláusula FORMAT da consulta, conforme mostrado no exemplo acima.
Consultas com parâmetros
Sintaxe da consulta
| Parâmetro | Descrição |
|---|---|
name | Identificador do marcador. A opção de linha de comando correspondente é --param_<name> = value. |
data type | Tipo de dado do parâmetro. Por exemplo, uma estrutura de dados como (integer, ('string', integer)) pode ter o tipo de dado Tuple(UInt8, Tuple(String, UInt8)) (você também pode usar outros tipos integer). Também é possível passar o nome da tabela, o nome do banco de dados e os nomes das colunas como parâmetros; nesse caso, seria necessário usar Identifier como tipo de dado. |
Exemplos
Geração de SQL com IA
OPENAI_API_KEY ou ANTHROPIC_API_KEY. Para configurações mais avançadas, consulte a seção Configuração.
Uso
?? à sua consulta em linguagem natural:
- Explorar automaticamente o esquema do seu banco de dados
- Gerar SQL adequado com base nas tabelas e colunas encontradas
- Executar a consulta gerada imediatamente
Exemplo
Configuração
Fallback baseado em variáveis de ambiente
- Primeiro, verifica a variável de ambiente
OPENAI_API_KEY - Se não a encontrar, verifica a variável de ambiente
ANTHROPIC_API_KEY - Se não encontrar nenhuma das duas, os recursos de IA serão desativados
Arquivo de configuração
$XDG_CONFIG_HOME/clickhouse/config.xml(ou~/.config/clickhouse/config.xmlseXDG_CONFIG_HOMEnão estiver definido) (formato XML)$XDG_CONFIG_HOME/clickhouse/config.yaml(ou~/.config/clickhouse/config.yamlseXDG_CONFIG_HOMEnã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
- XML
- YAML
Usando APIs compatíveis com OpenAI (por exemplo, OpenRouter):
Parâmetros
Parâmetros obrigatórios
Parâmetros obrigatórios
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
- OpenAI:
provider- O provedor de IA:openaiouanthropic- Se omitido, usa fallback automático com base nas variáveis de ambiente disponíveis
Configuração do modelo
Configuração do modelo
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
- OpenAI:
Configurações de conexão
Configurações de conexão
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)
Exploração de esquema
Exploração de esquema
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)
Parâmetros de geração
Parâmetros de geração
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
- Descoberta do esquema
- 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
- Geração de consultas
- Corresponde à sua intenção em linguagem natural
- Usa os nomes corretos de tabelas e colunas
- Aplica junções e agregações apropriadas
- Execução
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
| Componente (todos opcionais) | Descrição | Padrão |
|---|---|---|
user | Nome do usuário do banco de dados. | default |
password | Senha do usuário do banco de dados. Se : for especificado e a senha estiver em branco, o cliente solicitará a senha do usuário. | - |
hosts_and_ports | Lista de hosts e portas opcionais host[:port] [, host:[port]], .... | localhost:9000 |
database | Nome do banco de dados. | default |
query_parameters | Lista de pares chave-valor param1=value1[,¶m2=value2], .... Para alguns parâmetros, nenhum valor é necessário. Os nomes e valores dos parâmetros diferenciam maiúsculas de minúsculas. | - |
Observações
--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 []:
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:
| Chave | Descrição |
|---|---|
secure (ou s) | Se especificado, o cliente se conectará ao servidor por meio de uma conexão segura (TLS). Consulte --secure nas opções de linha de comando. |
userpasswordhostsdatabasequery parameters
Exemplos
localhost na porta 9000 e execute a consulta SELECT 1.
localhost como o usuário john, com a senha secret, o host 127.0.0.1 e a porta 9000
localhost como o usuário default, no host com endereço IPv6 [::1] e porta 9000.
localhost pela porta 9000 no modo multilinha.
localhost pela porta 9000 com o usuário default.
localhost pela porta 9000 e use o banco de dados my_database como padrão.
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.
my_user e sem senha.
localhost usando o email como nome de usuário. O símbolo @ é codificado em formato percentual como %40.
192.168.1.15, 192.168.1.25.
Formato do ID da consulta
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
Arquivos de configuração
- 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]seXDG_CONFIG_HOMEnão estiver definido)~/.clickhouse-client/config.[xml|yaml|yml]/etc/clickhouse-client/config.[xml|yaml|yml]
clickhouse-client.xml
- XML
- YAML
Opções de 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
Opções gerais
| Option | Description | Default |
|---|---|---|
-c [ -C, --config, --config-file ] <path-to-file> | Localização do arquivo de configuração do cliente, caso ele não esteja em um dos locais padrão. Consulte Arquivos de configuração. | - |
--help | Exibe o resumo de uso e sai. Combine com --verbose para mostrar todas as opções possíveis, incluindo as configurações de consulta. | - |
--history_file <path-to-file> | Caminho para um arquivo que contém o histórico de comandos. | - |
--history_max_entries | Número máximo de entradas no arquivo de histórico. | 1000000 (1 milhão) |
--prompt <prompt> | Especifica um prompt personalizado. | O display_name do servidor |
--verbose | Aumenta a verbosidade da saída. | - |
-V [ --version ] | Exibe a versão e sai. | - |
Opções de conexão
| Opção | Descrição | Padrão |
|---|---|---|
--connection <name> | O nome dos detalhes de conexão pré-configurados no arquivo de configuração. Consulte Credenciais de conexão. | - |
-d [ --database ] <database> | Seleciona o banco de dados padrão para esta conexão. | O banco de dados atual das configurações do servidor (default por padrão) |
-h [ --host ] <host> | O hostname do servidor ClickHouse ao qual se conectar. Pode ser um hostname, um endereço IPv4 ou um endereço IPv6. É possível informar vários hosts usando vários argumentos. | localhost |
--jwt <value> | Usa JSON Web Token (JWT) para autenticação. A autorização JWT no servidor está disponível apenas no ClickHouse Cloud. | - |
login | Inicia o fluxo OAuth de concessão por dispositivo para autenticação via um IdP. Para hosts do ClickHouse Cloud, as variáveis OAuth são inferidas; caso contrário, elas devem ser fornecidas com --oauth-url, --oauth-client-id e --oauth-audience. | - |
--no-warnings | Desativa a exibição de avisos de system.warnings quando o cliente se conecta ao servidor. | - |
--no-server-client-version-message | Suprime a mensagem de incompatibilidade de versão entre servidor e cliente quando o cliente se conecta ao servidor. | - |
--password <password> | A senha do usuário do banco de dados. Você também pode especificar a senha de uma conexão no arquivo de configuração. Se não especificar a senha, o cliente solicitará que você a informe. | - |
--port <port> | A porta em que o servidor aceita conexões. As portas padrão são 9440 (TLS) e 9000 (sem TLS). Observação: o cliente usa o protocolo nativo, e não HTTP(S). | 9440 se --secure for especificado, 9000 caso contrário. Sempre será 9440 por padrão se o hostname terminar com .clickhouse.cloud. |
-s [ --secure ] | Define se deve usar TLS. É ativado automaticamente ao se conectar à porta 9440 (a porta segura padrão) ou ao ClickHouse Cloud. Talvez seja necessário configurar seus certificados CA no arquivo de configuração. As configurações disponíveis são as mesmas da configuração de TLS no lado do servidor. | Ativado automaticamente ao se conectar à porta 9440 ou ao ClickHouse Cloud |
--ssh-key-file <path-to-file> | Arquivo que contém a chave privada SSH para autenticação com o servidor. | - |
--ssh-key-passphrase <value> | Frase secreta da chave privada SSH especificada em --ssh-key-file. | - |
--tls-sni-override <server name> | Se estiver usando TLS, o nome do servidor (SNI) a ser enviado no handshake. | O host fornecido por -h ou --host. |
-u [ --user ] <username> | O usuário do banco de dados com o qual se conectar. | default |
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
| Option | Description |
|---|---|
--param_<name>=<value> | Valor de substituição para um parâmetro de uma consulta com parâmetros. |
-q [ --query ] <query> | A consulta a ser executada no modo em lote. Pode ser especificada várias vezes (--query "SELECT 1" --query "SELECT 2") ou uma única vez com várias consultas separadas por ponto e vírgula (--query "SELECT 1; SELECT 2;"). Neste último caso, consultas INSERT com formatos diferentes de VALUES devem ser separadas por linhas em branco. Também é possível especificar uma única consulta sem parâmetro: clickhouse-client "SELECT 1" Não pode ser usado junto com --queries-file. |
--queries-file <path-to-file> | Caminho para um arquivo que contém consultas. --queries-file pode ser especificado várias vezes, por exemplo: --queries-file queries1.sql --queries-file queries2.sql. Não pode ser usado junto com --query. |
-m [ --multiline ] | Se especificado, permite consultas em várias linhas (não envia a consulta ao pressionar Enter). As consultas serão enviadas somente quando terminarem com ponto e vírgula. |
--inline-insert-data | Envia INSERT ... VALUES (e outros formatos inline) como aparecem no texto da consulta, em vez de converter os dados em blocos no formato nativo. O servidor faz o parse dos dados inline por conta própria, evitando a ida e volta necessária para enviar a estrutura da tabela e os valores padrão das colunas de volta ao cliente. Isso pode melhorar o desempenho de muitas inserções pequenas pelo protocolo nativo. Define automaticamente send_table_structure_on_insert_with_inline_data como 0. Não pode ser combinado com dados inline e dados externos (de stdin ou INFILE). |
Configurações da consulta
Opções de formatação
| Opção | Descrição | Padrão |
|---|---|---|
-f [ --format ] <format> | Use o formato especificado para exibir o resultado. Consulte Formatos para dados de entrada e saída para ver uma lista de formatos compatíveis. | TabSeparated |
--pager <command> | Envie toda a saída para este comando. Normalmente less (por exemplo, less -S para exibir conjuntos de resultados amplos) ou algo semelhante. | - |
-E [ --vertical ] | Use o formato Vertical para exibir o resultado. Isso é o mesmo que –-format Vertical. Nesse formato, cada valor é impresso em uma linha separada, o que é útil ao exibir tabelas com muitas colunas. | - |
Detalhes da execução
| Option | Description | Default |
|---|---|---|
--enable-progress-table-toggle | Ativa a alternância da tabela de progresso ao pressionar a tecla de controle (Space). Aplicável apenas no modo interativo, com a impressão da tabela de progresso ativada. | enabled |
--hardware-utilization | Imprime informações de utilização de hardware na barra de progresso. | - |
--memory-usage | Se especificado, imprime o uso de memória em stderr no modo não interativo. Valores possíveis: • none - não imprime o uso de memória • default - imprime o número de bytes • readable - imprime o uso de memória em formato legível por humanos | - |
--print-profile-events | Imprime pacotes ProfileEvents. | - |
--progress | Imprime o progresso da execução da consulta. Valores possíveis: • tty|on|1|true|yes - envia a saída para o terminal no modo interativo • err - envia a saída para stderr no modo não interativo • off|0|false|no - desativa a impressão do progresso | tty no modo interativo, off no modo não interativo (batch) |
--progress-table | Imprime uma tabela de progresso com métricas atualizadas durante a execução da consulta. Valores possíveis: • tty|on|1|true|yes - envia a saída para o terminal no modo interativo • err - envia a saída para stderr no modo não interativo • off|0|false|no - desativa a tabela de progresso | tty no modo interativo, off no modo não interativo (batch) |
--stacktrace | Imprime stack traces de exceções. | - |
-t [ --time ] | Imprime o tempo de execução da consulta em stderr no modo não interativo (para benchmarks). | - |