Рекомендации по рукописным извлечениям, подобным olap, из реляционной базы данных - PullRequest
0 голосов
/ 10 октября 2011

За эти годы мы внедрили серию веб-отчетов, обобщающих исторические бизнес-данные (продажи продуктов, трафик и т. Д.). Это сильно зависит от сложных запросов SQL, и начальник ожидает, что результаты будут в режиме реального времени, но для их выполнения требуется до минуты. Отчеты настраиваются в нескольких измерениях.

Я провел некоторые фундаментальные исследования, и, похоже, нам нужен какой-то OLAP (?), ETL (?), Что угодно.

Это правда? Должны ли мы конвертировать в целый пакет и отбрасывать наши любимые разработки, или есть возможность сохранить его реляционным, основанным на SQL, и приблизиться к выделенному решению, просто предварительно рассчитав некоторые оптимизированные представления с помощью пакетного процесса, запущенного на ночь? У вас есть ссылки на хорошую документацию по этому вопросу?

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Вы можете выполнять ETL (извлечение, преобразование и загрузку) ночью, загружая (возможно, суммированные) данные в таблицы, которые обычно могут быть запрошены довольно быстро.Соответствующие индексы по-прежнему важны.

Часто имеет смысл поместить эти сводные таблицы в другую схему, в другую базу данных или на другой сервер, но у вас нет абсолютно длясделайте это.

Структура таблиц важна, и она не похожа на разработку таблиц для системы OLTP.В IBM Redbooks есть несколько названий, которые могут помочь вам в разработке таблиц.

Большинство современных баз данных поддерживают аналитические функции SQL.См., Например, Аналитические функции на примере для Oracle или Оконные функции для PostgreSQL.

0 голосов
/ 10 октября 2011

В долгосрочной перспективе кажется, что переход к хранилищу данных определенно принесет вам пользу (как предложено в ответе Catcall). Вы можете использовать существующие отчеты в качестве отправной точки для требований вашего хранилища данных.

В краткосрочной перспективе вы можете построить сводные таблицы, оптимизированные под ваши существующие требования к отчетности. Это, вероятно, следует рассматривать как временный промежуток, если вы никогда больше не будете изменять эти отчеты.

Вам также может пригодиться просмотр таблиц секционирования в вашей базе данных по дате / времени, так как вы, вероятно, все еще захотите сообщать данные текущего дня для отчетности в реальном времени.

...