Функция Таблицы fileCluster
Enables simultaneous processing of files matching a specified path across multiple nodes within a cluster. The initiator establishes connections to worker nodes, expands globs in the file path, and delegates file-reading tasks to worker nodes. Each worker node is querying the initiator for the next file to process, repeating until all tasks are completed (all files are read).
Эта функция будет работать корректно только в случае, если набор файлов, соответствующих изначально указанному пути, идентичен на всех узлах и их содержание согласовано между различными узлами.
В случае, если эти файлы различаются между узлами, возвращаемое значение нельзя предсказать и оно зависит от порядка, в котором рабочие узлы запрашивают задачи у инициатора.
Синтаксис
Аргументы
cluster_name
— Имя кластера, которое используется для формирования набора адресов и параметров подключения к удаленным и локальным серверам.path
— Относительный путь к файлу от user_files_path. Путь к файлу также поддерживает globs.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
:
Globs в пути
Все шаблоны, поддерживаемые функцией таблицы File, поддерживаются и в FileCluster.
См. Также