Функция табличного типа 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.