Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

filesystem

Non pris en charge par ClickHouse Cloud

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ètre Description
path Le 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

colonne Type Description
path String Répertoire contenant l’entrée (sans inclure le nom du fichier/répertoire lui-même).
name String Nom du fichier ou du répertoire (dernier composant du chemin).
file String (ALIAS of name) Alias de la colonne name.
type Enum8 Type de fichier : 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
size Nullable(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.
depth UInt16 Profondeur 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_time Nullable(DateTime64(6)) Date et heure de dernière modification, avec une précision à la microseconde. NULL en cas d’erreur.
is_symlink Bool Indique si l’entrée est un lien symbolique.
content Nullable(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_read Bool Le propriétaire dispose du droit de lecture.
owner_write Bool Le propriétaire dispose du droit d’écriture.
owner_exec Bool Le propriétaire dispose du droit d’exécution.
group_read Bool Le groupe dispose du droit de lecture.
group_write Bool Le groupe dispose du droit d’écriture.
group_exec Bool Le groupe dispose du droit d’exécution.
others_read Bool Les autres disposent du droit de lecture.
others_write Bool Les autres disposent du droit d’écriture.
others_exec Bool Les autres disposent du droit d’exécution.
set_gid Bool Bit set-GID.
set_uid Bool Bit set-UID.
sticky_bit Bool Sticky 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;
Navigation