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
- Supongamos que tenemos un clúster de ClickHouse llamado
cluster_simpley 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'
- 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')- 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')