Табличная функция filesystem
Not supported in ClickHouse Cloud
Рекурсивно обходит каталог и возвращает таблицу с метаданными файлов (путями, размерами, типами, правами доступа, временем изменения) и, при необходимости, с содержимым файлов.
В режиме clickhouse-server путь должен находиться в каталоге user_files_path. Символические ссылки внутри user_files_path, указывающие за его пределы, обрабатываются, однако возвращаются только те записи, путь к которым (через символическую ссылку) начинается с user_files_path.
В режиме clickhouse-local ограничений на пути нет.
Синтаксис
Аргументы
| Параметр | Описание |
|---|---|
path | Каталог, для которого нужно вывести список. Может быть абсолютным путём (в режиме сервера он должен находиться внутри user_files_path) или путём относительно user_files_path. Если значение пустое или не указано, по умолчанию используется user_files_path. |
Возвращаемые столбцы
| Столбец | Тип | Описание |
|---|---|---|
path | String | Каталог, содержащий запись (без имени самого файла или каталога). |
name | String | Имя файла или каталога (последний компонент пути). |
file | String (ALIAS of name) | Псевдоним столбца name. |
type | Enum8 | Тип файла: 'none', 'not_found', 'regular', 'directory', 'symlink', 'block', 'character', 'fifo', 'socket', 'unknown'. |
size | Nullable(UInt64) | Размер файла в байтах (для обычных файлов). NULL для файлов других типов (каталогов, символических ссылок и т. д.), а также при ошибке. |
depth | UInt16 | Глубина рекурсии. 0 — для самого запрошенного каталога и его непосредственных дочерних элементов, 1 — для записей на один уровень глубже и так далее. |
modification_time | Nullable(DateTime64(6)) | Время последнего изменения с точностью до микросекунды. NULL при ошибке. |
is_symlink | Bool | Является ли запись символической ссылкой. |
content | Nullable(String) | Содержимое файла (для обычных файлов). NULL для файлов других типов (каталогов, символических ссылок и т. д.). При ошибках чтения генерируется исключение. Чтение этого столбца вызывает фактические операции ввода-вывода с файлом, поэтому не включайте его, если он не нужен. |
owner_read | Bool | У владельца есть право на чтение. |
owner_write | Bool | У владельца есть право на запись. |
owner_exec | Bool | У владельца есть право на исполнение. |
group_read | Bool | У группы есть право на чтение. |
group_write | Bool | У группы есть право на запись. |
group_exec | Bool | У группы есть право на исполнение. |
others_read | Bool | У остальных есть право на чтение. |
others_write | Bool | У остальных есть право на запись. |
others_exec | Bool | У остальных есть право на исполнение. |
set_gid | Bool | Бит Set-GID. |
set_uid | Bool | Бит Set-UID. |
sticky_bit | Bool | Sticky bit. |
Вычисляются только те столбцы, которые фактически используются в запросе, поэтому выбирать подмножество столбцов (особенно без content) эффективно.