Pular para o conteúdo principal
Permite processar arquivos do HDFS em paralelo a partir de vários nós em um cluster especificado. No iniciador, cria uma conexão com todos os nós do cluster, expande os asteriscos no caminho do arquivo HDFS e distribui cada arquivo dinamicamente. No nó worker, consulta o iniciador sobre a próxima tarefa a ser processada e a executa. Isso se repete até que todas as tarefas sejam concluídas.

Sintaxe

hdfsCluster(cluster_name, URI, format, structure)

Argumentos

ArgumentoDescrição
cluster_nameNome de um cluster usado para montar um conjunto de endereços e parâmetros de conexão para servidores remotos e locais.
URIURI de um arquivo ou de um conjunto de arquivos. Suporta os seguintes caracteres curinga no modo somente leitura: *, **, ?, {'abc','def'} e {N..M}, em que N, M — números; abc, def — strings. Para mais informações, consulte Caracteres curinga no caminho.
formatO formato do arquivo.
structureEstrutura da tabela. Formato: 'column1_name column1_type, column2_name column2_type, ...'.

Valor retornado

Uma tabela com a estrutura especificada para ler dados do arquivo especificado.

Exemplos

  1. Suponha que temos um cluster do ClickHouse chamado cluster_simple e vários arquivos com os seguintes URIs no HDFS:
  • ‘hdfs://hdfs1:9000/some_dir/some_file_1’
  • ‘hdfs://hdfs1:9000/some_dir/some_file_2’
  • ‘hdfs://hdfs1:9000/some_dir/some_file_3’
  • ‘hdfs://hdfs1:9000/another_dir/some_file_1’
  • ‘hdfs://hdfs1:9000/another_dir/some_file_2’
  • ‘hdfs://hdfs1:9000/another_dir/some_file_3’
  1. Consulte o número de linhas nesses arquivos:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
  1. Consulte a quantidade de linhas em todos os arquivos desses dois diretórios:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
Se a sua lista de arquivos contiver intervalos numéricos com zeros à esquerda, use a sintaxe com chaves para cada dígito separadamente ou use ?.
Última modificação em 10 de junho de 2026