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

curl.
2
Скачайте и запустите Apache NiFi
Для новой установки скачайте бинарный файл с https://nifi.apache.org/download.html и начните с выполнения команды
./bin/nifi.sh start3
Скачайте JDBC-драйвер ClickHouse
- Перейдите на страницу релизов JDBC-драйвера ClickHouse на GitHub и найдите последнюю версию JDBC-драйвера
- В выбранном релизе нажмите “Show all xx assets” и найдите JAR-файл, содержащий ключевое слово “shaded” или “all”, например
clickhouse-jdbc-0.5.0-all.jar - Поместите JAR-файл в папку, доступную Apache NiFi, и запишите его абсолютный путь
4
Добавьте службу контроллера DBCPConnectionPool и настройте её свойства
- Чтобы настроить службу контроллера в Apache NiFi, откройте страницу конфигурации потока NiFi, нажав кнопку с шестерёнкой
-
Перейдите на вкладку Controller Services и добавьте новую службу контроллера, нажав кнопку
+в правом верхнем углу -
Найдите
DBCPConnectionPoolи нажмите кнопку “Add” -
После добавления
DBCPConnectionPoolпо умолчанию будет находиться в состоянии Invalid. Нажмите кнопку с шестерёнкой, чтобы перейти к настройке - В разделе “Properties” введите следующие значения
- В разделе Settings измените имя службы контроллера на “ClickHouse JDBC” для удобства дальнейшей работы
-
Активируйте службу контроллера
DBCPConnectionPool, нажав кнопку с молнией, а затем кнопку “Enable”
- Проверьте вкладку Controller Services и убедитесь, что служба контроллера включена
5
Чтение из таблицы с помощью процессора ExecuteSQL
-
Добавьте процессор
ExecuteSQLвместе с соответствующими предшествующими и последующими процессорами -
В разделе “Properties” процессора
ExecuteSQLвведите следующие значения -
Запустите процессор
ExecuteSQL -
Чтобы убедиться, что запрос был успешно обработан, проверьте один из
FlowFileв выходной очереди -
Переключитесь в режим “formatted”, чтобы просмотреть результат в выходном
FlowFile
6
Запись в таблицу с помощью MergeRecord и PutDatabaseRecord процессоров
-
Чтобы выполнить вставку нескольких строк за одну операцию, сначала нужно объединить несколько записей в одну. Это можно сделать с помощью процессора
MergeRecord -
В разделе “Properties” процессора
MergeRecordвведите следующие значения -
Чтобы убедиться, что несколько записей объединяются в одну, проверьте вход и выход процессора
MergeRecord. Обратите внимание, что на выходе получается массив из нескольких входных записей Вход Выход -
В разделе “Properties” процессора
PutDatabaseRecordвведите следующие значения -
Чтобы убедиться, что каждая вставка содержит несколько строк, проверьте, что число строк в таблице увеличивается как минимум на значение “Minimum Number of Records”, заданное в
MergeRecord. - Поздравляем — вы успешно загрузили данные в ClickHouse с помощью Apache NiFi!