Выгрузка информации из баз данных в Apache NiFi

В одной из предыдущих статей Работа с базами данных в Apache NiFi мы описывали способ настройки взаимодействия Apache NiFi с базой данных. В качестве примера была рассмотрена операция добавления данных в БД посредством Apache NiFi. В данной статье на простейшем примере будет рассмотрен один из простейших способов выгрузки данных из базы. Будут использованы те же самые настройки подключения к БД, что использовались в вышеупомянутой статье.

Задача. Из таблицы Check выгрузить все значения поля kafka_message и сохранить в файл.

  1. Добавим процессор ExecuteSQL. В настройках процессора укажем подключение к базе данных и запрос, который будет использоваться для выбора данных:
    SELECT kafka_message FROM public.»check»

    Apache NiFi ExecuteSQL
  2. Для того, чтобы запрос отработал один раз зададим настройки расписания, указав что процессор должен отработать только один раз, в конкретный момент времени.

    Apache NiFi ExecuteSQL Scheduling

    Использование расписания работы процессоров будет рассмотрено в отдельной статье, так как тема достаточно объемная.
  3. Добавим процессор ConvertAvroToJSON. Так как процессор ExecuteSQL передает данные в формате Avro, то часто возникает необходимость его преобразования в один из общеприянтых форматов — XML, JSON и т.д. В нашем случае мы сконвертируем в JSON. Более побродно с форматом Avro можно ознакомитсья на официальном сайте Apache Avro.
  4. Добавим процессор PutFile и укажем папку, в которую будет сохраняться JSON-файл
  5. Соединим процессоры между собой, чтобы получить завершенную схему.

    Apache NiFi DataFlow ExecuteSQL
  6. Укажем в расписании процессора ExecuteSQL время запуска текущее плюс одну минуту. То есть, если сейчас время 13:14, то указываем время запуска 13:15. Запустим все процессоры.
  7. Убедимся, что процессор ExecuteSQL отработал и откроем папку, указанную в процессоре PutFile. Созданный файл содержит все, выгруженные из базы данных, значения.

    ExecuteSQL JSON-файл

Формат JSON можно преобразовать в другие форматы с помощью скриптов. В одной из следующих статей будут рассмотрены такие примеры.

При копировании материалов ссылка на сайт обязательна. Вопросы, замечания, предложения и комментарии к статьям можно направлять на адрес: info@datanetworks.ru