Функция табличного типа fileCluster
Позволяет одновременно обрабатывать файлы, соответствующие указанному пути, на нескольких узлах внутри кластера. Инициатор устанавливает соединения с рабочими узлами, разворачивает шаблоны в пути к файлу и делегирует задачи чтения файлов рабочим узлам. Каждый рабочий узел запрашивает у инициатора следующий файл для обработки, повторяя процесс до завершения всех задач (все файлы прочитаны).
Эта функция будет работать корректно только в случае, если набор файлов, соответствующий изначально указанному пути, идентичен на всех узлах, и их содержимое согласовано между различными узлами.
Если эти файлы различаются между узлами, возвращаемое значение нельзя предсказать и оно зависит от порядка, в котором рабочие узлы запрашивают задания у инициатора.
Синтаксис
Аргументы
| Аргумент | Описание |
|---|---|
cluster_name | Имя кластера, используемое для построения набора адресов и параметров соединения к удаленным и локальным серверам. |
path | Относительный путь к файлу от user_files_path. Путь к файлу также поддерживает глобальные шаблоны. |
format | Формат файлов. Тип: String. |
structure | Структура таблицы в формате 'UserID UInt64, Name String'. Определяет имена и типы колонок. Тип: String. |
compression_method | Метод сжатия. Поддерживаемые типы сжатия: gz, br, xz, zst, lz4 и bz2. |
Возвращаемое значение
Таблица с указанным форматом и структурой и с данными из файлов, соответствующих указанному пути.
Пример
При задании кластера с именем my_cluster и задании следующего значения настройки user_files_path:
Также, если на каждом узле кластера есть файлы test1.csv и test2.csv, и их содержимое идентично на различных узлах:
Например, можно создать эти файлы, выполнив эти два запроса на каждом узле кластера:
Теперь считайте данные из файлов test1.csv и test2.csv с помощью функции табличного типа fileCluster:
Глобальные шаблоны в пути
Все шаблоны, поддерживаемые функцией табличного типа File, поддерживаются и в FileCluster.