Подходы к сбору Big Data
Лекция 7
Зачем собирать большие данные
Источники Big Data
Пакетный и потоковый подходы к сбору
Пакетный (Batch) сбор
Данные собираются за определенный период (час, день, неделя) и затем загружаются или обрабатываются одной большой задачей.
Преимущества:
Недостатки:
Потоковый (Streaming) сбор
Данные обрабатываются почти сразу после появления - каждое отдельное событие передается, обрабатывается и сохраняется
Преимущества:
Недостатки:
Архитектуры для сбора и обработки данных: ETL, ELT
ETL (Extract – Transform – Load)
Данные извлекаются, предварительно трансформируются (очистка, агрегации), затем загружаются в целевое хранилище.
Подходит, когда нужно обеспечить чистоту данных до попадания в основное хранилище.
ELT (Extract – Load – Transform)
Данные сначала загружаются сырьем (raw) в хранилище, и преобразования выполняются уже в нем (на уровне хранилища).
Это удобно, если хранилище поддерживает мощные трансформации (например, аналитическая СУБД, облачные хранилища).
Архитектуры для сбора и обработки данных: Lambda, Kappa
Lambda-архитектура
Kappa-архитектура
Инструменты для извлечения и передачи данных
Инструмент | Основное назначение | Особенности и преимущества | Тип задач |
Apache Kafka | Передача потоковых данных между системами | Высокая пропускная способность, устойчивость, масштабируемость; используется для событийных архитектур | Стриминг, интеграция микросервисов, логирование |
Kafka Connect | Подключение источников и приемников данных без кода | Поддерживает коннекторы к БД, REST API, файлам; легко встраивается в Kafka | Интеграция источников, ETL/ELT pipelines |
Apache NiFi | Визуальное проектирование потоков данных | Более 300 готовых процессоров, гибкая маршрутизация, контроль потока, приоритеты, безопасность | Dataflow orchestration, интеграция систем, очистка данных |
Инструменты для извлечения и передачи данных
Инструмент | Основное назначение | Особенности и преимущества | Тип задач |
Apache Airflow | Оркестрация и планирование ETL/ELT процессов | DAG-модель (Directed Acyclic Graph), управление зависимостями, интеграция с BigQuery, Spark, S3 | Планирование и автоматизация ETL/ELT |
Talend | Платформа для ETL/ELT и интеграции данных | Поддержка множества источников, визуальный интерфейс, коммерческие модули для корпоративных систем | ETL-процессы, data migration, data quality |
Informatica PowerCenter | Корпоративный ETL/ELT-инструмент | Высокая производительность, управление метаданными, аудит и безопасность | Корпоративный ETL, data warehouse загрузка |
Тип задачи | Оптимальные инструменты | Почему именно они |
Потоковая обработка (streaming) | Apache Kafka, Kafka Streams, Apache Flink | Kafka (высокая отказоустойчивость), Flink (анализ потоков на лету) |
Интеграция источников данных (API, базы, файлы) | Apache NiFi, Kafka Connect, Talend | NiFi (визуально строить маршруты); Kafka Connect (без кода); Talend (для более сложных сценариев) |
Пакетная загрузка и преобразование данных (ETL/ELT) | Apache Airflow, Talend, Informatica PowerCenter, Pentaho | Airflow (оркестратор ETL-пайплайнов); Talend и Informatica (промышленные ETL-платформы) |
Очистка и нормализация данных | Apache NiFi, Talend Data Quality, Python (pandas) | NiFi (очистка в потоке; Talend (качество данных) |
Интеграция данных в Data Lake / Data Warehouse | Airflow, Kafka, AWS Glue, Google Dataflow | Сбор из разных источников в хранилища |
Мониторинг и аудит потоков данных | NiFi, Airflow, Prometheus + Grafana | NiFi (потоки и логи), Airflow (задачи), Prometheus (метрики) |
Реактивные системы (реагируют на события) | Kafka, Flink, Spark Streaming | Позволяют быстро реагировать на изменения: новые заказы, клики, логи и т.д. |
Проблемы и риски при сборе данных
Примеры реальных сценариев
Заключение
Заключение
Подходы к сбору Big Data
Лекция 7