Модель данных

advertisement
Выбор табличного или многомерного
моделирования для использования
в службах SQL Server 2012 Analysis
Services
Техническая статья о бизнес-аналитике Майкрософт
Авторы
Hitachi Consulting:
Лиз Витт — автор
Скотт Камерон — автор
Хиллари Фейер — рецензент
Майкрософт:
T.K. Ананд — рецензент
Ашвини Шарма — рецензент
Опубликовано: май 2012 г.
Область применения: SQL Server 2012 Analysis Services
Сводка. Технический документ содержит практические рекомендации для
специалистов по бизнес-аналитике и ответственных лиц, призванные помочь
им сделать правильный вывод о том, насколько табличное или многомерное
моделирование в службах SQL Server 2012 Analysis Services подходит для
очередного решения в области бизнес-аналитики.
Авторские права
Документ предоставляется «как есть». Сведения и мнения, содержащиеся в этом
документе, включая URL-адреса и ссылки на другие веб-сайты, могут изменяться
без предварительного уведомления. Вы принимаете на себя риск, связанный
с использованием этого документа.
Данный документ не предоставляет пользователям права интеллектуальной
собственности на какие-либо продукты Майкрософт. Разрешается копирование
и использование документа только для внутреннего использования с целью
предоставления справочных сведений.
© Корпорация Майкрософт, 2012. Все права защищены.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
2
Содержание
Введение........................................................................................................................................................ 4
Учебник по моделированию BISM .................................................................................................... 4
Многомерное моделирование....................................................................................................... 5
Табличное моделирование .............................................................................................................. 5
Клиентские средства анализа BISM................................................................................................... 6
Модель данных........................................................................................................................................... 6
Связи данных .......................................................................................................................................... 7
Связи «один ко многим» .............................................................................................................. 7
Связи «многие ко многим» .......................................................................................................... 7
Ссылочные связи .............................................................................................................................. 8
Иерархии .................................................................................................................................................. 8
Стандартные иерархии .................................................................................................................. 8
Неоднородные иерархии ............................................................................................................. 8
Иерархии типа «родители-потомки»...................................................................................... 9
Дополнительные функции моделирования ............................................................................. 9
Бизнес-логика ........................................................................................................................................... 10
Преобразования на уровне строк .............................................................................................. 10
Cтатистические значения ................................................................................................................ 11
Вычисления............................................................................................................................................ 12
Сценарии бизнес-логики ................................................................................................................ 14
Логика иерархии ............................................................................................................................ 14
Пользовательские свертки ........................................................................................................ 15
Полуаддитивные меры ................................................................................................................ 15
Логика операций со временем ............................................................................................... 16
Ключевые показатели эффективности (KPI)....................................................................... 16
Конвертация валюты .................................................................................................................... 16
Именованные наборы ................................................................................................................. 17
Доступ к данным и хранение ............................................................................................................. 17
Производительность и масштабируемость ............................................................................ 17
Многомерные модели ................................................................................................................. 17
Табличные модели ........................................................................................................................ 19
Программирование ........................................................................................................................... 21
Безопасность ............................................................................................................................................. 22
Безопасность на уровне строк или атрибутов ...................................................................... 22
Динамическая безопасность ......................................................................................................... 23
Расширенная безопасность и безопасность на уровне ячеек........................................... 23
Сводка........................................................................................................................................................... 25
Дополнительные сведения ................................................................................................................. 30
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
3
Введение
Моделирование данных — это область, в которой специалисты по бизнесаналитике уже долгое время преследуют одну цель: структурировать
спорадические данные в одну аналитическую модель, которая будет эффективно
обслуживать потребности бизнеса в отчетности и анализе. Так как с течением
времени моделирование данных развивается, предлагая новые технологии
и средства, организации вынуждены постоянно совмещать варианты
моделирования так, чтобы не только удовлетворить потребности в анализе
данных, но и обеспечить единообразную аналитическую систему.
С учетом этих требований корпорация Майкрософт в выпуске SQL Server 2012
представила семантическую модель бизнес-аналитики (BISM), единую модель,
которая поддерживает широкий спектр функций составления отчетов и анализа
путем интеграции двух методов моделирования служб Analysis Services.


Многомерное моделирование, впервые использованное в службах SQL
Server 7.0 OLAP Services и усовершенствованное в службах SQL Server 2012
Analysis Services, позволяет специалистам по бизнес-аналитике создавать
сложные многомерные структурные кубы, используя стандартную сетевую
аналитическую обработку (OLAP).
Табличное моделирование, которое впервые появилось в PowerPivot для
Microsoft Excel 2010, обеспечивает функции самостоятельного
моделирования данных как для компаний, так и для аналитиков данных.
Табличное моделирование более привычно пользователям, которые
длительное время работали с данными при помощи таких программных
средств, как Excel и Microsoft Access. В SQL Server 2012 табличное
моделирование было расширено, и теперь специалисты по бизнесаналитике могут создавать табличные модели в службах Analysis Services
или импортировать табличную модель из PowerPivot в службы Analysis
Services. Обратите внимание, что модель PowerPivot не может быть
импортирована в многомерную модель служб Analysis Services.
Цель этого технического документа — предоставить рекомендации, помогающие
решить, какой метод моделирования в службах SQL Server 2012 Analysis Services,
табличный или многомерный, лучше всего подходит для конкретного решения
бизнес-аналитики. Приведенные в этом документе описания продуктов
и рекомендации основываются на службах SQL Server 2012 Analysis Services,
выпущенных в марте 2012 г. Функции продукта и рекомендации могут измениться
по мере развития многомерного и табличного моделирования с помощью служб
Analysis Services в последующих версиях SQL Server.
Учебник по моделированию BISM
Прежде чем говорить об отличиях между многомерным и табличным
моделированием более подробно, ознакомимся с краткими сведениями по
каждому методу моделирования BISM, который обеспечивают службы SQL Server
2012 Analysis Services.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
4
Многомерное моделирование
По сути, многомерное моделирование создает кубы, состоящие из мер и измерений
на основе данных из реляционной базы данных. Для использования этого варианта
сервер служб Analysis Services должен быть настроен для работы в многомерном
режиме, то есть в режиме по умолчанию. В этом режиме ядро OLAP использует
многомерную модель для статистической обработки больших объемов данных
и обеспечения быстрого отклика на запросы. Ядро OLAP может хранить агрегаты
на диске в многомерном хранилище OLAP (MOLAP) или в реляционной базе
данных с помощью реляционного хранилища OLAP (ROLAP).
Ключевые характеристики многомерного моделирования.


Расширенная модель данных. Многомерная модель служб SQL Server 2012
Analysis Services шестого выпуска обеспечивает расширенную функциональность
для моделирования мер и измерений из простых и сложных наборов данных,
которые обычно имеются в хранилищах данных компаний. Более сложные
наборы данных обычно включают такие расширенные функции, как связи
«многие ко многим», иерархии «родитель-потомки» и локализация.
Многомерная модель обеспечивает эти функции без каких-либо
дополнительных настроек.
Сложная аналитика. Многомерная модель также обеспечивает расширенные
вычислительные возможности и язык запросов, который называется
«многомерные выражения» (MDX). С помощью многомерных выражений
можно создавать сложную бизнес-логику и вычисления, применимые в любой
многомерной области для финансового распределения, вычислений на основе
временных рядов или полуаддитивных показателей.
Несмотря на то что всеобъемлющее моделирование данных и сложная аналитика —
важные преимущества многомерного моделирования, часто приходится мириться
с длительными циклами разработки и медленной адаптацией в меняющихся
бизнес-условиях. Кроме того, многомерный метод обычно требует наличия
расширенных навыков моделирования и знания многомерных выражений.
Табличное моделирование
При табличном моделировании данные организуются в связанные таблицы. Если
необходимо использовать табличное моделирование, службы Analysis Services
должны быть настроены на работу в табличном режиме. В табличном режиме
можно использовать расположенную в памяти подсистему xVelocity (прежнее
название — Vertipaq) для загрузки табличных данных в память с целью
обеспечения быстрого отклика на запросы либо использовать DirectQuery для
передачи запросов к базе данных-источнику с тем, чтобы задействовать ее
функции обработки запросов.
Ключевые характеристики табличного моделирования.

Привычная среда. Работа с табличными данными будет привычной для тех,
кто регулярно работает с табличными данными из реляционных баз данных,
Excel или Access. Кроме того, в написании вычислений используются выражения
анализа данных (DAX), язык формул, который считается расширенной версией
языка формул Excel. Навыки, необходимые для построения табличных моделей,
более распространены. Кроме того, они легче для изучения, чем навыки,
необходимые для построения многомерных моделей.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
5

Гибкость. Поскольку не существует жесткого порядка организации данных
в меры и измерения, табличное моделирование может сократить циклы
разработки за счет ускоренной подготовки данных и отсутствия жестких
требований по сравнению с многомерными моделями. Такая архитектура
данных также лучше подходит для учета изменений в моделировании данных,
вносимых со временем, когда потребуется обновить связи и вычисления
в соответствии с изменяющимися бизнес-потребностями.
Привычная среда и гибкость — ключевые преимущества табличного
моделирования, однако есть и недостатки. Например, табличное моделирование
может не подходить для решений с очень сложными наборами данных или
сложной бизнес-логикой. Пользователи языка DAX могут создавать формулы DAX
и использовать аналитические функции, недоступные в табличном моделировании.
В таких случаях можно более эффективно использовать расширенные
возможности, которые обеспечивает многомерное моделирование.
Клиентские средства анализа BISM
При работе как с многомерным, так и с табличным моделированием важно
помнить, что для составления запроса для модели клиентские средства позволяют
формировать либо многомерные выражения, либо выражения DAX. Службы SQL
Server Reporting Services и в Excel — это примеры клиентских средств, которые
формируют запросы с помощью многомерных выражений, а Power View — это
пример клиентского средства, формирующего запросы с использованием DAX.
Существует два исключения из этого правила.


Power View — это интерактивное средство просмотра и представления
данных, которое является функцией надстройки служб SQL Server 2012
Reporting Services для выпуска Microsoft SharePoint Server 2010 Enterprise
Edition. Чтобы использовать Power View или другой клиент анализа,
применяющий DAX для составления запросов к BISM, следует
воспользоваться табличной моделью. Ожидается, что последующие версии
SQL Server будут обеспечивать возможность использования DAX для
составления запросов к многомерным моделям, чтобы к ним можно было
получить доступ с помощью таких клиентских средств, как Power View.
Для табличных моделей, настроенных для использования DirectQuery,
требуется клиентское средство для создания запросов DAX, например Power
View. Ожидается, что в последующих версиях SQL Server табличные модели
будут настроены на использование DirectQuery и принятие запросов
многомерных выражений.
Модель данных
Характеристики модели данных — это основной момент, который следует
учитывать при выборе метода моделирования.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
6
Связи данных
Основное требование к любой модели данных — правильное представление того,
как связаны и взаимодействуют элементы данных внутри этой модели (как
элементы мозаики). Как для табличных, так и для многомерных моделей требуется
определить связи между исходными таблицами данных. Стандартные связи,
применяемые в моделировании данных, — это связи «один ко многим», «многие
ко многим» и ссылочные связи.
Связи «один ко многим»
В связи «один ко многим» одна запись из одной таблицы связана с несколькими
записями из другой таблицы. Примером связи «один ко многим» может быть
заказчик, сделавший несколько заказов на покупку. Как табличные, так
и многомерные модели данных способны работать со связями «один ко многим».
Связи «многие ко многим»
В связи «многие ко многим» несколько записей из одной таблицы связаны
с несколькими записями из другой таблицы. Например, у одного заказчика есть
связь «один ко многим» по заказам на продажу. Однако каждого заказчика можно
отнести к одному или нескольким профилям заказчиков (например, «спортсменлюбитель», «игрок-любитель» и «эксперт по фитнесу»). Анализ заказов по
профилю заказчиков — основная проблема связи «многие ко многим», когда
может возникнуть двойной подсчет. Заказ на один велосипед от одного заказчика,
который является спортсменом-любителем и экспертом по фитнесу, при
суммировании заказов по профилю заказчиков может быть засчитан дважды.
Обычно связи «многие ко многим» разбивают на две связи «один ко многим»
с помощью моста или промежуточной таблицы, как показано на рис. 1.
Идентификатор...
Имя клиента
1
…
Elizabeth Johnson
…
Идентифи...
1
1
1
…
Таблица Customer
CustomerID
1
1
1
…
Заказ на ...
S9100
S9101
S9102
…
Объем ...
$
4000
$
2500
$
7000
…
Таблица Sales Order
Профиль клиента
Любитель спорта
Игрок-любитель
Специалист по ...
…
Мост и промежуточная таблица
для указания профиля заказчика
Рис. 1. Пример связи «многие ко многим»
В многомерных моделях связь «многие ко многим» можно определить и построить
напрямую в модели данных путем определения таблицы-моста и сопоставления
этой таблицы с другими таблицами в модели. При выполнении статистической
обработки службы Analysis Services применяют специальную функцию, чтобы
суммирование было правильным и суммы не были преувеличены.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
7
Табличные модели для служб SQL Server 2012 Analysis Services не поддерживают
определения связей «многие ко многим». Однако для создания формул,
работающих со связью «многие ко многим», можно использовать язык DAX.
Ссылочные связи
Модель данных может содержать набор общих атрибутов, связанных с несколькими
сущностями. Например, географические атрибуты связаны с покупателями,
поставщиками и магазинами. В многомерном моделировании необходимо
создать измерение, содержащее общие атрибуты, затем создать связь ссылочных
измерений для каждого связанного измерения. В табличном моделировании нет
необходимости создавать ссылочные связи. В табличной модели все, что нужно
сделать, — это создать связи между таблицами, содержащими общие атрибуты,
и таблицами связанных сущностей.
Иерархии
Иерархии структурируют данные в виде дерева и упрощают анализ с помощью
углубленной детализации.
Стандартные иерархии
Стандартные иерархии состоят из упорядоченных уровней, образованных столбцами
исходных данных. Например, иерархия товаров может организовывать товары
в подкатегории, которые затем могут быть реорганизованы в категории. В этом
случае получится иерархия с тремя уровнями, в которой каждый уровень относится
к отдельному столбцу в исходных данных. Простые иерархии, такие как иерархия
товаров, описанная выше, поддерживаются как табличными, так и многомерными
моделями.
Обратите внимание, что в многомерных моделях есть еще дополнительный шаг,
на котором нужно создать связи атрибутов, то есть явным образом указать связи
«один ко многим» между атрибутами в каждом измерении. Определять связи
атрибутов настоятельно рекомендуется, поскольку они обеспечивают более
эффективную схему предварительной агрегатной обработки вычислений,
а семантика многомерных выражений основывается на связях атрибутов. Табличное
моделирование более понятно, поскольку оно не требует формирования связи
атрибутов. Табличные модели не выполняют предварительную агрегатную
обработку, а семантика DAX не зависит от определения связей «один ко многим»
между атрибутами, поэтому в табличном моделировании отсутствует эквивалент
связей атрибутов, которые есть в многомерных моделях.
Неоднородные иерархии
Неоднородные иерархии возникают, когда определенный элемент данных отсутствует
в дереве иерархии. Например, неоднородная иерархия товаров возникает, если
есть товары, которым категория была присвоена, а подкатегория — нет. В таких
случаях вместо того, чтобы показывать разрыв в дереве, его можно скрыть для
упрощения анализа углубленной детализацией. Многомерные модели обеспечивают
поддержку неоднородных иерархий без дополнительных настроек. Табличные
модели не поддерживают эту функцию.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
8
Иерархии типа «родители-потомки»
Иерархии типа «родители-потомки» имеют более сложную иерархическую схему.
Ветви в иерархии «родители-потомки» имеют разное число уровней. Например,
связь «родитель-потомок» между сотрудником и менеджером может создать
иерархию, в которой у некоторых менеджеров есть только прямые подчиненные,
в то время как у других менеджеров прямыми подчиненными являются
менеджеры, у которых также есть прямые подчиненные. Такой вид иерархии
моделируется путем создания связи между двумя столбцами в исходной таблице
данных, как показано на рис. 2.
Employee
Сотрудник
Manager
Менеджер
Ken J. Sánchez
Brian S. Welcker
Amy E. Alberts
Jae B. Pak
David M. Bradley
Kevin F. Brown
Ken J. Sánchez
Ken J. Sánchez
Brian S. Welcker
Amy E. Alberts
Ken J. Sanchez
David M. Bradley
Исходные данные иерархии
«родители-потомки»
Дерево иерархии «родителипотомки»
Рис. 2. Иерархия «родители-потомки»
Многомерные модели обеспечивают функции, которые не требуют
дополнительных настроек и позволяют определять и создавать иерархии
«родители-потомки» на основе связей в исходных данных.
В табличных моделях функции DAX используются для создания формул,
позволяющих работать со структурой «родители-потомки» в вычислениях.
Дополнительные сведения об использовании иерархии «родители-потомки»
в табличных моделях см. в разделе Общие сведения о функциях для иерархий
«родители-потомки» в DAX (http://msdn.microsoft.com/ruru/library/gg492192(v=sql.110).aspx).
Дополнительные функции моделирования
Помимо связей и иерархий данных, существуют дополнительные функции
моделирования, которые помогут выбрать наиболее подходящий метод
моделирования.

Перспективы позволяют определить подмножество модели данных для
упрощенного просмотра пользователями. Перспективы доступны как для
многомерных, так и для табличных моделей.

Преобразование позволяет многомерным моделям отображать измерение,
атрибут, меру, вычисляемый элемент и другие имена объектов и значения
элементов измерения на языке, указанном в настройках локализации
компьютера. Для реализации этой функции разработчик модели должен
указать переведенные имена объектов и ссылки на столбцы в исходных
данных, которые содержат переведенные значения элементов измерений.
Табличные модели не обеспечивают эту функцию.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
9

Действия позволяют пользователям запускать отчеты служб Reporting
Services, переходить по URL-адресам или инициировать внешнюю операцию
на основе контекста ячейки, в которой происходит действие. Например,
с помощью действия пользователь может запустить веб-страницу, которая
отобразит каталог товаров компании с автоматической сортировкой по
товару или товарам, которые искал пользователь. Действия изначально
поддерживаются в многомерных моделях. Многие клиентские средства
(например, Excel и службы Reporting Services) позволяют пользователям
выполнять действия. В SQL Server 2012 возможность создавать действия
в табличной модели с помощью средств SQL Server Data Tools не
поддерживается.

Углубленная детализация позволяет просматривать подробные данные,
хранимые в модели. Углубленная детализация доступна как в многомерном,
так и в табличном моделировании. Многомерные модели также позволяют
создавать действия углубленной детализации, дающие возможность
настраивать методы детализации путем указания столбцов, возвращаемых
действием, и области куба, в которой будет выполняться действие
детализации.

Обратная запись — это функция, которая обычно требуется для приложений
планирования и прогнозирования. В таких случаях бизнес-пользователи
перед изменением и обновлением значений данных в модели обычно
анализируют возможности, а затем публикуют новые значения для
просмотра другими пользователями. Многомерные модели изначально
поддерживают встроенную поддержку обратной записи данных. Табличные
модели SQL Server 2012 не поддерживают эту функцию.
Бизнес-логика
Бизнес-логика может значительно увеличить эффективность любой модели
данных за счет вычислений и бизнес-правил, которые выделят данные для того,
чтобы пользователи имели возможность проанализировать их.
Как табличное, так и многомерное моделирование обеспечивает расширенные
языки формул для реализации бизнес-логики. В многомерном моделировании
используются многомерные выражения, а в табличном моделировании — DAX.
Прежде чем переходить к расширенным сценариям бизнес-логики каждого
варианта, важно сформировать базовое понимание того, как бизнес-логика
применяется для преобразований на уровне строк, статистических значений
и вычислений в многомерном и табличном моделировании.
Преобразования на уровне строк
В некоторых случаях требуется выполнить вычисления и преобразования данных,
недоступные в исходных данных. Например, исходные данные могут иметь
столбцы «Сумма продаж» и «Ежедневный курс валюты», но не иметь продаж
в иностранной валюте; либо исходные данные могут иметь столбцы «Имя
сотрудника» и «Фамилия сотрудника», но не иметь столбца «Полное имя
сотрудника». Обратите внимание, что в этих примерах вычисление или обработка
данных должны выполняться на уровне строк с разобщенными данными.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
10
В многомерном моделировании преобразования на уровне строк с разобщенными
данными должны выполняться до загрузки данных в модель либо в процессе
отправки запроса к модели. Атрибуты измерения, например имена сотрудников,
можно преобразовать путем применения преобразований в исходной системе
данных или путем записи выражения SQL, которое будет применено в тот момент,
когда службы Analysis Services отправят запрос к базе данных-источнику. Можно
выполнять преобразования числовых данных на уровне строк с использованием
выражения SQL до загрузки данных в службы Analysis Services либо использовать
преобразование с помощью многомерных выражений в инструкции Scope с тем,
чтобы вычисление было применено на уровне строк. Если преобразование
применяется до загрузки данных, службы Analysis Services могут выполнить
предварительную статистическую обработку числовых значений. Если
преобразование применяется с помощью инструкции Scope, агрегатная
обработка происходит во время запроса.
В табличном моделировании преобразования на уровне строк выполняются
с помощью вычисляемых столбцов. В процессе создания вычисляемого столбца
необходимо добавить столбец в определенную таблицу в модели и использовать
формулы DAX для определения значений столбца. Затем формула вычисляется
для каждой записи в таблице и загружается в память таким же образом, как
и любой другой столбец в модели. Такая гибкость позволяет выделить данные
непосредственно в табличной модели в соответствии с требованиями анализа
и снижает потребность в обработке вышестоящих источников данных, которые не
всегда могут своевременно учитывать поступающие изменения. Вычисляемые
столбцы ― это очень удобный способ создания и сохранения вычислений,
которые необходимо выполнить в данных на уровне детализации перед их
статистической обработкой. Такая гибкость очень полезна, однако помните, что
вычисляемые столбцы не предназначены для выполнения сложной очистки
и преобразования данных, которые встречаются в процессах извлечения,
преобразования и загрузки (ETL).
Cтатистические значения
В многомерном моделировании меры используются для создания статистических
значений. Ядро OLAP служб Analysis Services выполняет предварительную
статистическую обработку мер куба с помощью агрегатных функций SUM, COUNT,
MIN, MAX, DISTINCT COUNT и других. Во время обработки куба каждая мера
вычисляется снизу вверх по всем иерархиям. Поскольку такая обработка
происходит до анализа, выполняемого пользователем, меры предварительной
обработки значительно повышают производительность запросов.
При создании меры в кубе устанавливается связь «один к одному» между мерой
куба и числовым столбцом в исходных данных. Как таковые, меры в многомерном
моделировании полезны в тех случаях, когда необходимо выполнить агрегатную
обработку снизу вверх элементов числовых данных, которые (1) существуют
в исходных данных на самом низком уровне детализации и (2) требуют сведения
воедино, при котором используется встроенные агрегатные функции кубов.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
11
В табличном моделировании меры также используются для создания статистических
значений. Для создания меры выберите столбец и укажите агрегатную функцию
(SUM, COUNT, DISTINCT COUNT, MIN, MAX или AVERAGE) либо напишите
выражение DAX, в котором будет указана функция для статистической обработки
меры. В табличном моделировании данные на уровне строк сохраняются
в памяти, а агрегаты вычисляются во время запроса. Как описано в следующем
разделе, в табличном моделировании меры также можно использовать для
применения вычислений. Это может относиться к вычислениям, основанным на
нескольких статистических столбцах.
Вычисления
В многомерном моделировании для создания вычислений используются
многомерные выражения. Многомерные выражения — это язык выражений
и запросов с функциями, которые изначально учитывают схему измерений куба,
иерархии, связи атрибутов и меры. Благодаря этому разработчик может создавать
простые и мощные выражения, реализующие бизнес-логику в разных контекстах
данных. Вычисления многомерных выражений создаются и сохраняются
в вычислительном скрипте куба, в котором можно управлять порядком
применения логики.
Вычисляемые элементы — это самые распространенные вычисления многомерных
выражений. Вычисляемые элементы вычисляются во время запроса после
предварительной статистической обработки данных. Вычисляемые элементы
можно создавать в любом измерении. Если элементы создаются в измерении мер,
они называются вычисляемыми мерами. Вычисляемые элементы могут быть
простыми с базовыми арифметическими операциями, например продажи на
единицу товара (продажи или товар) или расходы на одного человека
(расходы/сотрудник). Вычисляемые элементы также могут быть более сложными,
если необходимо применить определенные бизнес-правила, такие как скользящее
среднее число продаж за три периода или маржа с начала года. Например, чтобы
вычислить продажи за текущий период в виде процента от родительского периода,
можно использовать следующее вычисление многомерных выражений.
[Measures].[Sales Amount]
/ ([Date].[Calendar].CurrentMember.Parent,[Measures].[Sales Amount])
При создании вычисляемого элемента в измерении, которое не является
измерением меры, атрибуту в измерении будет добавлено значение. Например,
если имеющийся атрибут измерения содержит список цветов, можно
попробовать добавить вычисляемый элемент Primary Colors, суммирующий
значения красного, зеленого и синего цветов. В табличном моделировании
создание меры похоже на создание вычисляемого элемента в измерении мер
в многомерной модели. В табличном моделировании нельзя добавить значение
в столбец таблицы, поэтому табличное моделирование не поддерживает
эквивалент создания вычисляемого элемента в измерении, за исключением
измерения мер в многомерной модели.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
12
Использование инструкции Scope расширяет возможности по сравнению
с вычисляемыми мерами. Как упоминалось в разделе «Преобразования на уровне
строк», инструкцию Scope можно использовать для применения вычислений на
уровне строк. Кроме того, инструкцию Scope можно использовать для указания
любого диапазона ячеек куба, в котором необходимо применить вычисление.
Инструкция Scope компилируется до выполнения запроса и позволяет службам
Analysis Services использовать оптимизированный путь выполнения. Учитывая их
возможности, инструкции Scope могут не только выполнять функции нескольких
вычисляемых мер, но и проделывать эту работу более эффективно. Например,
в решении планирования необходимо указать, чтобы бюджет на следующий год
для Восточного региона составлял 90 % от бюджета текущего года. Новый бюджет
для Западного региона должен составлять 75 % от бюджета текущего года.
Бюджет Южного региона должен составлять 105 % от бюджета текущего года,
а бюджет Северного региона должен быть таким же, как и в текущем году. Вместо
написания одной сложной вычисляемой меры с вложенными инструкциями IF
или нескольких вычисляемых мер отдельно для расчета каждого бюджета можно
использовать инструкцию Scope для эффективного применения пропорций на
уровне региона и последующего агрегирования данных. Например, чтобы
преобразовать сумму продаж в иностранную валюту исходя из ежедневных
валютных курсов, можно воспользоваться следующим многомерным выражением.
Scope([Date].[Date]);
This = [Measures].[Sales Amount] * [Measures].[Daily FX Rate];
End Scope;
В табличном моделировании для создания вычислений используется DAX. Как
упоминалось ранее, в табличном моделировании вычисления на уровне строк
применяются путем создания вычисляемых столбцов. Также можно применить
вычисления во время создания меры с помощью выражения DAX. Поскольку
сочетание уровня строк DAX и агрегатных функций используется явным образом,
меры в табличных моделях очень гибкие. Можно сначала применить функции
уровня строк, а затем агрегатную функцию, чтобы мера выполнила вычисления до
агрегатной обработки, либо сначала применяются агрегатные функции, а затем
функции уровня строк, чтобы мера выполнила вычисления после агрегатной
обработки.
С помощью специального набора функций FILTER выражение DAX может
динамически вычислять формулу в разных контекстах данных (не только
в текущем представлении листа Excel или сводной таблицы). В широком смысле
слова в службах Analysis Services эти функции имеют цель, схожую с назначением
инструкций Scope, так как они позволяют определять и выполнять вычисления
с заданным набором строк. Например, функции FILTER позволяют выполнить
пример планирования, приведенный выше.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
13
Сценарии бизнес-логики
После изучения методов создания и применения базовой бизнес-логики
с помощью многомерных выражений и DAX рассмотрим несколько сценариев
вычислений для сравнения табличного и многомерного моделирования.
Логика иерархии
Как указывалось выше, иерархии обеспечивают пользователю возможность
выполнять детализацию углублением или обобщением во время анализа данных.
В некоторых случаях рекомендуется создавать вычисления для работы
с иерархией. Например, рассмотрим измерение товаров, для которого имеется
непосредственно сам товар, категория товаров и подкатегория товаров. Для
каждого уровня в иерархии необходимо добавить вычисление, которое измерит,
какой вклад элементы каждого уровня вносят в родительскую сумму продаж. Это
называется вычислением родительского процента с учетом того, что вычисление
должно просмотреть иерархию, чтобы вернуть необходимое значение.
Как многомерные выражения, так и выражения DAX позволяют работать
с данными, организованными в иерархию, и создавать вычисления, например
родительский процент, однако функции многомерных выражений, как правило,
понятнее и проще в использовании. Например, в многомерном проявлении
следующее выражение дает родительский процент в измерении Product.
[Measures].[Sales Amount] /
([Product].[Product Categories].CurrentMember.Parent, [Measures].[Sales
Amount])
Для получения такого же процента родительского элемента с помощью DAX
потребуется следующее, более сложное выражение.
IF(
ISFILTERED(Product[Product])
,[Sales]/CALCULATE([Sales],ALL(Product[Product]))
,IF(
ISFILTERED(Product[Subcategory])
,[Sales]/CALCULATE([Sales],ALL(Product[Subcategory]))
,1
)
)
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
14
Пользовательские свертки
Единообразное суммирование данных применимо во многих случаях, однако
бывают ситуации, в которых суммирование должно обеспечивать больший
контроль за суммируемыми элементами. Примером могут послужить финансовые
модели, в которых есть диаграмма счетов (обычно в виде «родители-потомки»)
с определенной логикой свертки по каждому счету. Как показано ниже, валовая
маржа вычисляется следующим образом: объем чистых продаж минус общая
себестоимость; операционный же доход равен результату вычитания текущих
расходов из валовой прибыли.
Многомерные модели не только обеспечивают изначальную поддержку иерархий
«родители-потомки», но и встроенную логику операций со счетами, которая
позволяет легко применять унитарные операторы и формулы многомерных
выражений на уровне счетов в процессе свертки.
В табличных моделях схема «родители-потомки» или логика операций со счетами
не встроена, однако пользователь может выстроить собственное решение
с использованием вычисляемых столбцов и мер, образующих иерархию
«родители-потомки», и применить пользовательскую свертку.
Полуаддитивные меры
В целом полуаддитивные меры — это меры, которые равномерно выполняют
статистическую обработку во всех измерениях, за исключением даты. Примеры
полуаддитивных мер включают начальное и конечное сальдо. Для таких мер
необходимо применить специальную логику, чтобы правильно свести данные за
период времени. В конце концов, баланс текущих запасов за март — это не
просто сумма запасов за все дни в марте. Кроме того, такой баланс должен также
правильно работать со всеми атрибутами даты, включая квартал и год. Например,
баланс текущих запасов за первый квартал должен быть таким же, что и баланс на
31 марта (если 31 марта — последний день в первом квартале).
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
15
Многомерные модели обеспечивают поддержку полуаддитивных мер без
дополнительных настроек с помощью специальных агрегатных функций, таких как
First Child, Last Child, FirstNonEmptyChild и LastNonEmptyChild. Если эти агрегатные
функции не отвечают требованиям конкретной логики, можно написать
собственные формулы с использованием многомерных выражений.
Для табличных моделей есть схожие функций, например ClosingBalanceMonth
и OpeningBalanceMonth. Существуют дополнительные функции, применимые
к другим атрибутам даты, например квартал и год.
Логика операций со временем
Практически в любом решении бизнес-аналитики используется логика операций
со временем. Логика операций со временем также предполагает возможность
вычислить сводку с начала года по текущую дату и сравнить полученные
результаты с предыдущими периодами. Как многомерные выражения, так и DAX
имеют функции на основе временных рядов. Однако существуют особенности их
использования в модели данных.
Многомерные модели обеспечивают логику операций со временем без
дополнительных настроек, для чего используется мастер бизнес-аналитики служб
Analysis Services. Используя этот мастер, вычисления со временем можно
добавить в схему измерения времени и применять ко всем измерениям в модели.
Использование мастера — это один из способов построить вычисления со
временем. Кроме того, можно написать собственные вычисления
с использованием многомерных выражений в многомерной модели.
Несмотря на то что в табличных моделях нет мастера для создания вычислений на
основе логики операций со временем, такие вычисления можно создать вручную
с помощью формул DAX, в которых используются различные функции, включая
TOTALMTD, TOTALYTD и SAMEPERIODSLASTYEAR.
Ключевые показатели эффективности (KPI)
Ключевые показатели эффективности (KPI) — это специальные меры, которые
необходимо отслеживать относительно целевого значения, используя визуальный
индикатор, такой как «стоп-сигнал». Как многомерные, так и табличные модели
обеспечивают поддержку ключевых показателей эффективности. Обе модели
позволяют задать цель для меры и использовать сравнение фактического
значения с целевым для оценки состояния производительности меры.
Многомерные модели обеспечивают дополнительную функцию оценки
тенденции ключевых показателей эффективности и указания отдельного
визуального индикатора для представления изменения ключевого показателя
эффективности с течением времени.
Конвертация валюты
Конвертации валюты предполагает перевод данных, выраженных в одной или
нескольких исходных валютах, в данные другой или других валют отчета.
Например, если в организации транзакции продаж обрабатываются в валютах
EUR, JPY и USD, то для того, чтобы консолидировать продажи во всей
организации, нужно преобразовать транзакции продаж в одну или несколько
валют отчета.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
16
Для реализации конвертации валют в любом из методов моделирования
необходимо иметь доступ к данным о курсах валюты и включить эти данные
в свою модель.
В многомерных моделях можно воспользоваться мастером бизнес-аналитики
служб Analysis Services для создания вычислений конвертации валюты на основе
многомерных выражений, оптимизированных для поддержки нескольких
исходных валют и валют отчета. В табличной модели собственное решение
конвертации валюты можно построить с помощью формул DAX.
Именованные наборы
В многомерных моделях именованные наборы — это способ получения набора
элементов измерения, которые обычно используются в приложениях для
создания отчетов. Например, нужно создать именованный набор для получения
последних 12 месяцев. Если создать такой именованный набор внутри куба,
можно централизованным образом определить логику набора, получить доступ
к набору из любого приложения для создания отчетов и упростить логику,
хранимую в приложении для создания отчетов. Чтобы создать именованный
набор «Последние 12 месяцев», можно использовать следующее многомерное
выражение.
Create Set CurrentCube.[Last 12 Months] As
Max([Date].[Calendar].[Month]).Lag(11):Max([Date].[Calendar].[Month])
В табличном моделировании именованные наборы недоступны.
Доступ к данным и хранение
Производительность и масштабируемость
Производительность и масштабируемость — важнейшие факторы, которые
необходимо учитывать для успеха любого решения бизнес-аналитики. Поскольку
в каждом методе моделирования используются разные базовые технологии,
у каждого метода свои характеристики производительности и возможности, без
понимания которых выбор наиболее подходящего метода моделирования
практически невозможен.
Многомерные модели
Как уже говорилось в этом техническом документе, в многомерных моделях
служб Analysis Services используется ядро OLAP. На диске данные OLAP можно
хранить в архитектуре данных MOLAP и ROLAP. В режиме MOLAP данные хранятся
на диске в оптимизированном многомерном формате со стандартной степенью
сжатия 3x. В режиме ROLAP данные хранятся в реляционной базе данных-источнике.
Если речь идет о производительности, обычно удобнее разделить ее на две части:
производительность запросов и производительность обработки.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
17
Производительность запросов
Производительность запросов непосредственно влияет на качество работы
пользователя. Производительность запросов является самой важной
характеристикой, позволяющей оценить успешность реализации OLAP. Службы
Analysis Services предоставляют разнообразные механизмы для ускорения
производительности запросов, включая агрегаты, кэширование и получение
индексированных данных. Кроме того, можно повысить производительность
запросов путем оптимизации схемы атрибутов измерений, кубов и запросов
многомерных выражений.
Одним из основных способов оптимизации производительности запросов
является использование агрегатов. Агрегаты — это предварительно вычисленные
сводные данные, которые используются для повышения производительности
запросов в многомерных моделях. При выполнении запроса к многомерной
модели обработчик запросов служб Analysis Services подразделяет запросы на
несколько подзапросов к подсистеме хранилища OLAP. Для каждого подзапроса
подсистема хранилища сначала пытается получить данные из кэша, находящегося
в своей памяти. Если данные в кэше отсутствуют, подсистема пытается получить
данные с помощью агрегата. Если агрегата не существует, подсистема получает
данные из секций группы мер.
Разработка агрегатов предполагает определение наиболее эффективной схемы
статистических выражений для используемых запросов рабочей нагрузки.
В процессе разработки статистических выражений следует учитывать
преимущества для запросов, обеспечиваемые агрегатными выражениями,
с учетом времени, которое требуется для создания и обновления статистических
выражений. На самом деле, добавление ненужных агрегатных выражений может
ухудшить производительность запросов, поскольку редкие обращения перемещают
агрегатное выражение в файловый кэш и вытесняют из него что-то другое.
Кэширование также важно для настройки производительности запросов служб
Analysis Services. Необходимо иметь достаточно памяти для хранения всех данных
измерений и кэширования результатов запросов. Во время выполнения запросов
память используется главным образом для хранения кэшированных результатов
в кэше подсистемы хранилища и обработчика запросов. Для оптимизации
преимуществ кэширования часто можно увеличить скорость отклика запроса
путем предварительной загрузки данных в один или оба этих кэша. Это можно
сделать путем предварительного выполнения одного или нескольких запросов
или путем создания инструкции кэша.
Производительность обработки
Обработка — это операция обновления данных в базе данных служб Analysis
Services. Чем быстрее производительность обработки, тем скорее пользователи
получают обновленные данные. Службы Analysis Services предоставляют
разнообразные механизмы, которые можно использовать, чтобы повлиять на
производительность обработки, включая эффективную схему измерений,
эффективные агрегаты, секции и экономичную стратегию обработки (например,
добавочное обновление, полное обновление и упреждающее кэширование).
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
18
Секции можно использовать для разделения данных меры (обычно это данные
таблицы фактов) на физические блоки. Эффективное использование секций
повышает производительность запросов, увеличивает производительность
обработки и упрощает управление данными. Для каждой секции можно создать
отдельную схему агрегатных выражений и отдельное расписание обновления,
которое может существенно улучшить производительность обработки. Для
каждой таблицы фактов можно также настроить сочетание секций MOLAP
и ROLAP. Этот тип стратегии секционирования можно использовать для
обеспечения запросов в режиме реального времени или обеспечения доступа
к наборам данных, которые не помещаются в кубе.
С помощью таких методов оптимизации запросов и обработки можно
масштабировать многомерные модели и обрабатывать терабайты данных.
Дополнительные сведения о настройке производительности см. в разделе
Руководство по производительности служб Analysis Services 2008 R2
(http://sqlcat.com/sqlcat/b/whitepapers/archive/2011/10/10/analysis-services-2008-r2performance-guide.aspx).
Табличные модели
Табличные модели используют модуль аналитики xVelocity, который обеспечивает
обработку данных в памяти, или модуль DirectQuery, который передает запросы
к базе данных-источнику, чтобы использовать ее возможности обработки запросов.
Преимущества баз данных на основе столбцов и обработки данных в памяти
усиливают друг друга. Базы данных на основе столбцов обеспечивают более
высокое сжатие, чем традиционное хранилище, обычно это 10-кратное сжатие,
в зависимости от количества элементов данных. Количество элементов данных
учитывает характеристики распределения данных в одном столбце. Большое
количество элементов данных означает, что значения данных в столбце являются
по большей части уникальными (например, число клиентов). Небольшое
количество элементов данных означает, что значения данных в столбце могут
повторяться (например, пол и семейное положение). Чем меньше количество
элементов данных, тем выше степень сжатия, то есть больше данных может
поместиться в памяти в данный момент времени. Разработчики моделей данных
должны учитывать количество элементов данных, чтобы определить наборы
данных, наиболее подходящие для табличной модели, а также объем памяти,
необходимой для поддержания модели.
Производительность выполнения запросов
Когда пользователь выполняет запрос к табличной модели, подсистема сканирует
память, получает данные и вычисляет агрегатные выражения на лету, не
обращаясь при этом к процессу ввода-вывода на жестком диске. Такой подход
обеспечивает очень высокую производительность запросов, не требуя при этом
специальной настройки и управления агрегатами.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
19
Самый простой и лучший способ оптимизации производительности запросов для
табличных моделей — это максимально возможное увеличение доступной
памяти. С точки зрения масштабируемости объем данных в основном ограничен
объемом физической памяти. Настоятельно рекомендуется обеспечить
достаточный объем памяти для хранения всех данных из табличной модели. В тех
случаях, когда объем памяти ограничен, модуль, работающий в памяти, также
обеспечивает поддержку базовой подкачки в соответствии с возможностями
физической памяти. Кроме того, серверные параметры конфигурации позволяют
ИТ-специалистам точно управлять объемом памяти, выделяемой для табличных
моделей. Дополнительные сведения о конфигурации памяти табличной модели
см. в разделе Свойства памяти (http://msdn.microsoft.com/ruru/library/ms174514.aspx).
Производительность обработки
Табличные модели отличаются от многомерных моделей по двум основным
характеристикам производительности обработки.


В отличие от многомерных моделей табличные модели загружают данные
непосредственно в память и не требуют записи данных на диск.
Поскольку табличные модели не подразделяют данные на измерения
и группы мер, обработка может быть намного более гибкой. Оба эти
отличия означают меньший объем непроизводительной нагрузки при
каждом обновлении данных, что в свою очередь сокращает время,
необходимое для отклика, и повышает степень гибкости.
Рассмотрим пример. В организации торговые представители обычно регулярно
перемещаются из одного региона в другой. Бизнес-пользователю необходимо
видеть сводку по данным продаж в самом последнем регионе с учетом
перемещения торговых представителей.
В многомерной модели, чтобы выполнить эту задачу, необходимо сначала
обновить продажи в измерении продаж организации. После обновления
измерения продаж организации необходимо обновить секцию группы мер
продаж. При обновлении секции продаж происходит обновление подробных
данных и агрегатов. Последний этап в подготовке данных (рекомендуемое
действие) — обновить кэш запросов служб Analysis Services и загрузить наиболее
полезные данные с диска в память.
В зависимости от схемы модели данных, размера данных и используемых методов
обработки (добавочная или полная обработка) на это может потребоваться от
нескольких минут до нескольких часов. Хорошая новость заключается в том, что
существует несколько проверенных методов, которые специалисты по бизнесаналитике используют на ежедневной основе с целью оптимизации обработки
многомерных моделей и выполнения требований к обработке данных.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
20
Теперь рассмотрим этот же случай в табличной модели. В табличной модели нет
понятия измерений и групп мер. Вместо этого данные организованы в связанные
друг с другом таблицы. Предположим, что данные продаж и организации продаж
находятся в соответствующих таблицах, при этом связь основывается на торговых
представителях. Благодаря такой схеме при обновлении таблицы организации
продаж она автоматически обновит все затронутые вычисляемые столбцы, связи
и пользовательские иерархии. Это означает, что данные о продажах
автоматически отражают обновленные свертки региона продаж без
необходимости повторной обработки данных о продажах. Такая гибкость
обеспечивает значительные преимущества при наличии быстро изменяющихся
измерений и необходимости быстрого отражения последних обновлений.
Кроме того, обратите внимание, что в табличной модели не требуется создавать
агрегаты, записывать данные на диск или обновлять кэш запросов для загрузки
данных в память. В табличных моделях данные перемещаются непосредственно
с диска в память и сразу готовы к использованию.
Как и многомерные модели, табличные модели позволяют разбить данные
таблицы на секции, исключая необходимость в излишней обработке данных.
Большие таблицы можно разбить на несколько секций, например по одной
секции для каждого месяца в текущем году, а затем по одной секции для каждого
предыдущего года. Такой подход позволяет изолировать те секции обработки,
которые требуют обновления.
В отличие от многомерных моделей одновременно можно обрабатывать несколько
таблиц, но нельзя проделывать то же с отдельными секциями таблицы.
DirectQuery
Помимо режима xVelocity в памяти для табличных моделей специалисты по
бизнес-аналитике также могут строить табличные модели в режиме DirectQuery.
Режим DirectQuery доступен для табличных моделей с источниками данных SQL
Server. DirectQuery предоставляет возможность обойти обработку данных, передавая
запросы и вычисления DAX в базу данных-источник и используя возможности SQL
Server. Это может быть особенно полезным при работе с большими объемами
данных, для которых требуется частое обновление. Вместе с тем DirectQuery не
поддерживает вычисляемые столбцы и некоторые функции DAX.
Программирование
Объекты AMO — это API-интерфейс для разработки и администрирования
объектов служб Analysis Services. API-интерфейс был создан до того, как табличное
моделирование было добавлено в службы Analysis Services, поэтому он содержит
только классы для объектов, традиционно связываемых с многомерным
моделированием: кубов, измерений, групп мер, скриптов многомерных выражений
и т. д. Однако API-интерфейс также можно использовать для разработки табличных
моделей и управления ими. Это то преимущество многомерного и табличного
моделирования, которое интегрировано в семантическую модель бизнес-аналитики.
По отдельности табличная и многомерная модели отличаются, однако модуль
BISM обеспечивает единый внешний интерфейс. Несмотря на то что объекты AMO
можно использовать для программирования табличных и многомерных моделей,
для табличных моделей интерфейс менее нагляден. Дополнительные сведения,
включая образец кода объектов AMO для табличной модели, см. в разделе Учебники
по службам Analysis Services (http://msdn.microsoft.com/ru-ru/library/hh231701.aspx).
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
21
Безопасность
Соответствующая стратегия обеспечения безопасности данных играет важную
роль в обеспечении пользователей высокой степенью доступности к нужным
данным. Организации должны контролировать доступ к данным, чтобы
обеспечить их безопасность и выполнять законодательные требования
в отношении конфиденциальности информации. Как многомерные, так
и табличные модели обеспечивают набор надежных средств, которые
удовлетворяют целому ряду требований, предъявляемых к безопасности.
Существует несколько незначительных отличий в возможностях, которые важно
понять, прежде чем выбирать метод моделирования, который наилучшим
образом будет отвечать потребностям безопасности.
В службах Analysis Services управление безопасностью многомерных и табличных
проектов реализуется путем создания роли и предоставления этой роли
разрешений. После этого необходимо добавить в роль имена пользователей
и группы Windows, тем самым предоставляя соответствующим пользователям
доступ на основе разрешений роли.
Безопасность на уровне строк или атрибутов
В многомерном проекте для управления доступом на уровне строк используется
понятие безопасности данных измерения. Чтобы обеспечить безопасность данных
измерения для роли, нужно предоставить или запретить доступ к данным
измерения путем включения или исключения элементов измерения. Кроме того,
можно реализовывать более сложную конфигурацию безопасности путем
определения набора элементов с помощью многомерного выражения. Можно
также указать, следует ли предоставлять роли доступ к новым элементам
измерения. Предоставление или отказ в предоставлении доступа к элементу
измерения оказывает влияние на доступ роли к соответствующим элементам
измерения. Например, если ограничить роль так, чтобы можно было получить
доступ только к подкатегории товаров Mountain Bikes, члены роли смогут
просматривать в категории товаров Bikes только те товары и продажи, которые
относятся к подкатегории Mountain Bikes.
В табличном проекте нужно реализовать безопасность на уровне строк путем
предоставления доступа к строкам в таблице. В табличном проекте средств SQL
Server Data Tools для предоставления разрешения необходимо указать выражение
DAX, фильтрующее строки в таблице. Роль получает доступ к новым строкам
в таблице, если они соответствуют запросам фильтра DAX. Доступ,
предоставленный в строке одной таблицы, оказывает влияние на доступ роли
к строкам в связанных таблицах. Если две таблицы имеют связь «один ко многим»,
то фильтры строк в таблице на стороне связи «один» фильтруют строки в таблице
на стороне связи «многие», но не иначе. Например, если ограничить роль так,
чтобы она могла просматривать только строку Mountain Bikes в таблице
подкатегории товаров, члены роли смогут просматривать только строки
в таблицах товаров и продаж, связанных с подкатегорий Bikes. Однако члены роли
смогут видеть все строки в таблице категории товаров (Bikes, Clothing и т. д.).
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
22
Динамическая безопасность
Организация может ограничивать доступ к данным на основе идентификаторов
пользователей или других динамических критериев. Например, партнеры могут
видеть только данные о собственной производительности и кадровых ресурсах.
Однако создание роли безопасности для каждого отдельного сотрудника
в организации может быть неэффективно. Вместо этого можно реализовать
динамическую безопасность, обеспечивающую логику безопасности на основе
идентификатора пользователя или других динамических критериев. Динамическую
безопасность поддерживают и табличные и многомерные проекты. Динамическую
безопасность на основе идентификаторов пользователей можно настроить, если
данные содержат связь между идентификаторами пользователей и данными, на
доступ к которым пользователи имеют разрешение, включив связь
в многомерное выражение или выражение DAX, которые используются для
управления разрешениями.
Расширенная безопасность и безопасность на уровне ячеек
Для многих приложений необходимо ограничить доступ к данным с помощью
более сложных условий, чем просто строки в таблице. Возьмите, например, опрос
сотрудников о степени их удовлетворенности чем-либо, в котором используются
статистические результаты из другого опроса. Эти модели часто содержат весьма
конфиденциальные данные, и ответы участников опроса должны быть защищены.
Модель может не содержать конкретных имен людей, но если выборка
относительно невелика, то вычислить личности респондентов не представляет
никакого труда. В таких случаях может требоваться реализация более сложной
логики, которая будет учитывать размер выборки и открывать доступ
к результирующей мере только в том случае, если количество ответов превышает
определенное, заданное число. Кроме того, могут быть конкретные вопросы
и сочетания показателей, доступ к которым может быть открыт только сотрудникам
отдела кадров. Многомерные проекты изначально позволяют реализовать
расширенные возможности безопасности, недоступные табличному проекту.
В многомерном проекте можно реализовать безопасность на уровне ячеек для
ограничения доступа к данным определенной ячейки или группы ячеек в модели.
В табличной модели безопасность на уровне ячеек не поддерживается.
Кроме того, многомерные проекты также позволяют управлять использованием
визуальных итогов, предоставлять или отменять разрешения на детализацию
углублением подробных данных и создавать участников проекта по умолчанию
для каждой роли.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
23
В многомерном проекте предварительные сводные значения вычисляются при
обработке данных в модели, чтобы сократить время отклика на запрос. Например,
Sales of All Products — это предварительно вычисленное значение. Безопасность
данных измерения применяется после обработки, поэтому, даже если пользователю
предоставлено только разрешение на доступ к категории Bikes, значение Sales of
All Products будет по умолчанию отображать сумму продаж Accessories, Bikes,
Clothing и т. д. Это может быть тем значением, которое должны видеть члены
роли, а может и не быть им. В этом случае, если необходимо ограничить значение
Sales of All Products только значением продаж велосипедов, следует включить
визуальное суммирование. Если включить визуальное суммирование, то сводные
значения будут ограничены таким образом, что члены роли увидят только то
значение, на которое данная роль имеет разрешение. Это изменение влияет на
время отклика на запрос, так как сводные значения должны вычисляться во время
выполнения запроса. Табличные проекты не вычисляют предварительно сводные
значения, поэтому они всегда равны сумме, т. е. в табличной модели визуальное
суммирование всегда включено.
В многомерной модели можно включать разрешение на детализацию углублением
до подробных данных для каждой роли в отдельности. В табличной модели роли
не используются для управления доступом к возможностям детализации
углублением. Вместо этого все роли могут выполнять детализацию углублением.
В многомерной модели можно определить элемент по умолчанию для каждого
атрибута в измерении. Элемент по умолчанию работает как фильтр, применяемый
автоматически. Например, если элемент Year по умолчанию обозначается как
2012, то по умолчанию отображаются данные только за 2012 год. Однако
пользователь может выбрать данные за другой год или просмотреть данные за
все годы. В многомерной модели можно настроить элемент по умолчанию для
каждого атрибута, который будет применяться ко всем ролям, либо указать другой
элемент по умолчанию для каждой роли в отдельности. В табличной модели
нельзя задать значение по умолчанию. Вместо этого, если необходимо выполнить
фильтрацию по умолчанию, необходимо настроить эту возможность в средстве
составления отчетов и анализа.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
24
Сводка
В SQL Server 2012 появилась семантическая модель бизнес-аналитики BISM,
которая имеет широкий спектр функций для создания отчетов и анализа. Два
метода моделирования, интегрированные в BISM (многомерное и табличное
моделирование), обеспечивают взаимодополняющие функции, которые
позволяют использовать именно те возможности, которые удовлетворяют
потребностям бизнеса наилучшим образом.
Табличное моделирование обеспечивает доступную среду моделирования
с возможностями, которые отвечают большей части потребностей для отчетов
и анализа. Большинство пользователей знакомы с таблицами и связями и смогут
быстро научиться реализовывать бизнес-логику с помощью языка DAX, поскольку
он похож на язык, используемый в Excel. Простота использования, упрощенное
и гибкое моделирование табличного метода означают, что решения будут
разрабатываться быстро. Работающая в памяти подсистема xVelocity на основе
столбцов обеспечивает невероятно быстрое время отклика для наборов данных,
которые могут содержать миллиарды записей. Табличные модели поддерживают
все средства составления отчетов и анализа, формирующие запросы
многомерных выражений, такие как службы Excel и Reporting Services. Они также
поддерживают приложение Power View служб Reporting Services, которое
формирует запросы DAX.
Многомерное моделирование предоставляет мощные возможности, облегчающие
работу с наиболее сложными и масштабными задачами бизнес-аналитики.
Многомерная модель данных в сочетании с многомерными выражениями
обеспечивает функциональность без дополнительных настроек. Пользователи
могут создавать сложные модели и реализовывать сложную бизнес-логику.
Хранение данных на диске, предварительно вычисляемые статистические
выражения и кэширование в памяти — все это позволяет многомерным моделям
вырастать до нескольких терабайт и сохранять быстрое время отклика. Безопасность
на уровне ячеек соответствует самым серьезным требованиям, предъявляемым
к безопасности.
В целом табличное моделирование предоставляет упрощенную среду моделирования
с возможностями, которые должны отвечать большей части потребностей для
создания отчетов и анализа. Если требуется сложное моделирование, бизнес-логика
или безопасность или если необходимо решение очень большого объема, то
многомерное моделирование может оказаться более подходящим решением.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
25
В следующей таблице приводится общее сравнение характеристик многомерных и табличных моделей.
Функциональная
группа
Критерии
решения
Время на разработку
решения
Кривая обучения
Многомерная
модель/
табличная
модель
/
/
Модель данных
Связи данных
/
Модель данных
Иерархии
/
Модель данных
Бизнес-логика
Бизнес-логика
Дополнительные
возможности
моделирования
данных
Язык вычислений
Вычисления
/
/
/
Многомерное
моделирование
Табличное
моделирование
Более длительное время на
разработку решения.
Многомерное моделирование
и язык многомерных выражений
имеют более резкую кривую
обучения, но обеспечивают
более сложные возможности.
Более короткое время на разработку
решения.
Реляционное моделирование и язык
DAX, схожий с языком, используемым
в Excel, имеют более пологую кривую
обучения, однако сложные
возможности могут потребовать
хорошего знания выражений DAX.
Связь «один ко многим».
Для связи «многие ко многим»
требуются выражения DAX.
Табличные связи в моделях создают
ссылочные связи.
Встроенная поддержка стандартных
иерархий. Иерархиям типа
«родители-потомки» требуются
выражения DAX.
Перспективы и углубленная
детализация.
Связь «один ко многим».
Связь «многие ко многим».
Ссылочные связи необходимо
моделировать явным образом.
Встроенная поддержка
стандартных, неоднородных
иерархий и иерархий
«родители-потомки».
Перспективы, преобразования,
действия, углубленная
детализация, хранимые
процедуры и обратная запись.
Многомерные выражения
Встроенная поддержка общих
и сложных вычислений.
DAX
Встроенная поддержка общих
и многих сложных вычислений.
Функциональная
группа
Критерии
решения
Бизнес-логика
Агрегатные функции
Многомерная
модель/
табличная
модель
/
Бизнес-логика
Логика иерархии
/
Бизнес-логика
Бизнес-логика
Ключевые показатели
эффективности (KPI)
/
Конвертация валюты
/
Доступ к данным
и хранение
Масштаб
/
Многомерное
моделирование
Табличное
моделирование
Sum, Count, Min, Max, Distinct
Count, None, ByAccount,
AverageOfChildren, FirstChild,
LastChild, FirstNonEmpty
и LastNonEmpty.
Sum, Count, Min, Max, Average,
DistinctCount и разнообразные
функции логики операций со
временем, в том числе FirstDate,
LastDate, OpeningBalanceMonth
и ClosingBalanceMonth.
Функции DAX для переходов по
иерархиям типа «родители-потомки»,
выражения DAX для реализации
логики в стандартных измерениях.
Логика иерархии в целом более
сложная при использовании DAX.
Текущие значения, целевые значения
и состояние с графическими
индикаторами.
Функции для переходов по
стандартным иерархиям
и иерархиям «родителипотомки».
Текущие значения, целевые
значения, состояние
и тенденция с графическими
индикаторами.
Поддерживает конвертацию
нескольких валют
с использованием мастера
бизнес-аналитики.
Очень большой масштаб
(несколько терабайтов).
Реализуется с помощью выражений
DAX.
Большой масштаб (миллиарды
записей).
Функциональная
группа
Критерии
решения
Доступ к данным
и хранение
Производительность
Многомерная
модель/
табличная
модель
/
Доступ к данным
и хранение
Источники данных
Доступ к данным
и хранение
Язык запросов
Доступ к данным
и хранение
Хранилище данных
/
Табличное
моделирование
Индексы и предварительно
вычисляемые значения мер,
которые хранятся на диске.
Данные измерений и результаты
запросов, кэшированные
в памяти. Приблизительно
троекратное сжатие данных.
Реляционные базы данных.
Хранение данных в памяти на основе
столбцов. Приблизительно
десятикратное сжатие данных.
Многомерные выражения
/
/
Доступ к данным
и хранение
Многомерное
моделирование
Сжатие данных
/
MOLAP — измерение, факты
и статистические данные,
хранящиеся на диске. Данные
измерений и результаты
запросов, кэшированные
в памяти.
ROLAP — измерение, факты
и статистические данные,
хранящиеся в реляционной базе
данных.
Обычно троекратное.
Реляционные базы данных, Excel,
текст, каналы OData, Azure Data
Market, службы Analysis Services.
DAX
Многомерные выражения (только
режим в памяти)
В памяти — все данные кэшируются
в памяти с помощью аналитической
подсистемы xVelocity, работающей на
основе столбцов.
DirectQuery — данные хранятся в SQL
Server 2012.
Обычно десятикратное.
Функциональная
группа
Критерии
решения
Доступ к данным
и хранение
Клиентские средства
Многомерная
модель/
табличная
модель
/
Доступ к данным
и хранение
Программирование
/
Безопасность
Безопасность
 — меньше возможностей.
 — больше возможностей.
/
Многомерное
моделирование
Табличное
моделирование
Excel, службы Reporting Services,
Microsoft PerformancePoint
и другие сторонние клиентские
средства.
Power View служб Reporting Services,
Excel, службы Reporting Services,
PerformancePoint и другие сторонние
клиентские средства.
Power View служб Reporting
Services поддерживается
в будущих версиях SQL Server.
XML для аналитики, язык ASSL
MSOLAP, ADOMD.NET, объекты
AMO, Windows PowerShell для
объектов AMO. Специально для
использования с многомерными
моделями.
Безопасность на уровне
элементов измерения и ячеек.
Динамическая безопасность.
XML для аналитики, язык ASSL,
ADOMD.NET, MSOLAP, объекты AMO,
Windows PowerShell для объектов
AMO. Доступно, однако менее
наглядно при использовании
с табличными моделями.
Безопасность на уровне строк.
Динамическая безопасность.
Дополнительные сведения
Веб-сайт SQL Server
http://www.microsoft.com/sqlserver/
Технический центр SQL Server
http://technet.microsoft.com/ru-ru/sqlserver/
SQL Server DevCenter
http://msdn.microsoft.com/ru-ru/sqlserver/
Блог разработчиков служб Analysis Services и PowerPivot
http://blogs.msdn.com/b/analysisservices/
Службы Analysis Services
http://msdn.microsoft.com/ru-ru/library/bb522607.aspx
Многомерное моделирование (службы SSAS)
http://msdn.microsoft.com/ru-ru/library/hh230904.aspx
Табличное моделирование (табличные службы SSAS)
http://msdn.microsoft.com/ru-ru/library/hh212945.aspx
Компонент по режиму сервера или типу решения (службы SSAS)
http://msdn.microsoft.com/ru-ru/library/hh212940(v=sql.110).aspx
Помогла ли вам эта статья? Пожалуйста, оставьте свой отзыв. Оцените материал
по шкале от 1 (плохо) до 5 (отлично) и укажите причины выставления своей
оценки. Например:

Вы высоко оценили этот документ из-за наличия подходящих примеров,
превосходных снимков экрана, ясного изложения или по какой-либо
другой причине?

Вы низко оценили степень полезности этого документа из-за неудачных
примеров, нечетких снимков экрана или путаного изложения?
Ваш отзыв поможет повысить качество выпускаемых нами технических
документов.
Отправить отзыв.
Выбор варианта моделирования данных в службах SQL Server 2012 Analysis Services
30
Download