> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Позволяет параллельно обрабатывать файлы из HDFS на множестве узлов в указанном кластере.

# hdfsCluster

Позволяет параллельно обрабатывать файлы из HDFS на множестве узлов в указанном кластере. На узле-инициаторе создаётся подключение со всеми узлами кластера, раскрываются звёздочки в пути к файлу HDFS, после чего каждый файл динамически распределяется. На узле-воркере запрашивается у инициатора следующая задача для обработки, и она обрабатывается. Это повторяется, пока не будут завершены все задачи.

<div id="syntax">
  ## Синтаксис
</div>

```sql theme={null}
hdfsCluster(cluster_name, URI, format, structure)
```

<div id="arguments">
  ## Аргументы
</div>

| Аргумент       | Описание                                                                                                                                                                                                                                                                                                                          |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cluster_name` | Имя кластера, используемое для построения набора адресов и параметров подключения к удалённым и локальным серверам.                                                                                                                                                                                                               |
| `URI`          | URI файла или набора файлов. В режиме только для чтения поддерживаются следующие подстановочные шаблоны: `*`, `**`, `?`, `{'abc','def'}` и `{N..M}`, где `N`, `M` — числа, `abc`, `def` — строки. Подробнее см. в разделе [Подстановочные шаблоны в пути](/ru/reference/engines/table-engines/integrations/s3#wildcards-in-path). |
| `format`       | [Формат](/ru/reference/formats) файла.                                                                                                                                                                                                                                                                                            |
| `structure`    | Структура таблицы. Формат: `'column1_name column1_type, column2_name column2_type, ...'`.                                                                                                                                                                                                                                         |

<div id="returned_value">
  ## Возвращаемое значение
</div>

Таблица с указанной структурой для чтения данных из указанного файла.

<div id="examples">
  ## Примеры
</div>

1. Предположим, что у нас есть кластер 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'

2. Выполните запрос, чтобы определить количество строк в этих файлах:

```sql theme={null}
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
```

3. Выполните запрос, чтобы получить количество строк во всех файлах этих двух каталогов:

```sql theme={null}
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
```

<Note>
  Если в списке файлов есть диапазоны чисел с ведущими нулями, используйте конструкцию с фигурными скобками для каждой цифры отдельно или символ `?`.
</Note>

<div id="related">
  ## См. также
</div>

* [Движок HDFS](/ru/reference/engines/table-engines/integrations/hdfs)
* [Табличная функция HDFS](/ru/reference/functions/table-functions/hdfs)
