В ритейле потоковыми данными могут быть:
- Информация о продажах:
- ID покупки (уникальный идентификатор транзакции).
- Товар (название или артикул или id).
- Сумма (стоимость покупки).
- Время (метка времени продажи).
Пример формата данных (JSON):
{
"sales_info": [
{
"purchaseId": "12345",
"productId": "A1B2C3",
"price": 150.0,
"timestamp": "2024-12-10T15:45:00Z",
"storeId": "SPB_01"
}
]
}- Аналитика продаж:
- Общая сумма продаж за за час.
- Общая сумма продаж за за день.
- Средний чек по каждому магазину.
- Прогнозирование спроса на товары.
- Обнаружение подозрительных транзакций (мошенничество).
- Персонализация рекомендаций для покупателей.
-
Критично для уведомлений: Уведомления о низком запасе должны быть отправлены оперативно (задержка ≤ 1-5 секунд), чтобы можно было своевременно пополнить товар.
-
Не критично для аналитики: Ежедневные отчеты о продажах или статистике могут быть обработаны с задержкой до нескольких минут.
5. Как предметная область относится к потере данных? Насколько это критично? Какую семантику следует выбрать?
-
Потеря данных критична:
- Пропущенные продажи нарушат точность отчетов.
- Потеря событий о низком запасе может привести к отсутствию товара в магазине.
-
Cемантика:
- Для транзакций: "ровно один раз" (exactly once), чтобы избежать дублирования или пропуска данных.
- Для уведомлений: "не менее одного раза" (at least once), чтобы гарантировать доставку даже при повторе.