Табличная функция hdfsCluster
Позволяет обрабатывать файлы из HDFS параллельно с множества узлов в указанном кластере. На инициирующем узле создаётся соединение со всеми узлами кластера, раскрываются символы * в пути к файлам HDFS, и каждый файл динамически распределяется по узлам. Рабочий узел запрашивает у инициирующего узла следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут выполнены.
Синтаксис
Аргументы
| Аргумент | Описание |
|---|---|
cluster_name | Имя кластера, используемое для построения набора адресов и параметров подключения к удалённым и локальным серверам. |
URI | URI файла или группы файлов. Поддерживает следующие подстановочные шаблоны в режиме только для чтения: *, **, ?, {'abc','def'} и {N..M}, где N, M — числа, abc, def — строки. Для получения дополнительной информации см. подстановочные шаблоны в пути. |
format | Формат файла. |
structure | Структура таблицы. Формат: 'column1_name column1_type, column2_name column2_type, ...'. |
Возвращаемое значение
Таблица с указанной структурой, предназначенная для чтения данных из указанного файла.
Примеры
- Предположим, что у нас есть кластер 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'
- Выполните запрос для подсчёта количества строк в этих файлах:
- Получите количество строк во всех файлах этих двух каталогов:
Примечание
Если в списке файлов встречаются числовые диапазоны с ведущими нулями, используйте фигурные скобки для каждой цифры по отдельности или символ ?.