Описание курса
Этот курс охватывает полный цикл работы с Apache NiFi — мощным инструментом для потоковой обработки и интеграции данных. Участники изучат ключевые принципы настройки, администрирования и оптимизации NiFi, научатся создавать и управлять потоками данных, взаимодействовать с базами данных, файлами, Kafka и другими внешними системами. Особое внимание уделяется продвинутым возможностям, распределенной обработке, мониторингу, а также разработке пользовательских процессоров и сервисов на Python и Java.
Кому подойдет этот курс
- Data Engineers – для настройки потоков данных и интеграции с различными источниками.
- BI и ETL-специалисты – для организации конвейеров обработки данных.
- DevOps-инженеры – для автоматизации работы с данными в распределенных системах.
- Разработчики и архитекторы – для проектирования надежных и масштабируемых решений на основе NiFi.
- Администраторы БД – для автоматизации загрузки и трансформации данных.
Чему вы научитесь
- Разворачивать и конфигурировать Apache NiFi на локальной машине и в кластере.
- Создавать и оптимизировать потоки данных, используя встроенные процессоры.
- Работать с атрибутами, параметрами и переменными среды.
- Обрабатывать структурированные данные (JSON, CSV, AVRO) и применять схемы.
- Интегрироваться с базами данных, файлами и потоковыми системами (Kafka).
- Проектировать распределенные потоки данных с балансировкой нагрузки.
- Использовать NiFi Registry для управления версиями потоков.
- Работать в Stateless-режиме для высокопроизводительной обработки.
- Разрабатывать пользовательские процессоры и сервисы на Java и Python.
- Применять лучшие практики и избегать типичных ошибок при проектировании потоков.
Формат обучения
теория + практические задания в каждом модуле, реализация реальных кейсов, разбор ошибок и ответы на вопросы.
Программа курса
Модуль 1: Введение в Apache NiFi
Темы:
1. Что такое NiFi
- История создания.
- Основные концепции.
2. Для чего нужен NiFi
- Применение в ETL/ELT процессах.
- Сценарии использования.
3. Разворачиваем практика
- Установка и запуск NiFi.
- Проверка работы интерфейса.
4. Особенности настройки сингл нод
- Конфигурация properties файлов.
- Настройка логирования и безопасности.
5. Интерфейс NiFi
- Canvas, процессоры, соединения.
- Базовые действия с элементами.
Дополнительные практические задания:
- Установить NiFi на локальном компьютере.
- Создать простой поток для генерации данных и вывода их в лог.
Модуль 2: Базовые концепции и работа с потоками
Темы:
6. Простейший поток практика
- Создание первого потока данных.
- Тестирование.
7. Особенности настройки процессоров тюним поток
- Работа с основными параметрами процессоров.
- Оптимизация производительности.
8. Работа с атрибутами и язык выражений NiFi
- Что такое атрибуты.
- Язык выражений NiFi.
9. Parameter context and variables
- Менеджмент параметров.
- Переменные среды.
Дополнительные практические задания:
- Создать поток с использованием Parameter Context.
- Написать несколько выражений для фильтрации данных.
Модуль 3: Работа со структурированными данными
Темы:
10. Records что это такое
- Введение в Records.
11. AVRO схемы
- Создание и использование AVRO схем.
12. Обрабатываем структурированный поток практика
- Преобразование JSON/CSV в Records.
- Фильтрация и обработка данных.
Дополнительные практические задания:
- Создать поток для преобразования CSV файла в JSON.
- Реализовать фильтрацию записей на основе условий.
Модуль 4: Взаимодействие с внешними системами
Темы:
13. Взаимодействие с базой данных
- Подключение к RDBMS.
- CRUD операции.
14. Возможности по тестированию потоков и проверке
- Инструменты мониторинга.
- Логирование и отладка.
15. Взаимодействие с файлами
- Чтение и запись файлов.
- Работа с директориями
Дополнительные практические задания:
- Создать поток для импорта данных из базы данных в файл.
- Реализовать автоматическую очистку временных файлов.
Модуль 5: Распределенная работа и продвинутые возможности
Темы:
16. Работа с kafka
- Подключение к Kafka.
- Производители и потребители.
17. Особенности распределенной работы NiFi
- Архитектура кластера.
- Load balancing.
18. Удаленные группы в NiFi
- Настройка удаленных групп.
- Обмен данными между нодами.
19. NiFi registry настройка
- Хранение версий потоков.
- Управление схемами.
Дополнительные практические задания:
- Настроить взаимодействие между двумя экземплярами NiFi через удаленные группы.
- Создать проект в NiFi Registry и применить его в кластере.
Модуль 6: Продвинутые механизмы NIFI
Темы:
20. NiFi statless практика использования
- Stateless режим.
- Примеры применения.
21. Проектирование Flow лучшие практики
- Архитектурные принципы.
- Избегание распространенных ошибок.
Дополнительные практические задания:
- Реализовать поток для обработки данных с использованием Stateless.
Модуль 7: Скрипты для NiFi
Темы:
22. Record Scripting (Сервисы и процессоры)
- Скриптование для Record процессоров.
- Примеры на Groovy.
23. Scripting для Apache NIFI
- Языки поддерживаемые NiFi.
- Примеры скриптов.
Дополнительные практические задания:
- Написать простой скрипт для преобразования данных.
- Написать скрипт партиционирования входящих данных-
Модуль 8: Скрипты для NiFi
24. Разработка на Python для Apache NIFI
- Создание пользовательских процессоров на Python.
25. Разработка на Java для Apache NIFI
- Создание пользовательских процессоров на Java.
26. Разработка Сервисов для Apache NIFI
- Разработка пользовательских сервисов.
Дополнительные практические задания:
- Создать простой процессор на Python.
- Разработать пользовательский сервис для NiFi.
Заключение
27. Ответы на вопросы
- Ответы на вопросы слушателей.
- Обсуждение реальных кейсов.