hdfsCluster Табличная Функция
Позволяет обрабатывать файлы из HDFS параллельно с многих узлов в заданном кластере. На инициаторе она создает соединение со всеми узлами в кластере, раскрывает звездочки в пути к файлу HDFS и динамически распределяет каждый файл. На узле-работнике она запрашивает у инициатора следующую задачу для обработки и выполняет её. Это повторяется до тех пор, пока все задачи не будут завершены.
Синтаксис
Аргументы
Аргумент | Описание |
---|---|
cluster_name | Имя кластера, которое используется для построения набора адресов и параметров соединения с удаленными и локальными серверами. |
URI | URI к файлу или группе файлов. Поддерживает следующие подстановочные знаки в режиме только для чтения: * , ** , ? , {'abc','def'} и {N..M} , где N , M — числа, abc , def — строки. Для получения дополнительной информации см. Подстановочные знаки в пути. |
format | формат файла. |
structure | Структура таблицы. Формат 'имя_колонки1 тип_колонки1, имя_колонки2 тип_колонки2, ...' . |
Возвращаемое значение
Таблица с заданной структурой для чтения данных в указанном файле.
Примеры
- Предположим, что у нас есть кластер ClickHouse с именем
cluster_simple
и несколько файлов со следующими URI в HDFS:
- 'hdfs://hdfs1:9000/some_dir/some_file_1'
- 'hdfs://hdfs1:9000/some_dir/some_file_2'
- 'hdfs://hdfs1:9000/some_dir/some_file_3'
- 'hdfs://hdfs1:9000/another_dir/some_file_1'
- 'hdfs://hdfs1:9000/another_dir/some_file_2'
- 'hdfs://hdfs1:9000/another_dir/some_file_3'
- Запросите количество строк в этих файлах:
- Запросите количество строк во всех файлах этих двух директорий:
примечание
Если ваш список файлов содержит диапазоны чисел с Leading Zeros, используйте конструкцию с фигурными скобками для каждой цифры отдельно или используйте ?
.