У меня есть требование, когда у меня есть большие наборы входящих данных в систему, которой я владею.
Единица данных в этом наборе имеет набор неизменяемых атрибутов + присоединенное к ней состояние. Состояние динамическое и может измениться в любой момент.
Требования следующие:
- Большие наборы данных могут испытывать изменения состояния. Обновления должны быть быстрыми.
- Я должен иметь возможность агрегировать данные, основанные на различных атрибутах.
- В идеале должен быть способ сопоставить отдельные блоки данных с агрегированными результатами, т.е. я хочу углубиться в конкретные транзакции, которые произвели определенную агрегацию. (Мне известны условия гонки, такие как изменение состояния блока данных после выполнения агрегации, но это ожидаемо).
- Все агрегации основаны на времени, т. е. сумме x по развороту y за день, 2 дня, неделю, месяц и т. д.
Я оцениваю различные технологии для удовлетворения этих вариантов использования и хотел бы услышать ваши предложения. Я взглянул на Hive/Pig, которые подходят для варианта использования аналитики/агрегации. Однако меня беспокоит большое количество обновлений, которые могут появиться в системе в любое время. Я не уверен, как это работает с файлами HDFS по сравнению с индексированной базой данных (sql или nosql).