Quando usar clickhouse-local vs. ClickHouse
clickhouse-local é uma versão do ClickHouse fácil de usar, ideal para desenvolvedores que precisam processar rapidamente arquivos locais e remotos usando SQL, sem precisar instalar um servidor de banco de dados completo. Com o clickhouse-local, os desenvolvedores podem usar comandos SQL (com o dialeto ClickHouse SQL) diretamente na linha de comando, o que oferece uma maneira simples e eficiente de acessar os recursos do ClickHouse sem a necessidade de uma instalação completa. Um dos principais benefícios do clickhouse-local é que ele já vem incluído na instalação do clickhouse-client. Isso significa que os desenvolvedores podem começar a usar o clickhouse-local rapidamente, sem passar por um processo de instalação complexo.
Embora o clickhouse-local seja uma ótima ferramenta para desenvolvimento, testes e processamento de arquivos, ele não é adequado para atender usuários finais nem aplicações. Nesses cenários, recomenda-se usar o ClickHouse de código aberto. O ClickHouse é um poderoso banco de dados OLAP projetado para lidar com cargas de trabalho analíticas em grande escala. Ele oferece processamento rápido e eficiente de consultas complexas em grandes conjuntos de dados, o que o torna ideal para ambientes de produção em que alto desempenho é essencial. Além disso, o ClickHouse oferece uma ampla variedade de recursos, como replicação, sharding e alta disponibilidade, que são essenciais para escalar e lidar com grandes conjuntos de dados, além de atender aplicações. Se você precisa lidar com conjuntos de dados maiores ou atender usuários finais ou aplicações, recomendamos usar o ClickHouse de código aberto em vez do clickhouse-local.
Leia a documentação abaixo, que mostra exemplos de casos de uso do clickhouse-local, como consultar um arquivo local ou ler um arquivo Parquet no S3.
Baixe o clickhouse-local
clickhouse-local é executado usando o mesmo binário clickhouse que executa o servidor ClickHouse e o clickhouse-client. A forma mais fácil de baixar a versão mais recente é com o seguinte comando:
O binário que você acabou de baixar pode executar todos os tipos de ferramentas e utilitários do ClickHouse. Se você quiser executar o ClickHouse como um servidor de banco de dados, confira o Quick Start.
Consultar dados em um arquivo usando SQL
clickhouse-local é executar consultas ad hoc em arquivos, sem precisar inserir os dados em uma tabela. O clickhouse-local pode ler os dados de um arquivo em uma tabela temporária e executar seu SQL.
Se o arquivo estiver na mesma máquina que o clickhouse-local, você pode simplesmente especificar o arquivo a ser carregado. O arquivo reviews.tsv a seguir contém uma amostra de avaliações de produtos da Amazon:
file cria uma tabela, e você pode usar DESCRIBE para ver o schema inferido:
Consultar dados em um arquivo Parquet no S3 da AWS
clickhouse-local e a função de tabela s3 para consultar o arquivo diretamente no S3 (sem inserir os dados em uma tabela do ClickHouse). Temos um arquivo chamado house_0.parquet em um bucket público que contém preços de imóveis vendidos no Reino Unido. Vamos ver quantas linhas ele tem:
Conversões entre formatos
clickhouse-local para converter dados entre diferentes formatos. Exemplo:
--copy:
Uso
clickhouse-local tem acesso aos dados de um servidor ClickHouse no mesmo host e não depende da configuração do servidor. Ele também permite carregar a configuração do servidor usando o argumento --config-file. Para dados temporários, um diretório temporário exclusivo é criado por padrão.
Uso básico (Linux):
clickhouse-local também é compatível com o Windows via WSL2.-S,--structure— estrutura da tabela para os dados de entrada.--input-format— formato de entrada,TSVpor padrão.-F,--file— caminho para os dados,stdinpor padrão.-q,--query— consultas a executar, com;como delimitador.--querypode ser especificado várias vezes, por exemplo,--query "SELECT 1" --query "SELECT 2". Não pode ser usado simultaneamente com--queries-file.--queries-file- caminho do arquivo com as consultas a executar.--queries-filepode ser especificado várias vezes, por exemplo,--query queries1.sql --query queries2.sql. Não pode ser usado simultaneamente com--query.--multiquery, -n– Se especificado, várias consultas separadas por ponto e vírgula podem ser listadas após a opção--query. Para maior conveniência, também é possível omitir--querye passar as consultas diretamente após--multiquery.-N,--table— nome da tabela onde os dados de saída serão colocados,tablepor padrão.-f,--format,--output-format— formato de saída,TSVpor padrão.-d,--database— banco de dados padrão,_localpor padrão.--stacktrace— se deve gerar saída de depuração em caso de exceção.--echo [ <bool> ]— imprime cada consulta antes da execução. Aceita um valor booleano opcional. Habilitado por padrão no modo interativo e desabilitado no modo batch. Nota: como--echoagora aceita um valor opcional, uma consulta posicional colocada imediatamente após um--echosem valor é interpretada como seu valor; use--echo --query "...",--echo -q "...",--echo=falseoustdinvia pipe.--echo-formatted [ <bool> ]— formata as consultas exibidas porecho. Aceita um valor booleano opcional. Habilitado por padrão no modo interativo e desabilitado no modo batch.--echo-query-id [ <bool> ]— imprime oquery_idantes da execução. Aceita um valor booleano opcional. Habilitado por padrão no modo interativo e desabilitado no modo batch.--echo-query-separator <string>— imprime este separador antes da consulta formatada exibida porecho(requer--echo-formatted), facilitando distinguir a consulta digitada da sua versão reformatada exibida porecho. Vazio por padrão (desabilitado).--highlight,--hilite<bool>— alterna o realce de sintaxe do prompt de comando e das consultas exibidas porecho. Habilitado por padrão. O realce é aplicado somente ao escrever em um terminal.--hints <bool>— mostra dicas de autocompletar conforme você digita (texto “fantasma” em linha) para a melhor sugestão correspondente quando o cursor está no fim da entrada. Navegue pelas dicas com Up/Down (ou Ctrl-Up/Ctrl-Down); aceite a dica em linha com Tab ou Right;Enteraceita uma dica somente depois que uma tiver sido selecionada explicitamente e, caso contrário, executa a consulta;Tabtambém abre a lista clássica de preenchimento automático. Requer--highlight(as dicas precisam de cor) e o mecanismo de sugestão (portanto,--disable_suggestiontambém as desativa). Habilitado por padrão.--verbose— mais detalhes sobre a execução da consulta.--logger.console— Registrar no console.--logger.log— Nome do arquivo de log.--logger.level— Nível de log.--ignore-error— não interrompe o processamento se uma consulta falhar.-c,--config-file— caminho para o arquivo de configuração no mesmo formato do servidor ClickHouse; por padrão, a configuração é vazia.--no-system-tables— não anexar as tabelas do sistema.--help— referência dos argumentos declickhouse-local.-V,--version— imprime informações da versão e sai.
--config-file.
Comandos
Comando LS
Query
Response
Response
Comando CLEAR
clear no Linux ou a Ctrl+L em muitos terminais). Esta é uma ação do lado do cliente: não é enviada ao mecanismo SQL.
No clickhouse-local, o metacomando é reconhecido no modo interativo e para entrada com -q e --queries-file (mesmo caminho no cliente que -q, mesma ideia que ls), de modo que um clear isolado não gera um erro UNKNOWN_IDENTIFIER. O clickhouse-client --queries-file remoto permanece inalterado: o conteúdo do arquivo é executado apenas como SQL (sem metacomandos em nível de texto).
No clickhouse-client, ele é reconhecido apenas no modo interativo. Com -q ou arquivos de consulta, clear continua sendo interpretado como SQL, então a automação mantém o comportamento de erro anterior, em vez de transformar erros de digitação em um no-op silencioso.
Formas compatíveis: clear, CLEAR, /clear (um ; opcional no final é ignorado). Se a saída padrão não for um terminal (por exemplo, ao redirecionar a saída por pipe), o metacomando é aceito quando reconhecido, mas não emite sequências de controle.
Com clickhouse-local e -q:
Exemplos
Query
Query
stdin nem --file e pode abrir qualquer número de arquivos usando a função de tabela file:
Query
Query
Response
Iniciando listeners TCP e HTTP
clickhouse-local pode ser transformado em um servidor leve que aceita conexões TCP (protocolo nativo) e HTTP. Isso é útil quando você quer permitir que outras ferramentas ou aplicações do ClickHouse acessem os bancos de dados e as tabelas de uma instância do clickhouse-local em execução. Observe que cada conexão de entrada recebe sua própria sessão: as tabelas temporárias e as configurações de sessão da sessão interativa do clickhouse-local não ficam visíveis para conexões externas.
Use SYSTEM START LISTEN para abrir um listener e SYSTEM STOP LISTEN para fechá-lo:
--listen_host, --tcp_port e --http_port configuram o endereço de escuta e as portas. As portas padrão são 9000 para TCP e 8123 para HTTP.
- Extraindo, convertendo e consultando dados em arquivos locais com o clickhouse-local
- Carregando dados no ClickHouse - Parte 1
- Explorando conjuntos de dados massivos do mundo real: mais de 100 anos de registros meteorológicos no ClickHouse
- Blog: Extraindo, convertendo e consultando dados em arquivos locais com o clickhouse-local