Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

hdfsCluster

Permite procesar archivos de HDFS en paralelo desde varios nodos de un clúster especificado. En el iniciador, crea una conexión con todos los nodos del clúster, expande los asteriscos en la ruta de archivo de HDFS y asigna dinámicamente cada archivo. En el nodo worker, consulta al iniciador cuál es la siguiente tarea que debe procesar y la procesa. Esto se repite hasta que todas las tareas hayan finalizado.

Sintaxis

hdfsCluster(cluster_name, URI, format, structure)

Argumentos

Argumento Descripción
cluster_name Nombre de un clúster que se utiliza para construir un conjunto de direcciones y parámetros de conexión para servidores remotos y locales.
URI URI de un archivo o de un conjunto de archivos. Admite los siguientes comodines en modo de solo lectura: *, **, ?, {'abc','def'} y {N..M}, donde N y M son números, y abc y def son cadenas. Para obtener más información, consulte Comodines en la ruta.
format El formato del archivo.
structure Estructura de la tabla. Formato: 'column1_name column1_type, column2_name column2_type, ...'.

Valor devuelto

Una tabla con la estructura especificada para leer datos del archivo especificado.

Ejemplos

  1. Supongamos que tenemos un clúster de ClickHouse llamado cluster_simple y varios archivos con los siguientes URI en 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. Consulta cuántas filas hay en estos archivos:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
  1. Consulta el número de filas de todos los archivos de estos dos directorios:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
Navigation