Skip to main content
Apache NiFi — это ПО с открытым исходным кодом для управления рабочими процессами, предназначенное для автоматизации потоков данных между программными системами. Оно позволяет создавать ETL-конвейеры данных и включает более 300 процессоров данных. В этом пошаговом руководстве показано, как подключить Apache NiFi к ClickHouse в качестве источника и пункта назначения, а также загрузить примерный набор данных.
1

Подготовьте сведения о подключении

Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud. Выберите сервис и нажмите Connect:
Кнопка подключения сервиса ClickHouse Cloud
Выберите HTTPS. Сведения о подключении будут показаны в примере команды curl.
Сведения о подключении к ClickHouse Cloud по HTTPS
Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse.
2

Скачайте и запустите Apache NiFi

Для новой установки скачайте бинарный файл с https://nifi.apache.org/download.html и начните с выполнения команды ./bin/nifi.sh start
3

Скачайте JDBC-драйвер ClickHouse

  1. Перейдите на страницу релизов JDBC-драйвера ClickHouse на GitHub и найдите последнюю версию JDBC-драйвера
  2. В выбранном релизе нажмите “Show all xx assets” и найдите JAR-файл, содержащий ключевое слово “shaded” или “all”, например clickhouse-jdbc-0.5.0-all.jar
  3. Поместите JAR-файл в папку, доступную Apache NiFi, и запишите его абсолютный путь
4

Добавьте службу контроллера DBCPConnectionPool и настройте её свойства

  1. Чтобы настроить службу контроллера в Apache NiFi, откройте страницу конфигурации потока NiFi, нажав кнопку с шестерёнкой
  2. Перейдите на вкладку Controller Services и добавьте новую службу контроллера, нажав кнопку + в правом верхнем углу
  3. Найдите DBCPConnectionPool и нажмите кнопку “Add”
  4. После добавления DBCPConnectionPool по умолчанию будет находиться в состоянии Invalid. Нажмите кнопку с шестерёнкой, чтобы перейти к настройке
  5. В разделе “Properties” введите следующие значения
  1. В разделе Settings измените имя службы контроллера на “ClickHouse JDBC” для удобства дальнейшей работы
  2. Активируйте службу контроллера DBCPConnectionPool, нажав кнопку с молнией, а затем кнопку “Enable”
  3. Проверьте вкладку Controller Services и убедитесь, что служба контроллера включена
5

Чтение из таблицы с помощью процессора ExecuteSQL

  1. Добавьте процессор ​​ExecuteSQL вместе с соответствующими предшествующими и последующими процессорами
  2. В разделе “Properties” процессора ​​ExecuteSQL введите следующие значения
  3. Запустите процессор ​​ExecuteSQL
  4. Чтобы убедиться, что запрос был успешно обработан, проверьте один из FlowFile в выходной очереди
  5. Переключитесь в режим “formatted”, чтобы просмотреть результат в выходном FlowFile
6

Запись в таблицу с помощью MergeRecord и PutDatabaseRecord процессоров

  1. Чтобы выполнить вставку нескольких строк за одну операцию, сначала нужно объединить несколько записей в одну. Это можно сделать с помощью процессора MergeRecord
  2. В разделе “Properties” процессора MergeRecord введите следующие значения
  3. Чтобы убедиться, что несколько записей объединяются в одну, проверьте вход и выход процессора MergeRecord. Обратите внимание, что на выходе получается массив из нескольких входных записей Вход Выход
  4. В разделе “Properties” процессора PutDatabaseRecord введите следующие значения
  5. Чтобы убедиться, что каждая вставка содержит несколько строк, проверьте, что число строк в таблице увеличивается как минимум на значение “Minimum Number of Records”, заданное в MergeRecord.
  6. Поздравляем — вы успешно загрузили данные в ClickHouse с помощью Apache NiFi!
Последнее изменение 24 июля 2026 г.