Skip to content

Retail event streaming processing pipeline: Java + Apache Kafka → Apache Flink → (customizable sink). Data generation, validation, and aggregation.

Notifications You must be signed in to change notification settings

sol-2001/retail-processing-java-kafka-flink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Анализ данных из ритейла (master ветка)

1. Какие данные для этой области являются потоковыми?

В ритейле потоковыми данными могут быть:

  • Информация о продажах:
    • ID покупки (уникальный идентификатор транзакции).
    • Товар (название или артикул или id).
    • Сумма (стоимость покупки).
    • Время (метка времени продажи).

Пример формата данных (JSON):

{
    "sales_info": [
        {
            "purchaseId": "12345",
            "productId": "A1B2C3",
            "price": 150.0,
            "timestamp": "2024-12-10T15:45:00Z",
            "storeId": "SPB_01"
        }
    ]
}

2. Какие результаты мы хотим получить в результате обработки?

  • Аналитика продаж:
    • Общая сумма продаж за за час.
    • Общая сумма продаж за за день.
    • Средний чек по каждому магазину.

3. Как в процессе обработки можно задействовать машинное обучение? (не выполнять)

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

4. Как предметная область относится к запаздыванию обработки? Насколько это критично?

  • Критично для уведомлений: Уведомления о низком запасе должны быть отправлены оперативно (задержка ≤ 1-5 секунд), чтобы можно было своевременно пополнить товар.

  • Не критично для аналитики: Ежедневные отчеты о продажах или статистике могут быть обработаны с задержкой до нескольких минут.


5. Как предметная область относится к потере данных? Насколько это критично? Какую семантику следует выбрать?

  • Потеря данных критична:

    • Пропущенные продажи нарушат точность отчетов.
    • Потеря событий о низком запасе может привести к отсутствию товара в магазине.
  • Cемантика:

    • Для транзакций: "ровно один раз" (exactly once), чтобы избежать дублирования или пропуска данных.
    • Для уведомлений: "не менее одного раза" (at least once), чтобы гарантировать доставку даже при повторе.

About

Retail event streaming processing pipeline: Java + Apache Kafka → Apache Flink → (customizable sink). Data generation, validation, and aggregation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published