Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

filesystem

No es compatible con ClickHouse Cloud

Recorre recursivamente un directorio y devuelve una tabla con metadatos de archivos (rutas, tamaños, tipos, permisos, fechas de modificación) y, opcionalmente, el contenido de los archivos.

En el modo clickhouse-server, la ruta debe estar dentro del directorio user_files_path. Se siguen los enlaces simbólicos dentro de user_files_path que apuntan fuera de él, pero solo se devuelven las entradas cuya ruta (a través del enlace simbólico) comienza con user_files_path.

En el modo clickhouse-local, no hay restricciones de ruta.

Sintaxis

filesystem([path])

Argumentos

Parámetro Descripción
path El directorio que se va a listar. Puede ser una ruta absoluta (debe estar dentro de user_files_path cuando se ejecuta en modo server) o una ruta relativa a user_files_path. Si está vacío o se omite, el valor predeterminado es user_files_path.

Columnas devueltas

Columna Tipo Descripción
path String Directorio que contiene la entrada (no incluye el nombre del archivo o directorio en sí).
name String Nombre del archivo o directorio (el último componente de la ruta).
file String (ALIAS de name) Alias de la columna name.
type Enum8 Tipo de archivo: 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
size Nullable(UInt64) Tamaño del archivo en bytes (para archivos normales). NULL para archivos no normales (directorios, enlaces simbólicos, etc.) y en caso de error.
depth UInt16 Profundidad de recursión. 0 para el propio directorio consultado y sus hijos inmediatos, 1 para las entradas un nivel más abajo, y así sucesivamente.
modification_time Nullable(DateTime64(6)) Fecha y hora de la última modificación con precisión de microsegundos. NULL en caso de error.
is_symlink Bool Indica si la entrada es un enlace simbólico.
content Nullable(String) Contenido del archivo (para archivos normales). NULL para archivos no normales (directorios, enlaces simbólicos, etc.). Los errores de lectura generan una excepción. Leer esta columna desencadena la E/S real del archivo, así que omítela si no es necesaria.
owner_read Bool El propietario tiene permiso de lectura.
owner_write Bool El propietario tiene permiso de escritura.
owner_exec Bool El propietario tiene permiso de ejecución.
group_read Bool El grupo tiene permiso de lectura.
group_write Bool El grupo tiene permiso de escritura.
group_exec Bool El grupo tiene permiso de ejecución.
others_read Bool Otros tienen permiso de lectura.
others_write Bool Otros tienen permiso de escritura.
others_exec Bool Otros tienen permiso de ejecución.
set_gid Bool Bit Set-GID.
set_uid Bool Bit Set-UID.
sticky_bit Bool Sticky bit.

Solo se calculan las columnas que realmente se usan en la consulta, por lo que seleccionar un subconjunto de columnas (especialmente si se omite content) es eficiente.

Ejemplos

Listar archivos en user_files

SELECT name, type, size, depth
FROM filesystem()
ORDER BY name;

Buscar archivos grandes

SELECT path, name, size
FROM filesystem()
WHERE type = 'regular' AND size > 1000000
ORDER BY size DESC;

Leer el contenido del archivo

SELECT name, content
FROM filesystem('my_directory')
WHERE name LIKE '%.csv';

Mostrar solo los elementos hijos inmediatos

SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
Navigation