Перейти к основному содержанию
Рекурсивно обходит каталог и возвращает таблицу с метаданными файлов (путями, размерами, типами, правами доступа, временем изменения) и, при необходимости, содержимым файлов. В режиме clickhouse-server путь должен находиться в каталоге user_files_path. Символические ссылки внутри user_files_path, указывающие за его пределы, обрабатываются, но возвращаются только те записи, путь которых (через символическую ссылку) начинается с user_files_path. В режиме clickhouse-local ограничений на путь нет.

Синтаксис

filesystem([path])

Аргументы

ПараметрОписание
pathКаталог, содержимое которого нужно вывести. Может быть абсолютным путём (в режиме сервера должен находиться внутри user_files_path) или путём относительно user_files_path. Если пустой или не указан, по умолчанию используется user_files_path.

Возвращаемые столбцы

СтолбецТипОписание
pathStringКаталог, содержащий запись (без имени самого файла или каталога).
nameStringИмя файла или каталога (последний компонент пути).
fileString (ALIAS of name)Псевдоним столбца name.
typeEnum8Тип файла: 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'.
sizeNullable(UInt64)Размер файла в байтах (для обычных файлов). NULL для необычных файлов (каталогов, символьных ссылок и т. д.) и при ошибке.
depthUInt16Глубина рекурсии. 0 — для самого запрошенного каталога и его непосредственного содержимого, 1 — для записей на один уровень глубже и так далее.
modification_timeNullable(DateTime64(6))Время последнего изменения с микросекундной точностью. NULL при ошибке.
is_symlinkBoolЯвляется ли запись символьной ссылкой.
contentNullable(String)Содержимое файла (для обычных файлов). NULL для необычных файлов (каталогов, символьных ссылок и т. д.). Ошибки чтения приводят к исключению. Чтение этого столбца вызывает фактический файловый ввод-вывод, поэтому не выбирайте его без необходимости.
owner_readBoolУ владельца есть право на чтение.
owner_writeBoolУ владельца есть право на запись.
owner_execBoolУ владельца есть право на выполнение.
group_readBoolУ группы есть право на чтение.
group_writeBoolУ группы есть право на запись.
group_execBoolУ группы есть право на выполнение.
others_readBoolУ остальных есть право на чтение.
others_writeBoolУ остальных есть право на запись.
others_execBoolУ остальных есть право на выполнение.
set_gidBoolБит Set-GID.
set_uidBoolБит Set-UID.
sticky_bitBoolБит sticky.
Вычисляются только те столбцы, которые фактически используются в запросе, поэтому запрашивать только часть столбцов (особенно без content) эффективно.

Примеры

Вывести список файлов в user_files

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

Поиск больших файлов

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

Чтение содержимого файла

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

Вывести только непосредственные дочерние элементы

SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
Последнее изменение 10 июня 2026 г.