Хранение данных, изменяющихся во времени. Для последующего статистического анализа, какие существуют подходы?
Существует система автоматизации некоего бизнес-процесса. Её база данных (SQL Server) хранит только свое текущее состояние. Журнализации смены состояния каких-либо объектов или их частей нет. Естественно, что при таком состоянии дел невозможно ответить на вопросы типа: "А сколько заявок у нас было в N-м состоянии в D-ю дату?", "Как долго, в среднем, заявки находятся в состоянии S?", "Кто больше всех косячит в соблюдении бизнес-процесса, когда это было, и как часто?"
Отсюда вывод - прежде чем приступать к аналитике, нужно наладить систему хранения данных, причем так, чтобы можно было выбрать какой-либо момент времени и получить для него состояние OLTP-системы (в идеале, как параметр фильтра в запросе, ну или хранимой процедуры строящей датасет для отчета).
Подскажите, как на практике это реализовать? Может ссылки на книги-статьи по теме даст? Вполне возможно существуют готовые базы данных, оптимизированные для таких задач? Может кто реализовывал с применением SQL Server (настойчивое пожелание заказчика)?
EVG, мало инфы, потому что вы слишком абстрактно ставите задачу. Как хранить зависит от объекта и от целей хранения. Ничего из этого нам неизвестно, соответственно и советы все будут как "пальцем по воде водить"
У опытных разработчиков и аналитиков такие вопросы решаются на этапе проектирования системы. Учитывая детализацию вопроса от себя могу посоветовать только использовать nosql или sql с nosql возмлжностями, например постгрес очень хорошо работает с json
К сожалению не вариант - очень много нужно тогда журналировать.
Я хорошо понимаю, что здесь нужно делать периодически что-то вроде снимков состояния БД или разницы ее состояния по сравнению с предыдущим снимком. Но практического опыта нет. Также я уверен, что подобные задачи решались и чуть ли не являются каждодневными для опытных bi-щиков.
Снимки это сложно. А если база большая, то ещё и накладно.
Даже если получится делать снимки, будет сложно делать подсчеты, кто, сколько, когда и т.п. Разве что в качестве "снимка" вы будете хранить статистику.
dollar, Ресурсы для хранения снимков или их дифов имеются. Вопрос в реализации. То есть, каким образом это делают опытные разработчики? В сети как-то мало инфы нашел, может не стой стороны пытался копать. Единственно что по шел по теме - курс на интуите, но там довольно много теории без практических примеров, хот и точно в цель. https://www.intuit.ru/studies/courses/599/455/info