Например, наше приложение отслеживает перемещения животных и цены на ферму. Чтобы подсчитать текущий запас, самое простое решение - получить начальный номер, а затем сложить все движения в и из него, пока у нас не будет текущего номера. Но это интенсивно использует память и становится все медленнее и медленнее, так как число движений растет год за годом.
Мы не можем позволить себе роскошь «заморозить» год, поэтому она больше не может принимать изменения, система должна быть способна обрабатывать изменения в движении в любой момент времени, а затем отображать обновленные цифры в режиме реального времени.
Это не просто номера акций; мы должны отслеживать большое количество таких переменных и составлять отчеты за каждый период (день, неделя, месяц, год), которые включают в себя сводные расчеты на основе этих переменных.
Какой самый распространенный, предпочтительный, «лучший», самый быстрый и элегантный способ обработки потоков данных, которые пересекают несколько лет, для целей расчета и отчетности? Как будут соотноситься дизайн базы данных и архитектура в этом сценарии (т. Е. Будет ли хорошо использовать ORM, если схема базы данных хорошо спроектирована?). Важнейшими требованиями здесь являются оптимальная производительность и доступность в режиме реального времени.
Я видел в крупномасштабных системах, таким образом, вид работы разбивается на временные интервалы, например, сводные таблицы за неделю, месяц, год. Мне особенно интересно, есть ли общая схема проектирования для решения этой проблемы.