powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Правильная организация хранения исторических данных для существующей БД
13 сообщений из 13, страница 1 из 1
Правильная организация хранения исторических данных для существующей БД
    #38801886
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!
Передо мной стоит задача организовать сохранение исторических данных для существующей БД. Организация занимается арендой недвижимости.
Есть обычная БД(3НФ) которая содержит список текущих предожений.
Вся информация об объектах аренды содержится в основной таблице [Предложения] есть поле Дом(FK) , информация о его номере, местоположении разнесена на таблицы [Дома] , [Улицы] , [Районы] . Таким образом информация об адресе предложения получается запросом с JOINами из этих таблиц.

Каким-то образом нужно сохранять историю, чтобы в клиенте оператор мог вывести на графики информацию следующего рода:
Как изменялась средняя стоимость аренды 2х-комнатной квартиры на улице X.
Как изменялось количество предложений по аренде квартир в доме X.
Как изменялось общее количество предложений по аренде квартир площадью больше X.


Комбинация может быть любая, и запрос должен иметь приемлемый таймаут.
Наверняка есть какие-то паттерны реализации подобного функционала.
Как я понял из теории, получается что сейчас есть только БД, а нужно смотреть в сторону понятий OLAP Data Warehouse или Data Mart. Или это это можно реализовать в рамках классической реляционной БД? Какие есть варианты? Спасибо!
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38801915
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeOFYИли это это можно реализовать в рамках классической реляционной БД?

Хранимые агрегаты с нужной гранулярностью и параметрами можно организовать и в "обычной
БД". Для твоей задачи, возможно, хватит и materialized view.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38801977
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Отлично, 3 новых понятия для изучения.
Может посоветуешь ссылку на ресурс с которого можно начать?
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802827
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, я был бы очень признателен, если бы ты дал немного более развернутый ответ. Мне надо понять, с чего начать изучение данной тематики.
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802830
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начни с руководства по языку SQL. Наплюнь на "приемлемый таймаут" и добейся, чтобы твои
запросы извлекали необходимую информацию из уже существующей БД. Потом будешь читать о их
оптимизации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802847
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, в существующей БД есть только данные на текущий момент. Я пытаюсь понять как правильно организовать сохранение истории, чтобы можно было на графике увидеть изменения цены объектов с течением времени.
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802857
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeOFYв существующей БД есть только данные на текущий момент.
А куда деваются данные за прошедший момент?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802870
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, записи из таблицы [Предложения] просто удаляются.
На другом форуме(ссылка в личке), мне посоветовали, что можно не удалять записи, а добавить столбцы
DateFrom и DateTo , записывать туда когда объект выставили, а когда сняли, таким образом все информация для истории сохранится.

Но если просто делать запросы для анализа истории цен к этой таблице, то опасаюсь следующего:
ЯОбъемы информации большие.
В базе в данный момент времени находится 300К объявлений.
Ежедневно она обновляется, возьмем 5% = 15К объявлений добавляется, столько же удаляется.
Таким образом за год будет ~ 5.5КК записей в таблице [Предложения] .
Таблица [Дома] содержит 140К записей.
Скажем, я хочу получить график динамики стоимости аренды 2х-комнатных квартир за 3 года с шагом один месяц.
Получается, необходимо 36 запросов к этой БД, каждый из которых должен посчитать среднюю стоимость за месяц, и не просто всех квартир, еще и удовлетворяющих некоторым условиям (2х-комнатные).
Я понимаю, что у меня не хватает фундаментальных знаний, и что способов реализации много, но хочу выбрать подходящий подход, чтобы не идти в неправильном направлении. Я уже начал читать про IndexedView's и хранимые агрегаты(как я понял, это хранимые процедуры с агрегатными функциями, гранулярность - что-то типа частоты с которой надо ими делать выборку).
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802871
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лички нет. В общем, на сайберфоруме тема.
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802872
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищите по форуму
навскидку
http://www.sql.ru/forum/1116400-1/puteshestviya-v-proshloe
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802874
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeOFYмне посоветовали, что можно не удалять записи, а добавить столбцы
DateFrom и DateTo, записывать туда когда объект выставили, а когда сняли, таким образом
все информация для истории сохранится.
И это совершенно правильное предложение. Собственно, я удивлён, что в этой базе таких
полей сейчас нет.

ValeOFYПолучается, необходимо 36 запросов к этой БД, каждый из которых должен
посчитать среднюю стоимость за месяц
Вот именно поэтому я и сказал сначала читать руководство по языку SQL, ибо "36 запросов"
это бред. Хотя, конечно, тоже вариант. Причём один из наибыстрейших.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38802882
ValeOFY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovВот именно поэтому я и сказал сначала читать руководство по языку SQL, ибо "36 запросов"
это бред. Хотя, конечно, тоже вариант. Причём один из наибыстрейших.
=)) Буду изучать.
В общем, как я понял, надо оставлять все объявления, добавить период актуальности, а потом уже выбирать инструменты для выборки данных для аналитики. Например, вышеуказанные IndexedViews. Направление определено.
Благодарю за помощь!
...
Рейтинг: 0 / 0
Правильная организация хранения исторических данных для существующей БД
    #38803278
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeOFY, для начала нужно организовать наличие необходимой информации. По уровню вопроса могу рекомендовать следующее решение: оставить всё как есть, добавить таблицу История предложений , куда триггером с предложений скидывать всю интересную информацию (когда стояло, было ли успешно закрыто итп). Затем реализовать необходимый функционал запросов к этой истории. Когда и если начнёт подтормаживать - смотреть, как эти запросы ускорить.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Правильная организация хранения исторических данных для существующей БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]