Saltar al contenido principal
Permite el procesamiento simultáneo de archivos que coinciden con una ruta especificada en varios nodos dentro de un clúster. El nodo iniciador establece conexiones con los nodos worker, expande globs en la ruta del archivo y delega las tareas de lectura de archivos a los nodos worker. Cada nodo worker consulta al iniciador cuál es el siguiente archivo que debe procesar, repitiendo el proceso hasta que se completen todas las tareas (se lean todos los archivos).

Esta función solo operará correctamente si el conjunto de archivos que coincide con la ruta especificada inicialmente es idéntico en todos los nodos y su contenido es consistente entre los distintos nodos. Si estos archivos difieren entre nodos, el valor de retorno no puede determinarse de antemano y depende del orden en que los nodos worker soliciten tareas al iniciador.

Sintaxis

fileCluster(cluster_name, path[, format, structure, compression_method])

Argumentos

ArgumentoDescripción
cluster_nameNombre de un clúster que se utiliza para construir un conjunto de direcciones y parámetros de conexión para servidores remotos y locales.
pathRuta relativa al archivo desde user_files_path. La ruta del archivo también admite globs.
formatFormato de los archivos. Tipo: String.
structureEstructura de la tabla en el formato 'UserID UInt64, Name String'. Determina los nombres y tipos de las columnas. Tipo: String.
compression_methodMétodo de compresión. Los tipos de compresión admitidos son gz, br, xz, zst, lz4 y bz2.

Valor devuelto

Una tabla con el formato y la estructura especificados, que contiene datos de los archivos que coinciden con la ruta especificada. Ejemplo Dado un clúster llamado my_cluster y el siguiente valor de la configuración user_files_path:
$ grep user_files_path /etc/clickhouse-server/config.xml
    <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
Además, dado que en user_files_path de cada nodo del clúster hay archivos test1.csv y test2.csv, y su contenido es idéntico entre los distintos nodos:
$ cat /var/lib/clickhouse/user_files/test1.csv
    1,"file1"
    11,"file11"

$ cat /var/lib/clickhouse/user_files/test2.csv
    2,"file2"
    22,"file22"
Por ejemplo, estos archivos se pueden crear ejecutando estas dos consultas en cada nodo del clúster:
INSERT INTO TABLE FUNCTION file('file1.csv', 'CSV', 'i UInt32, s String') VALUES (1,'file1'), (11,'file11');
INSERT INTO TABLE FUNCTION file('file2.csv', 'CSV', 'i UInt32, s String') VALUES (2,'file2'), (22,'file22');
Ahora, lea el contenido de test1.csv y test2.csv mediante la función de tabla fileCluster:
SELECT * FROM fileCluster('my_cluster', 'file{1,2}.csv', 'CSV', 'i UInt32, s String') ORDER BY i, s
┌──i─┬─s──────┐
│  1 │ file1  │
│ 11 │ file11 │
└────┴────────┘
┌──i─┬─s──────┐
│  2 │ file2  │
│ 22 │ file22 │
└────┴────────┘

Globs en la ruta

Todos los patrones admitidos por la función de tabla File son compatibles con FileCluster.
Última modificación el 10 de junio de 2026