fileCluster
Позволяет одновременно обрабатывать файлы, находящиеся по указанному пути, на нескольких узлах внутри кластера. Узел-инициатор устанавливает соединения с рабочими узлами (worker nodes), раскрывает шаблоны в пути к файлам и отдаёт задачи по чтению файлов рабочим узлам. Рабочий узел запрашивает у инициатора путь к следующему файлу для обработки, повторяя до тех пор, пока не завершатся все задачи (то есть пока не будут обработаны все файлы).
Эта табличная функция будет работать корректно только в случае, если набор файлов, соответствующих изначально указанному пути, одинаков на всех узлах и содержание этих файлов идентично на различных узлах. В случае, если эти файлы различаются между узлами, результат не предопределён и зависит от очерёдности, с которой рабочие узлы будут запрашивать задачи у инициатора.
Синтаксис
Аргументы
cluster_name
— имя кластера, используемое для создания набора адресов и параметров подключения к удаленным и локальным серверам.path
— относительный путь до файла от user_files_path. Путь к файлу поддерживает шаблоны поискаglobs.format
— формат файла.structure
— структура таблицы. Формат:'colunmn1_name column1_ype, column2_name column2_type, ...'
.compression_method
— Используемый тип сжатия. Поддерживаемые типы:gz
,br
,xz
,zst
,lz4
иbz2
.
Возвращаемое значение
Таблица с указанным форматом и структурой, содержащая данные из файлов, соответствующих указанному пути.
Пример
Пусть есть кластер с именем my_cluster
, а также установлено нижеследующее значение параметра user_files_path
:
Пусть также на каждом узле кластера в директории user_files_path
находятся файлы test1.csv
и test2.csv
, и их содержимое идентично на разных узлах:
Например, эти файлы можно создать, выполнив на каждом узле два запроса:
Прочитаем содержимое файлов test1.csv
и test2.csv
с помощью табличной функции fileCluster
:
Шаблоны поиска в компонентах пути
Поддерживаются все шаблоны поиска, что поддерживаются табличной функцией File.
Смотрите также