Представьте: вы пытаетесь пить из пожарного шланга с данными и одновременно жонглировать белками. Именно так выглядит современный инжиниринг данных без подходящих инструментов. Давайте заменим этот хаос на элегантную систему обработки данных с помощью Apache NiFi и Kafka Connect. К концу этого руководства вы будете работать с данными как профессионал (без следов гаечного ключа на клавиатуре).
Создание вашей станции для работы с данными
Сначала настроим наш инструментарий с помощью Docker:
version: '3.7'
services:
kafka:
image: bitnami/kafka:3.4
ports:
- "9092:9092"
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
nifi:
image: apache/nifi:latest
ports:
- "8080:8080"
environment:
- NIFI_WEB_HTTP_PORT=8080
Запустите это с помощью docker-compose up
и наблюдайте за началом волшебства. Наш брокер Kafka похож на друга, который никогда ничего не забывает — он запомнит каждое отправленное вами сообщение.
Танго потока данных
Создадим наш первый конвейер данных, которым гордился бы даже Борхес:
В NiFi перетащите эти процессоры:
- GenerateFlowFile (Наш кран с данными)
- Установите
Custom Text
на{"user_id": "${UUID()}", "ts": "${now()}"}
- Установите
- PublishKafka (Почтальон)
- Брокеры Kafka:
localhost:9092
- Название темы:
user_activity
- Гарантия доставки:
Guarantee Replicated Delivery
(Потому что, может быть, в любви, но точно в данных, мы хотим обязательств)
- Брокеры Kafka:
- ConsumeKafka (Любопытный сосед)
- Подключитесь к тому же брокеру
- Установите
auto.offset.reset
наearliest
(Мы хотим ВСЕ сплетни)
Когда данные становятся серьёзными
Для моментов, когда вам нужно корпоративное решение, давайте поднимем уровень:
Профессиональный совет: секрет NiFi заключается в его способности одновременно работать с несколькими версиями Kafka. Это как иметь машину времени для ваших конвейеров данных!
Отладка как детектив данных
Когда что-то идёт не так (а это будет), попробуйте эти приёмы:
- Используйте
tcpdump -i any -A port 9092
для отслеживания трафика Kafka - Установите уровень журнала NiFi на DEBUG для процессоров Kafka
- Проверьте смещения потребителей Kafka с помощью:
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --group nifi-group
Помните: хороший специалист по работе с данными всегда носит с собой метафорическую вантуз.
Финальный сброс
Теперь вы создали систему потоков данных, которая справится с чем угодно: от отслеживания наблюдений НЛО до мониторинга показателей выпечки бабушкиных печений. Истинная мощь заключается в сочетании простоты перетаскивания NiFi с надёжной передачей сообщений Kafka.
В следующий раз, когда кто-нибудь спросит: «Где данные?», вы сможете усмехнуться и ответить: «Проходят через мои конвейеры как цифровое шампанское». Только не забудьте взять с них плату за консультации за такую остроту.