Использование представлений в хранилище данных - PullRequest
5 голосов
/ 29 мая 2009

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

Извините, если задается основной вопрос, у меня нет опыта работы со складом и услугами аналитики

Спасибо

Ответы [ 4 ]

4 голосов
/ 29 мая 2009

Службы Analysis Services и представления имеют принципиальное отличие в том, что они будут использоваться различными инструментами отчетности или аналитики.

Если у вас есть отчеты на основе SQL (например, через службы Reporting Services или Crystal Reports), для них могут быть полезны представления. Представления также могут быть материализованы (они называются индексированными представлениями на SQL Server). В этом случае они сохраняются на диске и могут использоваться для уменьшения количества операций ввода-вывода, необходимых для выполнения запроса к представлению. Запрос к нематериализованному представлению все равно попадет в базовые таблицы.

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

Службы Analysis Services используют различные инструменты запросов и отчетов, а также выполняют предварительные вычисления и сохраняют сводные данные. Интерфейс к серверу отличается от SQL Server, поэтому инструменты создания отчетов или запросов для куба (например, ProClarity) отличаются от инструментов для создания отчетов по базе данных (хотя некоторые системы имеют возможность запрашивать любой из них).

3 голосов
/ 29 мая 2009

Кубы - намного лучший подход для суммирования данных и выполнения многомерного анализа.

Проблема с представлениями имеет две стороны: плохая производительность (все эти объединения и группировка) и невозможность нарезать и разрезать данные пользователем.

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

2 голосов
/ 29 мая 2009

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

Их также можно использовать для реализации пользовательских реализаций секционирования таблиц и развертывания федеративных баз данных.

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

0 голосов
/ 29 мая 2009

Я был в одной лодке несколько лет назад. В моем случае у меня был доступ к другому серверу SQL. На втором сервере я создал сервер связи со складом, а затем создал свои представления и материализованные представления на втором сервере. В каком-то смысле у меня было хранилище данных и хранилище отчетов. Для проекта этот подход работал лучше всего, поскольку мы должны были предоставить доступ к данным другим отделам и некоторым поставщикам. Разделение серверов на два отдельных экземпляра, один для хранилищ и один для отчетов, также снизил некоторые риски, связанные с безопасным доступом.

...