# Технологии Сбора Данных (Data Ingestion)

Прежде чем данные будут храниться и обрабатываться, их необходимо собрать из множества источников.

## Пакетная Загрузка (Batch Ingestion)

Подходит для случаев, когда не требуется мгновенная реакция. Данные загружаются по расписанию (раз в час, день) или по факту появления файла.

* **Инструменты:**
  * **Фреймворки для ETL (Extract, Transform, Load):** Основная рабочая лошадка здесь — **Apache Spark**. Он может читать данные из хранилища (S3, HDFS) большими блоками, обрабатывать их и записывать обратно.
  * **Оркестраторы:** Для управления расписанием и зависимостями между задачами используются оркестраторы, такие как **Apache Airflow**.
  * **Специализированные инструменты:** Многие платформы, как Hydrolix, предлагают встроенные механизмы для автоматической загрузки новых файлов из бакетов ("Autoingest").

## Потоковая Загрузка (Stream Ingestion)

Обеспечивает захват данных в реальном времени по мере их генерации (клики на сайте, транзакции, показания датчиков).

* **Инструменты:**
  * **Брокеры сообщений (Message Brokers):** Центральный элемент потоковой архитектуры. **Apache Kafka** является безусловным стандартом де-факто. Он выступает в роли высоконадежного и масштабируемого конвейера. Также существуют альтернативы, такие как **Amazon Kinesis** или **Redpanda**.
  * **Потоковые процессоры (Stream Processors):** Эти движки "подписываются" на потоки из Kafka и выполняют над данными операции в реальном времени. Популярные выборы — **Apache Flink** (лидер по возможностям для сложной обработки с состоянием), **Apache Spark Streaming** (микропакетная обработка), **Kafka Streams** (легковесная библиотека).
  * **HTTP API:** Простой способ для приложений отправлять данные напрямую через REST-интерфейс.
