Passer au contenu principal

Fonction de table filesystem

Parcourt récursivement un répertoire et renvoie une table contenant les métadonnées des fichiers (paths, tailles, types, permissions, dates de modification) et, éventuellement, le contenu des fichiers. En mode clickhouse-server, le chemin doit se trouver dans le répertoire user_files_path. Les liens symboliques à l’intérieur de user_files_path qui pointent en dehors de celui-ci sont suivis, mais seules les entrées dont le chemin (via le lien symbolique) commence par user_files_path sont renvoyées. En mode clickhouse-local, il n’y a aucune restriction de chemin.

Syntaxe

filesystem([path])

Arguments

ParamètreDescription
pathLe répertoire à lister. Il peut s’agir d’un chemin absolu (qui doit se trouver dans user_files_path en mode serveur) ou d’un chemin relatif à user_files_path. S’il est vide ou omis, user_files_path est utilisé par défaut.

Colonnes renvoyées

ColumnTypeDescription
pathStringRépertoire contenant l’entrée (sans inclure le nom du fichier/répertoire lui-même).
nameStringNom du fichier ou du répertoire (dernier composant du chemin).
fileString (ALIAS of name)Alias de la colonne name.
typeEnum8Type de fichier : 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
sizeNullable(UInt64)Taille du fichier en octets (pour les fichiers ordinaires). NULL pour les fichiers non ordinaires (répertoires, liens symboliques, etc.) et en cas d’erreur.
depthUInt16Profondeur de récursion. 0 pour le répertoire interrogé lui-même et ses enfants immédiats, 1 pour les entrées situées un niveau plus bas, et ainsi de suite.
modification_timeNullable(DateTime64(6))Date et heure de dernière modification, avec une précision à la microseconde. NULL en cas d’erreur.
is_symlinkBoolIndique si l’entrée est un lien symbolique.
contentNullable(String)Contenu du fichier (pour les fichiers ordinaires). NULL pour les fichiers non ordinaires (répertoires, liens symboliques, etc.). Les erreurs de lecture lèvent une exception. La lecture de cette colonne déclenche des E/S de fichier réelles ; omettez-la donc si vous n’en avez pas besoin.
owner_readBoolLe propriétaire dispose du droit de lecture.
owner_writeBoolLe propriétaire dispose du droit d’écriture.
owner_execBoolLe propriétaire dispose du droit d’exécution.
group_readBoolLe groupe dispose du droit de lecture.
group_writeBoolLe groupe dispose du droit d’écriture.
group_execBoolLe groupe dispose du droit d’exécution.
others_readBoolLes autres disposent du droit de lecture.
others_writeBoolLes autres disposent du droit d’écriture.
others_execBoolLes autres disposent du droit d’exécution.
set_gidBoolBit set-GID.
set_uidBoolBit set-UID.
sticky_bitBoolSticky bit.
Seules les colonnes effectivement utilisées dans la requête sont calculées ; sélectionner un sous-ensemble de colonnes (en particulier en omettant content) est donc efficace.

Exemples

Lister les fichiers dans user_files

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

Repérer les fichiers volumineux

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

Lire le contenu d’un fichier

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

Lister uniquement les éléments enfants immédiats

SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
Dernière modification le 25 juin 2026