Как сохранить статистические данные за последний день / неделю / месяц / год в потоке данных?
Каков наилучший способ хранения данных таким образом, чтобы я мог получать ответы на запросы в режиме реального времени, такие как "подсчет последних 2 недель неудачных транзакций", "подсчет учетных записей, созданных за последние 2 года". Подсчет количества строк каждый раз не является возможным, так как количество отдельных записей в таблице огромно и может занять часы для вычисления.
Меня интересует только поиск агрегатов в режиме реального времени в виде скользящих окон. Кроме того, я не хочу сохранять данные старше 2 лет и хочу, чтобы они удалялись автоматически.
Есть ли стандартный способ решения этой проблемы? Помогают ли такие услуги, как красное смещение / кинезис?
Спасибо в ожидании.
1 ответ
Для большинства решений для хранилищ данных мы создаем сводные таблицы с разрешением до рабочей даты, что позволяет очень быстро предоставлять данные за 2 года и более. Kinesis, безусловно, может помочь Redshift принимать данные с высокой пропускной способностью, что позволит вам обновлять статистические данные за день в реальном времени. Единственная сложность этого подхода заключается в том, что вам нужно заранее знать, о каких агрегатах вы хотите отчитываться, чтобы их можно было настроить, но приличный бизнес-аналитик должен с самого начала предоставить вам большинство показателей покрытия.