Функция таблицы 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
внутри user_files_path
каждого узла кластера, и их содержимое идентично на разных узлах:
Например, можно создать эти файлы, выполнив эти два запроса на каждом узле кластера:
Теперь прочитаем содержимое данных из test1.csv
и test2.csv
через функцию таблицы fileCluster
:
Глобальные шаблоны в пути
Все шаблоны, поддерживаемые функцией таблицы File, поддерживаются и в FileCluster.
Смотрите также