This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Полубояров В.В. Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных Contents Полубояров В.В. .................................................................................................................................... 1 Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных .................. 2 Лекции ................................................................................................................................................... 5 1.
Введение в основы OLAP ........................................................................................................... 5 1.1.
Хранилища данных ............................................................................................................ 5
1.2.
Понятие и модель данных OLAP ........................................................................................ 9
1.3.
Структура OLAP-куба ........................................................................................................ 11
Технические аспекты многомерного хранения данных.............................................. 26
2. Общие сведения о многомерном анализе данных при помощи службы SQL Server 2008 Analysis Services ............................................................................................................................... 30
3.
4.
2.1.
Возможности службы SSAS .............................................................................................. 30
2.2.
Инструменты управления службой SSAS ......................................................................... 33
Планирование и архитектура SSAS.......................................................................................... 35 3.1.
Определение представления источника данных в проекте служб Analysis Services ............. 98 Теоретическое введение ............................................................................................................. 98 Практические задания............................................................................................................... 100 Создание проекта служб Analysis Services ................................................................................ 100 Определение источника данных .............................................................................................. 102 Определение нового представления источника данных ......................................................... 107 Изменение имен таблиц по умолчанию................................................................................... 112 Контрольные вопросы............................................................................................................... 114
4.
Определение и развертывание куба .................................................................................... 114 Теоретическое введение ........................................................................................................... 114 Практические задания............................................................................................................... 116 Контрольные вопросы ............................................................................................................... 148
5.
Изменение мер, атрибутов и иерархий ................................................................................ 148 Теоретическое введение ........................................................................................................... 148 Практические задания............................................................................................................... 154
Контрольные вопросы ............................................................................................................... 224 6.
Определение расширенных свойств атрибутов и измерений ............................................. 225 Теоретическое введение ........................................................................................................... 225 Практические задания............................................................................................................... 230 Контрольные вопросы ............................................................................................................... 303
7.
Определение связей между измерениями и группами мер................................................ 303 Теоретическое введение ........................................................................................................... 303 Практические задания............................................................................................................... 309 Контрольные вопросы ............................................................................................................... 368
8.
Определение вычислений..................................................................................................... 369 Теоретическое введение ........................................................................................................... 369 Практические задания............................................................................................................... 371 Контрольные вопросы ............................................................................................................... 414
9.
Определение ключевых индикаторов производительности ............................................... 415 Теоретическое введение ........................................................................................................... 415 Практические задания............................................................................................................... 419 Контрольные вопросы ............................................................................................................... 426
10.
Определение перспектив куба и переводов метаданных................................................ 426
Литература ........................................................................................................................................ 487
Лекции 1. Введение в основы OLAP 1.1.
Хранилища данных
1.1.1. Понятие и архитектура системы поддержки принятия решений К настоящему времени во многих организациях накоплены значительные объемы данных, на основе которых имеется возможность решения разнообразных аналитических и управленческих задач. Проблемы хранения и обработки аналитической информации становятся все более актуальными и привлекают внимание специалистов и фирм, работающих в области информационных технологий, что привело к формированию полноценного рынка технологий бизнес-анализа. В идеале работа аналитиков и руководителей различных уровней должна быть организована так, чтобы они могли иметь доступ ко всей интересующей их информации и пользоваться удобными и простыми средствами представления и работы с этой информацией. Именно на достижение этих целей и направлены информационные технологии, объединяющиеся под общим названием хранилищ данных и бизнес-анализа. В соответствии с определением Gartner, бизнес-анализ (BI, Business Intelligence) – это категория приложений и технологий для сбора, хранения, анализа и публикации данных, позволяющая корпоративным пользователям принимать лучшие решения. В русскоязычной терминологии подобные системы называются также системами поддержки принятия решений (СППР). Подсистема информационнопоискового анализа (СУБД,SQL)
Подсистема ввода (СУБД – OLTP)
Оператор
Подсистема хранения информации (СУБД и/или ХД)
Подсистема оперативного анализа (OLAP)
Подсистема интеллектуально го анализа (Data Mining)
Подсистема анализа
Рисунок 1. Архитектура СППР
Аналитик
Сбор и хранение информации, а также решение задач информационно-поискового запроса эффективно реализуются средствами систем управления базами данных (СУБД). В OLTP (Online Analytical Processing)-подсистемах реализуется транзакционная обработка данных. Непосредственно OLTP-системы не подходят для полноценного анализа информации в силу противоречивости требований, предъявляемых к OLTP-системам и СППР. Для предоставления необходимой для принятия решений информации обычно приходится собирать данные из нескольких транзакционных баз данных различной структуры и содержания. Основная проблема при этом состоит в несогласованности и противоречивости этих базисточников, отсутствии единого логического взгляда на корпоративные данные. Поэтому для объединения в одной системе OLTP и СППР для реализации подсистемы хранения используются концепция хранилищ данных (ХД). В основе концепции ХД лежит идея разделения данных, используемых для оперативной обработки и для решения задач анализа, что позволяет оптимизировать структуры хранения. ХД позволяет интегрировать ранее разъединенные детализированные данные, содержащиеся в исторических архивах, накапливаемых в традиционных OLTP-системах, поступающих из внешних источников, в единую базу данных, осуществляя их предварительное согласование и, возможно, агрегацию. Подсистема анализа может быть построена на основе: 1. подсистемы информационно-поискового анализа на базе реляционных СУБД и статических запросов с использованием языка SQL; 2. подсистемы оперативного анализа. Для реализации таких подсистем применяется технология оперативной аналитической обработки данных OLAP, использующая концепцию многомерного представления данных; 3. подсистемы интеллектуального анализа, реализующие методы и алгоритмы Data Mining.
1.1.2. Понятие хранилища данных Технология ХД предназначена для хранения и анализа больших объемов данных с целью дальнейшего обнаружения в них скрытых закономерностей и, наряду с технологией Data Mining, входит в понятие «предсказательная аналитика». Data Mining, в свою очередь, изучает процесс нахождения новых, действительных и потенциально полезных знаний в базах данных. ХД – предметно-ориентированный, интегрированный, редко меняющийся, поддерживающий хронологию набор данных, организованный для целей поддержки принятия решений. Предметная ориентация означает, что ХД интегрируют информацию, отражающую различные точки зрения на предметную область. Интеграция предполагает, что данные, хранящиеся в ХД, приводятся к единому формату. Поддержка хронологии означает, что все данные в ХД соответствуют последовательным интервалам времени. Кроме возможности работать с единым источником информации, руководители и аналитики должны иметь удобные средства визуализации данных, агрегирования, поиска тенденций, прогнозирования. Несмотря на многообразие аналитической деятельности можно выделить типовые технологии анализа данных, каждой из которых соответствует определенный набор инструментальных средств. Вместе с хранилищем данных эти средства обеспечивают полное
решение для автоматизации аналитической деятельности и создания корпоративной информационно-аналитической системы.
1.1.3. Физические и виртуальные хранилища данных При загрузке данных из OLTP-системы в ХД происходит дублирование данных. Однако в ходе этой загрузки данные фильтруются, поскольку не все из них имеют значение для проведения процедур анализа. В ХД хранится обобщенная информация, которая в OLTP-системе отсутствует.
Подсистема ввода (OLTP)
Оперативный источник данных
Оператор
Аналитические запросы
Подсистема ввода (OLTP)
Хранилище данных
Оперативный источник данных
Подсистема анализа Аналитик
Оператор Данные
Подсистема ввода (OLTP) Оператор
Оперативный источник данных Подсистема хранения информации
Внешний источник данных
Рисунок 2. Структура СППР с физическим ХД
Избыточность информации можно свести к нулю, используя виртуальное ХД. В такой системе данные из OLTP-системы не копируются в единое хранилище. Они извлекаются, преобразуются и интегрируются непосредственно при выполнении аналитических запросов в режиме реального времени. Фактически такие запросы напрямую передаются к OLTP-системе. Достоинства виртуального ХД: минимизация объема хранимых данных; работа с текущими, актуальными данными. Недостатки виртуального ХД: более высокое, по сравнению с физическим ХД время обработки запросов; необходимость постоянной доступности всех OLTP-источников; снижение быстродействия OLTP-систем; OLTP-системы не ориентированы на хранение данных за длительный период времени, по мере необходимости данные выгружаются в архивные, поэтому не всегда имеется физическая возможность получения полного набора данных в ХД.
1.1.4. Проблематика построения хранилищ данных Основная проблематика при создании ХД заключается в следующем: 1. интеграция разнородных данных. Данные в ХД поступают из разнородных OLTP-систем, которые физически могу быть расположены на различных узлах сети. При проектировании и разработке ХД необходимо решать задачу интеграции различных программных платформ хранения; 2. эффективное хранение и обработка больших объемов данных. Построение ХД предполагает накопление данных за значительные периоды времени, что ведет к постоянному росту объемов дисковой памяти, а также росту объема оперативной памяти, требующейся для обработки этих данных. При возрастании объемов данных этот рост нелинеен; 3. организация многоуровневых справочников метаданных. Конечным пользователям СППР необходимы метаданные, описывающие структуру хранящихся в ХД данных, а также инструменты их визуализации; 4. обеспечение информационной безопасности ХД. Сводная информация о деятельности компании, как правило, относится к коммерческой тайне и подлежит защите; кроме того, в ХД могут содержаться персональные данные клиентов и сотрудников, которые также необходимо защищать. Для выполнения этой функции должна быть разработана политика безопасности ХД и связанной с ним инфраструктуры, а также реализованы предусмотренные в политике организационные и программно-технические мероприятия по защите информации.
1.1.5. Витрины данных Сокращение затрат на проектирование и разработку ХД может быть достигнуто путем создания витрин данных (ВД). ВД – это упрощенный вариант ХД, содержащий только тематически объединенные данные (Рисунок 3).
Подсистема ввода (OLTP)
Аналитические запросы
Оперативный источник данных
Витрина данных Данные
Подсистема анализа
Оператор
Аналитик Подсистема ввода (OLTP)
Оперативный источник данных
Оператор
Витрина данных Подсистема ввода (OLTP)
Оператор
Аналитические запросы
Данные
Оперативный источник данных
Подсистема анализа Аналитик
Подсистема хранения информации
Внешний источник данных
Рисунок 3. Структура СППР с самостоятельными ВД
ВД содержит данные, ориентированные на конкретного пользователя, существенно меньше по объему, и для ее реализации требуется меньше затрат. ВД могут строиться как самостоятельно, так и вместе с ХД. ВД внедряются гораздо быстрее и быстрее виден эффект от их использования. Недостатками ВД является многократное хранение одних и тех же данных в различных ВД и отсутствие консолидированности на уровне предметной области. Обычно информация попадает в ВД из ХД в этом случае ВД называются зависимыми. Возможна также ситуация, когда источником информации для пополнения ВД служат непосредственно OLTP-системы. Такие ВД, получившие название независимых, как правило, рассматриваются как временное решение, позволяющее достаточно быстро и с небольшими затратами решить наиболее важные задачи, оценить преимущества нового подхода, сформулировать некоторые рекомендации для более масштабного проекта разработки общего ХД. Возможно также совмещение ХД и ВД в рамках одной СППР. ХД в этом случае представляет собой единый источник данных для всей предметной области, а ВД являются подмножествами данных из хранилища, организованными для представления информации по тематическим разделам данной области. В том случае, если пользователю, для которого создавалась ВД, содержащихся в ней данных недостаточно, то он может обратиться к ХД (Рисунок 4).
Подсистема ввода (OLTP)
Аналитические запросы
Оперативный источник данных
Витрина данных Данные
Подсистема анализа
Оператор
Аналитик Подсистема ввода (OLTP)
Оперативный источник данных
Хранилище данных
Оператор
Витрина данных Подсистема ввода (OLTP)
Оператор
Аналитические запросы
Данные
Оперативный источник данных
Подсистема анализа Аналитик
Подсистема хранения информации
Внешний источник данных
Рисунок 4. Структура СППР с ХД и ВД
Достоинствами такого решения являются простота создания и наполнения ВД, поскольку наполнение происходит из единого стандартизированного источника очищенных данных – из ХД, простота расширения за счет добавления новых ВД, а также снижение нагрузки на основное ХД. Недостатки заключаются в избыточности, так как данные хранятся и в ХД, и в ВД, а также дополнительные затраты на разработку СППР с ХД и ВД.
1.2.
Понятие и модель данных OLAP
1.2.1. Понятие OLAP OLAP (Online Analytical Processing) – технология оперативной аналитической обработки данных, использующая методы и средства для сбора, хранения и анализа многомерных данных в целях поддержки процессов принятия решений.
Основное назначение OLAP-систем – поддержка аналитической деятельности, произвольных запросов пользователей – аналитиков. Цель OLAP-анализа – проверка возникающих гипотез.
1.2.2. Категории данных в ХД
Оперативный источник данных
Оператор
Оперативный источник данных
Детальные данные
Входной поток
Поток метаданных
Подсистема ввода (OLTP)
Агрегированные данные
Обратный поток
Оператор
Подсистема ввода (OLTP) Оператор
Оперативный источник данных Подсистема хранения информации
Репозиторий метаданных
Аналитические запросы
Подсистема анализа
Выходной поток
Архивный поток
Подсистема ввода (OLTP)
Поток обобщения
Все данные в ХД делятся на три категории (Рисунок 5):
Аналитик Данные
Архивные данные
Хранилище данных
Внешний источник данных
Рисунок 5. Архитектура ХД
1. детальные данные – данные, переносимые непосредственно из OLTP-подсистем. Соответствуют элементарным событиям, фиксируемым в OLTP-системах. Подразделяются на: измерения – наборы данных, необходимые для описания событий (товар, продавец, покупатель, магазин, … ); факты – данные, отражающие сущность события (количество проданного товара, сумма продаж, …); 2. агрегированные (обобщенные) данные – данные, получаемые на основании детальных путем суммирования по определенным измерениям; 3. метаданные – данные о данных, содержащихся в ХД. Могут описывать: объекты предметной области, информация о которых содержится в ХД; категории пользователей, использующих данные в ХД; места и способы хранения данных; действия, выполняемые над данными; время выполнения различных действий над данными; причины выполнения различных действий над данными.
1.2.3. Информационные потоки в ХД Данные в ХД образуют следующие информационные потоки (Рисунок 5): входной поток – образуется данными, копируемыми из OLTP-систем в ХД; данные при этом часто очищаются и обогащаются путем добавления новых атрибутов; поток обобщения – образуется агрегированием детальных данных и их сохранением в ХД; архивный поток – образуется перемещением детальных данных, количество обращений к которым снизилось; поток метаданных – образуется потоком информации о данных в репозиторий данных; выходной поток – образуется данными, извлекаемыми пользователями; обратный поток – образуется очищенными данными, записываемыми обратно в OLTPсистемы.
1.3.
Структура OLAP-куба
В процессе анализа данных часто возникает необходимость построения зависимостей между различными параметрами, число которых может быть значительным. Под измерением будем понимать последовательность значений одного из анализируемых параметров. Например, для параметра «время» это – последовательность дней, месяцев, кварталов, лет. Возможность анализа зависимостей между различными параметрами предполагает возможность представления данных в виде многомерной модели – гиперкуба (Рисунок 6), или OLAP-куба.
Измерение
Измерение
Мера
Измерение Рисунок 6. Гиперкуб
Оси куба представляют собой измерения, по которым откладывают параметры, относящиеся к анализируемой предметной области, например, названия товаров и названия месяцев года. На пересечении осей измерений располагаются данные, количественно характеризующие анализируемые факты – меры, например, объемы продаж, выраженные в единицах продукции. В простейшем случае двумерного куба получается таблица, показывающая значения уровней продаж по товарам и месяцам. Дальнейшее усложнение модели данных возможно по нескольким направлениям: 1. увеличение числа измерений - данные о продажах не только по месяцам и товарам, но и по регионам. В этом случае куб становится трехмерным; 2. усложнение содержимого ячейки - например, нас может интересовать не только уровень продаж, но и чистая прибыль или остаток на складе. В этом случае в ячейке будет несколько значений; 3. введение иерархии в пределах одного измерения - общее понятие «время» связано с иерархией значений: год состоит из кварталов, квартал из месяцев и т.д.
1.4.
Иерархия измерений OLAP-кубов
Каждое из измерений OLAP-куба может быть представлено в виде иерархической структуры. Например, измерение «Регион» может иметь следующие уровни иерархии: «страна – федеральный округ – область – город – район». Некоторые измерения могут иметь несколько уровней иерархического представления, например измерение «время» - представление «год – квартал – месяц - день» и представление «год – неделя – день». Точно так же в рамках измерения «География» можно ввести уровни «Страна», «Регион», «Область» и «Город».
1.5.
Операции, выполняемые над гиперкубом
Над гиперкубом могут выполняться следующие операции: 1. Срез (Рисунок 7) – формируется подмножество многомерного массива данных, соответствующее единственному значению одного или нескольких элементов измерений, не входящих в это подмножество.
Рисунок 7. Срез
2. Вращение (Рисунок 8) – изменение расположения измерений, представленных в отчете или на отображаемой странице. Например, операция вращения может заключаться в перестановке местами строк и столбцов таблицы. Кроме того, вращением куба данных является перемещение внетабличных измерений на место измерений, представленных на отображаемой странице, и наоборот.
Измерение 2
Измерение 1 Измерение 2 Измерение 1
Измерение 3
Измерение 3
Рисунок 8. Вращение
Консолидация (Рисунок 9) и детализация (Рисунок 10) – операции, которые определяют переход вверх по направлению от детального представления данных к агрегированному и наоборот, соответственно. Направление детализации (обобщения) может быть задано как по иерархии отдельных измерений, так и согласно прочим отношениям, установленным в рамках измерений или между измерениями.
Рисунок 9. Консолидация
Рисунок 10. Детализация
Например, если при анализе данных о продажах в Северной Америке выполнить операцию детализации для измерения «Регион», то будут отображены такие элементы, как «Канада», «Восточные штаты США» и «Западные штаты США». В результате дальнейшей детализации элемента «Канада» будут отображены элементы «Торонто», «Ванкувер» и т.д.
1.6.
Таблица фактов
Таблица фактов — является основной таблицей хранилища данных. Как правило, она содержит сведения об объектах или событиях, совокупность которых будет в дальнейшем анализироваться. Обычно говорят о четырех наиболее часто встречающихся типах фактов. К ним относятся: 1. факты, связанные с транзакциями (Transaction facts). Они основаны на отдельных событиях (типичными примерами которых являются телефонный звонок или снятие денег со счета с помощью банкомата); 2. факты, связанные с «моментальными снимками» (Snapshot facts). Основаны на состоянии объекта (например, банковского счета) в определенные моменты времени, например на конец дня или месяца. Типичными примерами таких фактов являются объем продаж за день или дневная выручка; 3. факты, связанные с элементами документа (Line-item facts). Основаны на том или ином документе (например, счете за товар или услуги) и содержат подробную информацию об элементах этого документа (например, количестве, цене, проценте скидки);
4. факты, связанные с событиями или состоянием объекта (Event or state facts). Представляют возникновение события без подробностей о нем (например, просто факт продажи или факт отсутствия таковой без иных подробностей). Таблица фактов, как правило, содержит уникальный составной ключ, объединяющий первичные ключи таблиц измерений. Чаще всего это целочисленные значения либо значения типа «дата/время» — ведь таблица фактов может содержать сотни тысяч или даже миллионы записей, и хранить в ней повторяющиеся текстовые описания, как правило, невыгодно — лучше поместить их в меньшие по объему таблицы измерений. При этом как ключевые, так и некоторые неключевые поля должны соответствовать будущим измерениям OLAP-куба. Помимо этого таблица фактов содержит одно или несколько числовых полей, на основании которых в дальнейшем будут получены агрегатные данные. Для многомерного анализа пригодны таблицы фактов, содержащие как можно более подробные данные (то есть соответствующие членам нижних уровней иерархии соответствующих измерений). В данном случае предпочтительнее взять за основу факты продажи товаров отдельным заказчикам, а не суммы продаж для разных стран — последние все равно будут вычислены OLAP-средством. В таблице фактов нет никаких сведений о том, как группировать записи при вычислении агрегатных данных. Например, в ней есть идентификаторы продуктов или клиентов, но отсутствует информация о том, к какой категории относится данный продукт или в каком городе находится данный клиент. Эти сведения, в дальнейшем используемые для построения иерархий в измерениях куба, содержатся в таблицах измерений. Пример фрагмента схемы данных хранилища данных AdventureWorks приведен на Рисунок 11.
Рисунок 11. Фрагмент схемы данных хранилища данных AdventureWorks
В приведенной схеме данных таблица FactInternetSales является таблицей фактов и содержит сведения о продажах через Интернет в разрезе товаров, дат, валют, рекламы, клиентов и территории. Перечень столбцов таблицы и их типов данных приведен на Рисунок 12.
Рисунок 12. Столбцы таблицы FactInternetSales и их типы данных
1.7.
Таблицы измерений
Таблицы измерений содержат неизменяемые либо редко изменяемые данные. В подавляющем большинстве случаев эти данные представляют собой по одной записи для каждого члена нижнего уровня иерархии в измерении. Таблицы измерений также содержат как минимум одно описательное поле (обычно с именем члена измерения) и, как правило, целочисленное ключевое поле (обычно это суррогатный ключ) для однозначной идентификации члена измерения. Если будущее измерение, основанное на данной таблице измерений, содержит иерархию, то таблица измерений также может содержать поля, указывающие на «родителя» данного члена в этой иерархии. Нередко (но не всегда) таблица измерений может содержать и поля, указывающие на «прародителей», и иных «предков» в данной иерархии (это обычно характерно для сбалансированных иерархий), а также дополнительные атрибуты членов измерений, содержавшиеся в исходной оперативной базе данных (например, адреса и телефоны клиентов). Каждая таблица измерений должна находиться в отношении «один ко многим» с таблицей фактов. Отметим, что скорость роста таблиц измерений должна быть незначительной по сравнению со скоростью роста таблицы фактов; например, добавление новой записи в таблицу измерений, характеризующую товары, производится только при появлении нового товара, не продававшегося ранее.
Так, в приведенном выше примере одной из таблиц измерений является таблица DimCustomer, содержащая редко изменяемые сведения о клиентах. Состав ее столбцов и их типы данных приведены на Рисунок 13.
Рисунок 13. Состав столбцов таблицы измерений DimCusromer и их типы данных
1.8.
Архитектура OLAP-систем
Полномасштабная OLAP-система должна выполнять сложные и разнообразные функции, включающие сбор данных из различных источников, их согласование, преобразование и загрузку в хранилище, хранение аналитической информации, регламентную отчетность, поддержку произвольных запросов, многомерный анализ и др. В настоящее время существуют фактические стандарты построения OLAP-систем, основанных на концепции ХД. Эти стандарты опираются на современные исследования и общемировую практику создания хранилищ данных и аналитических систем. В общем виде архитектура корпоративной OLAP-системы описывается схемой с тремя выделенными слоями (Рисунок 14):
Отчеты
Произвольные запросы
Многомерный анализ
Доступ: «клиент-сервер» или web-интерфейс
Витрина данных
Витрина данных
Data Mining
Анализ данных
Хранение данных
Хранилище данных
Извлечение, преобразование и загрузка
Извлечение, преобразование и загрузка данных
Источники данных Рисунок 14. Архитектура корпоративной OLAP-системы
извлечение, преобразование и загрузка данных; хранение данных; анализ данных.
Данные поступают из различных внутренних OLTP-систем, от подчиненных структур, от внешних организаций в соответствии с установленным регламентом, формами и макетами отчетности. Вся эта информация проверяется, согласуется, преобразуется и помещается в хранилище и витрины данных. После этого пользователи с помощью специализированных инструментальных средств получают необходимую им информацию для построения различных табличных и графических представлений, прогнозирования, моделирования и выполнения других аналитических задач.
1.8.1. Слой извлечения, преобразования и загрузки данных С организационной точки зрения, данный слой включает подразделения и структуры организации всех уровней, поддерживающие базы данных оперативного доступа. Он представляет собой низовой уровень генерации информации, уровень внутренних и внешних информационных источников, вырабатывающих “сырую” информацию. Эта информация является рабочей для повседневной деятельности различных подразделений, которые ее вырабатывают и используют. С системно-технической точки зрения данный слой представлен ЛВС всех подразделений всех уровней, к которым подключены специализированные технические комплексы, хранящие информацию, чаще всего реализованные в виде реляционных СУБД. Из источников данных информация перемещается на основе некоторого регламента в централизованное хранилище. Как правило, необходимые для хранилища данные не хранятся в окончательном виде ни в одной из OLTP-систем. Эти данные обычно можно получить из исходных баз данных путем специальных преобразований, вычислений и агрегирования. Кроме того, несмотря на различную функциональную направленность, исходные транзакционные системы часто «пересекаются» по данным, т.е. их локальные базы данных содержат однотипную по смыслу информацию. Это, прежде всего, касается нормативно-справочной информации, которая используется в том или ином виде в любой OLTP-системе. При этом существенно, что одинаковые по смыслу данные обычно имеют в разных системах различный формат, вид представления, идентификацию, единицы измерения и т.п. Перед загрузкой в хранилище вся эта информация должна быть согласована, чтобы обеспечить целостность и непротиворечивость аналитических данных. Согласование данных необходимо и при загрузке данных из одного источника. Дело в том, что в хранилище хранятся исторические данные, т.е. данные за достаточно большой промежуток времени. В оперативной системе данные хранятся в целостном виде за ограниченный промежуток, после чего они отправляются в архив. При изменениях в структуре или собственно данных архивы не подвергаются никакой дополнительной обработке, а хранятся в исходном виде. Следовательно, при необходимости иметь данные за достаточно большой период времени необходимо согласовывать архивную информацию с текущей. Таким образом, загрузка данных из источников в хранилище осуществляется специальными процедурами, позволяющими: 1. извлекать данные из различных баз данных, текстовых файлов; 2. выполнять различные типы согласования и очистки данных; 3. преобразовывать данные при перемещении их от источников к хранилищу; 4. загружать согласованные и «очищенные» данные в структуры хранилища.
1.8.2. Слой хранения данных Слой хранения данных предназначен непосредственно для хранения значимой, проверенной, согласованной, непротиворечивой и хронологически целостной информации, которую с достаточно высокой степенью уверенности можно считать достоверной. Собственно ХД не ориентировано на решение какой-либо определенной функциональной аналитической задачи. Цель ХД – обеспечить целостность и поддерживать хронологию всевозможных корпоративных данных, и с этой точки зрения оно нейтрально по отношению к приложениям. В связи с этим в большинстве случаев для выполнения определенного комплекса функционально замкнутых аналитических задач рационально создавать витрины данных, в основе которых может быть как многомерная, так и реляционная модель данных. По существу витрина представляет собой относительно небольшое, но что самое важное, функциональноориентированное ХД, в котором информация хранится специальным образом, оптимизированным с точки зрения решения конкретных аналитических задач некоторого подразделения или группы аналитиков. ХД чаще всего реализуется в виде реляционной БД, работающей под управлением достаточно мощной реляционной СУБД. Такая СУБД должна поддерживать эффективную работу с терабайтными объемами информации, иметь развитые средства ограничения доступа, обеспечивать повышенный уровень надежности и безопасности, соответствовать необходимым требованиям по восстановлению и архивации.
1.8.3. Слой анализа данных Для организации доступа аналитиков к данным ХД и ВД используются специализированные рабочие места, поддерживающие необходимые технологии как оперативного, так и долговременного анализа. Результаты работы аналитиков оформляются в виде отчетов, графиков, рекомендаций и сохраняются как на локальном компьютере, так и в общедоступном узле локальной сети. Аналитическая деятельность в рамках корпорации достаточно разнообразна и определяется характером решаемых задач, организационными особенностями компании, уровнем и степенью подготовленности аналитиков. В связи с этим современный подход к инструментальным средствам анализа не ограничивается использованием какой-то одной технологи. В настоящее время принято различать следующие основные вида аналитической деятельности: 1. стандартная отчетность; 2. нерегламентированные запросы; 3. многомерный анализ (OLAP); 4. извлечение знаний (data mining). Каждая из этих технологий имеет свои особенности, определенный набор типовых задач и должна поддерживаться специализированной инструментальной средой.
1.9.
Клиентские OLAP-средства
Клиентские OLAP-средства представляют собой приложения, осуществляющие вычисление агрегатных данных (сумм, средних величин, максимальных или минимальных значений) и их отображение, при этом сами агрегатные данные содержатся в кэше внутри адресного пространства такого OLAP-средства. Если исходные данные содержатся в настольной СУБД, вычисление агрегатных данных производится самим OLAP-средством. Если же источник исходных данных — серверная СУБД, многие из клиентских OLAP-средств посылают на сервер SQL-запросы, содержащие оператор GROUP BY, и в результате получают агрегатные данные, вычисленные на сервере. Как правило, OLAP-функциональность реализована в средствах статистической обработки данных (из продуктов этого класса на российском рынке широко распространены продукты компаний StatSoft и SPSS) и в некоторых электронных таблицах. В частности, средствами многомерного анализа обладает Microsoft Excel. С помощью этого продукта можно создать и сохранить в виде файла небольшой локальный многомерный OLAP-куб и отобразить его двух- или трехмерные сечения. Надстройки к пакету приложений Microsoft Office для извлечения и обработки данных представляют собой ряд функций, обеспечивающих доступ к возможностям извлечения и обработки данных из приложений Microsoft Office, и тем самым позволяющих осуществлять прогностический анализ на локальном компьютере. Благодаря тому, что встроенные в службы платформы Microsoft SQL Server алгоритмы извлечения и обработки данных доступны из среды приложений Microsoft Office, бизнес-пользователи могут легко извлекать ценную информацию из сложных наборов данных всего несколькими щелчками мыши. Надстройки к пакету приложений Office для извлечения и обработки данных дают конечным пользователям возможность выполнять анализ непосредственно в приложениях Microsoft Excel и Microsoft Visio. В состав Microsoft Office 2007 входят три отдельных OLAP-компонента: 1. клиент извлечения и обработки данных для Excel позволяет создавать проекты извлечения и обработки данных на базе служб SSAS и управлять ими из Excel 2007; 2. средства анализа таблиц для приложения Excel позволяют использовать встроенные в службы SSAS функции извлечения и обработки информации для анализа данных, хранящихся в таблицах Excel; 3. шаблоны извлечения и обработки данных для приложения Visio позволяют визуализировать деревья решений, деревья регрессии, кластерные диаграммы и сети зависимостей на диаграммах Visio. На Рисунок 15 изображена сводная таблица Excel, используемая для доступа клиентов к данным служб аналитики.
Рисунок 15. Сводная таблица Excel 2007
С помощью приложения Microsoft Office Visio можно аннотировать, дополнять и отображать графические представления результатов извлечения и обработки данных. Платформа SQL Server 2008 в сочетании с приложением Visio 2007 позволяет: 1. визуализировать деревья решений, деревья регрессии, кластерные диаграммы и сети зависимостей; 2. сохранять модели извлечения и обработки данных в виде документов Visio, внедренных в другие документы приложений Office или сохраненных в виде веб-страниц. Клиентские OLAP-средства применяются, как правило, при малом числе измерений (обычно рекомендуется не более шести) и небольшом разнообразии значений этих параметров, — ведь полученные агрегатные данные должны умещаться в адресном пространстве подобного средства, а их количество растет экспоненциально при увеличении числа измерений. Поэтому даже самые примитивные клиентские OLAP-средства, как правило, позволяют произвести предварительный подсчет объема требуемой оперативной памяти для создания в ней многомерного куба.
1.10.
Серверные OLAP-средства
Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAPсредствами сходны с преимуществами применения серверных СУБД по сравнению с настольными: в случае применения серверных средств вычисление и хранение агрегатных данных происходят на сервере, а клиентское приложение получает лишь результаты запросов к ним, что позволяет в общем случае снизить сетевой трафик, время выполнения запросов и требования к ресурсам, потребляемым клиентским приложением. Отметим, что средства анализа и обработки
данных масштаба предприятия, как правило, базируются именно на серверных OLAP-средствах, например, таких как Oracle Database Server и Microsoft SQL Server. Некоторые клиентские OLAP-средства (в частности, Microsoft Excel) позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы. Помимо этого имеется немало продуктов, представляющих собой клиентские приложения к OLAP-средствам различных производителей.
1.10.1. Oracle Business Intellegence У компании Oracle существует несколько линеек продуктов класса Business Intelligence. Основная и самая большая называется Oracle Business Intelligence Enterprise Edition PLUS. Oracle Business Intelligence (BI) – это самый обширный комплекс технологий и приложений для обеспечения представления внутренней организации бизнеса, включающий ведущие BIприложения, технологические BI-платформы и хранилища данных. В BI-платформы Orecle основе лежит аналитический сервер Oracle BI Server EE. Этот сервер хранит: 1. описание различных источников данных. В качестве источников данных могут быть практически любые СУБД, как реляционные (Oracle, Microsoft SQL Server, Microsoft Analysis Services, IBM DB2), так и многомерные (MS AS, Hyperion Essbase или SAP BW), а также ODBC источники, текстовые файлы и т.д. 2. в репозитории хранится бизнес-модель данных, построенная над физическими источниками данных. Бизнес-модель описывает данные в терминах, используемых при проектировании и построении хранилищ данных. Там же описывается, каким образом данные из физических источников соответствуют бизнес-модели. 3. презентационный слой, представляющий собой витрины данных. В презентационном слое описывается, по сути, как, в каких терминах и в каком наборе будут видны данные разным типам пользователей. BI Server фактически представляет собой сервер приложений, который по запросу от пользователя вычисляет, какие данные нужны, в каком физическом источнике они находятся и делает запрос к соответствующему источнику или источникам (один запрос может возвращать данные из нескольких разных источников одновременно), после чего, сервер собирает, при необходимости агрегирует или производит дополнительные вычисления и возвращает результат. С другой стороны, BI Server сам виден в сети как ODBC источник и позволяет делать к себе запросы с помощью любого инструмента или программы, работающей с ODBC. При этом этот сервер остается виртуальным, так как данные на нем не хранятся, а собираются в момент запроса. Аналитический сервер позволяет использовать хранилище как источник данных, одновременно с OLTP системами. Инструментальные средства корпорации Oracle обеспечивают полное интегрированное решение для создания ХД и эффективного использования накопленной в нем информации.
Общий перечень продуктов Oracle, необходимых для реализации технологии хранилищ данных и аналитических приложений, приводится в Таблица 1 соответствии с выделенными ранее уровнями (Рисунок 14). Таблица 1. Продукты Oracle для OLAP и бизнес-анализа
Тип средств
Продукт
Комментарий
Извлечение, преобразование и загрузка
Oracle Warehouse Builder
Поддержка процессов извлечения, преобразования и загрузки в хранилище
ETL-средства Oracle Database Oracle WorkFlow
Хранение данных
Анализ данных Oracle BI Suite Enterprise Edition
Oracle Database
СУБД для ХД и реляционных ВД
Oracle OLAP Option
Опция СУБД для многомерных ВД
Reporting and Publishing, Reporting Workbench
Регламентированная отчетность
Answers
Инструмент выполнения произвольных запросов и анализа с web-интерфейсом. При этом пользователи работают с логическим представлением информации из различных источников данных.
Interactive Dashboard
Интерактивные информационные панели с широкими функциональными возможностями, построенные в Web-архитектуре и отображающие персонализированную информацию
Delivers
Уведомления в реальном времени, с помощью которых возможно распространять по различным каналам уведомляющие сообщения при возникновения того или иного события
Office Plug-In
Интеграция с MS Office
Disconnected Analysis
Анализ данных в автономном режиме
Business Intelligence Server
Сервер бизнес-анализа, интегрирующий данные из множества реляционных, неструктурированных, OLAP и готовых приложений-источников
В качестве среды хранения информации в реляционных ХД и ВД используется сервер Oracle Database. Центральным инструментальным средством создания хранилищ и витрин является Oracle Warehouse Builder, построенный на базе современной архитектуры Common Warehouse Metadata. Он предназначен для описания структуры ХД и ВД, проектирования и создания
процедур извлечения, согласования и загрузки данных, а также генерации метаданных для средств доступа, например таких, как Discoverer. Проектировать хранилище можно и с помощью стандартного инструмента Oracle Designer, а затем автоматически перенести описание проекта в репозиторий метаданных Oracle Warehouse Builder.
1.10.2. Microsoft SQL Server Analysis Services Другой значимой OLAP-технологией является BI-решение от компании Microsoft, построенное на платформе SQL Server и включающее компоненты Analysis Services и Integration Services. Это решение будет подробно рассмотрено во второй главе.
1.11.
Технические аспекты многомерного хранения данных
OLAP-серверы скрывают от конечного пользователя способ реализации многомерной модели. Они формируют гиперкуб, с которым пользователи посредством OLAP-клиента выполняют необходимые манипуляции, анализируя данные. Однако способ реализации важен, поскольку от него зависят производительность решения и требуемые ресурсы. Существует три основных способа реализации многомерной модели – MOLAP, ROLAP, HOLAP.
1.11.1.
MOLAP
MOLAP (Multidimensional OLAP) – для реализации многомерной модели используются многомерные БД. При этом данные хранятся в виде упорядоченных многомерных массивов. Такие массивы подразделяются на гиперкубы, в которых все хранимые в БД ячейки имеют одинаковую мерность, и поликубы, в которых каждая ячейка хранится с собственным набором измерений. Физически данные хранятся в «плоских» файлах, при этом куб представляется в виде одной плоской таблицы, в которую построчно вписываются все комбинации элементов всех измерений с соответствующими им значениями мер (Рисунок 16). Измерения
Меры
Магазин
Время
Поставщик
Товар
Единицы товара
Стоимость товара
№1
01.01.09
Иванов
Картофель
100
20
№1
01.01.09.
Иванов
Морковь
50
25
№1
01.02.09
Иванов
Картофель
150
20
№2
01.02.09
Петров
Морковь
200
25
Рисунок 16. Куб в MOLAP-системе
Преимущества использования многомерных БД в OLAP-системах: поиск и выборка данных осуществляется значительно быстрее, чем при многомерном концептуальном взгляде на реляционную БД, так как многомерная БД денормализована и содержит заранее агрегированные показатели, обеспечивая оптимизированный доступ к запрашиваемым ячейкам и не требуя дополнительных преобразований при переходе от множества связанных таблиц к многомерной модели;
многомерные БД легко справляются с задачами включения в информационную модель разнообразных встроенных функций, тогда как объективно существующие ограничения языка SQL делают выполнение этих задач на основе реляционных БД достаточно сложным, а иногда и невозможным. Недостатки MOLAP: за счет денормализации и предварительно выполненной агрегации объем данных в многомерной БД, как правило, соответствует (по оценке Кодда) в 2,5... 100 раз меньшему объему исходных детализированных данных; в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, в подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения удается удалить только за счет выбора оптимального порядка сортировки, позволяющего организовать данные в максимально большие непрерывные группы. Кроме того, оптимальный с точки зрения хранения разреженных данных порядок сортировки, скорее всего, не будет совпадать с порядком, который чаще всего используется в запросах. Поэтому в реальных системах приходится искать компромисс между быстродействием и избыточностью дискового пространства, занятого базой данных; многомерные БД чувствительны к изменениям в многомерной модели. Например, при добавлении нового измерения приходится изменять структуру всей БД, что влечет за собой большие затраты времени. На основании анализа достоинств и недостатков многомерных БД можно выделить следующие условия, при которых их использование является эффективным: объем исходных данных для анализа не слишком велик (не более нескольких гигабайт), т. е. уровень агрегации данных достаточно высок; набор информационных измерений стабилен; время ответа системы на нерегламентированные запросы является наиболее критичным параметром; требуется широкое использование сложных встроенных функций для выполнения кроссмерных вычислений над ячейками гиперкуба, в том числе возможность написания пользовательских функций.
1.11.2.
ROLAP
ROLAP (Relational OLAP) – для реализации многомерной модели используются реляционные БД. В настоящее время распространены две основные схемы реализации многомерного представления данных с помощью реляционных таблиц: схема "звезда" (Рисунок 17) и схема "снежинка" (Рисунок 18). Если каждое измерение содержится в одной таблице, такая схема хранилища данных носит название «звезда» (star schema). Если же хотя бы одно измерение содержится в нескольких
связанных таблицах, такая схема хранилища данных носит название «снежинка» (snowflake schema). Дополнительные таблицы измерений в такой схеме, обычно соответствующие верхним уровням иерархии измерения и находящиеся в соотношении «один ко многим» в главной таблице измерений, соответствующей нижнему уровню иерархии, иногда называют консольными таблицами (outrigger table).
ID_Клиента Название_компании Контактное_лицо Адрес Город Регион Телефон
Количество Сумма Скидка
Время1 PK
ID_Время Время День_недели Месяц Год Квартал
Поставщик1 PK
ID_Поставщика Название_Поставщика
Рисунок 18. Пример схемы данных "снежинка"
В сложных задачах с иерархическими измерениями целесообразно использование схемы "снежинка". В этих случаях отдельные таблицы фактов создаются для возможных сочетаний уровней обобщения различных измерений (Рисунок 18). Это позволяет добиться лучшей производительности, но часто приводит к избыточности данных и к значительным усложнениям в структуре базы данных, в которой оказывается огромное количество таблиц фактов. Увеличение числа таблиц фактов в БД определяется не только множественностью уровней различных измерений, но и тем обстоятельством, что в общем случае факты имеют разные множества измерений. При абстрагировании от отдельных измерений пользователь должен получать проекцию максимально полного гиперкуба, причем не всегда значения показателей в ней должны являться результатом элементарного суммирования. Таким образом, при большом числе независимых измерений необходимо поддерживать множество таблиц фактов, соответствующих каждому возможному сочетанию выбранных в запросе измерений, что также приводит к неэкономному использованию внешней памяти, увеличению времени загрузки данных в БД со схемой "звезда" из внешних источников и сложностям администрирования. Использование реляционных БД в OLAP-системах имеет следующие достоинства: в большинстве случаев корпоративные ХД реализуются средствами реляционных СУБД, и инструменты ROLAP позволяют производить анализ непосредственно над ними. При этом размер хранилища не является таким критичным параметром, как в случае MOLAP; в случае переменной размерности задачи, когда изменения в структуру измерений приходится вносить достаточно часто, ROLAP-системы с динамическим представлением
размерности являются оптимальным решением, т. к. в них такие модификации не требуют физической реорганизации БД; реляционные СУБД обеспечивают значительно более высокий уровень защиты данных и хорошие возможности разграничения прав доступа. Главный недостаток ROLAP по сравнению с многомерными СУБД — меньшая производительность. Для обеспечения производительности, сравнимой с MOLAP, реляционные системы требуют тщательной проработки схемы базы данных и настройки индексов. Только при использовании схем типа "звезда" производительность хорошо настроенных реляционных систем может быть приближена к производительности систем на основе многомерных баз данных.
1.11.3.
HOLAP
HOLAP (Hybrid OLAP) - для реализации многомерной модели используются и многомерные, и реляционные БД. HOLAP-серверы используют гибридную архитектуру, которая объединяет технологии ROLAP и MOLAP. В отличие от MOLAP, которая работает лучше, когда данные болееменее плотные, серверы ROLAP показывают лучшие параметры в тех случаях, когда данные довольно разрежены. Серверы HOLAP применяют подход ROLAP для разреженных областей многомерного пространства и подход MOLAP — для плотных областей. Серверы HOLAP разделяют запрос на несколько подзапросов, направляют их к соответствующим фрагментам данных, комбинируют результаты, а затем предоставляют результат пользователю.
2. Общие сведения о многомерном анализе данных при помощи службы SQL Server 2008 Analysis Services 2.1.
Возможности службы SSAS
Microsoft SQL Server Analysis Services (SSAS) является базовой платформой для развития систем бизнес-анализа (Business Intelligence). SSAS 2008 обеспечивают высокую производительность работы приложений и масштабируемость на уровне миллионов записей и тысяч пользователей.
2.1.1. Компоненты BI-решения Microsoft BI-решение компании Microsoft основывается на масштабируемой платформе, предназначенной для интеграции данных, построения хранилищ данных, анализа накопленных данных и построения отчетов. Ядром BI-решения Microsoft является платформа SQL Server. Входящие в нее компоненты, специфические для BI-решения, приведены в Таблица 2. Таблица 2. Компоненты BI-решения Microsoft
Компонент
Описание
SQL Server Database Engine
Масштабируемая, высокопроизводительная СУБД, способная хранить большие объемы данных, образующиеся в результате консолидации данных в единое хранилище для анализа и построения отчетов.
SQL Server Integration Services
Платформа для выполнения операций извлечения, преобразования и загрузки, которая обеспечивает заполнение ХД и его синхронизацию с данными из различных источников, которые используются бизнесприложениями организации.
SQL Server Analysis Services
Обеспечивает возможность построения OLAPрешений, включая возможность расчета ключевых индикаторов производительности (KPI). Применяется также для построения datamining-решений, которые используют специализированные алгоритмы для выявления трендов и зависимостей в бизнесданных.
SQL Server Reporting Services
Инструментарий построения отчетов, предназначенный для создания, публикации и распространения детализированных бизнесотчетов, как для внутренних, так и для внешних целей.
2.1.2. UDM SSAS построены на основе Унифицированной Многомерной Модели (Unified Dimensional Model, UDM), появившейся в версии 2005, которая позволяет различным типам клиентских приложений получать доступ к данным как из реляционных, так и из многомерных баз данных без использования отдельных моделей для каждого типа баз данных. Основой UDM является архитектура измерений на основе атрибутов. Архитектура измерений на основе атрибутов дает возможность группировать свойства (атрибуты), определяющие функционирование бизнеса, в одно измерение и отделить эти свойства от правил навигации по измерению — иерархий. UDM предоставляет возможность использовать множество источников данных (data sources) для создания многомерной модели. Модель UDM может быть использована для создания единого представления реляционных и многомерных данных, включающих бизнес-объекты, бизнес-аналитику, вычисления и метрики. Модель UDM создает промежуточный логический уровень между физической реляционной базой данных, используемой в качестве источника данных, и фирменными структурами куба и измерений, используемыми для обработки пользовательских запросов. Таким образом, модель UDM можно представить себе как ядро системы OLAP. Одним из ключевых преимуществ модели UDM является возможность сочетать гибкость и функциональное богатство традиционной реляционной модели генерации отчетов с мощными аналитическими средствами и превосходной производительностью классической модели системы OLAP. В эту модель включен широкий спектр функций бизнес-аналитики, позволяющих эффективнее осуществлять реляционный и OLAPанализ, и дающих организациям возможность расширять свои решения с использованием
механизма ключевых показателей эффективности KPI, а также сложных функций прогностического анализа.
2.1.3. Масштабируемость и производительность За счет высокой масштабируемости службы SSAS позволяют работать с терабайтными базами данных, и с тысячами пользователей. Чтобы обеспечить работу большого количества пользователей, избежать конфликтов при пользовании ресурсами и снизить затраты, имеется возможность горизонтального масштабирования служб SSAS. Горизонтальное масштабирование заключается в наращивании вычислительных мощностей и емкости хранилищ данных с целью хранения и синхронизации нескольких версий данных, но в то же время службы SSAS позволяют организовать общий доступ для чтения информации из одной базы данных служб с нескольких серверов, устраняя необходимость в избыточных ресурсах. Кубы служб SSAS — это многомерные структуры, обеспечивающие высокоскоростной доступ к большим объемам предварительно объединенных данных, и позволяющие конечным пользователям получать интересующие их бизнес-данные в реальном времени. В службах SSAS хранятся бизнес-данные в формате MOLAP, предоставляющем возможность высокой степени оптимизации и сжатия . Присущая этому формату гибкость дает также возможность частично или полностью хранить данные в реляционной базе данных в режиме реляционного OLAP (ROLAP) или в смешанном режиме, называемом гибридным OLAP (HOLAP). Режим MOLAP обеспечивает значительно более высокую производительность, чем режимы ROLAP и HOLAP.
2.1.4. Представление источника данных SSAS предоставляет уровень абстракции над реляционным источником данных — представление источника данных. Представление источника данных позволяет определять таблицы из реляционной базы для использования в многомерной модели. Кроме того, объект представления источника данных позволяет создавать вычисляемые столбцы и представления над реляционными таблицами.
2.1.5. Интеграция с Microsoft Office System 2007 BI-платформа Microsoft предоставляет возможности интеграции с продуктами семейства Microsoft Office System 2007, в частности: Microsoft Office Excel 2007 дает возможность просматривать данные, хранящиеся в OLAPкубах SSAS путем построения динамических представлений Microsoft PivotTable, что не требует установки дополнительного программного обеспечения; Microsoft Office Word 2007, как и Microsoft Office Excel 2007, позволяют просматривать отчеты, генерируемые при помощи Reporting Services; Microsoft Office Visio 2007 позволяет визуализировать деревья решений, деревья зависимостей, кластерные диаграммы и другие модели технологии data mining;
Microsoft Office SharePoint Server позволяет создать единый пользовательский интерфейс для просмотра и управления отчетами, генерируемыми при помощи Reporting Services.
2.1.6. Локализация решения посредством использования переводов Часто возникает необходимость разработки многоязыковых решений. Как правило, сами данные едины для всего мира, но метаданные — куб, меры, наименования и уровни измерений, ключевые показатели эффективности (KPI) будут своими для каждого используемого языка. Переводы позволяют задавать различные значения метаданных для разных языков и приспосабливать решения для работы в международном контексте. Финансовую информацию также необходимо локализировать для представления результатов в надлежащей валюте. Предусмотренные в службах SSAS возможности перевода и автоматического конвертирования валют позволяют отображать локализованные данные анализа на родном языке пользователей.
2.2.
Инструменты управления службой SSAS
SQL Server 2008 представляет следующий набор инструментов для разработки приложений и управления серверами:
2.2.1. BI Dev Studio SQL Server Business Intelligence Development Studio (BI Dev Studio) – инструмент, предназначенный для разработки полноценных систем бизнес-анализа на основе Analysis Services, Reporting Services и Integration Services (Рисунок 19).
Рисунок 19. BI Dev Studio
BI Dev Studio интегрируется в оболочку Visual Studio, что позволяет создавать дополнительные типы проектов для SSAS (Рисунок 20);
Рисунок 20. Типы проектов для Analysis Services
При помощи среды BI Dev Studio можно создавать проекты служб SSAS, содержащие определения объектов (кубов, измерений и т.д.) служб SSAS, которые хранятся в XML-файлах, содержащих элементы языка сценариев служб SSAS (ASSL). Эти проекты содержатся в решениях, где также содержатся проекты из других компонентов SQL Server, включая службы SQL Server Integration Services и SQL Server Reporting Services. В среде BI DevStudio можно разрабатывать проекты служб SSAS как часть решения, которое не зависит от какого-либо конкретного экземпляра служб SSAS. Во время разработки объекты могут быть развернуты на экземпляре на тестовом сервере с целью проверки, после чего этот же проект служб SSAS может быть использован для развертывания объектов в экземплярах на одном или нескольких промежуточных или рабочих серверах. Средой BI DevStudio можно также воспользоваться, чтобы напрямую подсоединиться к существующему экземпляру служб SSAS для создания и изменения объектов служб SSAS, без работы с проектом и без хранения определений объекта в XML-файлах. В BI Dev Studio входит средство оповещения Best Practice Design Alerts , автоматически информирующее о возможных недочетах в проекте на ранних стадиях процесса разработки, и сокращающее потери времени, вызванные проектными ошибками, что существенно ускоряет разработку.
2.2.2. SSMS SQL Server Management Studio (SSMS) – инструмент, предназначенный для администраторов баз данных, позволяющий управлять многомерными объектами, созданными разработчиками баз данных (Рисунок 21). SSMS позволяет администрировать Analysis Services, SQL Server, Reporting Services и Integration Services в единой консоли, которая объединяет функциональность управления, редактирования запросов и настройки производительности.
Рисунок 21. SSMS
При помощи среды SQL Server Management Studio можно управлять объектами служб Analysis Services (выполнять резервное копирование, обработку и т. д.), а также создавать новые объекты непосредственно в существующем экземпляре служб Analysis Services с помощью сценариев XML для аналитики. Среда SQL Server Management Studio представляет проект сценариев сервера анализа данных, в котором можно разрабатывать и сохранять сценарии, написанные на языках многомерных выражений, расширений интеллектуального анализа данных и XML для аналитики (XMLA). Обычно проекты сценариев сервера анализа данных используются для выполнения задач по управлению или для повторного создания объектов, например: баз данных или кубов, в экземплярах служб Analysis Services.
3. Планирование и архитектура SSAS 3.1.
Логическая архитектура
Службы Microsoft SQL Server Analysis Services используют как серверные, так и клиентские компоненты для предоставления приложениям бизнес-аналитики функций оперативной аналитической обработки (OLAP) и интеллектуального анализа данных. Серверный компонент служб SSAS реализован в виде службы Microsoft Windows. Службы SQL Server Analysis Services поддерживают работу нескольких экземпляров на одном компьютере, при этом каждый экземпляр служб SSAS реализован как отдельный экземпляр службы Windows. Клиенты обмениваются данными со службами SSAS с помощью общедоступного стандарта XML для аналитики (XMLA), который представляет собой протокол на базе SOAP для выполнения команд и получения ответов и предоставляется в виде веб-службы. Поэтому каждый экземпляр SSAS является Web-сервисом.
Клиентские модели объектов также предоставляются через XML для аналитики, и доступ к ним производится через управляемый поставщик, например ADOMD.NET, или через собственный поставщик OLE DB. Также службы SSAS поддерживают ядро локального куба, которое позволяет приложениям на отключенных клиентах просматривать локально хранимые многомерные данные. Экземпляр служб SSAS может содержать несколько баз данных, а в базе данных могут одновременно присутствовать объекты OLAP и объекты интеллектуального анализа данных. Приложения подключаются к указанному экземпляру служб SSAS и к указанной базе данных. На серверном компьютере может эксплуатироваться несколько экземпляров служб SSAS. Экземпляры служб SSAS именуются как «<ИмяСервера>\<ИмяЭкземпляра>». На Рисунок 7 показаны все упомянутые связи между объектами служб SSAS.
Рисунок 22. Связи между объектами служб SSAS
Основные классы представляют собой минимальный набор объектов, требуемый для формирования куба. Этот минимальный набор объектов включает измерение, группу мер и секцию. Определение статистической обработки является необязательным. Измерение описывает элемент данных, по которому производится анализ. Например, распространенным элементом анализа является время. Измерения создаются на основе атрибутов и иерархий. Атрибут – это полная коллекция элементов одного типа. Например, все дни недели будут атрибутом измерения «Время». Иерархии формируются с использованием упорядоченного набора атрибутов, такого, что каждый атрибут соответствует одному из уровней в иерархии.
Кубы создаются на основе измерений и групп мер. Начиная с Analysis Services 2005, поддерживается множество фактов в одном кубе. Меры из таблицы фактов группируются в группу мер. Куб может иметь несколько групп мер. Измерения в коллекции измерений куба принадлежат к коллекции измерений базы данных. Группы мер — это коллекции мер, которые имеют одно и то же представление источника данных и одно и то же подмножество измерений в кубе. Группа мер имеет одну или несколько секций, предназначенных для управления физическими данными. Группа мер может иметь применяемую по умолчанию статистическую схему. Статистическая схема по умолчанию может использоваться во всех секциях в группе мер; кроме того, каждая секция может иметь собственную статистическую схему. Каждый экземпляр служб SSAS рассматривается как отдельный объект сервера. Каждый отдельный экземпляр подключается к объекту Server с помощью отдельного соединения. Каждый объект сервера содержит один или несколько источников данных, представление источника данных и объекты базы данных, а также сборки и роли безопасности. Каждый объект базы данных содержит несколько объектов измерения. Каждый объект измерения содержит один или несколько атрибутов, которые организованы в виде иерархий. Каждый объект базы данных содержит один или несколько объектов куба. Куб задается его мерами и измерениями. Меры и измерения куба выводятся из таблиц и представлений в представлении источника данных, на котором основан куб или который создан из определений мер и измерений. Пример Куб «Импорт» (Рисунок 23) содержит две меры («Пакеты» и «Последняя дата») и три связанных измерения («Маршрут», «Источник» и «Время»).
Рисунок 23. Куб "Импорт"
По осям куба отложены элементы измерений. Примеры элементов — «Наземный» (элемент измерения «Маршрут»), «Африка» (элемент измерения «Источник») и «1-й квартал» (элемент измерения «Время»). Значение в ячейках куба представляют две меры — «Пакеты» и «Последняя дата». Мера «Пакеты» представляет число импортированных посылок; для статистической обработки фактов используется функция Sum. Мера «Последняя дата» представляет собой дату получения; для статистической обработки используется функция Max. Измерение «Маршрут» представляет пути, которыми импортируемый товар достигает своего назначения. В число элементов этого измерения входят «наземный», «не наземный», «воздушный», «морской», «дорожный» и «железнодорожный». Измерение «Источник» представляет место производства импортируемого товара, например Азию или Африку. Измерение «Время» представляет кварталы и полугодия. Пользователи куба могут определять значения его мер для каждого элемента в каждом измерении независимо от уровня элемента в измерении, поскольку службы SSAS вычисляют значения верхних уровней по мере необходимости. Например, значения меры на Рисунок 23 могут быть вычислены в соответствии с обычной календарной иерархией с использованием иерархии «Календарное время» в измерении «Время», как показано на Рисунок 24.
Рисунок 24. Значения мер в соответствии с иерархией "Календарное время"
Меры, атрибуты и иерархии в примере куба выводятся из следующих столбцов таблиц фактов и измерений куба (Таблица 3). Таблица 3. Соответствие элементов куба таблицам фактов и измерений
Мера или атрибут (уровень)
Элементы
Исходная таблица
Исходный столбец
Образец значения столбца
Мера «Посылки»
Неприменимо
ImportsFactTable
Посылки
12
Мера «Последняя дата»
Неприменимо
ImportsFactTable
Последняя дата
03-май-99
Уровень категории «Маршрут» в измерении «Маршрут»
не наземный, наземный
RouteDimensionTable
Route_Category
Не наземный
Атрибут «Маршрут» в измерении «Маршрут»
воздушный, морской, дорожный, железнодорожный
RouteDimensionTable
Маршрут
Морской
Атрибут «Полушарие» в измерении «Источник»
Восточное полушарие, западное полушарие
SourceDimensionTable
Полушарие
Восточное полушарие
Атрибут «Континент» в измерении «Источник»
Африка, Азия, Австралия, Европа, Северная Америка, Южная Америка
SourceDimensionTable
Континент
Европа
Атрибут «Полугодие» в измерении «Время»
Первое полугодие, второе полугодие
TimeDimensionTable
Полугодие
Второе полугодие
Атрибут «Квартал» в измерении «Время»
Первый квартал, второй квартал, третий квартал, четвертый квартал
TimeDimensionTable
Квартал
Третий квартал
Приведенный пример представляет простой куб, в том смысле, что это куб с единственной группой мер, а все таблицы измерений соединены с таблицей фактов по схеме «звезда». Другая схема — это схема «снежинка», в которой одна или несколько таблиц измерений присоединяются к другой таблице измерения, а не напрямую к таблице фактов. В приведенном здесь примере содержится только одна таблица фактов. Когда в кубе есть несколько таблиц фактов, меры каждой из них организуются в группы мер, причем группа мер связана с соответствующим набором измерений согласно заданным связям измерений.
3.2.
Физическая архитектура
С точки зрения физической архитектуры службы SSAS состоят из серверного и клиентского компонентов. 1. Серверный компонент служб SSAS реализован в виде службы Microsoft Windows. Службы SSAS поддерживают работу нескольких экземпляров на одном компьютере, при этом каждый экземпляр служб SSAS реализован как отдельный экземпляр службы Windows. 2. Клиенты обмениваются данными со службами SSAS с помощью общедоступного стандарта XML для аналитики (XMLA), который представляет собой протокол на базе SOAP для выполнения команд и получения ответов и предоставляется в виде веб-службы. Клиентские модели объектов также предоставляются через XML для аналитики, и доступ к ним производится через управляемый поставщик, например ADOMD.NET, или через собственный поставщик OLE DB. Команды запросов могут быть выражены на следующих языках: 1. Расширения интеллектуального анализа данных (DMX) — стандартный язык запросов, ориентированный на интеллектуальный анализ данных. 2. Язык сценариев служб Analysis Services (ASSL) также может использоваться для управления объектами базы данных служб SSAS. Экземпляр служб SSAS запускается, как изолированная служба, взаимодействие с этой службой происходит через XMLA с использованием протокола HTTP или TCP. Объекты AMO — это прослойка между приложением пользователя и экземпляром служб SSAS. Они предоставляют доступ к административным объектам служб SSAS. Объект AMO — это библиотека класса, которая принимает команды от клиентского приложения и преобразует их в XMLA-сообщения для экземпляра служб SSAS. Объекты AMO представляют объекты экземпляра служб SSAS, как классы для приложения конечного пользователя, с элементами-методами, запускающими команды и элементами-свойствами, хранящими данные объектов служб SSAS. На Рисунок 25 отображена архитектура компонентов служб SSAS, включая все главные элементы, запущенные на экземпляре служб SSAS, и все пользовательские компоненты, взаимодействующие с этим экземпляром. Как показано на рисунке, единственным путем доступа к экземпляру является прослушиватель XML для аналитики или использование протокола HTTP или TCP.
Рисунок 25. Архитектура компонентов служб SSAS
3.3.
Архитектура программирования SSAS
Прикладная модель определяет формат данных, и котором они передаются аналитическим приложениям. Основным пользователем прикладной модели данных является клиентское приложение, которое представляет модель пользователю. Прикладная модель создается с помощью Языка Многомерных Выражений (Multidimensional Expressions, MDX), который служит как для представления запросов к многомерной базе данных, так и для описания модели формирования данных внутри нее при помощи MDX-сценариев (MDX Scripts).
3.3.1. Объекты AMO Объекты AMO являются полной коллекцией классов управления для служб SSAS, доступных для использования программным способом в управляемой среде, через пространство имен Microsoft.AnalysisServices. Эти классы включены в файл AnalysisServices.dll, который обычно находится в каталоге установки SQL Server, то есть в папке \100\SDK\Assemblies\. Для работы с классами AMO следует указать в проекте Visual Studio ссылку на эту сборку. Объекты AMO позволяют создавать, изменять и удалять такие объекты, как кубы, измерения, структуры интеллектуального анализа, а также базы данных служб SSAS. Приложение, работающее на платформе .NET Framework, может выполнять действия со всеми этими объектами. Кроме этого, существует также возможность обновления и обработки данных, хранящихся в базах данных служб SSAS. Объекты AMO не позволяют выполнять запросы к данным. Для запроса данных предназначены объекты, описанные в разделе ADOMD.NET. Библиотека классов AMO содержит иерархию классов, где для использования в коде сначала создаются экземпляры одних классов, а затем других. Существуют также дополнительные классы, экземпляры которых могут быть в любой момент созданы в коде, однако сначала, вероятно, потребуется создать экземпляры одного или нескольких классов иерархии. На Рисунок 26 приведена иерархия классов AMO высокого уровня, содержащая основные классы.
Рисунок 26. Иерархия классов AMO высокого уровня
Объекты AMO особенно полезны для автоматизации часто выполняемых задач (например, для создания новых секций в группе мер при появлении новых данных в таблице фактов или для повторного обучения модели интеллектуального анализа при появлении новых данных). Обычно эти задачи, которые создают новые объекты, выполняются ежемесячно, еженедельно или ежеквартально, а приложение может легко именовать эти новые объекты на основе новых данных. Администраторы служб SSAS могут использовать объекты AMO, чтобы автоматизировать обработку баз данных служб SSAS. Проектирование и развертывание баз данных служб SSAS следует производить в среде BI Dev Studio.
Разработчикам объекты AMO дают возможность создавать интерфейсы администрирования для определенных наборов пользователей. Эти интерфейсы позволяют ограничивать доступ к объектам служб SSAS и разрешать пользователям выполнять только определенные задачи. На основе объектов AMO можно, например, создать приложение для создания резервных копий, которое позволит пользователям видеть все объекты баз данных, выбрать любую из баз данных и создать ее резервную копию на любом устройстве из указанного набора. Разработчики могут также внедрять в приложения логику служб SSAS. Это возможно благодаря созданию кубов, измерений, структур и моделей интеллектуального анализа на основе пользовательского ввода и других факторов. Проектирование, развертывание и обслуживание большинства наиболее часто выполняемых задач лучше всего выполняется при помощи приложений на основе служб Integration Services, написанных на любом языке. А для тех повторяющихся задач, автоматизировать которые при помощи служб Integration Services невозможно, можно использовать объекты AMO. Объекты AMO также полезны при разработке специализированных приложений для бизнес-аналитики на основе служб SSAS.
3.3.2. Язык ASSL Клиентские приложения служб SSAS, в том числе SQL Server Management Studio и BI Dev Studio, поддерживают связь со службами SSAS с помощью сообщений SOAP. Язык сценариев служб Analysis Services (язык ASSL), который является разновидностью XML, используемой для этих сообщений, состоит из двух частей: 1. языка описания данных DDL, или язык определения объектов, который определяет и описывает экземпляр служб SSAS, а также базы данных и объекты баз данных, находящихся в этом экземпляре; 2. командного языка, который отправляет команды-действия, например Create, Alter или Process, экземпляру служб SSAS. В службах SSAS язык определения данных (Data Definition Language, DDL) языка ASSL определяет структуру объектов служб SSAS (например, кубов, измерений и моделей интеллектуального анализа данных), а также привязку объектов служб SSAS к источникам данных. DDL также сохраняет определение объектов служб SSAS. Приложения служб SSAS используют DDL для создания, изменения, развертывания и описания объектов SSAS. Разработчик проектирует набор кубов при помощи средств проектирования среды BI DevStudio и сохраняет это определение как часть проекта. Разработчик не ограничен использованием только средств проектирования, он также может открывать непосредственно файлы определений кубов для изменения XML. Администратор БД использует среду SQL Server Management Studio для непосредственного редактирования XML в качестве средства создания и изменения объектов служб SSAS так же, как он использует SQL Server DDL, чтобы создавать и изменять объекты Microsoft SQL Server.
3.3.3. Поставщик данных ADOMD.NET Как и в случае с поставщиками данных платформы Microsoft .NET Framework, такими как ADO.NET, ADOMD.NET выступает в качестве моста между приложением и источником данных. Однако
ADOMD.NET отличается от остальных поставщиком данных платформы .NET Framework тем, что он работает с аналитическими данными. Чтобы работать с аналитическими данными, компонент ADOMD.NET обладает функциями, которые значительно отличаются от функций других поставщиков данных платформы .NET Framework. ADOMD.NET позволяет получать не только данные, но и метаданные, а также изменять структуру источника аналитических данных. Получив метаданных при помощи наборов строк схемы или модели объекта, приложения могут узнать больше о тех данных, которые можно извлечь из источника данных. Получить можно такие сведения, как типы доступных ключевых индикаторов производительности, измерения в кубе и параметры, которые требуются модели интеллектуального анализа данных. Наибольшее значение метаданные имеют для динамических приложений, которым для определения типа, глубины и области действия получаемых данных требуется ввод пользователя. Среди таких приложений Query Analyzer, Microsoft Excel и другие средства запросов. Метаданные менее значимы для статических приложений, выполняющих набор стандартных действий. Получение данных — это фактическое извлечение сведений, хранящихся в источнике данных. Получение данных является основной функцией «статических» приложений, которым известна структура источника данных. Получение данных также является конечным результатом «динамических» приложений. Значение ключевого индикатора производительности в данное время суток, число велосипедов, проданных за последний час по каждому магазину и факторы, влияющие на среднегодовую производительность сотрудников — все это примеры данных, которые можно получить. Получение данных важно для любого выполняющего запросы приложения. Компонент ADOMD.NET также можно использовать, чтобы фактически изменять структуру хранилища аналитических данных. И хотя обычно это делается с помощью модели объектов AMO, компонент ADOMD.NET можно использовать для отправки команд на ASSL, чтобы создавать, изменять или удалять объекты на сервере.
4. Разработка многомерных баз данных с использованием SSAS 4.1.
Проектирование и реализация многомерных баз данных
4.1.1. Решения, проекты и элементы И среда BI Dev Studio, и среда SQL Server Management Studio предоставляют проекты, которые, в свою очередь, организованы в решения. Решение может содержать несколько проектов, а проект обычно содержит несколько элементов. При создании проекта автоматически создается новое решение, а в существующее решение при необходимости можно добавлять проекты. Объекты, которые содержатся в проекте, зависят от его типа. Элементы в каждом контейнере проекта хранятся в виде файлов, расположенных в папках проекта в файловой системе.
4.1.2. Типы проектов бизнес-аналитики В Таблица 4 приведены типы проектов бизнес-аналитики, которые могут быть созданы в среде BI Dev Studio.
Таблица 4. Типы проектов бизнес-аналитики в среде BI Dev Studio
Проект
Описание
Проект служб Analysis Services
Содержит определения объектов для одиночной базы данных служб SSAS.
Импорт базы данных служб Analysis Services 2008
Предоставляет мастер, который можно использовать для создания нового проекта служб SSAS путем импортирования определений объектов из существующей базы данных служб SSAS.
Проект служб Integration Services
Содержит определения объектов для набора пакетов служб Integration Services.
Мастер проектов отчетов
Предоставляет мастер, который помогает выполнить процесс создания проекта отчета с помощью служб Reporting Services.
Проект модели отчета
Содержит определения объектов для модели отчета служб Reporting Services.
Проект сервера отчетов
Содержит определения объектов для одного или нескольких отчетов служб Reporting Services.
Среда SSMS также содержит несколько типов проектов, предназначенных для различных типов запросов или сценариев (Таблица 5). Таблица 5. Типы проектов бизнес-аналитики в SSMS
Проект
Описание
Сценарии служб Analysis Services
Содержит сценарии расширений интеллектуального анализа данных, многомерных выражений и XML для аналитики для служб SSAS, а также соединения с экземплярами служб SSAS, в которых эти сценарии могут выполняться.
Сценарии SQL Server Compact
Содержит сценарии SQL для SQL Server Compact, а также соединения с экземплярами SQL Server Compact, в которых могут выполняться эти сценарии.
Сценарии SQL Server
Содержит сценарии Transact-SQL и XQuery для экземпляра компонента SQL Server Database Engine, а также соединения с экземплярами компонента SQL Server Database Engine, в которых эти сценарии могут выполняться.
4.1.3. Выбор между SSMS и BI Dev Studio Среда SSMS разработана для администрирования и настройки существующих объектов в компонентах SQL Server Database Engine, Analysis Services, Integration Services и Reporting Services. Среда BI Dev Studio предназначена для разработки решений в области бизнес-аналитики, которые включают функции служб Analysis Services, Integration Services и Reporting Services. Основные различия между SSMS и BI Dev Studio заключаются в следующем:
среда SSMS предоставляет интегрированную среду для соединения с экземплярами служб SSAS, SQL Server и Reporting Services, чтобы настраивать объекты, а также проводить администрирование объектов и управлять ими в пределах экземпляра служб SSAS. С использованием этих сценариев можно также использовать среду SSMS для создания или изменения объектов служб SSAS, но среда SSMS не предоставляет графический интерфейс для конструирования и определения объектов; среда BI Dev Studio предоставляет интегрированную среду разработки для разработки решений бизнес-аналитики. Среду BI Dev Studio можно использовать в проектном режиме, использующем определения на основе XML объектов служб SSAS, Integration Services и Reporting Services, содержащихся в проектах и решениях. Использование среды BI Dev Studio в проектном режиме означает, что изменения объектов служб SSAS в среде BI Dev Studio применяются к определениям объектов на основе XML, но не применяются непосредственно к объекту в экземпляре служб SSAS до тех пор, пока решение не будет развернуто. Среду BI Dev Studio можно также использовать в оперативном режиме, т. е. напрямую подключаться к экземпляру служб SSAS и работать с объектами существующей базы данных.
4.1.4. Создание проекта служб Analysis Services в среде BI Dev Studio Создание проекта служб SSAS в среде BI Dev Studio выполняется либо с помощью шаблона проекта служб SSAS, либо с помощью мастера импорта базы данных служб Analysis Services 9.0 считывается содержимое базы данных служб SSAS, и на его основе создается проект служб SSAS. Если в настоящий момент в среде BI Dev Studio не загружено ни одно решение, при создании нового проекта служб SSAS будет автоматически создано новое решение. В противном случае новый проект служб SSAS может быть добавлен к существующему решению или создан в новом решении. Для создания проекта служб SSAS в среде BI Dev Studio необходимо выполнить следующие шаги: 1. создание проекта служб SSAS выполняется путем выбора шаблона проекта служб SSAS или с помощью мастера импорта базы данных служб Analysis Services 9.0 в группе шаблонов бизнес-аналитики диалогового окна «Добавление нового проекта», а также задания имени и размещения для нового проекта (Рисунок 27).
Рисунок 27. Создание проекта служб SSAS
2. если определить проект служб SSAS, основанный на шаблоне проекта служб SSAS, проект шаблона будет открыт в среде BI Dev Studio, в которой можно определить источники данных, представления источников данных, кубов, измерений, ролей и других объектов служб SSAS. Можно сконструировать эти объекты, основанные на существующих источниках данных, или сформировать специальную реляционную структуру базы данных, основанную на кубе и конструкторе измерений. Также можно сконструировать куб и объекты измерения, основанные на кубе и шаблонах измерений (Рисунок 28);
Рисунок 28. Обозреватель решений проекта Analysis Services в BI Dev Studio
3. если вновь определенный проект служб SSAS был основан на существующей базе данных служб SSAS, метаданные для этой базы данных будут открыты в проекте служб SSAS в среде BI Dev Studio, в которой можно изменить метаданные существующей базы данных. Однако до тех пор, пока изменения не будут развернуты, они не повлияют на существующие базы данных служб SSAS; 4. Создаются другие проекты, требуемые для решения бизнес-аналитики.
5. Добавляются дополнительные файлы, например текстовые файлы, содержащие примечания к проекту, в папку «Разное» проекта служб SSAS в окне обозревателя решений (Рисунок 29).
Рисунок 29. Добавление дополнительных файлов в папку "Разное" обозревателя решений
6. определяются свойства развертывания проекта, чтобы задать сервер, на котором будут развернуты метаданные проекта как обработанные объекты, и указать другие свойства развертывания (Рисунок 30).
Рисунок 30. Определение свойств развертывания проекта
7. Собирается (Рисунок 31) и развертывается (Рисунок 32) решение в экземпляре служб SSAS для тестирования. При сборке решения проверяются определения и зависимости объектов, включенные в проект, и формируется сценарий развертывания. При развертывании решения используется ядро развертывания служб SSAS для отправки подсистемы развертывания в указанный экземпляр.
Рисунок 31. Построение решения
Рисунок 32. Развертывание решения
8. просмотр и тестирование развернутого проекта; 9. при необходимости изменяются определения объектов, и повторяется сборка и развертывание.
4.1.5. Папки проекта служб Analysis Services Проект служб SSAS содержит набор папок, которые используются для организации элементов, включенных в проект (Таблица 6). Таблица 6. Папки проекта служб SSAS
Папка
Описание
Источники данных
Содержит источники данных для проекта служб SSAS. Эти объекты создаются в мастере источников данных и редактируются в конструкторе источников данных.
Представления источников данных
Содержит представления источников данных для проекта служб SSAS. Эти объекты создаются в мастере представлений источников данных и редактируются в конструкторе представлений источников данных.
Кубы
Содержит кубы для проекта служб SSAS. Эти объекты создаются в мастере кубов и редактируются в конструкторе кубов.
Измерения
Содержит измерения для проекта служб SSAS. Эти объекты создаются в мастере измерений или мастере кубов и редактируются в конструкторе измерений.
Структуры
Содержит структуры интеллектуального анализа данных для проекта
интеллектуального анализа данных
служб SSAS. Эти объекты создаются в мастере моделей интеллектуального анализа данных и редактируются в конструкторе моделей интеллектуального анализа данных.
Роли
Содержит роли базы данных для проекта служб SSAS. Создание и управление ролями осуществляется в конструкторе ролей.
Сборки
Содержит ссылки на библиотеки COM и сборки платформы Microsoft .NET Framework для проекта служб SSAS. Ссылки создаются при помощи диалогового окна Добавление ссылки.
Прочее
Содержит все типы файлов, за исключением типов файлов служб SSAS.
4.1.6. Типы файлов проекта Analysis Services Решение в среде BI Dev Studio может содержать несколько типов файлов, в зависимости от того, какие проекты включены в решение и какие элементы включены в каждый из проектов для этого решения (Таблица 7). Обычно файлы для каждого проекта в решении среды BI Dev Studio хранятся в папке решения, в отдельной папке для каждого проекта. Таблица 7. Типы файлов проекта Analysis Services
Тип файла
Описание
Файл определения проекта служб SSAS (DWPROJ)
Содержит метаданные об элементах, конфигурациях и ссылках на сборки, определенные и включенные в проект служб SSAS.
Пользовательские настройки проекта служб SSAS (DWPROJ.USER)
Содержит данные о конфигурации проекта служб SSAS для конкретного пользователя.
Файл источника данных (DS)
Содержит элементы языка сценариев служб SSAS (ASSL), определяющие метаданные для источника данных.
Файл представления источника данных (DSV)
Содержит элементы ASSL, определяющие метаданные для представления источника данных.
Файл куба (CUBE)
Содержит элементы ASSL, определяющие метаданные для куба, включая группы мер, меры и измерения куба.
Файл секций (PARTITIONS)
Содержит элементы ASSL, определяющие метаданные для секций указанного куба.
Файл измерения (DIM)
Содержит элементы ASSL, определяющие метаданные для измерения базы данных.
Файл структуры интеллектуального анализа данных (DMM)
Содержит элементы ASSL, определяющие метаданные для структуры интеллектуального анализа данных и связанных с ней моделей интеллектуального анализа данных.
Файл базы данных (DATABASE)
Содержит элементы ASSL, определяющие метаданные для
базы данных, включая типы учетных записей, переводы и разрешения базы данных. Файл роли базы данных (ROLE)
4.2.
Содержит элементы ASSL, определяющие метаданные для роли базы данных, включая членов роли.
Запросы к многомерным базам данных
Многомерные выражения применяются для запросов многомерных данных или для работы с кубами.
4.2.1. Ключевые понятия многомерных выражений Рассмотрим специфические для служб SSAS понятия и термины, связанные с многомерным моделированием. Измерение базы данных — это коллекция атрибутов измерения, связанных с ключевым атрибутом, который, в свою очередь, связан с фактами в измерении мер. Атрибут измерения привязан к одному или более столбцам в таблице измерения и состоит из элементов. Атрибут измерения может содержать имена заказчиков, названия месяцев, названия продуктов. Элемент — это значение атрибута измерения, в том числе измерения мер. Иерархия может содержать конечные элементы, родительские элементы, элементы данных и элемент «(Все)». Мера — это значение из таблицы фактов (синонимом меры является термин факт). Значение в измерении мер часто называют общим термином элемент. Мерами обычно являются числовые значения, но могут быть и строковые. Измерение мер — это измерение, содержащее все меры куба. Измерение мер является измерением специального типа, в котором элементы обычно статистически вычислены (обычно по сумме или количеству) на основе текущего элемента каждого атрибута измерения, для которого существует данная мера. Группа мер — это коллекция связанных мер в кубе служб SSAS (обычно меры из одной таблицы фактов). В службах SSAS куб может содержать несколько групп мер. Элемент «(Все)» — это вычисленное значение всех элементов в иерархии атрибута или определенной пользователем иерархии. Вычисляемый элемент — это элемент измерения, который определяется и вычисляется во время выполнения запроса. Вычисляемый элемент может быть определен в пользовательском запросе или в сценарии вычисления многомерного выражения и храниться на сервере. Вычисляемый элемент соответствует строкам в таблице измерения в измерении, где он определен. Элемент данных — это дочерний элемент, связанный с родительским элементов в иерархии типа «родители-потомки». Элемент данных содержит значение данных для родительского элемента вместо статистического значения потомков родительского элемента.
Родительский элемент — это элемент иерархии типа «родители-потомки», содержащий статистическое значение его дочерних элементов. Конечный элемент — это элемент иерархии, у которого нет дочерних элементов. Дочерний элемент — это элемент иерархии ниже верхнего уровня. Ключевой атрибут измерения базы данных — это атрибут, с которым связаны все неключевые атрибуты измерения (напрямую или косвенно). Ключевой атрибут часто является атрибутом гранулярности. Атрибут гранулярности - атрибут измерения куба, связывающий измерение с фактами в группе мер в измерении мер. Если атрибут гранулярности и ключевой атрибут — это разные атрибуты, то неключевые атрибуты должны быть напрямую или косвенно связаны с атрибутом гранулярности. Внутри куба атрибут гранулярности определяет гранулярность измерения. Измерение куба — это экземпляр измерения базы данных в кубе. Иерархия атрибута — это иерархия элементов атрибута, содержащая следующие уровни. 1. конечный уровень, содержащий все отдельные элементы атрибута, и все элементы конечного уровня (конечные элементы); 2. промежуточные уровни, если иерархия атрибута является иерархией типа «родителипотомки»; 3. необязательный уровень «(Все)», содержащий статистическое значение конечных элементов иерархии атрибута, элемент этого уровня называют элементом «(Все)». Сбалансированная иерархия — это иерархия, в которой между верхним и любым из конечных элементов расположено одинаковое количество уровней. Несбалансированная иерархия (неровная) — это иерархия, в которой между верхним и конечным уровнями расположено разное количество уровней. Примером неровной иерархии является иерархия типа «родители-потомки». Несбалансированная иерархия также называется неровной иерархией. Иерархия типа «родители-потомки» — это иерархия атрибута специального типа, в которой атрибут измерения имеет тип parent. Иерархия типа «родители-потомки» является несбалансированной иерархией из дочерних и родительских элементов. Иерархия типа «родители-потомки» содержит следующие уровни: 1. дочерние уровни, содержащие потомков родительских элементов. К дочерним относятся элементы атрибута, содержащие статистическое значение для родительского элемента, в том числе элементы данных; 2. промежуточные уровни, содержащие родительские элементы; 3. необязательный уровень «(Все)», содержащий статистическое значение конечных элементов иерархии типа «родители-потомки», элемент этого уровня называют элементом «(Все)».
Для каждого измерения может существовать единственная иерархия типа «родители-потомки», она должна быть связана с ключевым атрибутом. Пользовательская иерархия - сбалансированная иерархия иерархий атрибутов, упрощающая пользователям поиск данных в кубе. Пользовательские иерархии не увеличивают размер куба. Уровни в пользовательской иерархии могут быть скрыты в некоторых ситуациях и выглядеть несбалансированными. Связь атрибутов — это связь между атрибутами типа «один ко многим», например связь между атрибутами измерения области и города. Свойство элемента — это свойство элемента атрибута, например пол заказчика или цвет товара. Ячейка куба — пространство, существующее на пересечении элемента измерения меры и элемента каждой иерархии атрибута куба. Пространство куба — это совокупность элементов иерархий атрибутов куба с мерами куба. Вложенный куб — это подмножество куба, полученное на основании отфильтрованного представления куба.
4.2.2. Кортежи Кортеж уникальным образом определяет ячейку на основе сочетания элементов атрибута, состоящих из атрибутов каждой иерархии атрибута куба. При определении кортежа в запросе многомерных выражений или в многомерном выражении не обязательно явно включать элемент атрибута из каждой иерархии атрибута. Если элемент из иерархии атрибута не включен явно в запрос или выражение, в кортеж неявным образом включается элемент по умолчанию данной иерархии атрибута. Если в кубе явно не указано обратное, элементом по умолчанию любой иерархии атрибута считается элемент «(Все)», если он существует. Если такой элемент отсутствует в иерархии атрибута, элементом по умолчанию считается элемент верхнего уровня иерархии. Мерой по умолчанию является первая мера указанного куба, если только мера по умолчанию не определена явно. Например, следующий кортеж определяет одну ячейку в базе данных Adventure Works, явно определяя только один элемент в измерении Measures. (Measures.[Reseller Sales Amount]) В примере уникально определена ячейка, состоящая из элемента Reseller Sales Amount из измерения Measures и элемента по умолчанию из каждой иерархии атрибута в кубе. Элементом по умолчанию для каждой иерархии атрибута, кроме Destination Currency, является элемент «(Все)». Элементом по умолчанию для иерархии Destination Currency является элемент US Dollar (он определен в сценарии многомерных выражений в кубе Adventure Works). Следующий запрос возвращает значение ячейки, на которую ссылается кортеж, указанный в предыдущем примере: SELECT Measures.[Reseller Sales Amount] ON COLUMNS
FROM [Adventure Works] Размерностью кортежа называют последовательность или порядок его элементов. Поскольку неявные элементы всегда расположены в одном и том же порядке, размерность практически всегда зависит от элементов кортежа, определенных явно. Порядок элементов кортежа важен при определении набора кортежей. В следующем примере кортеж содержит два элемента по оси столбцов: SELECT ([Measures].[Reseller Sales Amount],[Date].[Calendar Year].[CY 2004]) ON COLUMNS FROM [Adventure Works] Кортеж в запросе возвращает ячейку куба на пересечении меры Reseller Sales Amount измерения Measures и элемента CY 2004 иерархии атрибута Calendar Year в измерении Date.
4.2.3. Наборы Набором называют упорядоченное множество кортежей одинаковой размерности. Для обозначения набора кортежей используются фигурные скобки ,-. Пример набора: SELECT { ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2003]), ([Measures].[Reseller Sales Amount], [Date].[Calendar Year].[CY 2004]) } ON COLUMNS FROM [Adventure Works] В примере все кортежи набора имеют одинаковую размерность, поскольку первый элемент каждого кортежа принадлежит измерению Measures, а второй элемент — иерархии атрибута Calendar Year. Можно создать набор с псевдонимом, называемый именованным набором. Применение именованных наборов в запросах многомерных выражений упрощает их восприятие и дальнейшее использование при работе со сложными многомерными выражениями. Для работы с именованным набором используется ключевое слово AS вместе с необходимым псевдонимом в конце идентификатора набора.
4.2.4. Основные понятия о запросах многомерных выражений В языке многомерных выражений можно обращаться с запросом к таким многомерным объектам, как кубы, и возвращать многомерные наборы ячеек, содержащие данные куба.
Базовый запрос многомерных выражений — это инструкция SELECT, наиболее частый запрос в многомерных выражениях. Чтобы получить основательные знания о применении многомерных выражений для запроса многомерных данных, необходимо понять, как в инструкции многомерных выражений SELECT определяется результирующий набор, синтаксис инструкции SELECT и как с ее помощью создавать простые запросы. В многомерном выражении инструкция SELECT указывает результирующий набор, содержащий подмножество многомерных данных, возвращаемое из куба. Чтобы указать результирующий набор, запрос многомерных выражений должен содержать следующие данные: число осей или наборов иерархий. В многомерном запросе можно указать до 128 осей; элементы каждого измерения, включаемые в каждую ось многомерного запроса; имя куба, задающего контекст многомерного запроса; элементы оси среза, по которой отсекаются данные для элементов из осей запроса. Для указания осей запроса куба, задающего контекст запроса, и осей среза в инструкции многомерных выражений SELECT используются следующие предложения: предложение SELECT, определяющее оси запроса в инструкции многомерных выражений SELECT; предложение FROM, определяющее источник многомерных данных для их извлечения в результирующий набор инструкции многомерных выражений SELECT; предложение WHERE, дополнительно определяющее, какое измерение или элемент используется в качестве оси среза для выделения данных, относящихся к конкретному измерению или элементу. Синтаксис базовой инструкции SELECT с использованием предложений SELECT, FROM и WHERE: [ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ] SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ] FROM <SELECT subcube clause> [ <SELECT slicer axis clause> ] [ <SELECT cell property list clause> ] Далее приведен базовый запрос многомерных выражений на основе инструкции SELECT: SELECT { [Measures].[Sales Amount], [Measures].[Tax Amount] } ON COLUMNS, { [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS FROM [Adventure Works] WHERE ( [Sales Territory].[Southwest] ) Этот запрос возвращает результирующий набор, содержащий продажи за 2002 и 2003 годы и сумму налогов для юго-западных областей продаж. Запрос содержит следующие сведения о результирующем наборе: предложение SELECT задает оси запроса как элементы Sales Amount и Tax Amount в измерении Measures и как элементы 2002 и 2003 в измерении Date; предложение FROM указывает, что источником данных является куб Adventure Works; предложение WHERE определяет ось среза как элемент Southwest измерения Sales Territory. Обратите внимание, что в запросе используются псевдонимы осей COLUMNS и ROWS.
4.2.5. Основные понятия о сценариях многомерных выражений В службах SSAS сценарии многомерных выражений состоят из одного или нескольких многомерных выражений или инструкций, заполняющих куб вычислениями. Сценарий многомерных выражений определяет процесс вычислений для куба. Сценарий многомерных выражений также считается частью самого куба. Поэтому изменение сценария многомерных выражений, связанного с кубом, сразу изменяет процесс вычислений для куба. Для создания сценариев многомерных выражений можно воспользоваться конструктором кубов в среде BI Dev Studio. Существует два типа сценариев многомерных выражений: 1. Сценарий многомерных выражений по умолчанию. При создании куба службы SSAS создают стандартный сценарий многомерных выражений для этого куба. В этом сценарии определяется этап вычисления для всего куба. 2. Пользовательский сценарий многомерных выражений. После создания куба можно добавить пользовательские сценарии многомерных выражений, расширяющие характеристики вычисления куба. Сценарий многомерных выражений по умолчанию, создаваемый службами SSAS при определении куба, содержит одну инструкцию CALCULATE. Эта инструкция CALCULATE находится в начале сценария многомерных выражений по умолчанию и говорит о том, что весь куб должен быть рассчитан во время первого этапа вычислений. Сценарий многомерных выражений по умолчанию также включает в себя команды, создающие именованные наборы, назначения и вычисляемые элементы, созданные в конструкторе кубов: службы SSAS добавляют команды непосредственно в сценарий многомерных выражений по умолчанию;
для каждого именованного набора в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE SET. для каждого вычисляемого элемента в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE MEMBER. Если с кубом не связан ни один сценарий многомерных выражений, куб вычисляется по сценарию многомерных выражений по умолчанию. Куб должен быть связан хотя бы с одним сценарием многомерных выражений, поскольку только в сценарии определяется порядок вычисления куба.
5. Использование служб Integration Services со службами Analysis Services 5.1.
Возможности Integration Services для работы с OLAP
Службы SQL Server Integration Services (SSIS) представляют собой платформу для построения высокопроизводительных решений интеграции данных и решений потока операций, включая операции извлечения, преобразования и загрузки (Extract, Transform, Load - ETL) для хранилищ данных. Службы SSIS содержат графические инструменты и мастера для построения и отладки пакетов; задачи для выполнения функций потока операций, таких как: выполнение инструкций SQL и работа с сообщениями электронной почты; источники данных и назначения для извлечения и загрузки данных; преобразования для очистки, статистической обработки, слияния и копирования данных; службу управления, службу SSIS для администрирования пакетов служб SSIS; API-интерфейсы для программирования объектной модели служб SSIS. Типичные случаи применение пакетов служб SSIS совместно с SSAS включают в себя: 1. слияние данных из разнородных хранилищ данных; 2. заполнение хранилищ данных и витрин данных; 3. очистка и стандартизация данных.
5.1.1. Слияние данных из разнородных хранилищ данных Данные обычно хранятся во множестве различных систем хранилищ данных, и извлечение данных из всех источников и их слияние в единый согласованный набор данных может представлять собой довольно сложную задачу. Эта ситуация может возникнуть по ряду причин, например: 1. Множество организаций хранят архивные данные в традиционных системах хранилищ данных. Эти данные могут быть не слишком важными для ежедневных операций, однако
они могут иметь ценность для анализа трендов, которому необходимы данные за длительный период. 2. Филиалы организации могут использовать разные технологии хранения данных для хранения операционных данных. Пакету может потребоваться извлечь данные из электронных таблиц, а также из реляционных БД перед тем, как он сможет объединить эти данные. 3. Данные могут храниться в базах данных, которые используют различные схемы для одних и тех же данных. Пакету может потребоваться изменить тип данных столбца или объединить данные из нескольких столбцов в один перед тем, как он сможет объединить данные. Службы SSIS могут подключиться ко многим типам источников данных, включая несколько источников данных одного пакета. Пакет может подключиться к реляционным базам данных, используя поставщиков .NET и OLE DB, а также ко множеству традиционных баз данных, используя драйверы ODBC. Он также может подключиться к плоским файлам, файлам Excel и проектам служб SSAS. Службы SSIS содержат компоненты источника, осуществляющие работу по извлечению данных из плоских файлов, рабочих листов Excel, XML-документов, а также таблиц и представлений реляционных БД из источника данных, к которому подключается пакет. Затем данные обычно преобразуются с помощью преобразований, содержащихся в службах SSIS. После того, как данные преобразованы в совместимые форматы, они могут быть физически объединены в один набор. После успешного слияния данных и применения преобразований данные загружаются по одному или нескольким назначениям. Службы SSIS содержат назначения для загрузки данных в плоские файлы, необработанные файлы, а также реляционные базы данных. Данные также могут быть загружены в набор записей, хранимых в памяти, и быть доступны для других элементов пакета.
5.1.2. Заполнение хранилищ данных и витрин данных Данные в хранилищах и витринах данных обновляются часто, а объем загружаемых данных обычно довольно велик. Службы SSIS содержат задачу, которая производит массовую загрузку данных прямо из плоского файла в таблицы и представления SQL Server, а также компонент назначения, производящий массовую загрузку данных в базу данных SQL Server в качестве последнего шага преобразования данных. Пакет служб SSIS может быть настроен с возможностью перезапуска. Это означает, что можно перезапустить пакет с предопределенной контрольной точки — задачи или контейнера пакета. Возможность перезапуска пакета может значительно экономить время, особенно если пакет обрабатывает данные из большого количества источников. Можно использовать пакеты служб SSIS для загрузки в базу данных таблиц измерений и фактов. Если источник данных для таблицы измерения хранится в нескольких источниках данных, то пакет может объединить данные в один набор и загрузить таблицу измерения в течение одного процесса, вместо использования отдельных процессов для каждого источника данных.
Обновление данных в хранилищах и витринах данных может стать сложной задачей, так как оба типа хранилищ данных обычно содержат медленно изменяющиеся измерения, которыми бывает сложно управлять с помощью преобразования данных. Мастер медленно изменяющихся измерений автоматизирует поддержку медленно изменяющихся измерений, динамически создавая инструкции SQL, которые обновляют и заменяют записи, обновляют связанные записи, а также добавляют новые столбцы в таблицы. Кроме того, задачи и преобразования в пакетах служб SSIS могут обрабатывать кубы и измерения служб SSAS. Когда пакет обновляет таблицу в базе данных, на основе которой построен куб, можно использовать задачи и преобразования служб SSIS для автоматической обработки куба, а также для автоматической обработки измерений. Автоматическая обработка кубов и измерений помогает предоставлять текущие данные для пользователей обеих сред: пользователям, которые получают данные из кубов и измерений, и пользователям, которые получают доступ к данным в реляционной базе данных. Службы SSIS могут также вычислять функции перед загрузкой данных в назначение. Если хранилища и витрины данных содержат статистические данные, то пакет служб SSIS может рассчитать такие функции, как SUM, AVERAGE и COUNT. Преобразование служб SSIS может также свести реляционные данные и преобразовать их в менее нормализованный формат, который является более совместимым с табличными структурами хранилища данных.
5.1.3. Очистка и стандартизация данных Перед загрузкой данных для оперативной обработки транзакций (OLTP) или в базу данных оперативной аналитической обработки (OLAP), рабочий лист Excel или файл, данные необходимо очистить и стандартизировать. Данные могут требовать обновления по следующим причинам: 1. Данные были получены из нескольких филиалов организации, и каждый филиал использует разные стандарты и соглашения. Перед тем, как данные могут быть использованы, может потребоваться преобразовать их в другой формат. Например, может потребоваться объединить имя и фамилию в один столбец. 2. Данные могут быть арендованными или приобретенными. Перед тем, как данные могут быть использованы, может потребоваться их стандартизация и очистка для соответствия стандартам делопроизводства. Например, какая-либо организация желает проверить, что все записи содержат один набор кодов регионов или один и тот же набор названий продукции. 3. Формат данных зависит от языкового стандарта. Например, данные могут иметь различные форматы даты-времени, а также форматы чисел. Если данные объединены из источников разных языковых стандартов, то перед загрузкой их необходимо привести в один формат во избежание повреждения данных. Службы SSIS содержат встроенные преобразования, которые можно добавить к пакетам для очистки и стандартизации данных, изменения регистра данных, преобразования данных в иной тип или формат, а также для создания нового столбца данных на основе выражений. Например, пакет может объединить столбцы, содержащие имена и фамилии, в общей столбец полного имени, а затем перевести все символы в верхний регистр.
Пакет служб SSIS также может произвести очистку данных путем замены значений в столбцах на значения ссылочной таблицы, используя уточняющие запросы или нечеткие уточняющие запросы для поиска значений в ссылочной таблице. Часто пакет сначала применяет уточняющий запрос и, в случае неудачи, нечеткий уточняющий запрос. Например, сначала пакет пытается провести поиск названия продукта в ссылочной таблице, используя значение первичного ключа. Если этот поиск не смог вернуть название продукта, то пакет повторяет попытку с применением нестрогого соответствия наименования продукта. Другое преобразование производит очистку данных с помощью группирования похожих значений набора данных. Это полезно при распознавании записей, которые могут быть дубликатами и поэтому не должны быть включены в базу данных без дальнейшей оценки. Например, сравнивая адреса в списке записей клиентов, можно найти несколько дублирующих записей.
5.2.
Архитектура служб SSIS
Службы SSIS состоят из различных компонентов (Рисунок 33).
Рисунок 33. Архитектура служб SSIS
Конструктор служб SSIS — это графическое средство, с помощью которого можно создавать и обслуживать пакеты служб Integration Services. Конструктор служб SSIS доступен в среде BI Dev Studio как часть проекта служб SSIS. Среда выполнения служб SSIS сохраняет макет пакетов, выполняет пакеты и обеспечивает поддержку ведения журналов, точек останова, настройки, соединений и транзакций. Исполняемые объекты времени выполнения служб SSIS — это пакеты, контейнеры, задачи и обработчики событий, содержащиеся в службах SSIS. К числу исполняемых объектов среды выполнения принадлежат также разрабатываемые пользовательские задачи. Задача потока данных инкапсулирует подсистему обработки потока данных. Подсистема обработки потока данных предоставляет размещенные в памяти буферы для перемещения данных из источника на целевой объект и вызова средств для извлечения данных из файлов и реляционных баз данных. Подсистема обработки потока данных также управляет преобразованиями, которые изменяют данные, и назначениями, которые загружают данные или делают их доступными для других процессов. Компонентами потока данных служб SSIS являются источники, преобразования и назначения, включенные в службы SSIS. Можно также добавлять к потоку данных пользовательские компоненты. Модель объектов служб SSIS включает управляемые прикладные программные интерфейсы (API) для создания пользовательских компонентов, используемых в пакетах, или пользовательских приложений для создания, загрузки, выполнения пакетов и управления ими. Разработчик может написать пользовательские приложения, пользовательские задачи или преобразования, применяя любой язык, совместимый со средой CLR. Служба SSIS позволяет использовать среду SQL Server Management Studio для наблюдения за работой пакетов служб SSIS и управления хранением пакетов. Мастер импорта и экспорта SQL Server может копировать данные из любого источника данных и в любой источник данных, для которого доступен управляемый поставщик данных .NET Framework или собственный поставщик данных OLE DB. Этот мастер также предоставляет простейший метод создания пакета служб SSIS, в котором данные копируются из источника в назначение. Службы SSIS включают дополнительные средства, мастера и программы командной строки для выполнения пакетов служб SSIS и управления ими.
5.3.
Пакет SSIS
Пакет представляет собой объект, который реализует функциональность служб SSIS по извлечению, преобразованию и загрузке данных. Пакет создается с помощью конструктора служб SSIS в среде BI Dev Studio. Его можно также создать с помощью мастера импорта и экспорта SQL Server либо мастера проекта соединений служб SSIS. Пакет включает следующие элементы: элементы потока управления - эти обязательные элементы выполняют различные функции, поддерживают структуру и управляют порядком выполнения элементов. Основными элементами потока управления являются задачи, контейнеры и управления очередностью. В пакете должен быть, по крайней мере, один элемент потока управления;
элементы потока данных - эти необязательные элементы извлекают, изменяют и загружают данные в источники данных. Основными элементами потока данных являются источники, преобразования и назначения. Присутствие каких-либо элементов потока данных в пакете необязательно.
5.3.1. Элементы потока управления Пакет состоит из потока управления, а также может включать один или более потоков данных. Службы SSIS предоставляют три различных типа элементов потока управления: контейнеры, которые обеспечивают структуры в пакетах; задачи, которые обеспечивают функциональность; элементы управления очередностью, соединяющие выполняемые компоненты, контейнеры и задачи в упорядоченный поток управления. На Рисунок 34 приведен пример потока управления, который имеет один контейнер и шесть задач. Пять задач пакетного уровня и одна задача уровня контейнера. Задача находится в контейнере.
Рисунок 34. Пример потока управления
5.3.1.1. Контейнеры Архитектура служб SSIS поддерживает вложение контейнеров, и поток управления может включать множество уровней вложенных контейнеров. Так, пакет может содержать контейнер, например контейнер «цикл по каждому элементу», который в свою очередь может содержать другой контейнер «цикл по каждому элементу», и так далее. Контейнеры обеспечивают структуру в пакетах и службах для задач в потоке управления. SSIS содержит следующие типы контейнеров для группирования задач и внедрения повторяющихся потоков управления: контейнер «цикл по каждому элементу» перечисляет коллекцию данных и повторяет этот поток управления для каждого члена коллекции; контейнер «цикл по элементам» повторяет это управление потоком до тех пор, пока определенное выражение не примет значение FALSE; контейнер последовательности позволяет определить подмножества потока управления и управлять задачами и контейнерами как модулями.
5.3.1.2. Задачи Задачами называются элементы потока управления, которые определяют рабочие модули, выполняющиеся в потоке управления пакета. Пакет служб SSIS состоит из одной или более задач. Если в пакете несколько задач, они связаны и упорядочены в потоке управления с помощью управления очередностью. Можно также создавать пользовательские задачи на языке программирования, поддерживающем COM, например на Visual Basic, или на языке программирования для платформы .NET, например на C#. Конструктор служб SSIS — графическое средство служб SSIS для работы с пакетами — предоставляет область конструктора для создания потока управления пакета и специальные редакторы для настройки задач. Можно также использовать объектную модель служб SSIS для программного создания пакетов. Службы SSIS включают в себя следующие типы задач для выполнения разнообразных функций: задача потока данных определяет и выполняет потоки данных, которые извлекают данные, применяют преобразования и загружают данные; задачи подготовки данных копируют файлы и каталоги, загружают файлы и данные, сохраняют данные, возвращенные при помощи веб-методов, или работают с XMLдокументами; задачи технологического процесса связываются с другими процессами для загрузки пакетов или программ, отправляют и получают сообщения между пакетами, отправляют сообщения электронной почты, считывают данные инструментария управления Windows (WMI) или наблюдают за событиями WMI; задачи SQL Server позволяют получить доступ, копировать, вставлять, удалять или изменять объекты или данные SQL Server; задачи служб SSAS позволяют создать, изменить, удалить или обработать объекты служб SSAS; задачи сценариев расширяют функциональные возможности пакета посредством использования пользовательских сценариев; задачи обслуживания выполняют административные функции: резервное копирование и сжатие баз данных SQL Server, восстановление и перестройка индексов, а также выполнение заданий агента SQL Server.
5.3.2. Элементы потока данных Службы SSIS предоставляют три различных типа компонентов потока данных: источники, преобразования и целевые объекты. Источники извлекают данные из хранилищ, таких как таблицы и представления реляционных баз данных, файлы и базы данных служб SSAS. Преобразования изменяют, объединяют и очищают данные. Целевые объекты загружают данные в хранилища или создают наборы данных в памяти.
Кроме того, службы SSIS предоставляют пути, соединяющие выход одного компонента с входом другого. Пути определяют последовательность компонентов и дают возможность добавлять заметки к потоку данных или просматривать источник столбца. На Рисунок 35 приведен пример потока данных с источником, преобразованием с одним входом и одним выходом и целевым объектом. На диаграмме присутствуют входы, выходы, выходы ошибок, а также входные, выходные и внешние столбцы.
Рисунок 35. Пример потока данных
5.3.2.1. Источники В службах SSIS источником называется компонент потока данных, который делает данные из внешнего источника данных доступными для других компонентов потока данных. У источника потока данных обычно есть один стандартный выход. В стандартном выходе содержатся выходные столбцы, которые источник добавляет к потоку данных. Стандартный выход ссылается на внешние столбцы. Внешним называется столбец в источнике. Метаданные внешних столбцов хранят информацию об имени исходного столбца, типе и длине хранящихся в нем данных. Выход ошибок источника хранит те же столбцы, что и стандартный выход, а также два дополнительных столбца, предоставляющих информацию об ошибках. Объектная модель служб SSIS не ограничивает число стандартных выходов и выходов ошибок, которые могут быть связаны с источником. У большей части включенных в службы SSIS источников, за исключением
компонента сценария, имеется один стандартный выход, а у многих также есть один выход ошибок. Пользовательские источники могут быть спроектированы так, чтобы содержать несколько стандартных выходов и выходов ошибок. Все выходные столбцы доступны в качестве входных столбцов для следующего компонента потока данных.
5.3.2.2. Преобразования Возможности преобразований очень разнообразны. Преобразования могут выполнять такие задачи, как обновление, очистка, слияние и распространение данных и сбор статистики о них. Входы и выходы преобразований определяют столбцы входных и выходных данных. В зависимости от выполняемых операций над данными у одних преобразований может быть один вход и несколько выходов, а у других — несколько входов и один выход. У преобразований также могут быть выходы ошибок, которые предоставляют информацию о произошедших ошибках, и сами данные, вызвавшие ошибку: например, строковые данные, которые не могут быть преобразованы в целое число. Объектная модель служб SSIS не ограничивает число входов, стандартных выходов и выходов ошибок, которые могут быть связаны с преобразованием. Пользовательские преобразования могут реализовывать любое сочетание входов, стандартных выходов и выходов ошибок. Вход преобразования определяется как один или более входных столбцов. Некоторые преобразования служб SSIS также могут ссылаться на внешние входные столбцы. Например, вход преобразования «Команда OLE DB» включает в себя внешние столбцы. Выходным называется столбец, который добавляется преобразованием в поток данных. И стандартные выходы, и выходы ошибок содержат выходные столбцы. Эти выходные столбцы, в свою очередь, служат входными столбцами для следующего компонента потока данных: или другого преобразования, или целевого объекта.
5.3.2.3. Целевые объекты (назначения) Целевым объектом (назначением) называется компонент потока данных, который записывает данные из потока в указанное хранилище или создает набор данных в памяти. У целевого объекта служб SSIS должен быть, по крайней мере, один вход. Вход содержит входные столбцы, которые предоставляются другим компонентом потока данных. Входные столбцы сопоставляются со столбцами целевого объекта. У многих целевых объектов есть также один выход ошибок. Выход ошибок назначения содержит выходные столбцы, которые обычно хранят информацию об ошибках, произошедших во время записи в целевое хранилище данных. Ошибки могут происходить по разным причинам. Например, столбец может содержать значение NULL, а целевой столбец этого не допускает. Объектная модель служб SSIS не ограничивает число стандартных входов и выходов ошибок, которые могут быть связаны с целевым объектом, пользовательские назначения могут реализовывать комбинации из нескольких стандартных входов и выходов ошибок.
5.3.2.4. Внешние метаданные
При создании потока данных в пакете с помощью конструктора служб SSIS, метаданные из источников и целевых объектов копируются во внешние столбцы источников и целевых объектов и играют роль моментального снимка схемы. Когда службы SSIS проверяют правильность пакета, конструктор служб SSIS сравнивает этот снимок со схемой источника или целевого объекта и в зависимости от изменений сообщает об ошибках и предупреждениях. Проект служб SSIS поддерживает работу в автономном режиме. При работе в автономном режиме соединения с используемыми пакетом источниками и целевыми объектами не устанавливаются, а метаданные внешних столбцов не обновляются.
5.3.2.5. Входы и выходы У источников есть выходы, у целевых объектов — входы, а у преобразований есть и входы, и выходы. Кроме того, многие компоненты потока данных могут быть настроены для использования выхода ошибок. Вход содержит один или более входных столбцов, которые могут ссылаться на внешние столбцы, если компонент потока данных настроен так, чтобы использовать их. Входы могут быть настроены для контроля над потоком данных и управления им: например, можно определить, что компонент должен прервать нормальный ход работы в ответ на ошибку, или пропускать ошибки, или перенаправлять строки, содержащие ошибки, на вывод ошибок. Можно также задавать описание входа или обновлять имя входа. Выход содержит один или более выходных столбцов, которые могут ссылаться на внешние столбцы, если компонент потока данных настроен так, чтобы использовать их. Выходы могут предоставлять информацию, полезную при последующей обработке данных. Например, можно указать, что данные на выходе отсортированы. Можно также задавать описание выхода или обновлять имя выхода. Можно определить, как компонент потока данных будет реагировать на ошибки в каждом входном и выходном столбце. Если во время выполнения произошла ошибка или усечение данных, а компонент потока данных настроен так, чтобы перенаправлять строки, строки данных, содержащие ошибки, будут отправлены на выход ошибок. По умолчанию вывод ошибок содержит выходные столбцы и два столбца с данными об ошибках: ErrorCode и ErrorColumn. Выходные столбцы содержат данные из строки с ошибкой, ErrorCode хранит код ошибки, а ErrorColumn определяет столбец, в котором произошла ошибка.
5.3.2.6. Пути Пути соединяют компоненты потока данных. В конструкторе SSIS можно просматривать и изменять свойства путей, просматривать выходные метаданные для начальной точки пути и связывать с путем средства просмотра данных.
6.3.2.7. Настройка компонентов потока данных Компоненты потока данных могут настраиваться на уровне компонента в целом; на уровне входа, выхода и выхода ошибок, а также на уровне столбцов: 1. на уровне компонента определяются общие для всех компонентов свойства, а также свойства, характерные для конкретного компонента;
2. на уровне входа, выхода и выхода ошибок определяются общие свойства входов, выходов и выходов ошибок компонента. Если компонент поддерживает работу с несколькими выходами, то их можно добавить; 3. на уровне столбцов в дополнение к общим для всех столбцов свойствам задаются характерные свойства, предоставляемые компонентом для столбцов. Если компонент поддерживает добавление выходных столбцов, то их можно добавить к выходам; Свойства задаются посредством конструктора служб SSIS или программно.
После завершения разработки проекта служб SSAS в среде BI Dev Studio, а также после развертывания и тестирования проекта в собственной среде разработки можно перейти к развертыванию базы данных служб SSAS на отладочном и рабочем серверах. При развертывании проекта служб SSAS необходимо ответить на следующие вопросы: 1. какие программные ресурсы и ресурсы оборудования требуются на целевом сервере? 2. как развертывать дополнительные объекты, выходящие за область проекта служб SSAS, а именно: пакеты, отчеты или схемы реляционных баз данных служб SSIS? 3. как загружать и обновлять данные в развернутой базе данных служб SSAS? 4. как обновлять метаданные (например, вычисления) в развернутой базе данных служб SSAS? 5. нужно ли предоставлять пользователям доступ к данным служб SSAS через сеть Интернет? 6. нужно ли предоставлять запросам возможность непрерывного доступа к данным служб SSAS? 7. нужно развертывать объекты в распределенной среде при помощи связанных кубов или удаленных секций? 8. как обеспечить безопасность данных служб SSAS?
6.1.1. Требования к ресурсам Перед развертыванием проекта служб SSAS следует рассмотреть требования к ресурсам. В частности, следует рассмотреть необходимые ресурсы памяти, процессора и требования к месту на диске. Сведения о ресурсах памяти и процесса, требуемых для служб SSAS, зависящих от версии Microsoft Windows, установленной на сервере, могут быть найдены на сайте Microsoft. В следующих случаях требуется больше ресурсов памяти и процессора: 1. при обработке больших или сложных кубов. Для этого требуется больше ресурсов памяти и процессора в сравнении с обработкой малых или простых кубов; 2. при увеличении количества кубов в одной базе данных;
3. при увеличении количества БД в одном экземпляре служб SSAS; 4. при увеличении количества экземпляров служб SSAS на одном компьютере; 5. при увеличении количества пользователей с одновременным доступом к ресурсам служб SSAS. Объем требуемого места на диске зависит от различных аспектов установки служб SSAS и задач, связанных с обработкой объектов. Кубы с большими таблицами фактов требуют больше места на диске, чем кубы с небольшими таблицами фактов. Аналогично, хотя и в меньшей степени, кубы с большим количеством измерений требуют большего места на диске. Как правило, для базы данных служб SSAS требуется примерно на 20% больше объема места на диске в сравнении с таким же объемом данных, хранящемся в базовой реляционной базе данных. Для агрегатов требуется дополнительное место, пропорциональное добавлению самих агрегатов: чем больше добавляется агрегатов, тем больше требуется места на диске. Если лишние агрегаты не используются, то дополнительное место на диске, необходимое для агрегатов, обычно не должно превышать 10% от размера данных, хранящихся в базовой реляционной базе данных. По умолчанию структуры интеллектуального анализа данных кэшируют на диск набор данных, которые использовались для обучения. Во время обработки службы Analysis Services хранят на диске копии объектов, которые участвуют в обработке транзакций, до завершения обработки. Затем обработанные копии объектов замещают исходные объекты. Следовательно, необходимо предоставить значительный объем дополнительного места на диске для второй копии обрабатываемых объектов. Например, если планируется обрабатывать в одной транзакции весь куб, то необходимо обеспечить достаточный объем места на диске для хранения второй копии всего куба.
6.1.2. Поддержание доступности В среде служб SSAS куб или модель интеллектуального анализа данных могут быть недоступны для запросов вследствие возникновения сбоев оборудования или ошибок программного обеспечения. Поддержание доступности установки служб SSAS заключается в первую очередь в обеспечении дополнительных ресурсов, позволяющих пользователям использовать систему в случае ошибок и сбоев. Для предоставления дополнительных ресурсов, необходимых для поддержания доступности в случае возникновения сбоев оборудования или ошибок программного обеспечения, используется кластеризация и балансировка нагрузки серверов. Некоторые изменения в кубе могут вызвать недоступность куба во время его обработки. Например, при выполнении структурных изменений в измерении куба, даже при повторной обработке измерения, необходимо обработать все кубы, использующие это измененное измерение. Во время обработки таких кубов пользователи не могут выполнять запросы к этим кубам, а также к моделям интеллектуального анализа данных, основанным на кубе с измененным измерением. Чтобы обеспечить доступность во время обработки структурных изменений, влияющих на один или несколько кубов в проекте служб SSAS, следует рассмотреть использование промежуточного сервера и мастера синхронизации баз данных. Эта функция
позволяет обновлять данные и метаданные на промежуточном сервере, а затем выполнять оперативную синхронизацию рабочего и промежуточного серверов.
6.1.3. Инструментарий развертывания служб SSAS Службы SSAS предоставляют следующие средства для развертывания базы данных служб SSAS на сервер служб SSAS в рабочей среде: 1. использование ASSL-сценария. При помощи SQL Server Management Studio создается XMLсценарий метаданных существующей базы данных служб SSAS, затем этот сценарий запускается на другом сервере для воссоздания начальной базы данных; 2. использование мастера развертывания служб, чтобы использовать выходные файлы формата XMLA, созданные проектом служб SSAS для развертывания метаданных проекта на целевой сервер; 3. синхронизация баз данных служб SSAS при помощи мастера синхронизации БД; 4. функция резервного копирования и восстановления. Сценарий развертывания XMLA, сформированный мастером развертывания служб SSAS, состоит из двух частей: 1. Первая часть сценария содержит команды, необходимые для создания, изменения или удаления соответствующих объектов служб Microsoft SQL Server в целевой базе данных. По умолчанию входные файлы, сформированные проектом служб SSAS, основываются на добавочном развертывании. В результате сценарий развертывания XMLA влияет только на те объекты, которые были изменены или удалены. 2. Вторая часть сценария развертывания содержит команды, необходимые для обработки только тех объектов, которые были созданы или изменены на целевом сервере или для полной обработки целевой базы данных.
6.2.
Настройка безопасности
6.2.1. Обеспечение безопасности служб SSAS Чтобы обеспечить надлежащую безопасность данных, хранимых в службах SSAS, необходимо обеспечить безопасность всех точек доступа к экземпляру служб SSAS. Эти точки доступа включают: 1. Защита компьютера со службами SSAS. Как и в случае любого приложения, наиболее простым способом доступа к данным в службах SSAS является физическое использование компьютера, на котором запущено приложение. Если несанкционированный пользователь получит физический доступ к компьютеру, на котором запущены службы SSAS, то этот пользователь потенциально может получить доступ к любым данных, хранящимся на этом компьютере, независимо от других мер безопасности, используемых для защиты данных. Чтобы повысить физическую безопасность компьютера, на котором запущены службы SSAS, выполните следующие шаги:
убедитесь в том, что только санкционированные пользователи имеют физический доступ к компьютеру. По возможности установите компьютер в запертой комнате с ограниченным доступом; отключите функцию загрузки с дискеты, если это возможно в настройках BIOS материнской платы, и рассмотрите возможность полного удаления дисковода; отключите функцию загрузки с CD-ROM, если это возможно в настройках BIOS материнской платы; увеличьте защиту компьютера путем использования пароля при включении и повысьте защиту настроек BIOS материнской платы, используя пароль доступа к BIOS; используйте корпус для компьютера, который поддерживает обнаружение проникновения, и который невозможно открыть без ключа; храните ключ в безопасном месте вдали от компьютера; 2. Защита операционной системы Windows для служб SSAS. Операционная система с неверно выставленными параметрами безопасности может подвергнуть риску безопасность экземпляра служб SSAS. Следующие мероприятия позволят повысить защищенность операционной системы: ограничение интерактивного доступа; ограничение сетевого доступа; отключение ненужных служб; указание и ограничение портов. Экземпляр по умолчанию служб SSAS осуществляет прослушивание порта 2383. Если именованный экземпляр использует другой порт, то этот порт нужно открыть на межсетевом экране; предоставление прав локального администрирования. Только члены группы локальных администраторов обладают правом запускать, останавливать и настраивать службы Microsoft Windows. Чтобы предоставить пользователям, ответственным за управление всем экземпляром служб SSAS, права на управление службами Windows, необходимыми для экземпляра служб SSAS, этих пользователей следует сделать членами группы локальных администраторов. 3. Защита программных файлов, общих компонентов и файлов данных. Местоположение по умолчанию для файлов служб SSAS — «\Program Files\Microsoft SQL Server\MSAS10.#\OLAP», где # представляет собой номер экземпляра. В этой структуре папок имеются четыре вложенные папки: Backup, Bin, Data и Log. В этих папках хранятся данные резервного копирования, важные файлы для самой службы SSAS, фактические данные измерений и кубов, а также данные журналов. Эти данные должны быть защищены. Программа установки предоставляет доступ ко всем файлам в этой структуре папок только членам локальной группы «Администраторы» и учетной записи входа в службы SSAS. Пользователям доступ к файлам в этих папках не требуется.
4. Безопасность взаимодействия клиентов с экземпляром служб SSAS, что включает шифрование данных, проверку подлинности клиента, установку пакетов безопасности, и указание частоты обновления кэша ролей. 5. Защита источников данных, используемых службами SSAS. Если неавторизованные пользователи получат доступ к источникам данных, из которых службы SSAS загружают данные, эти пользователи будут иметь доступ к сведениям, которые хранятся в экземпляре служб SSAS. Следует ограничить доступ к этим источникам данных. Для просмотра кубов и измерений пользователям служб SSAS не нужны разрешения на эти источники данных. 6. Обеспечение безопасности доступа с помощью служб SSAS. Службы SSAS разрешают устанавливать соединения только пользователям, прошедшим проверку подлинности Windows, если только не разрешены анонимные подключения, и пользователям, которым предоставлены разрешения в экземпляре служб SSAS. Пользователям, не имеющим разрешений, устанавливать соединения запрещено. Службы SSAS не выполняют собственной проверки подлинности пользователей. При проверке подлинности всех пользователей перед авторизацией доступа к данным служб SSAS или перед предоставлением пользователям возможности выполнения административных задач службы SSAS полагаются на операционную систему Windows. По умолчанию любой пользователь, не являющийся членом роли сервера, не имеет разрешений служб SSAS. Чтобы получить разрешения, член роли сервера должен сначала создать пользовательскую роль базы данных, а затем предоставить этой роли разрешения. Пользовательской роли базы данных могут быть предоставлены ограниченные или полные административные разрешения в базе данных. Этой роли также могут быть предоставлены ограниченные или полные разрешения на доступ к данным. После создания пользовательской роли базы данных член роли сервера должен добавить соответствующих пользователей и группы Windows. Пользователь получает разрешения в службах SSAS только после его добавления к пользовательской роли базы данных.
6.2.2. Настройка безопасности служб SSAS После установки экземпляра служб SSAS все члены локальной группы «Администраторы» становятся членами роли сервера на этом экземпляре и обладают разрешениями уровня сервера для выполнения любой задачи в пределах этого экземпляра служб SSAS. По умолчанию никакие другие пользователи не имеют разрешений на доступ к объектам в экземпляре. Члены роли сервера служб SSAS могут предоставлять другим пользователям доступ к объектам сервера и базы данных, используя среду SQL Server Management Studio, среду BI Dev Studio или XMLA-сценарий. Член роли сервера служб SSAS может предоставить другим пользователям доступ к службам SSAS следующими способами: 1. путем предоставления пользователям административного доступа либо уровня сервера, либо уровня базы данных;
2. путем использования ролей базы данных, чтобы предоставить пользователям доступ к источникам данных, кубам, измерениям, структурам интеллектуального анализа данных и моделям интеллектуального анализа данных.
6.2.3. Предоставление административного доступа Административный доступ к объектам в экземпляре служб SSAS предоставляется пользователям и группам Microsoft Windows следующими способами: 1. Пользователи и группы могут получить административный доступ к службам SSAS на уровне сервера с помощью роли сервера. Члены роли сервера на экземпляре службSSAS имеют неограниченный доступ ко всем объектам и данным данного экземпляра служб SSAS. Член роли сервера служб SSAS может добавлять пользователей и группы Microsoft Windows в роль сервера служб SSAS. Для выполнения любых задач на уровне сервера, например для создания базы данных, изменения свойств сервера или запуска трассировки (кроме обработки событий) пользователь должен входить в состав роли сервера служб SSAS. По умолчанию члены локальной группы «Администраторы» входят в состав роли сервера служб SSAS. Тем не менее, их принадлежность к этой роли сервера не отражается в пользовательском интерфейсе. 2. Пользователи и группы могут получить административный доступ к определенной базе данных служб SSAS с помощью роли базы данных. В службах Microsoft SQL Server члены роли сервера служб SSAS могут создавать в базе данных роли базы данных и предоставлять этим ролям полные или ограниченные административные разрешения в базе данных. Члены роли сервера служб SSAS могут добавлять к этим ролям базы данных пользователей и группы Microsoft Windows.
6.2.4. Разрешения, которые роль сервера служб SSAS может предоставить роли базы данных Роль сервера служб SSAS может предоставить роли базы данных следующие разрешения: 1. полные административные разрешения в базе данных. В качестве члена роли базы данных с разрешениями «Полный доступ» (администратор) пользователь Windows может выполнять в рамках базы данных любую задачу, включая следующие: обработка объектов базы данных; чтение данных базы данных; чтение метаданных базы данных; добавление пользователей к существующим ролям базы данных; создание новых ролей базы данных; определение разрешений для ролей базы данных. 2. только разрешение на обработку некоторых объектов служб SSAS. При предоставлении роли базы данных разрешения на обработку объекта данных администратор получает возможность передать задачу обработки некоторых объектов без предоставления
дополнительных внешних разрешений пользователю, выполняющему обработку. При предоставлении роли базы данных разрешений на обработку следует иметь в виду то, что разрешения носят аддитивный характер. Например, одна роль базы данных разрешает пользователю обрабатывать определенный куб, в то время как другая роль базы данных предоставляет тому же пользователю разрешение на обработку измерения в этом же кубе. Разрешения из двух различных ролей объединяются, в результате чего пользователь получает разрешение на обработку как куба, так и заданного измерения в рамках такого куба. Пользователь, роль базы данных которого имеет только разрешения на обработку одного или нескольких объектов базы данных, не сможет воспользоваться средой SQL Server Management Studio или BI Dev Studio для подключения к службам SSAS и выполнения обработки объектов. Для данных средств необходимо, чтобы у пользователя было разрешение на доступ к метаданным объекта. Следовательно, для обработки таких объектов пользователю, располагающему только разрешениями на обработку объектов, необходимо будет использовать XMLA-сценарий. Разрешения на обработку могут быть предоставлены на уровнях базы данных, куба, измерения и структуры интеллектуального анализа данных. 3. разрешение на просмотр определения объекта служб SSAS, но не обработку объекта или представление фактических данных. Предоставление роли базы данных разрешения на чтение метаданных выбранных объектов позволяет администратору предоставить пользователям разрешения на просмотр определений объектов, при этом не предоставляя этим пользователям разрешение на изменение определения объекта, изменение структуры базы данных или просмотр реальных данных для объекта. При предоставлении роли базы данных разрешения на чтение метаданных следует помнить, что разрешения являются аддитивными. Например, одна роль базы данных может предоставлять пользователю разрешение на чтение метаданных для конкретного куба, в то время как другая роль базы данных может предоставлять тому же пользователю разрешение на чтение метаданных для измерения в этом кубе. Разрешения из этих двух различных ролей комбинируются, предоставляя пользователю разрешение на чтение как метаданных для куба, так и метаданных для измерения в пределах этого куба. Чтобы просмотреть определение объекта в среде SQL Server Management Studio или в среде BI Dev Studio, пользователь должен иметь роль базы данных, которая предоставляет разрешение на чтение метаданных базы данных.
Лабораторные работы 1. Развертывание служб Analysis Services Теоретическое введение
Назначение, способ установки и инструментальные средства Analysis Services Службы SSAS позволяют анализировать большие объемы данных. С их помощью можно проектировать, создавать и управлять многомерными структурами, которые содержат подробные и статистические данные из нескольких источников данных. Для управления кубами OLAP и работы с ними используется среда SQL Server Management Studio. Для создания новых кубов OLAP используется среда Business Intelligence Development Studio. Службы SQL Server Analysis Services устанавливаются с помощью программы установки SQL Server. Службы SSAS можно установить вместе с другими компонентами SQL Server или установить SSAS в виде отдельного компонента.
Требования к файловой системе Рекомендуется устанавливать SQL Server 2008 на компьютерах с файловой системой NTFS, однако возможно обновление до SQL Server 2008 в случае использования файловой системы FAT32. Программа установки SQL Server заблокирует возможность установки на сжатые диски и диски, доступные только для чтения.
Требования к программному обеспечению Программе установки SQL Server требуется установщик Microsoft Windows версии 4.5 или более поздней, а также платформа .NET Framework3.5 с пакетом обновления 1 (SP1) или более поздняя. Для установки любой версии SQL Server 2008 необходим браузер Microsoft Internet Explorer 6 с пакетом обновления 1 (SP1) или более поздней версии. Он используется для консоли управления (ММС), среды SQL Server Management Studio и Business Intelligence Development Studio, компонента «Конструктор отчетов» служб Reporting Services, а также для HTML-справки. SQL Server 2008 работает почти на всех современных версиях Windows: XP, Vista, Windows Server 2003 и Windows Server 2008, однако требования к версии операционной системы зависят от устанавливаемой версии SQL Server 2008.
Требования к аппаратному обеспечению Необходимо наличие видеоадаптера VGA с разрешением 1024х768 или выше, а также мыши. Минимальные и рекомендуемые требования к процессору и оперативной памяти зависят от устанавливаемой версии SQL Server 2008.
Версии SQL Server 2008 SQL Server 2008 поставляется в следующих редакциях:
Enterprise – многофункциональная платформа данных, предоставляющая масштабируемость уровня предприятия, производительность, высокий уровень доступности и расширенные возможности бизнес-аналитики для работы защищенных ответственных приложений; Standard - платформа данных, простая в использовании и управлении. Выпуск включает встроенные возможности бизнес-аналитики для работы с приложениями уровня отдела; Developer - позволяет разработчикам строить приложения любого вида на базе SQL Server. Этот выпуск включает все функциональные возможности выпуска SQL Server 2008 Enterprise, однако он лицензируется для разработки и тестирования системы, а не для применения в качестве рабочего сервера; Workgroup Edition – предназначен для баз данных филиалов — надежная платформа для управления данными и создания отчетов, включающая возможности обеспечения безопасности, удаленной синхронизации и управления; Web Edition вариант с низкой общей стоимостью владения, предназначенный для размещения веб-узлов; Express - бесплатный выпуск, который могут распространять независимые поставщики ПО (при соблюдении соответствующего соглашения). Предназначен для обучения, а также для построения настольных или небольших серверных приложений. Возможность создания хранилищ данных с использованием Analysis Services предусмотрена в редакциях Enterprise и Standard. Однако инструментарий для оценки и оптимизации производительности хранилищ данных присутствует только в редакции Enterprise.
Сценарий цикла лабораторных работ В данном цикле лабораторных работ будет использован образец информационных баз компании Microsoft, который описывает вымышленную компанию Adventure Works Cycles. Это производственная компания, производящая и реализующая металлические и композитные велосипеды для рынков Северной Америки, Европы и Азии. Компания Adventure Works Cycles имеет в своем составе несколько групп сбыта на региональных рынках. По окончанию успешного финансового года Adventure Works Cycles хочет расширить свое присутствие на рынке путем направленной рекламы для своих лучших клиентов, повысить доступность продукта при помощи внешнего веб-узла и уменьшить стоимость продаж за счет снижения стоимости производства. Для поддержки нужд анализа данных групп маркетинга и сбыта, а также высшего руководства компания использует данные о транзакциях из базы данных AdventureWorks и другие сведения, например целевые показатели объема продаж из электронных таблиц, и объединяет эту информацию в реляционном хранилище данных AdventureWorks. Однако использование реляционного хранилища данных влечет следующие проблемы: 1. Отчеты статичны. Пользователи не могут интерактивно просматривать данные отчетов для получения более подробной информации так, как это делается в сводной таблице в редакторе Microsoft Office Excel. Хотя существующий набор предопределенных отчетов достаточен для многих пользователей, более квалифицированным пользователям
потребуется прямой доступ к запросам базы данных для выполнения интерактивных запросов и создания специализированных отчетов. Однако из-за сложности базы данных AdventureWorksDW2008 таким пользователям потребуется много времени, чтобы освоить создание эффективных запросов. 2. Скорость выполнения запросов меняется в широком диапазоне. Например, некоторые запросы возвращают результаты очень быстро, через считанные секунды, для выполнения других запросов требуется несколько минут. 3. Таблицами статистических вычислений сложно управлять. Для сокращения времени обработки запросов команда разработчиков по хранилищам данных компании Adventure Works составила несколько таблиц статистических вычислений в базе данных AdventureWorks DW2008. Например, они создали таблицу, суммирующую продажи за месяц. Однако хотя такие таблицы существенно ускорили выполнение запросов, инфраструктура, поддерживающая эти таблицы, хрупка и подвержена ошибкам. 4. Комплексная логика вычислений скрыта в определениях отчетов и сложна в передаче между отчетами. Так как бизнес-логика формируется отдельно для каждого отчета, данные сводки иногда различаются для разных отчетов. Поэтому руководство не слишком доверяет отчетам хранилища данных. 5. Пользователи различных подразделений компании заинтересованы в различных представлениях данных. Пользователей отдельной группы приводят в замешательство и отвлекают элементы данных, не относящиеся к их группе. 6. Логика вычислений особенно сложна для пользователей, которым требуются специализированные отчеты. Так как данные пользователи должны определять логику вычислений отдельно для каждого отчета, централизованного контроля за логикой вычислений нет. Например, некоторые пользователи знают, что им следовало бы использовать базовые статистические методы, такие как скользящее среднее, однако они не знают, как построить такие вычисления, и поэтому не используют эти методы. 7. Трудно сочетать связанные наборы данных. Специализированные запросы, сочетающие два набора связанных данных, такие как продажи и квоты продаж, пользователям построить непросто. Такие запросы перегружают базу данных, поэтому компания потребовала от пользователей запросить у команды разработчиков хранилища данных межпредметные наборы данных. В результате создано лишь небольшое количество предопределенных отчетов, сочетающих данные из нескольких предметных областей. Пользователи неохотно модифицируют эти отчеты из-за их сложности. 8. Отчеты сконцентрированы в основном на деловых сведениях в Соединенных Штатах. Пользователи из остальных стран недовольны этим и хотят иметь возможность просматривать отчеты в разных денежных единицах и на разных языках. 9. Сведения сложны для аудита. Финансовый отдел в данное время использует базу данных AdventureWorks DW2008 только как источник данных для массовых запросов. Затем данные загружаются в отдельные электронные таблицы, что приводит к большим затратам времени на подготовку данных и на управление таблицами. Таким образом, корпоративные финансовые отчеты трудно готовить, проверять и управлять ими.
Команда разработчиков хранилища данных недавно провела исследование структуры текущей системы аналитики. Исследование включало анализ просчетов прогнозирования текущих проблем и будущих требований. Команда разработчиков хранилища данных определила, что база данных AdventureWorks DW2008 — это многомерная база данных с согласованными измерениями и суррогатными ключами. Согласованные измерения позволяют использовать измерение, например измерение времени или измерение продукта, в нескольких витринах данных. Суррогатные ключи — это искусственные ключи, связывающие измерения и таблицы фактов, они используются для обеспечения уникальности и повышения производительности. Кроме того, команда разработчиков хранилища данных определила, что в данный момент нет никаких значительных проблем с загрузкой и управлением базовыми таблицами в базе данных AdventureWorks DW2008. Поэтому было решено с использованием базы данных служб SSAS выполнить следующие задачи: 1. предоставить унифицированный доступ к данным через общий слой метаданных для анализа и отчетов; 2. упростить просмотр данных пользователями, ускорив разработку интерактивных и предопределенных запросов, а также предопределенных отчетов; 3. правильно составлять запросы, сочетающие данные из нескольких предметных областей; 4. управлять статистическими вычислениями; 5. хранить и повторно использовать сложные вычисления; 6. предоставлять возможность локализации пользователям за пределами Соединенных Штатов.
Практические задания Первая лабораторная работа посвящена процессу развертывания инфраструктуры, которая будет использоваться в дальнейшем. Рассмотрим процесс базовой установки русской версии SQL Server 2008 Enterprise в операционной системе MS Windows XP Professional. На первом этапе программаустановщик проверяет наличие в системе установленных .NET Framework 3.5 и Microsoft Windows Installer 4.5 и при их отсутствии предлагает скачать их дистрибутивы с сайта Microsoft и установить их. Эту процедуру можно выполнить самостоятельно заранее, до установки SQL Server 2008. Далее производится проверка конфигурации операционной системы на предмет возможности установки SQL Server (Рисунок 36). Например, проверяется, не является ли компьютер, на который устанавливается SQL Server 2008, контроллером домена.
Рисунок 36. Проверка конфигурации операционной системы на предмет возможности установки SQL Server
Далее осуществляется выбор компонентов SQL Server 2008, подлежащих установке (Рисунок 37). Для выполнения данного цикла лабораторных работ потребуется установка следующих компонентов: службы компонента Database Engine; полнотекстовый поиск – потребуется в дальнейшем для установки демонстрационной базы данных AdventureWorksDW2008; службы Analysis Services; среда Business Intelligence Development Studio; службы Integration Services; электронная документация по SQL Server; средства управления – основные (подкомпонент Средства управления – полный набор);
Рисунок 37. Выбор устанавливаемых компонентов SQL Server 2008
Следующий этап работы мастера установки заключается в выборе названия устанавливаемого экземпляра SQL Server 2008 и каталога на жестком диске, куда он будет установлен (Рисунок 38). По умолчанию предлагается название экземпляра MSSQLSERVER и каталог для установки C:\Program Files\Microsoft SQL Server.
Рисунок 38. Выбор названия экземпляра и каталога для установки
Далее производится проверка наличия на выбранном жестком диске требуемого для установки выбранных компонентов свободного места (Рисунок 39).
Рисунок 39. Проверка наличия свободного места
На следующем этапе необходимо указать, от имени каких учетных записей будут работать службы SQL Server, а также режим их запуска – ручной или автоматический (Рисунок 40). Для службы SQL Server Analysis Services укажем учетную запись NT LOCAL AUTHORITY\NETWORK SERVICE.
Рисунок 40. Указание учетных записей для служб SQL Server
Далее производится выбор режима безопасности для компонента Database Engine (Рисунок 40).
Рисунок 41. Выбор режима безопасности для Database Engine
Возможны два варианта – режим проверки пользователей Windows и смешанный, при котором помимо пользователей Windows могут использоваться учетные записи пользователей SQL Server. Выберем второй вариант, и назначим для встроенной учетной записи системного администратора SQL Server пароль. Кроме того, добавьте текущего пользователя в группу администраторов SQL Server, нажав кнопку «Добавить текущего пользователя» (Рисунок 42).
Рисунок 42. Задание пароля для пользователя sa и добавление текущего пользователя в группу администраторов SQL Server
Далее на закладке FILESTREAM (Рисунок 43) следует установить флажки «Разрешить FILESTREAM при доступе через Transact-SQL» и «Разрешить FILESTREAM при потоковом доступе файлового ввода-вывода». Использование технологии FILESTREAM потребуется в дальнейшем при установке демонстрационных баз данных.
Рисунок 43. Закладка FILESTREAM
Далее необходимо выбрать пользователей, которые будут иметь административные полномочия для служб Analysis Services (Рисунок 44). В данной лабораторной работе следует нажать кнопку «Добавить текущего пользователя».
Рисунок 44. Выбор пользователей с административными полномочиями для служб Analysis Services
Следующим этапом установки является настройка режима работы службы Reporting Service (Рисунок 45). Необходимо выбрать вариант «Установить конфигурацию для работы в собственном режиме».
Рисунок 45. Настройка режима работы служб Reporting Services
На следующем этапе работы мастера производится выбор сведений об ошибках и об использовании компонентов SQL Server, которые будут отправляться в компанию Microsoft в ходе эксплуатации устанавливаемого экземпляра SQL Server (Рисунок 46).
Рисунок 46. Выбор сведений, автоматически отправляемых в компанию Microsoft
Далее программа установки проверяет, выполняются ли правила, предусмотренные разработчиками. Их выполнение позволяет гарантировать, что процесс установки завершится успешно. В случае возникновения несоответствий пользователю будет выдано соответствующее сообщение (Рисунок 47).
Рисунок 47. Проверка правил перед установкой
После проверки правил формируется файл конфигурации установки и пользователю показывается его содержимое, для того, чтобы он имел возможность проверить правильность указанных им параметров (Рисунок 48).
Рисунок 48. Перечень параметров установки
Далее происходит выполнение процесса установки (Рисунок 49), по завершении которого пользователю выдается сообщение об его успешном завершении (Рисунок 50).
Рисунок 49. Процесс установки SQL Server 2008
Рисунок 50. Сообщение об успешном завершении процесса установки
Для последующей установки демонстрационных баз данных необходимо убедится, что для экземпляра SQL Server, для которого будет производиться установка, разрешено использование технологии FILESTREAM. Для этого следует запустить Диспетчер конфигурации SQL Server при помощи Пуск | Все программы | Средства настройки | Диспетчер конфигурации SQL Server (Рисунок 51).
Рисунок 51. Диспетчер конфигурации SQL Server
В диспетчере конфигурации следует выбрать службу SQL Server и в ее контекстном меню выбрать пункт «Свойства». На закладке «FILESTREAM» открывшегося диалогового окна необходимо проверить, установлены ли флажки «Разрешить FILESTREAM при доступе через Transact-SQL» и «Разрешить FILESTREAM при потоковом доступе файлового ввода-вывода» (Рисунок 52).
Рисунок 52. Закладка FILESTREAM диалогового окна свойств экземпляра SQL Server
Далее следует провести установку тестовой базы данных AdventureWorksDW2008, входящей в комплект демонстрационных баз AdventureWorks, которая будет использоваться в дальнейшем в
качестве источника данных для создаваемого ХД. Установка выполняется при помощи мастера установки (Рисунок 53).
Рисунок 53. Мастер установки баз данных AdventureWorks
На первом этапе работы мастера следует принять лицензионное соглашение (Рисунок 54).
Рисунок 54. Лицензионное соглашение
Далее следует выбрать устанавливаемые компоненты (Рисунок 55). Вариант «по умолчанию» является подходящим для данной лабораторной работы.
Рисунок 55. Устанавливаемые компоненты
Выбор экземпляра SQL Server, в котором будут установлены БД AdventureWorks, осуществляется при помощи раскрывающегося списка (Рисунок 56).
Рисунок 56. Выбор экземпляра SQL Server
После нажатия кнопки «Install» (Рисунок 57) начнется копирование файлов и установка баз данных в выбранном экземпляре SQL Server (Рисунок 58).
Рисунок 57. Мастер готов к установке
Рисунок 58. Процесс копирования файлов и установки БД
Аналогичным образом производится процесс установки образцов файлов для служб SSIS, которые будут использованы в лабораторной работе № 11. Установка выполняется при помощи мастера (Рисунок 59).
Рисунок 59. Мастер установки Integration Services Samples
Необходимо принять лицензионное соглашение (Рисунок 60).
Рисунок 60. Лицензионное соглашение
Далее следует выбрать устанавливаемые компоненты (Рисунок 61). Необходимым является компонент Sample Files. Остальные компоненты – опционально.
Рисунок 61. Выбор устанавливаемых компонентов
После выбора компонентов мастер уведомляет о готовности к установке (Рисунок 62).
Рисунок 62. Мастер готов к установке
После копирования требуемых файлов установка завершена (Рисунок 63).
Рисунок 63. Сообщение об успешном завершении установки
Контрольные вопросы 1. Опишите назначение служб Analysis Services. 2. Какие инструментальные средства используются для создания, управления и работы с OLAP-кубами? 3. Каким образом устанавливаются службы Analysis Services? 4. Какие требования к файловой системе, программному и аппаратному обеспечению предъявляет MS SQL Server 2008? 5. Какие существуют редакции SQL Server 2008? 6. В каких редакциях SQL Server 2008 предусмотрена возможность работы с хранилищами данных? В чем заключается отличие между этими версиями с точки зрения функционала при работе с хранилищами данных?
2. Определение представления источника данных в проекте служб Analysis Services Теоретическое введение
Выбор метода определения соединения Мастер источников данных в среде BI DevStudio предназначен для определения одного или нескольких источников данных для проекта служб Microsoft SQL Server Analysis Services. Независимо от того, производится работа с проектом служб Analysis Services или прямое подключение к базе данных служб Analysis Services, определить источник данных можно на основе нового или существующего соединения. При работе с проектом служб Analysis Services определить источник данных можно также на основе другого объекта проекта или решения. Среда SQL Server Analysis Services поддерживает много различных типов поставщиков. По умолчанию для нового соединения применяется поставщик OLE DB собственного клиента SQL Server. Этот поставщик используется для соединения с экземпляром компонента SQL Server Database Engine с использованием OLE DB. Он разработан для обеспечения высокой производительности при подключении к экземпляру компонента SQL Server Database Engine через OLE DB. Выбрав поставщика, необходимо указать некоторые данные о соединении, необходимые данному поставщику для подключения к базовым данным. Какие именно данные необходимо указать, зависит от выбранного поставщика, но обычно это сервер или экземпляр службы, учетные данные для входа, имя базы данных или файла и другие параметры, относящиеся к конкретному поставщику. Если поставщик поддерживает службу проверки подлинности, то для доступа к источнику данных можно использовать проверку подлинности Windows. При этом варианте обычно используются учетные данные процесса, который пытается получить доступ к источнику данных, для предоставления доступа к данным. Службы Analysis Services предоставляют возможности олицетворения для обеспечения дополнительной гибкости при установке архитектуры безопасности для предприятия. Иногда необходимо предоставить конкретный уровень доступа к источнику данных, несмотря на разрешения, предоставленные отдельным пользователям. В этих случаях вместо проверки подлинности Windows можно указать имя пользователя и пароль, используемые для соединения с источником данных. Службы Analysis Services можно настроить таким образом, чтобы при подключении к базовому источнику данных для выполнения обработки OLAP использовались учетные данные учетной записи службы, или же задать пользовательскую учетную запись, обладающую необходимыми разрешениями. Хотя чаще применяется учетная запись службы, указание учетной записи пользователя для олицетворения источника данных позволяет выполнять службы Analysis Services под учетной записью с минимальными правами доступа, а затем задать учетную запись олицетворения для каждого источника данных, который имеет соответствующий уровень прав доступа в каждой из баз данных-источников. Эта учетная запись олицетворения может иметь
более высокий уровень прав доступа по сравнению с учетной записью самой службы, и поэтому уязвимость службы Analysis Services не сможет нанести существенного вреда. Однако службы Analysis Services не поддерживают олицетворения текущего пользователя при обработке объекта. В результате этого при выборе параметра «Использовать учетные данные текущего пользователя для объекта источника данных» во время обработки будет получена ошибка режима олицетворения.
Проектирование представлений источников данных Проекты оперативной аналитической обработки (OLAP) и интеллектуального анализа данных на сервере Microsoft SQL Server разработаны на основе логической модели данных связанных таблиц, представлений и запросов из одного или нескольких источников данных. Эта логическая модель называется представлением источников данных. Представление источника данных является объектом, содержащим метаданные из выбранных объектов источника данных, включая связи между этими объектами, определенные в базовом источнике данных или в представлении источника данных. Представление источника данных кэширует метаданные из источников данных, на основе которых оно построено. Кэшированные метаданные позволяют разработать проект служб Analysis Services без непрерывного активного соединения с источником данных. Представления источников данных позволяют определять подмножество данных, заполняющих большое хранилище данных. Кроме этого они позволяют определить однородную схему на основе разнородных источников данных или подмножеств источников данных. Поскольку представления источников данных представляют изолированную схему, к ним можно добавлять все необходимые заметки, не затрагивая схемы в базовых источниках данных. Представление источника данных содержит следующие элементы. 1. Имя и описание. 2. Определение любого подмножества схемы, получаемого из одного или нескольких источников данных, вплоть до полной схемы и включая ее, в том числе: имена таблиц; имена столбцов; типы данных; допустимость значений NULL; длины столбцов; первичные ключи; связи «первичный-внешний ключ». 3. Заметки к схеме из базовых источников данных, включая следующее: понятные имена таблиц, представлений и столбцов; именованные запросы, возвращающие столбцы из одного или нескольких источников данных (отображающихся в схеме как таблицы);
именованные вычисления, возвращающие столбцы из источника данных (отображающиеся как столбцы таблиц или представлений); логические первичные ключи (необходимые, если первичный ключ в базовой таблице не определен или не включен в представление или именованный запрос); связи «логический первичный ключ-внешний ключ» между таблицами, представлениями и именованными запросами. Чтобы создать представление источника данных, в основе которого лежат несколько источников данных, необходимо предварительно определить представление, основанное на одном источнике данных. Этот источник данных впоследствии считается первичным источником данных. Затем можно добавить таблицы и представления из вторичного источника данных. При проектировании измерений с атрибутами, основанных на связанных таблицах нескольких источников данных, может потребоваться определение источника данных Microsoft SQL Server как основного источника данных, чтобы использовать его возможности обработки распределенных запросов.
Практические задания Создание проекта служб Analysis Services В этом разделе будет создан проект Tutorial служб Analysis Services на основе шаблона служб Analysis Services. В меню «Пуск» последовательно выберите пункты «Все программы», «Microsoft SQL Server 2008», а затем выберите «Среда SQL Server Business Intelligence Development Studio». Откроется среда разработки Microsoft Visual Studio (Рисунок 64).
Рисунок 64. Среда разработки Visual Studio
В меню «Файл» Visual Studio укажите команду «Создать», затем выберите пункт «Проект» (Рисунок 65).
Рисунок 65. Пункт "Проект" меню "Файл"
В диалоговом окне «Новый проект» на панели «Типы проектов» выберите значение «Проекты бизнес-аналитики», а на панели «Шаблоны» укажите «Проект служб SSAS» (Рисунок 66).
Рисунок 66. Выбор типа создаваемого проекта
Обратите внимание, что в нижней части этого диалогового окна отображаются установленные по умолчанию имя проекта, имя решения и путь к проекту. По умолчанию для решения создается новый каталог. Измените имя проекта на Analysis Services Tutorial (при этом изменится и имя решения) и нажмите кнопку ОК (Рисунок 67).
Рисунок 67. Указание имени проекта
Проект Analysis Services Tutorial, основанный на шаблоне проекта Analysis Services, будет создан в рамках нового решения, которое также называется Analysis Services Tutorial (Рисунок 68).
Рисунок 68. Проект Analysis Services Tutorial в решении Analysis Services Tutorial
Определение источника данных После создания проекта служб Analysis Services работа с проектом обычно начинается с определения одного или нескольких источников данных, которые будут использоваться в этом проекте. Для определения источника данных нужно задать строку соединения, которая будет использована для подключения к этому источнику данных. Далее в рамках выполнения лабораторной работы необходимо указать образец базы данных AdventureWorksDW2008 в качестве источника данных для проекта служб Analysis Services Tutorial. Хотя эта база данных в данном случае расположена на локальном компьютере, часто исходные базы данных размещаются на одном или нескольких удаленных компьютерах. В обозревателе решений щелкните правой кнопкой мыши элемент «Источники данных» и выберите команду «Создать источник данных» (Рисунок 69).
Рисунок 69. Контекстное меню элемента "Источники данных" в обозревателе решений
На странице «Мастер источников данных» (Рисунок 70) нажмите кнопку «Далее», чтобы открыть страницу «Выбор метода определения соединения» (Рисунок 71).
Рисунок 70. Мастер источников данных
Рисунок 71. Выбор метода определения соединения
На странице «Выбор метода определения соединения» можно определить источник данных на основе нового соединения, существующего соединения или предварительно определенного объекта источника данных. В данной лабораторной работе будет определен источник данных на основе нового соединения. Убедитесь, что выбран параметр «Создать источник данных на основе существующего или нового соединения», а затем нажмите кнопку «Создать». В диалоговом окне Диспетчер соединений определяются свойства соединения для источника данных. Убедитесь, что в списке «Поставщик» выбран «Собственный поставщик данных OLE DB\SQL Server Native Client 10.0» (Рисунок 72).
Рисунок 72. Диспетчер соединений
Службы Analysis Services также поддерживают других поставщиков, которые доступны в списке «Поставщик». В текстовом поле Имя сервера введите localhost (Рисунок 73).
Рисунок 73. Имя сервера
Убедитесь, что выбран параметр «Использовать проверку подлинности Windows». В раскрывающемся списке «Выберите или введите имя базы данных» выберите «AdventureWorksDW2008» (Рисунок 74).
Рисунок 74. Имя базы данных
Нажмите кнопку «Проверить соединение», чтобы проверить соединение с базой данных (Рисунок 75).
Рисунок 75. Сообщение об успешной проверке соединения с базой данных
Нажмите кнопку «ОК», а затем нажмите кнопку «Далее». На странице мастера «Сведения об олицетворении» определяются учетные данные безопасности, которые будут использованы в службах Analysis Services для подключения к источнику данных. Олицетворение влияет на учетную запись Windows, используемую для подключения к источнику данных, если выбран метод проверки подлинности Windows. Службы Analysis Services не поддерживают олицетворения при работе с объектами OLAP. Выберите параметр «Использовать учетную запись службы» и нажмите кнопку «Далее» (Рисунок 76).
Рисунок 76. Сведения об олицетворении
На странице «Завершение работы мастера» введите имя Adventure Works DW, затем нажмите кнопку «Готово» (Рисунок 77), чтобы создать новый источник данных (Рисунок 78).
Рисунок 77. Имя источника данных
Рисунок 78. Созданный источник данных
Определение нового представления источника данных После определения источников данных, используемых в проекте служб Analysis Services, на следующем этапе, как правило, определяется представление источника данных для этого проекта. Представление источника данных является отдельным единым представлением метаданных из указанных таблиц и представлений, определяемых источником данных для проекта. Хранение метаданных в представлении источника данных позволяет работать с метаданными в процессе разработки, не устанавливая соединений с базовыми источниками данных. Далее будет определено представление источника данных, которое содержит пять таблиц из базы данных Adventure Works DW.
В обозревателе решений щелкните правой кнопкой мыши папку «Представления источников данных» и в контекстном меню выберите пункт «Создать представление источника данных» (Рисунок 79).
На странице «Мастер представления источника данных» нажмите кнопку «Далее» (Рисунок 80).
Рисунок 80. Мастер представления источника данных
Будет открыта страница «Выбор источника данных». В группе «Источник реляционных данных» выбран источник данных «Adventure Works DW». Нажмите кнопку «Далее» (Рисунок 81).
Рисунок 81. Выбор источника данных
На странице «Выбор таблиц и представлений» (Рисунок 82) можно выбрать таблицы и представления из списка объектов, доступных в выбранном источнике данных. Можно установить для этого списка фильтр, который поможет отобрать нужные таблицы и представления.
Рисунок 82. Выбор таблиц и представлений
В списке «Доступные объекты» выберите следующие объекты: DimCustomer (dbo); DimDate (dbo); DimGeography (dbo);
DimProduct (dbo); FactInternetSales (dbo). Несколько таблиц можно выбрать, удерживая клавишу CTRL при выборе. Нажмите кнопку >, чтобы добавить выбранные таблицы к списку «Включенные объекты» (Рисунок 83).
Рисунок 83. Выбранные объекты
Нажмите кнопку «Далее». В поле «Имя» введите Adventure Works DW, затем нажмите кнопку «Готово», чтобы определить представление источника данных Adventure Works DW (Рисунок 84).
Рисунок 84. Ввод имени представления источника данных
Представление источника данных Adventure Works DW будет выведено в папке «Представления источников данных» обозревателя решений (Рисунок 85).
Рисунок 85. Созданное представление в обозревателе решений
Содержимое представления источника данных также отображается в конструкторе представлений источников данных в среде Business Intelligence Development Studio (Рисунок 86).
Рисунок 86. Содержимое представления источника данных в конструкторе представлений
В этом конструкторе содержатся следующие элементы: 1. панель «Диаграмма», на которой представлены в графическом виде таблицы и их связи; 2. панель «Таблицы», на которой отображаются в виде дерева таблицы и их элементы схем; 3. панель «Организатор схем», на которой можно создавать вложенные диаграммы, позволяющие просматривать поднаборы этого представления источника данных; 4. панель инструментов конструктора представлений источников данных.
Обратите внимание, что между таблицами FactInternetSales и DimDate имеются три связи. С каждой продажей связано три даты: дата заказа, дата оплаты и дата отгрузки. Чтобы просмотреть подробные сведения по связи, дважды щелкните стрелку этой связи на панели «Диаграмма» (Рисунок 87).
Рисунок 87. Свойства связи между таблицами
Изменение имен таблиц по умолчанию Значение свойства FriendlyName для объекта в представлении источника данных можно изменить, чтобы сделать его имя более понятным. Имена этих объектов также можно изменять после того, как они были определены. Далее будет изменено понятное имя каждой из таблиц в представлении источника данных Adventure Works DW посредством удаления из их имен префиксов Dim и Fact. Это сделает более понятными имена объектов куба и измерений, которые будут определены в следующей лабораторной работе. Также в представлении источника данных можно присваивать понятные имена столбцам, определять вычисляемые столбцы, а также соединять таблицы и представления, чтобы сделать их более удобными в работе. В области «Таблицы конструктора представлений источников данных» щелкните правой кнопкой мыши таблицу FactInternetSales и в контекстном меню выберите пункт «Свойства», чтобы отобразить свойства объекта FactInternetSales для представления источника данных Adventure Works (Рисунок 88).
Рисунок 88. Свойства таблицы FactInternetSales
Измените свойство FriendlyName объекта FactInternetSales на Продажи через Интернет (Рисунок 89).
Рисунок 89. Измененное свойство FriendlyName
В области Таблицы выберите таблицу DimProduct. В окне свойств задайте для свойства FriendlyName значение Продукт. Аналогично для таблицы DimCustomer – значение свойства Клиент, DimDate – Дата, DimGeography – География (Рисунок 90).
Рисунок 90. Представление источника данных с измененными свойствами FriendlyName для таблиц
В меню Файл выберите команду Сохранить все (или нажмите соответствующую кнопку на панели инструментов среды BI DevStudio), чтобы сохранить изменения, внесенные в проект Analysis Services Tutorial.
Контрольные вопросы 4. Какой поставщик данных используется по умолчанию в проекте SSAS для соединения с экземпляром компонента SQL Server Database Engine? Какие данные о соединении требуется указать? 3. Дайте определение понятию «представление источника данных». Каковы его функции? Из каких элементов оно состоит?
4. Определение и развертывание куба После определения представления источника данных в проекте служб Microsoft Analysis Services можно определить исходный куб служб Analysis Services. Кроме того, можно определить куб и его измерения за один проход с помощью мастера кубов. Также можно определить одно или несколько измерений, а затем с помощью мастера кубов определить куб, в котором они будут использоваться. Разработку сложного решения обычно начинают с определения измерений.
Теоретическое введение
OLAP-куб Куб представляет собой многомерную структуру, содержащую измерения и меры. Измерения определяют структуру куба, а меры предоставляют числовые значения, представляющие интерес для конечного пользователя. В качестве логической структуры куб позволяет клиентскому
приложению получать значения в виде ячеек куба, определенных для всех возможных суммарных значений. Положения ячеек в кубе определяются пересечением элементов измерений. Иерархии измерений предоставляют пути для статистических вычислений в пределах куба. Значения мер статистически вычисляются на неконечных уровнях, чтобы обеспечить значения элементов в иерархиях измерений.
Проектирование измерений Измерение базы данных является коллекцией объектов, называемых атрибутами, которые используются для предоставления сведений о данных фактов в одном или нескольких кубах. Например, типичным атрибутом измерения «Продукт» может быть название, категория, размер, цена продукта или линия товаров. Эти объекты привязаны к одному или нескольким столбцам в одной или нескольких таблицах в представлении источника данных. По умолчанию эти атрибуты отображаются как иерархии атрибутов и позволяют понять смысл данных фактов в кубе. Атрибуты могут быть организованы в пользовательские иерархии, которые обеспечивают различные пути доступа к данным и помогают пользователям при просмотре данных в кубе. Кубы содержат все измерения, которыми пользователи пользуются при анализе данных фактов. Экземпляр измерения базы данных в кубе называется измерением куба и относится к одной или нескольким группам мер в кубе. Измерение базы данных может использоваться в кубе несколько раз. Например, если таблица фактов содержит несколько зависимых от времени фактов, то для облегчения анализа каждого из них может быть определено отдельное измерение куба. Однако необходимо существование только одного зависимого от времени измерения базы данных, что означает также необходимость существования лишь одной зависимой от времени таблицы реляционной базы данных для поддержки нескольких зависимых от времени измерений куба. Для определения измерений, атрибутов и иерархий базы данных и куба проще всего воспользоваться мастером кубов, который позволяет создавать измерения одновременно с определением куба. Мастер кубов создает измерения на основе обнаруженных или указанных пользователем таблиц измерений из представления источника данных, используемого для куба. После этого мастер создает измерения базы данных и добавляет их к новому кубу, создавая измерения куба. При создании куба в него можно также добавить любые измерения, которые уже существуют в базе данных. Эти измерения могли быть ранее определены мастером измерений для другого куба. После того как измерение базы данных определено, его изменение и настройка производятся в конструкторе измерений. Кроме того, в ограниченной степени измерение куба может быть настроено при помощи конструктора кубов.
Развертывание проекта В процессе разработки проекта служб SSAS в среде BI Dev Studio проект часто развертывается на сервере разработки для создания базы данных служб SSAS, определенной проектом. Это
необходимо для тестирования проекта; например для обзора ячеек в кубе, обзора элементов измерения или проверки формул ключевых индикаторов производительности. Проект можно развернуть независимо или же развернуть все проекты в решении. При развертывании проекта последовательно выполняются следующие действия: 1. построение проекта. Создаются выходные файлы, определяющие базу данных служб SSAS и ее составляющие объекты; 2. проверка выбранного сервера; 3. создание базы данных и ее объектов на выбранном сервере. Во время развертывания его механизм полностью заменяет любую существующую базу данных содержимым проекта, если только эти объекты не были созданы проектом во время предыдущего развертывания. После первоначального развертывания в папке <Имя проекта>\obj создается файл IncrementalSnapshot.xml. Этот файл нужен для определения, изменялась ли база данных или ее объекты на целевом сервере вне проекта. Если изменение имело место, система предложит переписать все объекты в целевой базе данных. Если все изменения были сделаны в проекте и проект настроен для добавочного развертывания, на целевом сервере будут развернуты только изменения. Конфигурация проекта и соответствующие параметры определяют свойства развертывания, которые будут применяться при развертывании проекта. В общем проекте каждый разработчик использует свою собственную конфигурацию с собственными параметрами конфигурации проекта. Например, каждый разработчик может указать отдельный тестовый сервер для работы отдельно от других разработчиков.
Практические задания
Определение измерения С помощью мастера измерений создадим измерение Date. В обозревателе решений щелкните правой кнопкой мыши узел «Измерения» и выберите команду «Создать измерение» (Рисунок 91).
Рисунок 91. Контекстное меню узла "Измерения"
На странице «Мастер измерений» нажмите кнопку «Далее» (Рисунок 92).
Рисунок 92. Мастер измерений
На странице «Выбор метода создания» выберите параметр «Использовать существующую таблицу» (Рисунок 93) и нажмите кнопку «Далее».
Рисунок 93. Выбор метода создания
На странице «Определение исходных сведений» убедитесь, что выбрано представление источника данных Adventure Works DW. В списке «Основная таблица» выберите таблицу «Дата» (Рисунок 94).
Рисунок 94. Определение исходных данных
Нажмите кнопку «Далее». На странице «Выбор атрибутов измерения» установите флажки для перечисленных ниже атрибутов (Рисунок 95): Date Key; Full Date Alternate Key;
English Month Name; Calendar Quarter; Calendar Year; Calendar Semester.
Рисунок 95. Выбор атрибутов измерения
Для атрибута Full Date Alternate Key в столбце «Тип атрибута» вместо значения «Обычный» выберите «Дата». Для этого щелкните значение «Обычный» в столбце «Тип атрибута». Щелкните стрелку, чтобы раскрыть список параметров. Затем выберите значение «Дата | Календарь | Дата» (Рисунок 96). Нажмите кнопку ОК.
Рисунок 96. Выбор типа атрибута для столбца Full Date Alternate Key
Повторите эти шаги, чтобы изменить тип следующих атрибутов (Рисунок 97): English Month Name на Месяц; Calendar Quarter на Квартал; Calendar Year на Год; Calendar Semester на Полугодие;
Рисунок 97. Заданные типы атрибутов для столбцов измерения «Дата»
Нажмите кнопку «Далее». На странице «Завершение работы мастера» в области просмотра будет отображено измерение «Дата» и его атрибуты (Рисунок 98).
Рисунок 98. Измерение "Дата" и его атрибуты
Чтобы завершить работу мастера, нажмите кнопку «Готово». В обозревателе решений в проекте «Analysis Services Tutorial» в папке «Измерения» появится измерение «Дата» (Рисунок 99).
Рисунок 99. Измерение "Дата" в обозревателе решений
В центральной части окна среды разработки это измерение отображается в конструкторе измерений (Рисунок 100).
Рисунок 100. Измерение "Дата" в конструкторе измерений
В меню «Файл» выберите команду «Сохранить все».
Определение куба и его свойств Мастер кубов помогает определить для куба группы мер и измерения. Далее с помощью мастера кубов будет построен куб. В обозревателе решений щелкните правой кнопкой мыши узел «Кубы» и выберите команду «Создать куб» (Рисунок 101).
Рисунок 101. Команда "Создать куб" контекстного меню узла "Куб"
На странице «Мастер кубов» (Рисунок 102) нажмите кнопку «Далее».
Рисунок 102. Мастер кубов
На странице «Выбор метода создания» (Рисунок 103) убедитесь, что выбран параметр «Использовать существующие таблицы», а затем нажмите кнопку «Далее».
Рисунок 103. Выбор метода создания куба
На странице «Выбор таблиц групп мер» убедитесь, что выбрано представление источника данных Adventure Works DW (Рисунок 104).
Рисунок 104. Выбор таблиц групп мер
Нажмите кнопку «Предложить», чтобы мастер кубов предложил таблицы для создания групп мер. Мастер просматривает все таблицы и предлагает «Продажи через Интернет» в качестве таблицы группы мер (Рисунок 105). Таблицы групп мер, также называемые таблицами фактов, содержат меры, которые могут представлять интерес (например, число проданных единиц).
Рисунок 105. Предлагаемая мастером таблица группы мер
Нажмите кнопку «Далее». На странице «Выбор мер» просмотрите выбранные меры в группе мер Продажи через Интернет и снимите флажки для следующих мер (Рисунок 106): Promotion Key; Currency Key;
Sales Territory Key; Revision Number.
Рисунок 106. Выбор мер для включения в куб
По умолчанию мастер выбирает в качестве мер все числовые столбцы в таблице фактов, которые не привязаны к измерениям. Однако эти четыре столбца не являются фактическими мерами. Первые три представляют собой ключевые значения, связывающие таблицу фактов с таблицами измерений, которые не используются в первоначальной версии этого куба. Нажмите кнопку «Далее». На странице «Выбор существующих измерений» выберите ранее созданное измерение «Дата» (Рисунок 107) и нажмите кнопку «Далее».
Рисунок 107. Выбор существующего измерения «Дата»
На странице «Выбор новых измерений» выберите новые измерения, которые необходимо создать. Для этого убедитесь, что установлены флажки «Клиент», «География» и «Продукт», а флажок «Продажи через Интернет» снят (Рисунок 108).
Рисунок 108. Выбор измерений, которые будут созданы
Нажмите кнопку «Далее». На странице «Завершение работы мастера» измените имя куба на «Analysis Services Tutorial». В области просмотра будет отображена группа мер «Продажи через Интернет» и входящие в нее меры. Кроме того, будут показаны измерения «Дата», «Клиент» и «Продукт» (Рисунок 109).
Рисунок 109. Имя куба и его структура
Для завершения работы мастера нажмите кнопку «Готово». В обозревателе решений в проекте Analysis Services Tutorial в папке «Кубы» появится куб с именем «Analysis Services Tutorial», а в папке «Измерения» появятся измерения базы данных «Продукт» и «Клиент» (Рисунок 110).
Рисунок 110. Куб и дополнительные измерения в обозревателе решений
Кроме того, в центре среды разработки в конструкторе кубов будет отображен куб Analysis Services Tutorial (Рисунок 111).
Рисунок 111. Куб Analysis Services Tutorial
В меню «Файл» выберите команду «Сохранить все».
Добавление атрибутов к измерениям Далее с помощью конструктора измерений в измерения «Клиент» и «Продукт» будут добавлены атрибуты. Откройте в конструкторе измерений измерение «Клиент». Для этого дважды щелкните измерение «Клиент» в узле «Измерения» обозревателя решений (Рисунок 112).
Рисунок 112. Измерение «Клиент» в узле «Измерения» обозревателя решений
В области «Атрибуты» обратите внимание на атрибуты «Customer Key» и «Geography Key», созданные мастером кубов (Рисунок 113).
Рисунок 113. Измерение "Клиент"
Перетащите следующие столбцы из таблицы «Клиент» в области «Представление источника данных» в область «Атрибуты» (Рисунок 114): BirthDate; MaritalStatus; Gender; EmailAddress; YearlyIncome; TotalChildren; NumberChildrenAtHome; EnglishEducation; EnglishOccupation; HouseOwnerFlag; NumberCarsOwned;
Phone; DateFirstPurchase; CommuteDistance.
Рисунок 114. Измерение "Клиент" с добавленными атрибутами из таблицы «Клиент»
Перетащите следующие столбцы из таблицы «География» в области «Представление источника данных» в область «Атрибуты» (Рисунок 115): City; StateProvinceName; EnglishCountryRegionName; PostalCode.
Рисунок 115. Измерение "Клиент" с добавленными атрибутами из таблицы «География»
Откройте в конструкторе измерений измерение «Продукт».
Рисунок 116. Измерение "Продукт" в конструкторе измерений
В области «Атрибуты» обратите внимание на атрибут «Product Key», созданный мастером кубов. Перетащите следующие столбцы из таблицы «Продукт» в области «Представление источника данных» в область «Атрибуты» (Рисунок 117):
Рисунок 117. Измерение "Продукт" с добавленными атрибутами
В меню «Файл» выберите команду «Сохранить все».
Просмотр свойств куба и измерений в конструкторе кубов После определения свойств куба можно просмотреть результаты в конструкторе кубов. Чтобы открыть конструктор кубов, в обозревателе решений в узле «Кубы» дважды щелкните куб Analysis Services Tutorial (Рисунок 118).
Рисунок 118. Куб Analysis Services Tutorial в обозревателе решений
Чтобы просмотреть определенные меры, в области «Меры» вкладки «Структура куба» конструктора кубов раскройте группу мер «Продажи через Интернет» (Рисунок 119).
Рисунок 119. Группа мер "Продажи через Интернет" в конструкторе кубов
Можно изменить порядок отображения этих мер, перетаскивая их и выстраивая в желаемой последовательности. Этот порядок будет влиять на очередность использования этих мер определенными клиентскими приложениями. Эта группа мер и каждая содержащаяся в ней мера имеют свойства, которые можно изменять в окне свойств. На панели «Измерения» вкладки «Структура куба» конструктора кубов просмотрите измерения куба Analysis Services Tutorial (Рисунок 120).
Рисунок 120. Измерения в конструкторе кубов
Обратите внимание, что в кубе Analysis Services Tutorial доступно пять измерений, хотя на уровне базы данных было создано только три измерения, что отражено в обозревателе решений. Куб имеет больше измерений, чем база данных, потому что измерение «Дата» в базе данных служит основой для трех отдельных измерений куба, связанных с датами. Эти измерения основаны на разных связанных с датами фактах из таблицы фактов. Эти измерения даты называются также ролевыми измерениями. Три измерения даты куба дают пользователям возможность разделить куб по трем отдельным фактам, связанным с каждой продажей: дате заказа товара (Order Date), сроку выполнения заказа (Due Date) и дате отгрузки заказа (Ship Date). Повторно используя одно измерение базы данных для нескольких измерений куба, службы Analysis Services упрощают управление измерениями, используют меньше места на диске и уменьшают общее время обработки данных. В области «Измерения» вкладки «Структура куба» раскройте измерение «Клиент», а затем нажмите ссылку «Изменить Клиент» (Рисунок 121), чтобы открыть это измерение в конструкторе измерений (Рисунок 122).
Рисунок 121. Ссылка "Изменить Клиент"
Рисунок 122. Измерение "Клиент" в конструкторе измерений
Конструктор измерений содержит следующие вкладки: «Структура измерения», «Связи атрибутов», «Переводы» и «Обозреватель». Обратите внимание, что вкладка «Структура измерения» содержит три области: «Атрибуты», «Иерархии» и «Представление источника данных». Атрибуты, содержащиеся в измерении, отображаются в области «Атрибуты». Переключитесь в конструктор кубов, щелкнув правой кнопкой мыши Analysis Services Tutorial в узле «Кубы» обозревателя решений и выбрав пункт «Открыть в конструкторе» (Рисунок 123).
В конструкторе кубов перейдите на вкладку «Использование измерения» (Рисунок 124).
Рисунок 124. Вкладка "Использование измерения" в конструкторе кубов
В этом представлении куба Analysis Services Tutorial показаны измерения куба, используемые группой мер «Продажи через Интернет». Также можно определить тип связи между каждым измерением и каждой группой мер, в которой оно используется. Перейдите на вкладку «Секции» (Рисунок 125).
Рисунок 125. Вкладка "Секции" в конструкторе кубов
В мастере кубов была определена единственная секция для куба с использованием режима хранения результатов многомерной интерактивной аналитической обработки данных (MOLAP) без статистических выражений. Для обработки MOLAP все данные конечного уровня и все статистические выражения хранятся в кубе, чтобы обеспечить максимальную производительность. Статистические выражения представляют собой предварительно вычисленные сводные данные, которые содержат ответы на еще не заданные вопросы, что позволяет сократить время до получения ответа на запрос. На вкладке «Секции» можно определять дополнительные секции, параметры хранения и настройки обратной записи. Перейдите на вкладку «Обозреватель» (Рисунок 126).
Рисунок 126. Вкладка "Обозреватель" в конструкторе кубов
Обратите внимание, что куб нельзя просмотреть, поскольку он еще не был развернут на экземпляре служб Analysis Services. На данном этапе куб в проекте Analysis Services Tutorial представляет собой лишь определение куба, его можно развернуть на любом экземпляре служб Analysis Services. Во время развертывания и обработки куба пользователь создает определенные объекты в экземпляре служб Analysis Services и заполняет эти объекты данными из базовых источников данных. В обозревателе решений щелкните правой кнопкой мыши Analysis Services Tutorial в узле «Кубы» и выберите пункт «Перейти к коду» (Рисунок 127).
На вкладке «Analysis Services Tutorial.cube [XML+» отображается XML-код куба Analysis Services Tutorial (Рисунок 128). Это фактический код, используемый для создания куба в экземпляре служб Analysis Services в процессе развертывания.
Развертывание проекта служб Analysis Services Чтобы просмотреть куб и данные измерения для объектов куба Analysis Services Tutorial проекта Analysis Services Tutorial, необходимо развернуть проект на указанном экземпляре служб Analysis
Services, а затем выполнить обработку куба и его измерений. В процессе развертывания проекта служб Analysis Services в экземпляре служб Analysis Services создаются те объекты, которые были определены. В процессе обработки объектов в экземпляре служб Analysis Services производится копирование данных из базовых источников данных в объекты куба. На этой стадии процесса разработки развертывание куба обычно производится в экземпляре служб Analysis Services на сервере разработки. После завершения разработки проекта бизнесаналитики обычно производится развертывание данных на рабочем сервере с помощью мастера развертывания служб Analysis Services. Для выполнения следующей задачи необходимо проверить свойства развертывания проекта Analysis Services Tutorial, а затем развернуть его для локального экземпляра служб Analysis Services. В обозревателе решений щелкните правой кнопкой мыши проект Analysis Services Tutorial и выберите пункт «Свойства» (Рисунок 129).
Рисунок 129. Контекстное меню проекта Analysis Services Tutorial
Можно определить несколько конфигураций, каждая из которых будет иметь собственные значения свойств. Например, разработчик может по-разному настроить один и тот же проект для его развертывания на разных компьютерах с разными свойствами среды разработки, такими как имена баз данных или свойства обработки. Обратите внимание на значение свойства «Путь вывода». Это свойство указывает расположение, в котором сохраняются XMLA-сценарии развертывания проекта при его сборке. Это сценарии, используемые для развертывания содержащихся в проекте объектов для экземпляра служб Analysis Services. В узле «Свойства конфигурации» в левой области щелкните элемент «Развертывание» (Рисунок 131).
Рисунок 131. Элемент "Развертывание" страниц свойств Analysis Services Tutorial
Просмотрите свойства развертывания проекта. По умолчанию шаблон проекта служб Analysis Services настроен таким образом, что выполняется последовательное развертывание всех
проектов служб Analysis Services для указанного по умолчанию экземпляра служб Analysis Services на локальном компьютере, создается база данных Analysis Services с именем проекта, а также выполняется обработка объектов с параметрами по умолчанию после завершения развертывания. Если необходимо развернуть проект на именованном экземпляре служб Analysis Services на локальном компьютере или на экземпляре удаленного сервера, то следует задать для свойства Server соответствующее имя экземпляра, например <ИмяСервера>\<ИмяЭкземпляра>. Нажмите кнопку ОК. В обозревателе решений щелкните правой кнопкой мыши проект Analysis Services Tutorial и выберите пункт «Развертывание» (Рисунок 132).
Рисунок 132. Контекстное меню проекта Analysis Services Tutorial в обозревателе решений
В среде BI DevStudio собирается и развертывается проект Analysis Services Tutorial на указанном экземпляре служб Analysis Services с использованием сценария развертывания. Ход выполнения развертывания отображается в двух окнах: Вывод и Выполнение развертывания — Analysis Services Tutorial (Рисунок 134).
Рисунок 133. Окно "Вывод"
Рисунок 134. Окно "Выполнение развертывания"
Откройте окно «Выход», если необходимо, выбрав пункт «Вывод» в меню «Вид». В окне «Вывод» отображается общий ход выполнения развертывания. В окне «Выполнение развертывания — Analysis Services Tutorial» отображаются подробные сведения о каждом шаге, выполняемом в процессе развертывания. Развертывание куба Analysis Services Tutorial для локального экземпляра Analysis Services и его обработка успешно завершены.
Просмотр куба После развертывания куба данные куба отображаются на вкладке «Обозреватель» конструктора кубов (Рисунок 135), а данные измерений отображаются на вкладке «Обозреватель» конструктора измерений (Рисунок 136).
В конструкторе измерений среды BI Dev Studio откройте измерение «Продукт» (Рисунок 137). Для этого дважды щелкните измерение «Продукт» в узле «Измерения» обозревателя решений (Рисунок 138).
Рисунок 137. Измерение "Продукт" в конструкторе измерений
Рисунок 138. Измерение "Продукт" в обозревателе решений
Перейдите на вкладку «Обозреватель», чтобы просмотреть элемент All иерархии атрибутов Product Key (Рисунок 139).
Рисунок 139. Элемент All иерархии атрибутов ProductKey
В лабораторной работе № 4 будет определена пользовательская иерархия для измерения «Продукт», позволяющая просматривать это измерение. Перейдите в конструктор кубов среды BI DevStudio (Рисунок 135). Для этого в обозревателе решений в узле Кубы дважды щелкните куб Analysis Services Tutorial (Рисунок 140).
Рисунок 140. Куб Analysis Services Tutorial в обозревателе решений
Необходимо указать, какой срез куба многомерного куба мы хотим просмотреть. Для этого следует выбрать измерения, которые будут отложены по осям куба. Разверните измерение «Order Date» (Дата заказа) в левой части закладки «Обозреватель» конструктора кубов и выделите измерение Order Date.English Month Name (Дата заказа Англоязычное название месяца) (Рисунок 141).
Рисунок 141. Измерение Order Date.English Month Name
Перетащите выбранное измерение в центральную часть окна, в прямоугольник «Перетащите сюда поля столбцов» (Рисунок 142).
Рисунок 142. Выбранное измерение-столбец
Аналогичным образом выделите измерение Продукт.Model Name (Название модели) и перетащите его в прямоугольник «Перетащите сюда поля для строк» (Рисунок 143).
Рисунок 143. Выбранное измерение-строка
Далее выберите меру Продажи через Интернет.Sales Amount (Сумма продаж) и перетащите ее в прямоугольник «Перетащите сюда поля итогов или деталей» (Рисунок 144).
Рисунок 144. Добавленная мера
В результате в центральной части окна отобразятся данные о сумме продаж товаров (по вертикали) по месяцам года (по горизонтали).
Контрольные вопросы 1. Дайте определения понятиям «OLAP-куб», «измерение», «мера», «элемент измерения», «иерархия измерения». 2. Какие действия производятся при развертывании проекта?
5. Изменение мер, атрибутов и иерархий В данной лабораторной работе будет произведено улучшение куба с точки зрения работы пользователя, развертывание изменений, связанных с обработкой куба и его измерений.
Теоретическое введение
Настройка свойств мер Меры имеют свойства, позволяющие определять и управлять их работой и отображением для пользователей. Меры наследуют определенные свойства у группы мер, элементами которых они являются, если только эти свойства не переопределены на уровне мер. Свойства мер определяют статистическое вычисление, тип данных, отображаемые для пользователей имена, папку отображения, строку форматирования, выражения меры, базовые исходные столбцы и видимость для пользователей (Таблица 8).
Таблица 8. Свойства мер
Свойство
Определение
AggregateFunction
Определяет, как выполняется статистическое вычисление мер.
DataType
Указывает тип данных столбца базовой таблицы фактов, к которым привязана мера.
Description
Содержит описание меры, которое может быть видно в клиентских приложениях.
DisplayFolder
Указывает папку отображения, в которой будет представлена мера при подключении пользователя к кубу. Если куб содержит множество мер, папки отображения позволяют разбить их по категориям мер, упростив доступ к ним.
FormatString
Определяет формат представления.
ID
Отображает уникальный идентификатор (ID) меры. Это свойство доступно только для чтения.
MeasureExpression Многомерное выражение (MDX), определяющее меру. Name
Имя меры.
Source
Столбец в представлении источника данных, к которому привязана мера.
Visible
Определяет, отображается мера или скрыта.
Статистические функции Службы SSAS предоставляют функции для статистической обработки мер и измерений, содержащихся в группах мер. По умолчанию меры суммируются вдоль каждого измерения. Однако свойство AggregateFunction позволяет изменить это. Аддитивность агрегата определяет, как осуществляется статистическое вычисление меры по всем измерениям в кубе. Статистические функции подразделяются на три уровня аддитивности: 1. аддитивная мера, также называемая полностью аддитивной мерой, может быть статистически вычислена вдоль всех измерений в кубе, которые включены в группу мер, содержащую меру, без ограничений. 2. полуаддитивная мера может быть статистически вычислена вдоль некоторых, но не всех измерений, которые включены в группу мер, содержащую эту меру. Например, мера, представляющая количество, доступное для описи, может быть статистически вычислена вдоль измерения географии для получения суммарного количества, доступного на всех складах; но эта мера не может быть статистически вычислена вдоль измерения времени, поскольку она представляет собой периодический моментальный снимок доступных количеств. При статистическом вычислении подобной меры вдоль измерения времени получились бы неверные результаты.
3. неаддитивная мера не может быть статистически вычислена вдоль какого-либо измерения в группе мер, содержащей эту меру. Вместо этого мера должна быть индивидуально вычислена для каждой ячейки в кубе, представляющей эту меру. Например, вычисляемую меру, возвращающую процентное значение, такое как маржа прибыли, нельзя вычислить на основе процентных значений дочерних элементов в каком-либо измерении. В Таблица 9 приведен список статистических функций в службах SSAS и описание аддитивности, а также ожидаемого результата функции. Таблица 9. Статистические функции SSAS
Статистическая функция
Аддитивность
Возвращаемое значение
Sum
Аддитивная
Вычисляет сумму значений всех дочерних элементов. Это статистическое вычисление по умолчанию.
Count
Аддитивная
Получает количество всех дочерних элементов.
Min
Полуаддитивная Получает самое низкое значение для всех дочерних элементов.
Max
Полуаддитивная Получает самое высокое значение для всех дочерних элементов.
DistinctCount
Неаддитивная
Получает количество всех уникальных дочерних элементов.
None
Неаддитивная
Статистическое вычисление не выполняется, и все значения для конечных и неконечных элементов в измерении получаются непосредственно из таблицы фактов для группы мер, содержащей эту меру. Если из таблицы фактов невозможно считать значение для элемента, то значение для этого элемента устанавливается равным NULL.
ByAccount
Полуаддитивная Вычисляет агрегат в соответствии со статистической функцией, присвоенной типу счета для элемента измерения счетов. Если в группе мер не существует измерения типа счета, то обрабатывается так же, как статистическая функция None.
AverageOfChildren
Полуаддитивная Вычисляет среднее значений всех непустых дочерних элементов.
FirstChild
Полуаддитивная Получает значение первого дочернего элемента.
LastChild
Полуаддитивная Получает значение последнего дочернего элемента.
FirstNonEmpty
Полуаддитивная Получает значение первого непустого дочернего элемента.
LastNonEmpty
Полуаддитивная Получает значение последнего непустого дочернего элемента.
Форматы отображения Можно выбрать формат, используемый для отображения значений меры пользователям, используя свойство FormatString меры. Помимо имеющегося списка форматов отображения, можно указать множество дополнительных форматов, не содержащихся в этом списке. Можно указать любой именованный или определенный пользователем формат, допустимый в языке Microsoft Visual Basic.
Определение именованных вычислений в представлении источника данных Именованное вычисление является выражением SQL, представленным в виде вычисляемого столбца. Данное выражение выглядит и работает как столбец таблицы. Именованное вычисление позволяет расширить реляционную схему таблиц или представлений, существующих в представлении источника данных, не изменяя таблицы или представления в базовом источнике данных. Например, общее вычисляемое значение, полученное из столбцов таблицы фактов, может быть представлено в виде единственного именованного вычисления в представлении источника данных, вместо изменения основной таблицы баз данных, или создания представления в основной базе данных. Именованные вычисления также можно использовать вместо вычисляемых элементов в каждом кубе, основанном на представлении источника данных. Именованные вычисления рассчитываются в процессе обработки, тогда как вычисляемые элементы рассчитываются во время запроса. Именованные вычисления также часто используются для создания понятного имени для элемента измерения. При создании именованного вычисления указывается имя, выражение SQL и (необязательно) описание вычисления. Выражение SQL может ссылаться на другие таблицы в представлении источника данных. После определения именованного вычисления выражение в именованном вычислении отправляется поставщику источника данных и проверяется в виде указанной ниже инструкции SQL, в которой <Expression> содержит выражение, определяющее именованное вычисление.
SELECT
.*, <Expression> AS FROM
AS
Тип данных столбца определяется типом данных скалярного значения, возвращенного выражением. Если поставщик не обнаружит каких-либо ошибок в выражении, то столбец будет добавлен к таблице. Столбцы, указанные в выражении, не должны иметь квалификатора вовсе или должны иметь только такой квалификатор, который соответствует имени таблицы. Например, для ссылки на
столбец SaleAmount в таблице можно использовать SaleAmount или Sales.SaleAmount, но dbo.Sales.SaleAmount возвращает ошибку.
Связи атрибутов В службах SSAS атрибуты играют роль строительных блоков, из которых создается измерение. Измерение содержит набор атрибутов, организованных на основе связей между ними. Для каждой таблицы, содержащейся в измерении, существует связь атрибутов, задающая связь ключевого атрибута таблицы с другими атрибутами из той же таблицы. Эта связь устанавливается при создании измерения. Связь атрибутов дает следующие преимущества: снижает объем памяти, необходимый для обработки измерения. Это ускоряет обработку измерений, секций и запросов; повышает производительность запросов, поскольку ускоряется доступ к хранилищу и лучше оптимизируются планы выполнения; приводит к выбору более эффективных алгоритмов создания статистических схем (при условии, что пользовательские иерархии были определены по путям связей). В службах SSAS атрибуты измерения всегда прямо или косвенно связаны с ключевым атрибутом. Когда измерение определяется по схеме «звезда», где все атрибуты измерения наследуются из одной реляционной таблицы, то связи между ключевыми и не ключевыми атрибутами определяются автоматически. Когда измерение определяется по схеме «снежинка», где атрибуты измерения наследуются от разных реляционных таблиц, связи атрибутов автоматически определяются следующим образом: между ключевым атрибутом и каждым не ключевым атрибутом, привязанным к столбцу главной таблицы измерения; между ключевым атрибутом и атрибутами, привязанными к внешнему ключу вспомогательной таблицы, которая связывает таблицы базового измерения; между атрибутом, привязанным к внешнему ключу вспомогательной таблицы, и каждым не ключевым атрибутом, привязанным к столбцам вспомогательной таблицы; Однако по ряду причин может понадобиться изменить связи атрибутов, определенные по умолчанию, например чтобы определить естественную иерархию, пользовательский порядок сортировки или степень гранулярности измерения на основе неключевого атрибута. Иерархия является естественной, когда каждый атрибут пользовательской иерархии имеет связь типа «один ко многим» с атрибутом, находящимся непосредственно под ним. Допустим, измерение «Customer» основано на реляционной таблице, содержащей восемь столбцов: CustomerKey; CustomerName; Age;
Gender; Email; City; Country; Region; Соответствующее измерение служб SSAS содержит семь атрибутов: Customer (основанное на CustomerKey и CustomerName); Age, Gender, Email, City, Region, Country. Представляющие естественные иерархии связи создают, связывая атрибуты текущего и нижестоящего уровня. В службах SSAS это свойство определяет естественную иерархию и возможное статистическое вычисление. В измерении «Customer» естественная иерархия применяется для атрибутов «Country», «Region», «City» и» Customer». Естественная иерархия атрибутов ,Country, Region, City, Customer- описывается добавлением следующих связей атрибутов: атрибут «Country» как связь атрибутов к атрибуту «Region»; атрибут «Region» как связь атрибутов к атрибуту «City»; атрибут «City» как связь атрибутов к атрибуту «Customer». Для перемещения по данным куба можно также создать пользовательскую иерархию, не представленную естественной иерархией данных (такая иерархия называется нерегламентированной или иерархией отчетов). Например, пользовательская иерархия может быть создана на основе ,Age, Gender-. Пользователи не смогут увидеть разницу в поведении, отличить эти иерархии, хотя естественная иерархия предоставляет преимущество благодаря скрытым от пользователя статистическим выражениям и структурам индексирования, которые отвечают за естественные связи в исходных данных. Свойство «SourceAttribute» уровня определяет, какой из атрибутов описывает уровень. Свойство «KeyColumns» атрибута определяет столбец в представлении источника данных, который является источником элементов. Свойство «NameColumn» атрибута может указывать на другой столбец имен для элементов. Для определения уровня в пользовательской иерархии в среде BI Dev Studio применяется конструктор измерений, позволяющий выбрать атрибут измерения, столбец в таблице измерения или столбец из связанной таблицы, которая содержится в представлении источника данных куба. При создании атрибута необходимо проверить, чтобы атрибут, на который ссылается связь, имел не более одного значения для каждого элемента атрибута, к которому он принадлежит. Например, если определить связь между атрибутами «City» и «State», каждый город будет принадлежать одному штату.
Создание пользовательских иерархий SSAS позволяют создавать пользовательские иерархии. Иерархия — это набор уровней на основе атрибутов. Например, иерархия, связанная со временем, может содержать такие уровни, как «Год», «Месяц» и «День». В некоторых иерархиях каждый атрибут однозначно задает атрибут родительского элемента. Такую иерархию иногда называют естественной. Конечные пользователи могут использовать иерархии для просмотра данных в кубе. Иерархии задаются с помощью области «Иерархии» конструктора измерений в среде разработки BI Dev Studio.
Настройка уровня «All» для иерархий атрибутов В службах SSAS уровень «All» является дополнительным, сформированным системой. Он содержит только один элемент, значение которого является результатом статистической обработки значений всех членов на ближайшем подчиненном уровне. Этот элемент называется «All». Он создается системой и отсутствует в таблице измерений. Поскольку элемент уровня «All» находится на вершине иерархии, его значение является результатом статистической обработки значений всех элементов иерархии. Элемент (All) часто служит в качестве члена иерархии по умолчанию.
Практические задания
Изменение мер На этом этапе будут настроены свойства форматирования мер валюты и процентов в кубе Analysis Services Tutorial. Свойство FormatString позволяет определить параметры форматирования, управляющие способом отображения мер для пользователей. Перейдите на вкладку «Структура куба» конструктора кубов для куба Analysis Services Tutorial, раскройте группу мер «Продажи через Интернет» на панели «Меры», щелкните правой кнопкой мыши элемент Order Quantity и в контекстном меню выберите пункт «Свойства» (Рисунок 145).
Рисунок 145. Контекстное меню элемента OrderQuantity меры "Продажи через Интернет"
В окне свойств нажмите кнопку «Автоматически скрывать» (Рисунок 146), чтобы оставить окно свойств постоянно открытым. Если окно свойств остается постоянно открытым, изменять свойства нескольких элементов куба проще.
В окне «Свойства» в качестве значения свойства FormatString введите #,# (Рисунок 147).
Рисунок 147. Значение свойства FormatString
На панели инструментов вкладки «Структура куба» нажмите кнопку «Показывать сетку мер» (Рисунок 148). Сетка просмотра позволяет выбрать несколько мер одновременно.
Выберите следующие меры. Можно выбрать несколько мер. Для этого щелкните каждую из них, удерживая нажатой клавишу CTRL (Рисунок 149): Unit Price; Extended Amount; Discount Amount; Product Standard Cost; Total Product Cost; Sales Amount; Tax Amt; Freight.
Рисунок 149. Выбранные меры
В окне свойств в раскрывающемся списке FormatString выберите значение Currency (Валюта) (Рисунок 150).
Рисунок 150. Значение свойства FormatString для выбранных мер
В списке мер (Рисунок 151) выберите меру Unit Price Discount Pct, а затем выберите значение Percent (Процент) в раскрывающемся списке FormatString (Рисунок 152).
Рисунок 151. Выбранная мера Unit Price Discount Pct
Рисунок 152. Значение свойства FormatString для меры Unit Price Discount Pct
В окне свойств измените свойство Name меры Unit Price Discount Pct на «Процент скидки на единицу товара» (Рисунок 153).
Рисунок 153. Новое имя меры Unit Price Discount Pct
На панели «Меры» щелкните Tax Amt и измените имя меры на «Размер налога» (Рисунок 154).
Рисунок 154. Новое имя меры Tax Amt
Аналогичным образом переименуйте меры (Рисунок 155): Unit Price – Цена единицы продукта; Extended Amount – Стоимость заказа; Discount Amount – Размер скидки; Product Standard Cost – Стандартная стоимость продукта; Total Product Cost – Полная стоимость продукта; Sales Amount – Сумма продаж; Freight – Стоимость доставки;
Order Quantity – Заказанное количество.
Рисунок 155. Переименованные меры
В окне свойств нажмите кнопку «Автоматически скрыть», чтобы скрыть окно свойств, а затем нажмите кнопку «Показывать дерево мер» на вкладке панели инструментов «Структура куба» (Рисунок 156).
Изменение измерения «Клиент» Существует много способов повысить удобство использования и функциональность измерений куба. Далее будет изменено измерение «Клиент».
Переименование атрибутов Откройте измерение «Клиент» в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение «Клиент» в узле «Измерения» обозревателя решений (Рисунок 157).
Рисунок 157. Измерение "Клиент" в конструкторе измерений
В области «Атрибуты» щелкните правой кнопкой мыши атрибут «English Country Region Name» и выберите команду «Переименовать». Измените имя атрибута на «Страна-Регион» (Рисунок 158).
Рисунок 158. Переименованный атрибут «English Country Region Name»
Аналогичным образом измените имена следующих атрибутов (Рисунок 159):
Имя атрибута «English Education» замените на «Образование»; Имя атрибута «English Occupation» замените на «Место проживания»; Имя атрибута «State Province Name» замените на «Штат-Провинция».
Рисунок 159. Переименованные атрибуты измерения "Клиент"
В меню «Файл» выберите команду «Сохранить все».
Создание иерархии Новую иерархию можно создать, перетащив атрибут из области «Атрибуты» в область «Иерархии». Перетащите атрибут «Страна-Регион» из области «Атрибуты» в область «Иерархии» (Рисунок 160).
Рисунок 160. Создание корневого элемента иерархии
Перетащите атрибут «Штат-Провинция» из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем «Страна-Регион» (Рисунок 161).
Рисунок 161. Создание элемента иерархии второго уровня
Переименуйте атрибут «City» на «Город» и перетащите его из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем «Штат-Провинция».
Рисунок 162. Создание элемента иерархии третьего уровня
В области «Иерархии» на вкладке «Структура измерения» щелкните правой кнопкой мыши строку заголовка иерархии «Иерархия» и в контекстном меню выберите команду «Переименовать» и введите «География Клиентов» (Рисунок 163).
Рисунок 163. Переименованная иерархия
В меню «Файл» выберите команду «Сохранить все».
Добавление именованного вычисления К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя структуру таблиц в базовом источнике данных. Откройте представление источника данных Adventure Works DW (Рисунок 164), дважды щелкнув его в папке «Представления источников данных» обозревателя решений.
Рисунок 164. Представление источника данных Adventure Works DW
В области «Таблицы» щелкните правой кнопкой мыши таблицу «Клиент» и в контекстном меню выберите команду «Создать именованное вычисление» (Рисунок 165).
Рисунок 165. Контекстное меню таблицы "Клиент"
В диалоговом окне «Создание именованного вычисления» (Рисунок 166) в поле «Имя столбца» введите «Полное имя», а в поле «Выражение» следующую инструкцию CASE: CASE WHEN MiddleName IS NULL THEN FirstName + ' ' + LastName
Инструкция CASE объединяет столбцы FirstName, MiddleName и LastName в один столбец, который затем может использоваться в измерении «Клиент» в качестве отображаемого имени для атрибута «Клиент». Нажмите кнопку ОК, а затем раскройте таблицу «Клиент» в области «Таблицы». Именованное вычисление «Полное имя» появляется в списке столбцов таблицы «Клиент» со значком, обозначающим, что это именованное вычисление (Рисунок 167).
В меню «Файл» выберите команду «Сохранить все». В области «Таблицы» щелкните правой кнопкой мыши таблицу «Клиент» и выберите пункт «Просмотр данных». Просмотрите последний столбец в представлении «Просмотр таблицы Клиент» (Рисунок 168).
Рисунок 168. Просмотр данных таблицы "Клиент"
Обратите внимание, что в представлении источника данных появился столбец «Полное имя», содержащий сцепление данных из других столбцов источника данных; при этом исходный источник данных изменять не пришлось.
Использование именованных вычислений в качестве имен элементов После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута. В конструкторе измерений откройте измерение «Клиент». В области «Атрибуты» вкладки «Структура измерения» выберите атрибут Customer Key (Рисунок 169).
Рисунок 169. Атрибут Customer Key измерения "Клиент"
В окне «Свойства» в поле свойства Name введите «Полное имя» (Рисунок 170).
Рисунок 170. Окно "Свойства"
Щелкните поле свойства NameColumn и нажмите кнопку обзора (…) (Рисунок 171), чтобы открыть диалоговое окно «Столбец имени» (Рисунок 172).
Рисунок 171. Свойство NameColumn
Рисунок 172. Диалоговое окно "Столбец имени"
В списке Исходный столбец выберите «Полное имя» и нажмите кнопку ОК. Перетащите атрибут «Полное имя» из области «Атрибуты» в ячейку <создать уровень> области «Иерархии» под уровень «Город» (Рисунок 173).
Рисунок 173. Четвертый уровень иерархии
В меню «Файл» выберите команду «Сохранить все».
Определение папок отображения Папки отображения позволяют группировать пользовательские иерархии и иерархии атрибутов в структуры папок, удобные для пользователя. Откройте вкладку «Структура измерения» для измерения «Клиент». В области «Атрибуты» выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (Рисунок 174): Город; Страна-регион; Postal Code; Штат-провинция.
Рисунок 174. Выбранные атрибуты
В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите Location (Рисунок 175).
В области «Иерархии» щелкните иерархию «География Клиентов» и выберите для свойства DisplayFolder значение Location (Рисунок 176).
Рисунок 176. Свойство DisplayFolder
В области «Атрибуты» выберите следующие атрибуты: Commute Distance; Образование; Gender; House Owner Flag; Marital Status; Number Cars Owned; Number Children At Home; Место проживания; Total Children; Yearly Income. В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите «Demographic». В области «Атрибуты» выберите следующие атрибуты: Email Address;
Phone. В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите «Contacts». В меню «Файл» выберите команду «Сохранить все».
Определение составных ключевых столбцов Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. На этом занятии будет создан составной ключ для атрибутов «Город» и «Штат-Провинция». Составные ключи могут оказаться полезными для уникальной идентификации атрибута. Например, при определении связи атрибутов атрибут «Город» должен уникально идентифицировать атрибут «Штат-Провинция». Однако в разных областях бывают города с одинаковыми названиями. Поэтому для атрибута «Город» необходимо создать составной ключ, состоящий из столбцов City и StateProvinceName Для определения составного свойства KeyColumns для атрибута «Город» откройте вкладку «Структура измерения» для измерения «Клиент». В области «Атрибуты» выберите атрибут «Город». В окне «Свойства» нажмите кнопку обзора (...)в поле KeyColumns (Рисунок 177).
Рисунок 177. Окно "Свойства" атрибута "Город"
В диалоговом окне «Ключевые столбцы» в списке «Доступные столбцы» выберите столбец StateProvinceName и нажмите кнопку > (Рисунок 178).
Рисунок 178. Диалоговое окно "Ключевые столбцы"
Теперь в списке Ключевые столбцы отображаются столбцы City и StateProvinceName. Нажмите кнопку ОК. Обратите внимание, что перечне атрибутов измерения «Клиент» атрибут «Город» стал подчеркнутым красной волнистой линией. Это произошло потому, что теперь имеется несколько столбцов KeyColumns, и для атрибута «Город» необходимо определить столбец NameColumn (Рисунок 179).
Рисунок 179. Необходимо определить столбец NameColumn для атрибута «Город»
Чтобы задать свойство NameColumn атрибута «Город», щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...). В диалоговом окне «Столбец имени» в списке «Исходный столбец» выберите City и нажмите кнопку ОК (Рисунок 180).
Рисунок 180. Диалоговое окно "Столбец имени"
Красное подчеркивание должно пропасть. В меню «Файл» выберите команду «Сохранить все». Для определения составного свойства KeyColumns для атрибута «Штат-Провинция» откройте вкладку «Структура измерения» для измерения «Клиент». В области «Атрибуты» выберите атрибут «Штат-Провинция». В окне «Свойства» щелкните в поле KeyColumns и нажмите кнопку обзора (...) (Рисунок 181).
В диалоговом окне «Ключевые столбцы» в списке «Доступные столбцы» выберите столбец EnglishCountryRegionName и нажмите кнопку > (Рисунок 182).
Рисунок 182. Диалоговое окно "Ключевые столбцы"
Теперь в списке «Ключевые столбцы» отображаются столбцы EnglishCountryRegionName и StateProvinceName. Чтобы задать свойство NameColumn атрибута «Штат-Провинция», щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...). В диалоговом окне «Столбец имени», в списке «Исходный столбец» выберите StateProvinceName и нажмите кнопку ОК (Рисунок 183).
Рисунок 183. Диалоговое окно "Столбец имени"
В меню «Файл» выберите команду «Сохранить все».
Определение связей атрибутов Необходимо определять связи между атрибутами, если базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов. В конструкторе измерений для измерения «Клиент» откройте вкладку «Связи атрибутов» (Рисунок 184).
Рисунок 184. Вкладка "Связи атрибутов" измерения "Клиент"
На схеме щелкните правой кнопкой мыши атрибут «Город» и выберите команду контекстного меню «Создать связь атрибутов» (Рисунок 185).
Рисунок 185. Контекстное меню атрибута "Город"
В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «город». Для поля «Связанный атрибут» задайте значение «Штат-Провинция» (Рисунок 186).
Рисунок 186. Диалоговое окно «Создание связи атрибутов»
В списке «Тип связи» выберите тип связи «Жесткая». Связь имеет тип «Жесткая», поскольку связи между элементами не будут меняться с течением времени. Например, переход города под юрисдикцию другого штата или провинции — явление крайне редкое. Нажмите кнопку ОК. На схеме щелкните правой кнопкой мыши атрибут «Штат-Провинция» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «Штат-Провинция». Задайте для поля «Связанный атрибут» значение «Страна-Регион» (Рисунок 187).
Рисунок 187. Диалоговое окно «Создание связи атрибутов»
В списке «Тип связи» выберите тип связи «Жесткая». Нажмите кнопку ОК. В результате будет создана связь между атрибутами, приведенная на Рисунок 188.
Рисунок 188. Связь между атрибутами
В меню «Файл» выберите команду «Сохранить все».
Развертывание изменений, обработка объектов и просмотр изменений После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть. В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». Получив сообщение «Развертывание выполнено успешно» (Рисунок 189), в конструкторе измерений перейдите на вкладку «Обозреватель» измерения «Клиент» и щелкните на панели инструментов значок повторного соединения (Рисунок 190).
Рисунок 189. Сообщение об успешном развертывании
Рисунок 190. Вкладка «Обозреватель» измерения «Клиент»
Убедитесь, что в списке Иерархия выделена иерархия География покупателя, в области обозревателя последовательно раскройте узлы Все, Australia (Австралия), New South Wales (Новый Южный Уэльс) и наконец Coffs Harbour (Коффс Харбор). В обозревателе отображаются заказчики, живущие в этом городе (Рисунок 191).
Рисунок 191. Перечень заказчиков
Переключитесь в конструктор кубов для куба Analysis Services Tutorial. Чтобы сделать это, дважды щелкните куб Analysis Services Tutorial, который находится в узле «Кубы» в дереве обозревателя решений. Перейдите на вкладку «Обозреватель» и на панели инструментов конструктора щелкните значок повторного соединения (Рисунок 192).
В области «Группа мер» разверните узел «Клиент» (Рисунок 193).
Рисунок 193. Узел "Клиент" в конструкторе кубов
Обратите внимание, что вместо длинного списка атрибутов для измерения «Клиент» отображаются только папки отображения и те атрибуты, для которых не указана папка отображения. В меню «Файл» выберите команду «Сохранить все».
Изменение измерения «Продукт» При выполнении задач этого раздела будут использованы именованные вычисления, чтобы предоставить понятные имена для линий товаров, определена иерархия в измерении «Продукт» и указано имя элемента «(All)» для иерархии. Также атрибуты будут сгруппированы в папки отображения.
Добавление именованного вычисления К таблице в представлении источника данных может быть добавлено именованное вычисление. Далее будет создано именованное вычисление, которое отображает полное наименование линии товаров. Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке «Представления источников данных» обозревателя решений. В области «Таблицы» щелкните правой кнопкой мыши таблицу «Продукт» и выберите команду «Создать именованное вычисление» (Рисунок 194).
Рисунок 194. Создание именованного вычисления в таблице "Продукт"
В диалоговом окне «Создание именованного вычисления» в поле «Имя столбца» введите «Название линейки продуктов». В поле «Выражение» введите следующую инструкцию CASE (Рисунок 195): CASE ProductLine WHEN 'M' THEN 'Горные' WHEN 'R' THEN Дорожные' WHEN 'S' THEN 'Аксессуары' WHEN 'T' THEN 'Туристические' ELSE 'Components' END
Эта инструкция для каждой линейке товара в кубе создает понятные имена. Нажмите кнопку ОК, чтобы создать именованное вычисление «Название линейки продуктов». В меню «Файл» выберите команду «Сохранить все».
Изменение свойства NameColumn атрибута В конструкторе измерений откройте измерение «Продукт». Для этого дважды щелкните его в узле «Измерения» обозревателя решений. В области «Атрибуты» вкладки «Структура измерения» выберите Product Line (Рисунок 196).
Рисунок 196. Измерение "Продукт" в конструкторе измерений
В окне «Свойства» щелкните в поле свойства NameColumn (Рисунок 197), а затем нажмите кнопку обзора (…), чтобы открыть диалоговое окно «Столбец имени» (Рисунок 198).
Рисунок 197. Свойство NameColumn
Рисунок 198. Диалоговое окно «Столбец имени»
В списке «Исходный столбец» выберите «Название линейки продуктов» и нажмите кнопку ОК.
Теперь поле NameColumn содержит текст «Продукт.Название линейки продуктов (WChar)». После этого элементы иерархии атрибута Product Line будут содержать не сокращенное, а полное наименование линии товара. В области «Атрибуты» вкладки «Структура измерения» выберите «Product Key». В окне свойств щелкните поле свойства NameColumn и нажмите кнопку обзора (…), чтобы открыть диалоговое окно «Столбец имени». Выберите в списке «Исходный столбец» значение «EnglishProductName» (Рисунок 199) и нажмите кнопку ОК.
Рисунок 199. Диалоговое окно «Столбец имени»
Теперь поле NameColumn содержит текст «Продукт.EnglishProductName (WChar)». В окне свойств задайте для свойства Name атрибута Product Key значение «Название продукта» (Рисунок 200).
Рисунок 200. Свойство Name атрибута Product Key
Создание иерархии Перетащите атрибут Product Line из области «Атрибуты» в область «Иерархии» (Рисунок 201).
Рисунок 201. Атрибут первого уровня иерархии
Перетащите атрибут Model Name из области «Атрибуты» в ячейку <создать уровень> области «Иерархии» ниже уровня Product Line (Рисунок 202).
Рисунок 202. Атрибут второго уровня иерархии
Перетащите атрибут «Название продукта» из области «Атрибуты» в ячейку <создать уровень> области «Иерархии» ниже уровня Model Name (Рисунок 203).
Рисунок 203. Атрибут третьего уровня иерархии
В области «Иерархии» вкладки «Структура измерения» щелкните правой кнопкой мыши строку заголовка иерархии «Иерархия», выберите команду «Переименовать» и введите «Модельная линейка продуктов» (Рисунок 204).
Рисунок 204. Переименование иерархии
Теперь иерархия называется «Модельная линейка продуктов». В меню «Файл» выберите команду «Сохранить все».
Определение имен папок и имени элемента «All» В области «Атрибуты» выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (Рисунок 205): Class; Color; Days To Manufacture; Reorder Point; Safety Stock Level; Size; Size Range; Style; Weight.
Рисунок 205. Выбранные атрибуты
В окне свойств в поле свойства AttributeHierarchyDisplayFolder введите «Склад» (Рисунок 206).
Атрибуты сгруппированы в единую папку отображения. В области «Атрибуты» выберите следующие атрибуты: Dealer Price;
List Price; Standard Cost; В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите значение «Финансы». Атрибуты сгруппированы во вторую папку отображения. В области «Атрибуты» выберите следующие атрибуты: End Date; Start Date; Status. В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите «История». Атрибуты сгруппированы в третью папку отображения. В области Иерархии выберите иерархию «Модельная линейка продуктов» и для свойства AllMemberName в окне свойств задайте значение «Все продукты» (Рисунок 207).
Рисунок 207. Свойство AllMemberName
В меню «Файл» выберите команду «Сохранить все».
Определение связей атрибутов Необходимо определять связи между атрибутами, поскольку базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов. Об отсутствии связей атрибутов в создаваемой иерархии сигнализирует желтый значок с вопросительным знаком слева от названия иерархии (Рисунок 208).
Рисунок 208. Предупреждение об отсутствии связей атрибутов
В окне «Конструктор измерений» для измерения «Продукт» откройте вкладку «Связи атрибутов» (Рисунок 209).
Рисунок 209. Вкладка «Связи атрибутов»
На схеме щелкните правой кнопкой мыши атрибут «Model Name» и выберите команду «Создать связь атрибутов» (Рисунок 210).
Рисунок 210. Контекстное меню атрибута Model Name
В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «Model Name». Задайте для поля «Связанный атрибут» значение «Product Line» (Рисунок 211).
Рисунок 211. Диалоговое окно «Создание связи атрибутов»
В списке «Тип связи» оставьте выбранным тип «Гибкая», поскольку связи между элементами могут измениться с течением времени. Например, модель товара со временем могла быть перенесена в другую линию товаров. Нажмите кнопку ОК. Созданная в результате связь атрибутов приведена на Рисунок 212.
Рисунок 212. Созданная связь атрибутов
В меню «Файл» выберите команду «Сохранить все».
Просмотр изменений в измерении «Продукт» В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». Получив сообщение «Развертывание выполнено успешно», перейдите на вкладку «Обозреватель» окна «Конструктор измерений» для измерения «Продукт» и щелкните на панели инструментов значок повторного соединения (Рисунок 213).
Рисунок 213. Вкладка «Обозреватель» окна «Конструктор измерений» для измерения «Продукт»
Выберите в списке «Иерархия» вариант «Модельная линейка продуктов» (Рисунок 214) и раскройте узел «Все продукты» (Рисунок 215).
Рисунок 214. Раскрывающийся список "Иерархия"
Рисунок 215. Узел "Все продукты"
Обратите внимание, что элемент All отображается как «Все продукты». Причина этого заключается в том, что свойство AllMemberName иерархии ранее на этом занятии было заменено на «Все продукты». Кроме того, все элементы уровня Product Line теперь имеют понятные имена, а не однобуквенные сокращения.
Изменение измерения «Дата» Далее будет создана определяемая пользователем иерархия и изменены имена элементов, отображаемых для атрибутов Date, Month, Calendar Quarter и Calendar Semester. Также будут определены составные ключи для атрибутов, управляющие порядком сортировки элементов измерения, и связи атрибутов.
Добавление именованного вычисления К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя таблицы в базовом источнике данных. Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке «Представления источников данных» обозревателя решений. В области «Таблицы» щелкните правой кнопкой мыши таблицу «Дата» и выберите в контекстном меню команду «Создать именованное вычисление» (Рисунок 216).
Рисунок 216. Представление источника данных Adventure Works DW
В диалоговом окне «Создание именованного вычисления» в поле «Имя столбца» введите «Простая дата», а затем введите следующую инструкцию в поле «Выражение» (Рисунок 217): DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
Инструкция извлекает из столбца FullDateAlternateKey значения числа, месяца и года. Этот новый столбец будет содержать отображаемое имя для атрибута FullDateAlternateKey. Нажмите кнопку ОК, а затем раскройте таблицу «Дата» в области «Таблицы». Именованное вычисление «Простая дата» отображается в списке столбцов таблицы «Дата» со значком, обозначающим, что это именованное вычисление (Рисунок 218).
Рисунок 218. Созданное именованное вычисление
В меню «Файл» выберите команду «Сохранить все». В области «Таблицы» щелкните правой кнопкой мыши таблицу «Дата» и в контекстном меню выберите пункт «Просмотр данных» (Рисунок 219).
Рисунок 219. Контекстное меню таблицы "Дата"
Просмотрите последний столбец в представлении «Просмотр таблицы Дата» (Рисунок 220).
Рисунок 220. Представление «Просмотр таблицы Дата»
Обратите внимание, что в представлении источника данных появился столбец «Простая дата», содержащий объединенные данные из нескольких столбцов базового источника данных. При этом исходный источник данных изменять не пришлось. Закройте представление «Просмотр таблицы Дата».
Использование именованных вычислений в качестве имен элементов После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута. Откройте измерение «Дата» в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение «Дата» в узле «Измерения» в «Обозревателе решений» (Рисунок 221).
Рисунок 221. Измерение "Дата" в конструкторе измерений
В области «Атрибуты» на вкладке «Структура измерения» выберите атрибут «Date Key». В окне «Свойства» выберите поле свойства NameColumn (Рисунок 222) и нажмите кнопку обзора (…), чтобы открыть диалоговое окно «Столбец имени» (Рисунок 223).
Рисунок 222. Свойство NameColumn
Рисунок 223. Диалоговое окно «Столбец имени»
Выберите «Простая дата» в списке «Исходный столбец» и нажмите кнопку ОК.
Создание иерархии Новую иерархию можно создать, перетащив атрибут из области «Атрибуты» в область «Иерархии». В Конструкторе измерений в измерении «Дата» перетащите атрибут Calendar Year из области «Атрибуты» в область «Иерархии».
Рисунок 224. Атрибут первого уровня иерархии
Перетащите атрибут Calendar Semester из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем «Calendar Year» (Рисунок 225).
Рисунок 225. Элемент второго уровня иерархии
Перетащите атрибут Calendar Quarter из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем Calendar Semester (Рисунок 226).
Рисунок 226. Элемент третьего уровня иерархии
Перетащите атрибут English Month Name из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем Calendar Quarter (Рисунок 227).
Рисунок 227. Элемент четвертого уровня иерархии
Перетащите атрибут Date Key из области «Атрибуты» в ячейку <создать уровень> в области «Иерархии» под уровнем English Month Name (Рисунок 228).
Рисунок 228. Элемент пятого уровня иерархии
В области «Иерархии» щелкните правой кнопкой мыши строку заголовка иерархии «Иерархия», выберите команду «Переименовать» и введите «Календарная дата» (Рисунок 229).
Рисунок 229. Задание имени иерархии
В иерархии «Календарная дата» измените имя уровня Calendar Year на «год», Calendar Semester – на «Полугодие», Calendar Quarter – на «Квартал», English Month Name на «Месяц», а имя уровня Date Key — на «Дата» (Рисунок 230).
Рисунок 230. Измененные имена уровней в иерархии "Календарная дата"
Удалите атрибут FullDateAlternateKey в области «Атрибуты», поскольку он больше не понадобится (Рисунок 231).
Определение связей атрибутов Необходимо определять связи между атрибутами, поскольку базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов. В конструкторе измерений в измерении «Дата» перейдите на вкладку «Связи атрибутов» (Рисунок 232).
На схеме щелкните правой кнопкой мыши атрибут English Month Name и в контекстном меню выберите команду «Создать связь атрибутов» В диалоговом окне «Создание связи атрибутов» свойство «Исходный атрибут» имеет значение «English Month Name». Задайте для поля «Связанный атрибут» значение «Calendar Quarter» (Рисунок 233).
Рисунок 233. Диалоговое окно «Создание связи атрибутов»
В раскрывающемся списке «Тип связи» выберите тип связи «Жесткая». Связь имеет тип «Жесткая», поскольку связи между элементами не будут меняться с течением времени. Нажмите кнопку ОК. На схеме щелкните правой кнопкой мыши атрибут «Calendar Quarter», а затем выберите команду «Создать связь атрибутов». В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «Calendar Quarter». Задайте для поля «Связанный атрибут» значение «Calendar Semester». В списке «Тип связи» выберите тип связи «Жесткая». Нажмите кнопку ОК. На схеме щелкните правой кнопкой мыши атрибут «Calendar Semester» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «Calendar Semester». Задайте для поля «Связанный атрибут» значение «Calendar Year». В списке «Тип связи» выберите тип связи «Жесткая». Нажмите кнопку ОК. Созданная связь атрибутов приведена на Рисунок 234.
Рисунок 234. Созданная связь атрибутов
В меню «Файл» выберите команду «Сохранить все».
Создание уникальных имен для элементов измерения Далее будут созданы столбцы понятных имен, которые будут использованы для атрибутов EnglishMonthName, CalendarQuarter и CalendarSemester. Перейдите в представление источника данных Adventure Works DW, дважды щелкнув его в папке «Представления источника данных» обозревателя решений. В области «Таблицы» щелкните правой кнопкой мыши таблицу «Дата» и выберите команду «Создать именованное вычисление» (Рисунок 235).
Рисунок 235. Контекстное меню таблицы "Дата"
В диалоговом окне «Создание именованного вычисления» в поле «Имя столбца» введите «Название месяца», а затем введите следующую инструкцию в поле «Выражение» (Рисунок 236): EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
Эта инструкция объединяет месяц и год для каждого месяца в таблице в новый столбец. Нажмите кнопку ОК. В области «Таблицы» щелкните правой кнопкой мыши таблицу «Дата» и выберите команду «Создать именованное вычисление». В диалоговом окне «Создание именованного вычисления» введите «Имя квартала» в поле «Имя столбца», а затем в поле «Выражение» введите следующий сценарий SQL: 'К' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'Г' + CONVERT(CHAR (4), CalendarYear) Этот сценарий SQL помещает в новый столбец объединение календарного квартала и года для каждого квартала в таблице. Нажмите кнопку ОК. В области «Таблицы» щелкните правой кнопкой мыши таблицу «Дата» и выберите команду «Создать именованное вычисление». В диалоговом окне «Создание именованного вычисления» в поле «Имя столбца» введите «Имя полугодия», а затем в поле «Выражение» введите следующий сценарий SQL: CASE WHEN CalendarSemester = 1 THEN 'П1' + ' ' + 'Г' + ' ' + CONVERT(CHAR(4), CalendarYear) ELSE 'П2' + ' ' + 'Г' + ' ' + CONVERT(CHAR(4), CalendarYear) END
Этот сценарий SQL помещает в новый столбец объединение календарного полугодия и года для каждого полугодия в таблице. Нажмите кнопку ОК. В контекстном меню таблицы «Дата» выберите пункт «Просмотр данных» (Рисунок 237).
Рисунок 237. Контекстное меню таблицы "Дата"
Обратите внимание на последние четыре столбца в представлении «Просмотр таблицы «Дата»» (Рисунок 238). Они формируются на основе именованных вычислений и содержат дату, месяц года, квартал года и полугодие года соответственно.
Рисунок 238. Представление «Просмотр таблицы «Дата»»
В меню «Файл» выберите команду «Сохранить все».
Определение составного свойства KeyColumns и задание столбца имени Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. Далее будет определено составное свойство KeyColumns. Откройте измерение «Дата» и перейдите на вкладку «Структура измерения» (Рисунок 239).
Рисунок 239. Вкладка "Структура измерения" измерения "Дата"
В области «Атрибуты» выберите атрибут «English Month Name». В окне «Свойства» выберите поле KeyColumns (Рисунок 240) и нажмите кнопку обзора (...).
Рисунок 240. Диалоговое окно "Свойства"
В диалоговом окне «Ключевые столбцы» () выберите из списка «Доступные столбцы» столбец «CalendarYear», а затем нажмите кнопку >.
Рисунок 241. Диалоговое окно «Ключевые столбцы»
Столбцы EnglishMonthName и CalendarYear отображаются в списке Ключевые столбцы. Нажмите кнопку ОК. Чтобы задать свойство «NameColumn» атрибута «EnglishMonthName», щелкните поле «NameColumn» в окне свойств и нажмите кнопку обзора (...). В диалоговом окне «Столбец имени» (Рисунок 242), в списке «Исходный столбец» выберите «Имя месяца», а затем нажмите кнопку ОК.
Рисунок 242. Диалоговое окно «Столбец имени»
В меню «Файл» выберите команду «Сохранить все». В области «Атрибуты» щелкните атрибут «Calendar Quarter». В окне «Свойства» щелкните в поле «KeyColumns» и нажмите кнопку обзора (...). В диалоговом окне «Ключевые столбцы» выберите из списка «Доступные столбцы» столбец «CalendarYear», а затем нажмите кнопку >. Столбцы «CalendarQuarter» и «CalendarYear» отображаются в списке «Ключевые столбцы». Нажмите кнопку ОК. Чтобы задать свойство «NameColumn» атрибута «Calendar Quarter», щелкните поле «NameColumn» в окне свойств и нажмите кнопку обзора (...). В диалоговом окне «Столбец имени», в списке «Исходный столбец» выберите «Имя квартала», а затем нажмите кнопку ОК. В меню «Файл» выберите команду «Сохранить все». В области «Атрибуты» щелкните атрибут «Calendar Semester». В окне «Свойства» щелкните в поле «KeyColumns» и нажмите кнопку обзора (...). В диалоговом окне «Ключевые столбцы» выберите из списка «Доступные столбцы» столбец «CalendarYear», а затем нажмите кнопку >. Столбцы «CalendarSemester» и «CalendarYear» отображаются в списке «Ключевые столбцы». Нажмите кнопку ОК. Чтобы задать свойство «NameColumn» атрибута «Calendar Semester», щелкните поле «NameColumn» в окне свойств и нажмите кнопку обзора (...). В диалоговом окне «Столбец имени», в списке «Исходный столбец» выберите «Имя полугодия», а затем нажмите кнопку ОК.
В меню «Файл» выберите команду «Сохранить все».
Развертывание и просмотр изменений После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть. В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». Получив сообщение «Развертывание выполнено успешно», перейдите на вкладку «Обозреватель» окна «Конструктор измерений» для измерения «Дата» и щелкните на панели инструментов значок повторного соединения. В списке «Иерархия» выберите значение «Calendar Quarter». Просмотрите элементы иерархии атрибута «Calendar Quarter» (Рисунок 243).
Рисунок 243. Элементы иерархии атрибута «Calendar Quarter»
Обратите внимание, что имена элементов иерархии атрибута «Calendar Quarter» выглядят более понятно, поскольку для их отображения создано именованное вычисление. Теперь существуют элементы для каждого квартала в иерархии атрибута «Calendar Quarter». Они не упорядочены в хронологическом порядке. Вместо этого они отсортированы сначала по кварталам, а затем по годам. Далее раздела потребуется изменить поведение этой иерархии атрибута, чтобы отсортировать ее элементы сначала по годам, а затем по кварталам. Просмотрите элементы иерархий атрибутов «English Month Name» (Рисунок 244) и «Calendar Semester» (Рисунок 245).
Рисунок 244. Элементы иерархий атрибута «English Month Name»
Рисунок 245. Элементы иерархий атрибута "Calendar Semester"
Обратите внимание, что элементы этих иерархий также не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала соответственно по месяцам или полугодиям, а затем — по годам. Далее поведение этих иерархий атрибутов будет изменено, чтобы изменить порядок сортировки.
Изменение порядка сортировки путем изменения порядка элементов составных ключей
Далее будет изменен порядок сортировки посредством изменения порядка ключей, составляющих составной ключ. Открыв измерение «Дата» в конструкторе измерений, перейдите на вкладку «Структура измерения» и выберите «Calendar Semester» в области «Атрибуты» (Рисунок 246).
Рисунок 246. Атрибут ""Calendar Semester
В окне свойств просмотрите значение свойства «OrderBy». Оно имеет значение «Key» (Ключ) (Рисунок 247).
Рисунок 247. Значение свойства «OrderBy»
Элементы иерархии атрибута «Calendar Semester» отсортированы по значению ключа. При составном ключе сортировка ключей элементов ведется сначала по значению первого ключа элемента, а затем — по значению второго ключа элемента. Иными словами, элементы иерархии атрибута «Calendar Semester» отсортированы сначала по полугодиям, а затем по годам.
В окне свойств нажмите кнопку с многоточием (...), чтобы изменить значения свойства KeyColumns (Рисунок 248).
Рисунок 248. Свойство KeyColumns
В списке «Ключевые столбцы» в диалоговом окне «Ключевые столбцы» выберите столбец «CalendarSemester» (Рисунок 249), а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа.
Рисунок 249. Диалоговое окно «Ключевые столбцы»
Нажмите кнопку ОК. Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по полугодиям. Выберите «Calendar Quarter» в области «Атрибуты» и нажмите кнопку с многоточием (...) для свойства «KeyColumns» в окне свойств. В списке «Ключевые столбцы» диалогового окна «Ключевые столбцы» выделите столбец «CalendarQuarter», а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК. Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по кварталам. В области «Атрибуты» выберите элемент «English Month Name», а затем в окне свойств нажмите кнопку с многоточием (...) для свойства «KeyColumns.» В списке «Ключевые столбцы» диалогового окна «Ключевые столбцы» выделите столбец «EnglishMonthName», а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК. Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по месяцам. В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». После успешного завершения развертывания в конструкторе измерений перейдите на вкладку «Обозреватель» измерения «Дата». На панели инструментов вкладки «Обозреватель щелкните значок повторного соединения». Просмотрите элементы иерархий атрибутов «Calendar Quarter» (Рисунок 250) и «Calendar Semester» (Рисунок 251).
Рисунок 250. Элементы иерархии атрибута «Calendar Quarter»
Рисунок 251. Элементы иерархии атрибута «Calendar Semester»
Обратите внимание, что теперь элементы этих иерархий атрибутов сортируются в хронологическом порядке, по годам, а затем по полугодиям или кварталам соответственно. Просмотрите элементы иерархии атрибута «English Month Name» (Рисунок 252).
Рисунок 252. Элементы иерархии атрибута «English Month Name»
Обратите внимание, что теперь элементы этой иерархии атрибута сортируются сначала по годам, а затем по месяцам в алфавитном порядке. Причина этого заключается в том, что столбец «EnglishCalendarMonth» в представлении источника данных имеет строковый тип данных, который основан на типе данных nvarchar базовой реляционной базы данных. Сортировка по месяцам хронологически внутри года будет рассмотрена в следующей лабораторной работе.
Просмотр развернутого куба Переключитесь в конструктор кубов среды BI Dev Studio, щелкнув куб Analysis Services Tutorial. Перейдите на вкладку «Обозреватель» и на панели инструментов конструктора нажмите кнопку «Повтор соединения» (Рисунок 253).
Правая область конструктора отображает метаданные для куба Analysis Services Tutorial. Обратите внимание, что в области инструментов вкладки «Обозреватель» доступны раскрывающиеся списки «Перспектива» и «Язык». Также обратите внимание, что вкладка «Обозреватель» содержит две области справа от области «Группа мер»: верхняя область — область фильтра, а нижняя — область данных. В области «Группа мер» раскройте узел «Measures» (Меры), раскройте элемент «Продажи через Интернет» и перетащите меру «Сумма продаж» в область «Перетащите сюда поля итогов или деталей» (Рисунок 254).
Рисунок 254. Добавленная мера "Сумма продаж"
В области «Группа мер» раскройте узел «Продукт». Обратите внимание, что атрибуты и пользовательские иерархии организованы в папки отображения в списке метаданных «Продукт».
Перетащите пользовательскую иерархию «Модельная линейка продуктов» в область «Перетащите сюда поля столбцов» панели данных, а затем раскройте элемент «Дорожные» уровня Product Line этой пользовательской иерархии (Рисунок 255).
Обратите внимание, что эта пользовательская иерархия предоставляет путь к уровню имени товара. На панели метаданных раскройте узел «Клиент» и перетащите иерархию из папки отображения «География клиентов» в область «Перетащите сюда поля строк» панели данных. На оси строк раскройте узел «United States», чтобы просмотреть подробные сведения о продажах на территории Соединенных Штатов по регионам. Раскройте узел «Oregon», чтобы просмотреть сведения о продажах по городам в штате Орегон (Рисунок 256).
Рисунок 256. Сведения о продажах по городам в штате Орегон
В области метаданных разверните узел «Order Date» и перетащите иерархию «Order Date.Календарная дата» в зону «Поместите сюда поля фильтра» в области данных. Нажмите стрелку справа от фильтра Order Date.Calendar Date в области данных, снимите флажок для уровня (Все), последовательно разверните узлы 2002, П1 Г2002 и К1 Г2002, установите флажок February 2002 и нажмите кнопку ОК. На экран будут выведены продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г., как показано на Рисунок 257.
Рисунок 257. Продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г.
В области метаданных разверните узел «Клиент», разверните элемент «Demographic», разверните иерархию атрибутов «Commute Distance», разверните «Элементы», а затем «All». Щелкните правой кнопкой мыши элемент «10+ Miles» и выберите команду «Добавить в область вложенных кубов». Элемент «Commute Distance» появится в области фильтров, расположенной над областью данных. Величины, отображаемые в области данных, будут отфильтрованы, чтобы показать данные заказчиков, ездящих на работу более чем за 10 миль (Рисунок 258).
Рисунок 258. Продажи заказчикам, ездящим на работу более чем за 10 миль
В меню «Файл» выберите команду «Сохранить все».
Контрольные вопросы 1. Какими свойствами обладают меры? 2. На что влияет аддитивность агрегата? 3. Опишите уровни аддитивности статистических функций. 4. Дайте определение понятию «именованное вычисление». Какие функции оно выполняет? Для чего предназначено? 5. Какие параметры задаются при создании именованного вычисления?
6. Для каких целей используется связь атрибутов измерения? Какие преимущества она дает? 7. Каким образом определяются атрибуты в схемах «звезда» и «снежинка»? 8. В каком случае иерархия является естественной? 9. Каким образом создаются связи, представляющие естественные иерархии? 10. В чем отличие пользовательской иерархии от естественной иерархии? 11. Какой инструмент используется для определения уровней пользовательской иерархии?
6. Определение расширенных свойств атрибутов и измерений Данная лабораторная работа посвящена использованию расширенных свойств атрибутов, иерархий атрибутов и свойств измерений. Будет произведено определение ссылочной связи измерений, элементов порядка атрибутов (с использованием составных ключей) и пользовательской обработки ошибок.
Теоретическое введение
Определение иерархии типа «родители-потомки» Иерархия типа «родители-потомки» представляет собой стандартное измерение, содержащее родительский атрибут. Родительский атрибут описывает связь, ссылающуюся на себя, или самосоединение в пределах главной таблицы измерения. Иерархии типа «родители-потомки» создаются из одного родительского атрибута. Иерархии типа «родители-потомки» присваивается только один уровень, поскольку присутствующие в ней уровни наследуют связи типа «родителипотомки» между элементами, связанными с родительским атрибутом. Положение элемента в пределах иерархии типа «родители-потомки» определяется свойствами KeyColumns и RootMemberIf родительского атрибута, в то время как положение элемента в пределах уровня определяется свойством OrderBy родительского атрибута. Из-за связей типа «родители-потомки» между уровнями в иерархии типа «родители-потомки» некоторые неконечные элементы, помимо данных, статистически вычисленных из дочерних элементов, могут также иметь данные, наследуемые из базовых источников данных. Схема измерения иерархии типа «родители-потомки» зависит от связи, ссылающейся на себя, присутствующей в главной таблице измерения. Например, на Рисунок 259 показана главная таблица измерения DimOrganization в образце базы данных AdventureWorksDW.
Рисунок 259. Таблица измерения DimOrganization
В этой таблице измерения столбец ParentOrganizationKey имеет связь по внешнему ключу со столбцом первичного ключа OrganizationKey. Другими словами, каждая запись в этой таблице может быть соотнесена посредством связи типа «родители-потомки» с другой записью в таблице. Подобный тип самосоединения обычно используется для представления данных сущности организации (например, структуры управления сотрудниками в отделе). Измерения, не имеющие связи типа «родители-потомки», образуют иерархии путем группирования и упорядочивания атрибутов. Эти измерения получают имена уровней для своих иерархий из имен атрибутов. Однако измерения типа «родители-потомки» формируют иерархии типа «родители-потомки» путем проверки данных, которые содержатся в главной таблице измерения, и последующей оценки связей типа «родители-потомки» между записями в таблице. Иерархии типа «родители-потомки» не создают имена для уровней в иерархии типа «родителипотомки» на основе атрибутов, используемых для создания иерархии. Вместо этого такие измерения автоматически создают имена уровней по шаблону именования — строкового выражения, которое может быть задано на уровне родительского атрибута, управляющего процессом формирования иерархии атрибута. Обычно конечные элементы в измерении содержат данные, получаемые непосредственно из базовых источников данных, а неконечные элементы содержат данные, получаемые в результате статистических вычислений, применяемых к дочерним элементам. Однако иерархии типа «родители-потомки» могут содержать некоторые неконечные элементы, данные которых выводятся из базовых источников данных в дополнение к данным, статистически вычисленным из дочерних элементов. Для этих неконечных элементов в иерархии типа «родители-потомки» можно создавать специальные дочерние элементы, формируемые системой, которые содержат данные базовых таблиц фактов. Они называются элементами данных и содержат значение, которое непосредственно связано с неконечным элементом и независимо от сводного значения, вычисленного на основе наследников неконечного элемента.
Группирование элементов атрибутов При просмотре куба обычно выполняется распределение по измерениям элементов одной иерархии атрибута на основе элементов другой иерархии атрибута. Например, можно сгруппировать продажи по таким признакам, как город, приобретенный товар или пол. Однако при работе с некоторыми типами атрибутов лучше группировать их элементы автоматически с использованием служб SSAS, основываясь на распределении элементов в рамках иерархии атрибута. Например, с помощью служб SSAS можно объединить заказчиков в группы на основе их годового дохода. При этом пользователь, просматривающий иерархию атрибута, будет видеть названия и значения групп вместо самих элементов групп. Данный подход ограничивает количество отображаемых уровней, что упрощает анализ данных. Группа элементов является созданным системой набором последовательных элементов измерения. В службах SSAS элементы атрибута могут группироваться в различные группы элементов в ходе процесса, называемого дискретизацией. Уровень в иерархии содержит либо группы элементов, либо элементы, но не и то, и другое сразу. Когда пользователи выполняют обзор уровня, содержащего группы элементов, они видят имена и значения ячеек групп
элементов. Элементы, формируемые службами SSAS для поддержания групп членов, называются элементами группирования и выглядят как обычные элементы. Свойство DiscretizationMethod определяет, создают ли службы SSAS группирования, а также определяет тип выполняемого группирования. По умолчанию в службах Analysis Services группирование не выполняется. Возможные значения свойства DiscretizationMethod приведены в Таблица 10. Таблица 10. Значения свойства DiscretizationMethod
Значение DiscretizationMethod
Описание
None
Позволяет отобразить элементы.
Automatic
Выбирает метод, наилучшим образом представляющий данные: метод EqualAreas или метод Clusters.
EqualAreas
Пытается разделить элементы в атрибуте на группы, содержащие равное количество элементов.
Clusters
Пытается разделить элементы в атрибуте на группы с помощью выборки обучающих данных, инициализии для определенного количества случайных точек и выполнения нескольких итераций алгоритма кластеризации максимизации ожидания (EM). Метод полезен, т.к. он работает с любой кривой распределения, но для его выполнения требуется больше времени.
После выбора метода группирования необходимо указать количество групп, используя свойство DiscretizationBucketCount. Свойство DiscretizationNumber атрибута определяет количество отображаемых групп. Если свойству задано значение по умолчанию 0, службы SSAS определяют количество групп с помощью выборки или чтения данных, в зависимости от настройки свойства DiscretizationMethod). Порядок сортировки элементов в группах элементов контролируется при помощи свойства OrderBy атрибута. Последовательное построение элементов групп основано на этом порядке сортировки. Группы элементов обычно используются для детализации с уровня с немногими элементами до уровня со многими элементами. Чтобы пользователи имели возможность выполнять детализацию между уровнями, измените свойство DiscretizationMethod атрибута для уровня, содержащего много элементов, с None на один из методов дискретизации, описанных в предыдущей таблице. Например, пусть измерение Client содержит иерархию атрибутов Client Name с 500 000 элементов. Можно переименовать атрибут Client Groups и задать свойству DiscretizationMethod значение Automatic для отображения групп элементов на уровне элементов иерархии атрибутов. Для детализации до отдельных клиентов в каждой группе можно создать другую иерархию атрибутов Client Name, привязанную к тому же столбцу в таблице. Затем создайте новую
пользовательскую иерархию на основе двух атрибутов. Верхний уровень будет основываться на атрибуте Client Groups, нижний уровень — на атрибуте Client Name. Свойство IsAggregatable будет True на обоих атрибутах. После этого пользователь может раскрыть уровень (All) в иерархии для просмотра элементов группы, а также раскрыть элементы группы для просмотра конечных элементов иерархии. Чтобы скрыть уровень группы или клиента, можно задать свойству AttributeHierarchyVisible значение False для соответствующего атрибута.
Скрытие и отключение иерархий атрибутов По умолчанию иерархия атрибута создается для каждого атрибута в измерении и каждая иерархия доступна для разделения данных фактов по измерениям. Эта иерархия состоит из уровня «Все» и уровня подробностей, содержащего все элементы иерархии. Атрибуты можно организовывать в пользовательские иерархии для предоставления путей перемещения в кубе. В определенных случаях может потребоваться отключить или скрыть некоторые атрибуты и их иерархии. Например, определенные атрибуты, такие как номера социального страхования или номера национальной принадлежности, ставки заработной платы, даты рождения и имена входа в систему не являются атрибутами, по которым пользователь будет организовывать измерения куба. Эти сведения обычно просматриваются только для справки по конкретному члену атрибута. Данные иерархии атрибутов может потребоваться скрыть, оставляя видимыми только сами атрибуты как свойства члена конкретного атрибута. Кроме того, может возникнуть необходимость сделать элементы других атрибутов, такие как имена заказчиков или почтовые индексы, видимыми только при просмотре через пользовательскую иерархию, а не независимо через иерархию атрибута. Одной из причин для этого может быть большое число различающихся элементов в иерархии атрибута. Наконец, чтобы увеличить производительность обработки, следует выключить иерархии атрибутов, которыми не будут пользоваться пользователи. Значение свойства AttributeHierarchyEnabled определяет, создана ли иерархия атрибута. Если значением свойства является False, иерархия атрибутов не создана, и атрибут нельзя использовать в качестве уровня пользовательской иерархии, то есть иерархия атрибутов существует только как свойство элемента. Однако отключенную иерархию атрибута можно использовать для сортировки элементов другого атрибута. Если значением свойства AttributeHierarchyEnabled является True, значение свойства AttributeHierarchyVisible определяет, является ли иерархия атрибута видимой независимо от пользовательской иерархии. Если иерархия атрибута включена, может возникнуть необходимость указать значения следующих трех дополнительных свойств: 1. IsAggregatable. По умолчанию для всех иерархий атрибутов задается уровень «(All)». Чтобы отключить уровень «(All)» для включенной иерархии атрибута, задайте для этого свойства значение False. Атрибут, свойство IsAggregatable которого установлено в значение false, может использоваться только в качестве корневого элемента многоуровневой иерархии, и для него должен быть указан элемент по умолчанию (в противном случае элемент по умолчанию будет выбран ядром служб SSAS). 2. AttributeHierarchyOrdered. По умолчанию в службах SSAS элементы включенных иерархий атрибутов сортируются при обработке, а затем сохраняются в зависимости от значения
свойства OrderBy, например «Имя» или «Ключ». Если сортировка не важна, производительность обработки можно повысить, указав для этого свойства значение False. 3. AttributeHierarchyOptimizedState. По умолчанию в службах SSAS создается индекс для каждой включенной иерархии атрибута при обработке, чтобы повысить производительность выполнения запросов. Если не планируется использовать иерархию атрибута для просмотра, можно повысить производительность обработки, задав в качестве значения этого свойства NotOptimized. Тем не менее, если скрытая иерархия используется в качестве ключевого атрибута измерения, создание индекса элементов атрибута позволит повысить производительность. Эти свойства неприменимы, если иерархия атрибута отключена.
Сортировка элементов атрибута по вторичному атрибуту Иногда может оказаться необходимым отсортировать элементы атрибута по вторичному атрибуту. Например, если ни имя, ни значение ключа первичного атрибута не обеспечивают нужного порядка сортировки, можно использовать вторичный атрибут. Однако вторичный атрибут, по имени или ключу которого будет производиться сортировка, должен быть связан с первичным. Связи атрибутов определяют связи или зависимости между атрибутами. В измерении, основанном на единственной реляционной таблице, все атрибуты обычно связаны друг с другом через ключевой атрибут. Причиной этого является то, что все атрибуты измерения предоставляют сведения об элементах, связанных ключевым атрибутом измерения с фактами таблицы фактов для каждой связанной группы мер. В измерении, которое основано на нескольких таблицах, атрибуты обычно связаны посредством ключа соединения между таблицами. Однако пользователю могут оказаться интересны дополнительные сведения об элементах на конкретном уровне иерархии. Конструктор измерений позволяет определить дополнительные связи атрибутов или изменить установленные по умолчанию связи в целях повышения производительности. Основное ограничение при создании связи атрибутов состоит в необходимости обеспечить, чтобы упоминаемый атрибут имел только одно значение для каждого элемента атрибута, с которым он связан. При определении связи двух атрибутов ее можно сделать жесткой или гибкой в зависимости от того, могут ли связи между элементами со временем меняться. Например, сотрудник может быть переведен в другой регион продаж, однако город не переместится в другой регион. Если связь определена как жесткая, статистические выражения для атрибутов не будут повторно вычисляться каждый раз при инкрементной обработке измерения. Тем не менее, если связь между элементами изменяется, измерение должно обрабатываться полностью.
Определение связей атрибутов в определенной пользователем иерархии Иерархии атрибутов внутри пользовательских иерархий можно упорядочивать по уровням, чтобы предоставлять пользователям пути перемещения в кубе. Пользовательская иерархия может отражать естественную иерархию, такую как города, область и страна, или просто путь перемещения, например фамилию сотрудника, его должность и название отдела. Для пользователя, перемещающегося по иерархии, нет разницы между этими двумя типами пользовательских иерархий.
В естественной иерархии, если определены связи между атрибутами, составляющими уровни, службы SSAS могут использовать статистические вычисления по одному атрибуту для получения результатов из связанного атрибута. Если связи атрибутов не определены, в службах SSAS будут выполняться статистические вычисления по всем неключевым атрибутам из ключевого атрибута. Таким образом, если базовые данные позволяют, необходимо определить связи между атрибутами. Это повышает производительность обработки измерений, секций и выполнения запросов. При определении связи атрибутов можно указать ее тип: гибкая или жесткая. Если связь определена как жесткая, агрегаты в службах SSAS сохраняются при обновлении измерения. Если изменяется связь, определенная как жесткая, а измерение обработано не полностью, в службах SSAS формируется ошибка при обработке. Верное определение связей и свойств связей повышает скорость запросов и обработки.
Определение свойств Unknown Member и Null Processing В процессе обработки измерения службами SSAS его атрибуты заполняются всеми уникальными значениями, полученными из базовых столбцов представлений и таблиц в представлении источника данных. Если при обработке службы SSAS обнаруживают значение NULL, по умолчанию оно преобразуется в нулевое значение для числовых столбцов или в пустую строку — для строковых. Можно изменить значения по умолчанию или преобразовывать значения NULL в процессе извлечения, преобразования или загрузки (если они выполняются) данных из базового реляционного хранилища данных. Кроме того, службы SSAS могут быть настроены для преобразования значения NULL в указанное значение настройкой трех свойств: UnknownMember и UnknownMemberName для измерения и свойства NullProcessing для ключевого атрибута измерения. Мастер измерений и мастер кубов включают эти свойства в том случае, если ключевой атрибут измерения допускает значения NULL или корневой атрибут измерения, связанного по схеме «снежинка», основан на столбце, который допускает значения NULL. В этих случаях свойству NullProcessing ключевого атрибута будет присвоено значение UnknownMember, а свойству UnknownMember — значение Visible. Однако при добавочном построении измерений, связанных по схеме «снежинка» (как в измерении «Product» в этом цикле лабораторных работ), или при определении измерений с помощью конструктора измерений и их последующей интеграции в куб может потребоваться ручная установка свойств UnknownMember и NullProcessing.
Практические задания
Загрузка и обработка улучшенной версии учебного проекта В меню «Файл» выберите команду «Закрыть проект». В меню «Файл» выберите команду «Открыть», а затем команду «Проект или решение». Перейдите в папку «C:\Program Files\Microsoft SQL Server\100\Samples\Analysis Services\Tutorials\Lesson4 Start» и дважды щелкните файл Analysis Services Tutorial.sln (Рисунок 260).
Рисунок 260. Открытие проекта Analysis Services Tutorial из папки Samples
Разверните улучшенную версию проекта Analysis Services Tutorial на локальном экземпляре служб Analysis Services. Перед началом развертывания появится сообщение о перезаписи существующей базы (Рисунок 261). Убедитесь, что обработка завершена успешно (Рисунок 262).
Рисунок 261. Предупреждение о перезаписи существующей БД Analysis Services Tutorial
Рисунок 262. Сообщение об успешном завершении развертывания
Основные сведения об улучшениях проекта Улучшенная версия проекта отличается от той версии проекта Analysis Services Tutorial, которая была завершена на первых четырех лабораторных работах. Представление источника данных в улучшенной версии проекта содержит одну дополнительную таблицу фактов и четыре дополнительные таблицы измерений из базы данных AdventureWorksDW2008 (Рисунок 263).
Рисунок 263. Дополнительные таблица фактов и таблицы измерений
Обратите внимание, что, поскольку представление источника данных содержит уже десять таблиц, схема <Все таблицы> выглядит переполненной. Это затрудняет нахождение нужных таблиц и понимание связей между ними. Для разрешения этой проблемы таблицы поделены между двумя логическими схемами: Internet Sales и Reseller Sales (Рисунок 264).
Рисунок 264. Дополнительные логические схемы
Каждая из диаграмм построена на основе одной таблицы фактов. Создание логических схем позволяет просматривать определенные подмножества таблиц в представлении источника данных и работать с ними, вместо того чтобы всегда просматривать все таблицы и их связи в единой схеме.
Схема Internet Sales содержит таблицы, которые относятся к продаже продуктов Adventure Works напрямую покупателям через Интернет. В этой диаграмме содержится четыре таблицы измерений и одна таблица фактов, которые были добавлены в представление источника данных во второй лабораторной работе. Это таблицы Geography, Customer, Date, Product и InternetSales (Рисунок 265).
Рисунок 265. Схема Internet Sales
Схема Reseller Sales содержит таблицы, относящиеся к продаже продуктов компании Adventure Works при помощи посредников. Эта схема содержит семь следующих таблиц измерений и одну таблицу фактов из базы данных AdventureWorksDW2008: Reseller, Promotion, SalesTerritory, Geography, Date, Product, Employee, ResellerSales (Рисунок 266).
Рисунок 266. Схема Reseller Sales
Обратите внимание, что таблицы DimGeography, DimDate и DimProduct используются как в схеме Internet Sales, так и в схеме Reseller Sales. Таблицы измерений могут быть связаны с несколькими таблицами фактов. Проект Analysis Services Tutorial содержит пять новых измерений баз данных, куб Analysis Services Tutorial содержит те же пять измерений в качестве измерений куба. Эти измерения были определены таким образом, чтобы включать пользовательские иерархии и атрибуты, которые были изменены с использованием именованных вычислений, составных ключей элементов и папок отображения. Новые измерения описаны в следующем списке: Reseller основано на таблице Reseller в представлении источника данных Adventure Works DW; Promotion основано на таблице Promotion; Sales Territory основано на таблице SalesTerritory; Employee основано на таблице Employee; Geography основано на таблице Geography.
Куб Analysis Services Tutorial теперь содержит две группы мер: исходную группу мер, основанную на таблице InternetSales, и вторую группу мер, основанную на таблице ResellerSales в представлении источника данных Adventure Works DW.
Определение свойств родительского атрибута в иерархии «родителипотомки» Иерархия типа «родители-потомки» представляет собой иерархию в измерении, которая основана на двух столбцах таблицы. Вместе эти столбцы определяют иерархическую связь между элементами измерения. Первый столбец, называемый ключевым столбцом элемента, идентифицирует каждый элемент измерения. Второй столбец, называемый родительским столбцом, идентифицирует родителя для каждого из элементов измерения. Свойство NamingTemplate родительского атрибута определяет имя каждого уровня в иерархии типа «родители-потомки», а свойство MembersWithData — будут ли отображаться данные для родительских элементов. При выполнении задач этого раздела будет создан шаблон именования, определяющий имя каждого из уровней в иерархии типа «родители-потомки» в измерении Employee. Затем этот родительский атрибут будет настроен таким образом, чтобы все данные о родителях были скрыты и отображались только данные по продажам для элементов конечного уровня.
Просмотр измерения Employee В обозревателе решений дважды щелкните значок Employee.dim в папке «Измерения», чтобы открыть конструктор измерений для измерения Employee (Рисунок 267).
Рисунок 267. Конструктор измерений для измерения Employee
Перейдите на вкладку «Обозреватель», убедитесь, что в списке «Иерархия» выбран элемент Employees, а затем разверните элемент All Employees (Рисунок 268).
Рисунок 268. Содержимое измерения Employees
Обратите внимание, что сотрудник Ken J. Sanchez — менеджер высшего уровня в этой иерархии типа «родители-потомки». Выберите элемент Ken J. Sanchez. Обратите внимание, что имя уровня для этого элемента — Level 02. (Имя уровня указано сразу после надписи «Текущий уровень:» над элементом All Employees.) Далее будут определены более понятные имена для каждого уровня. Раскройте элемент Ken J. Sanchez, чтобы увидеть имена всех сотрудников, подчиняющихся этому менеджеру, а затем выберите элемент Brian S. Welcker, чтобы узнать имя этого уровня. Обратите внимание, что имя уровня для этого элемента — Level 03. В обозревателе решений в папке «Кубы» дважды щелкните значок Analysis Services Tutorial.cube, чтобы открыть конструктор кубов для куба Analysis Services Tutorial. Перейдите на вкладку «Обозреватель» (Рисунок 269).
На панели метаданных последовательно раскройте элементы «Measures» и «Reseller Sales», щелкните правой кнопкой мыши пункт «Reseller Sales-Sales Amount» и в контекстном меню выберите пункт «Добавить в область данных» (Рисунок 270).
Рисунок 270. Контекстное меню меры «Reseller Sales-Sales Amount»
В области метаданных разверните измерение «Employee» и перетащите иерархию «Employees» в область «Перетащите сюда поля строк» в области данных (Рисунок 271).
Рисунок 271. Добавленная иерархия «Employees» измерения «Employee»
Все элементы иерархии «Employees» будут добавлены на панель данных в свернутом виде. На панели данных раскройте столбец «Level02» иерархии «Employees», затем поочередно раскройте остальные уровни, чтобы просмотреть элементы уровней от 02 до 05 (Рисунок 272).
Рисунок 272. Вложенные элементы
Обратите внимание, что продажи, совершенные каждым менеджером уровня 04, отображаются и на уровне 05. Это связано с тем, что каждый менеджер является также подчиненным другого менеджера. Далее предстоит скрыть эти суммы продаж.
Изменение свойств родительского атрибута в измерении Employee
В конструкторе измерений откройте измерение «Employee». Перейдите на вкладку «Структура измерения», а затем выберите иерархию атрибута «Employees» на панели «Атрибуты» (Рисунок 273).
Рисунок 273. Атрибут «Employees» измерения «Employee»
Обратите внимание на уникальный значок атрибута. Этот значок указывает, что атрибут является ключом родителя в иерархии типа «родители-потомки». Обратите внимание, что в окне свойств свойство «Usage» (Использование) для этого атрибута определено как «Parent» (Родитель) (Рисунок 274).
Это свойство устанавливается мастером измерений во время создания измерения. Мастер автоматически выявляет связи типа «родители-потомки». В окне свойств в ячейке свойства «NamingTemplate» нажмите кнопку с многоточием (...).В диалоговом окне «Шаблон именования уровней» (Рисунок 275) необходимо задать шаблон именования уровней, который определяет имена уровней в иерархии типа «родители-потомки», отображаемых при просмотре кубов.
Во второй строке (*) в столбце Имя введите «Уровень сотрудника *», а затем щелкните третью строку (Рисунок 276).
Рисунок 276. Введенный шаблон именования уровней
Обратите внимание, что под полем «Результат» каждый уровень теперь называется «Уровень сотрудника», за которым следует последовательно увеличивающееся число. Нажмите кнопку ОК. В окне «Свойства» для атрибута «Employees» в ячейке значения свойства «MembersWithData» выберите «NonLeafDataHidden», чтобы изменить это значение для атрибута «Employees» (Рисунок 277).
Рисунок 277. Свойства MembersWithData атрибута Employees
Данные в иерархии типа «родители-потомки», которые относятся к элементам уровня, не являющегося конечными, будут скрыты.
Просмотр измерения Employee с измененными атрибутами В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». После успешного завершения развертывания перейдите в конструктор кубов и откройте куб Analysis Services Tutorial. Затем на панели инструментов вкладки «Обозреватель» нажмите кнопку «Повторное соединение». В левой панели конструктора в измерении «Employee» выберите «Employees» и перетащите эту иерархию в область «Перетащите сюда поля строк». Раскройте иерархию несколько раз, чтобы открыть первые пять уровней (Рисунок 278).
Рисунок 278. Измененная иерархия Employess
Обратите внимание, что имена уровней теперь более наглядны и значения продаж по каждому из менеджеров больше не отображаются. Однако обратите внимание, что итог для каждого уровня
отображает итог по каждому из сотрудников, включая скрытую сумму для менеджера. В последующих лабораторных работах будет изучено включение такого отображения итогов, при котором в итоге для уровня «Уровень сотрудника 05» отображаются только видимые пользователю значения.
Автоматическое группирование элементов атрибута В ходе выполнения задач данного раздела будут опробованы следующие критерии группирования: значение годового дохода в измерении «Customer», количество часов отсутствия по болезни в измерении «Employees», данные о количестве часов отпуска сотрудников в измерении «Employees». Затем предстоит выполнить обработку куба Analysis Services Tutorial и просмотреть результаты группирования элементов. На конечной стадии будут изменены свойства групп элементов, чтобы выявить эффект от изменения типа группирования.
Группирование элементов иерархии атрибута в измерении Customer В обозревателе решений дважды щелкните элемент «Customer» в папке «Измерения». Будет открыт конструктор измерений для измерения «Customer». В области «Представление источника данных» щелкните правой кнопкой мыши таблицу «Customer» и в контекстном меню (Рисунок 279) выберите команду «Просмотр данных» (Рисунок 280).
Рисунок 279. Контекстное меню таблицы «Customer» в конструкторе измерения «Customer»
Рисунок 280. Просмотр данных таблицы «Customer»
Обратите внимание на диапазон данных в столбце YearlyIncome. Указанные значения используются для заполнения иерархии атрибута Yearly Income, если не включено группирование элементов. Закройте вкладку «Просмотр» таблицы «Customer». В области «Атрибуты» выберите атрибут «Yearly Income». В окне свойств измените значение свойства DiscretizationMethod на Automatic, а значение свойства DiscretizationBucketCount — на 5 (Рисунок 281).
Группирование элементов иерархии атрибута в измерении Employee В конструкторе измерений откройте измерение «Employee». В области «Представление источника данных» щелкните правой кнопкой мыши таблицу «Employee» и выберите команду «Просмотр данных» (Рисунок 282).
Рисунок 282. Данные таблицы «Employee»
Обратите внимание на значения столбцов «SickLeaveHours» и «VacationHours». Закройте вкладку «Просмотр» таблицы «Employee». В области «Атрибуты» выберите атрибут «Sick Leave Hours». В окне свойств измените значение свойства DiscretizationMethod на Clusters, а значение свойства DiscretizationBucketCount — на 5.
Рисунок 283. Свойства атрибута «Sick Leave Hours»
В области «Атрибуты» выберите атрибут «Vacation Hours» .В окне свойств измените значение свойства DiscretizationMethod на EqualAreas, а значение свойства DiscretizationBucketCount — на 5.
Рисунок 284. Свойства атрибута «Vacation Hours»
Просмотр измененных иерархий атрибутов В меню «Построение» среды BI Dev Studio выберите команду «Развернуть Analysis Services Tutorial». После завершения развертывания переключитесь в конструктор кубов на куб Analysis Services Tutorial, а затем нажмите кнопку «Повторное соединение» на вкладке «Обозреватель». Удалите из области данных все меры и все уровни иерархии «Employees» из области полей строк. Для этого щелкните область данных правой кнопкой мыши и выберите команду «Очистить результаты». В раздел данных области «Данные» добавьте меру «Internet Sales-Sales Amount». Для этого щелкните правой кнопкой мыши меру «Internet Sales-Sales Amount» и выберите команду «Добавить в область данных». В области метаданных разверните измерение «Product», а затем перетащите пользовательскую иерархию «Product Model Lines» в область «Перетащите сюда поля строк в области данных». В области Метаданные раскройте измерение «Customer», разверните папку отображения «Demographic» и перетяните иерархию атрибута «Yearly Income» в область «Перетащите сюда поля столбцов» (Рисунок 285).
Рисунок 285. Данные о продажах через Интернет по клиентам, автоматически распределенным по группам на основе годового дохода
Теперь элементы иерархии атрибута «Yearly Income» сгруппированы в шесть сегментов, один из которых содержит данные о клиентах с неизвестным годовым доходом. Отображаются не все сегменты. Удалите иерархию атрибута «Yearly Income» из области столбца и удалите меру «Internet SalesSales Amount» из области данных. Добавьте меру «Reseller Sales-Sales Amount» в область данных. В области метаданных разверните измерение «Employee», затем узел «Organization», щелкните правой кнопкой мыши элемент «Sick Leave Hours» и выберите команду «Добавить в область столбцов» (Рисунок 286).
Рисунок 286. Зависимость объемов продаж от количества часов отпуска по болезни
Обратите внимание, что все продажи были сделаны сотрудниками, включенными в одну из двух групп. Чтобы просмотреть остальные три группы, в которых находятся данные о сотрудниках без продаж, щелкните правой кнопкой мыши область данных и выберите пункт «Показывать пустые ячейки». Кроме того, обратите внимание, что сотрудники, отсутствовавшие по болезни от 32 до 42 часов, сделали существенно больше продаж, чем сотрудники, отсутствовавшие от 20 часов до 31 часа. Удалите иерархию атрибута «Sick Leave Hours» из раздела столбцов области данных. Добавьте столбец «Vacation Hours» в зону столбцов области данных (Рисунок 287).
Рисунок 287. Зависимость продаж от количества часов выходных
Обратите внимание, что отображаются две группы, созданные с помощью метода группирования по равным областям. Остальные три группы не показаны, так как не содержат значений.
Изменение свойств группирования и просмотр результата внесенных изменений Измените свойство DiscretizationBucketCount для атрибута Vacation Hours на значение 10. Разверните заново проект Analysis Services Tutorial. После завершения развертывания переключитесь в конструктор кубов на куб Analysis Services Tutorial. На вкладке «Обозреватель» нажмите кнопку «Повторное подключение» и просмотрите результаты изменения метода группирования.
Рисунок 288. Зависимость продаж от количества часов выходных при свойстве DiscretizationBucketCount=10
Обратите внимание, что созданы три группы элементов атрибута «Vacation Hours», в которых содержатся данные об объемах продаж продукции. В остальных 7 группах содержатся элементы без данных о продажах.
Скрытие и отключение иерархий атрибутов В этом разделе необходимо отключить номера социального страхования и другие атрибуты в измерении «Employee», которые не будут использоваться для просмотра. Затем предстоит скрыть иерархии атрибутов имени заказчика и почтового кода в измерении «Customer». Если у этих иерархий много элементов атрибутов, их просмотр будет достаточно медленным вне зависимости от пользовательской иерархии.
Определение свойств иерархии атрибута в измерении «Employee» Откройте конструктор измерений для измерения «Employee» и откройте вкладку «Обозреватель». Проверьте, присутствуют ли в раскрывающемся списке «Иерархия» следующие иерархии атрибутов (Рисунок 289): Base Rate (Базовая ставка); Birth Date (Дата рождения); Login ID (Имя входа); Manager SSN (ИНН менеджера); SSN (ИНН).
Рисунок 289. Иерархии атрибутов измерения «Employee»
Перейдите на вкладку «Структура измерения», а затем выберите следующие атрибуты в области «Атрибуты» (несколько атрибутов можно выбрать путем удерживания клавиши CTRL при их выборе) (Рисунок 290): Base Rate (Базовая ставка); Birth Date (Дата рождения); Login ID (Имя входа); Manager SSN (ИНН менеджера); SSN (ИНН).
Рисунок 290. Выбранные атрибуты на вкладке "Структура"
В окне свойств установите для свойства AttributeHierarchyEnabled выбранных атрибутов значение False (Рисунок 291).
Рисунок 291. Свойство AttributeHierarchyEnabled
Обратите внимание, что в области «Атрибуты» значок каждого из атрибутов изменился и указывает, что этот атрибут отключен (Рисунок 292).
Рисунок 292. Отключенные атрибуты в области «Атрибуты»
Разверните проект Analysis Services Tutorial. После успешного окончания развертывания перейдите на вкладку «Обозреватель», нажмите кнопку «Повторное соединение» и просмотрите измененные иерархии атрибутов (Рисунок 293).
Обратите внимание, что элементы измененных атрибутов недоступны для просмотра в качестве иерархий атрибутов в списке «Иерархия». При попытке добавления отключенной иерархии атрибута в качестве уровня пользовательской иерархии будет выведено сообщение об ошибке, уведомляющее о том, что для включения в пользовательскую иерархию необходимо активировать иерархию атрибута (Рисунок 294).
Рисунок 294. Сообщение об ошибке при добавлении в иерархию отключенного атрибута
Настройка свойств иерархии атрибута в измерении «Customer» Откройте конструктор измерений для измерения «Customer» и откройте вкладку «Обозреватель». Проверьте, входят ли в раскрывающийся список «Иерархия» следующие иерархии атрибутов (Рисунок 295): Full Name (Полное имя); Postal Code (Почтовый индекс).
Рисунок 295. Иерархии атрибутов измерения "Customer"
Перейдите на вкладку «Структура измерения» и выберите одновременно следующие атрибуты на панели «Атрибуты»:
Full Name (Полное имя); Postal Code (Почтовый индекс). В окне свойств установите для свойства AttributeHierarchyVisible выбранных атрибутов значение False. Поскольку элементы этих иерархий атрибутов будут использоваться для разделения данных фактов по измерениям, их сортировка и оптимизация повысит производительность. Таким образом, свойство AttributeHierarchyEnabled этих атрибутов изменять не следует. Перетащите атрибут Postal Code с панели «Атрибуты» в пользовательскую иерархию «Customer Geography» заказчика панели «Иерархии и уровни» непосредственно под уровень «City» (Рисунок 296).
Рисунок 296. Атрибут «Postal Code», добавленный в иерархию «CustomerGeography»
Обратите внимание, что скрытый атрибут по-прежнему может быть уровнем пользовательской иерархии. Разверните проет Analysis Services Tutorial. После успешного окончания развертывания перейдите на вкладку «Обозреватель» измерения «Customer» и нажмите кнопку Повторное соединение. Попробуйте выбрать одну из измененных иерархий атрибутов в списке «Иерархия» (Рисунок 297).
Рисунок 297. Измененный перечень иерархий измерения "Customer"
Обратите внимание, что ни одна из измененных иерархий атрибутов не отображается в списке «Иерархия». В списке «Иерархия» выберите значение «Customer Geography» и просмотрите каждый из уровней на панели обозревателя.
Рисунок 298. Иерархия «Customer Geography»
Обратите внимание, что скрытые уровни «Postal Code» и «Full Name» видны в пользовательской иерархии.
Сортировка элементов атрибута по вторичному атрибуту Далее будет определен новый атрибут в измерении «Date» на основе существующего столбца базовой таблицы измерения. Созданный атрибут будет использован для сортировки элементов календарного месяца хронологически, а не по алфавиту. Кроме того, будет определен новый атрибут в измерении «Customer» на основе именованного вычисления, которое будет использовано для сортировки элементов атрибута «Commute Distance». В задачах следующего раздела будет изучено, как использовать связи атрибутов для повышения производительности запросов.
Определение связей атрибутов и порядка сортировки в измерении Date
Откройте измерение «Date» в конструкторе измерений и в окне свойств просмотрите свойство «OrderBy» для атрибута «Month Name» (Рисунок 299).
Рисунок 299. Свойство «OrderBy» для атрибута «Month Name»
Обратите внимание, что элементы атрибута «Month Name» отсортированы по ключевым значениям. Перейдите на вкладку «Обозреватель», убедитесь, что в списке «Иерархии» выбрано значение «Calendar Date», после чего раскройте уровни пользовательской иерархии и просмотрите порядок сортировки календарных месяцев (Рисунок 300).
Рисунок 300. Уровни иерархии Calendar Date
Обратите внимание, что элементы иерархии атрибута отсортированы по ASCII-значениям ключей их элементов, то есть месяца и года. В этом случае сортировка по имени атрибута или ключу не сортирует календарные месяцы хронологически. Для решения этой проблемы элементы иерархии атрибута будут отсортированы на основе нового атрибута «MonthNumberOfYear». Этот атрибут будет создан на основе столбца, который содержится в таблице измерения «Date». Перейдите на вкладку «Структура измерения» для измерения даты, щелкните правой кнопкой мыши пункт «MonthNumberOfYear» в области «Представление источника данных» и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 301).
В области «Атрибуты» выберите атрибут «MonthNumberOfYear» и в окне «Свойства» установите для свойства AttributeHierarchyEnabled значение False. Укажите для свойства
AttributeHierarchyOptimizedState значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False (Рисунок 302).
Рисунок 302. Свойства атрибута «MonthNumberOfYear»
Установка этих значений скроет атрибут от пользователей и сократит время обработки. Этот атрибут не будет использоваться для просмотра. Он будет использован только для упорядочивания элементов другого атрибута. Перейдите на вкладку «Связи атрибутов» (Рисунок 303).
Рисунок 303. Вкладка "Связи атрибутов" конструктора измерения "Date"
Обратите внимание, что все атрибуты в измерении «Date» связаны непосредственно с атрибутом «Date», который является ключевым элементом, связывающим элементы измерения с фактами в связанных группах мер. Между атрибутами «Month Name» и «Month Number of Year» связи не определены. На схеме щелкните правой кнопкой мыши атрибут «Month Name» и в контекстном меню выберите команду «Создать связь атрибутов» (Рисунок 304).
В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «Month Name». Задайте в поле «Связанный атрибут» значение «Month Number of Year» (Рисунок 305).
Рисунок 305. Диалоговое окно «Создать связь атрибутов»
В списке «Тип связи» выберите тип связи «Жесткая». Связи между элементами атрибута «Month Name» и «Month Number of Year» не будут меняться со временем. В результате службы SSAS не
удалят статистические выражения для этой связи во время добавочной обработки. Если происходит изменение, возникнет ошибка изменений во время добавочной обработки, и нужно будет выполнить полную обработку измерения. Нажмите кнопку ОК. Теперь можно приступить к выбору порядка сортировки элементов атрибута «Month Name». Перейдите на вкладку «Структура измерения». Выберите атрибут «Month Name» в области «Атрибуты», после чего измените значение свойства «OrderBy» в окне свойств на «AttributeKey», а свойства «OrderByAttribute» — на «Month Number of Year» (Рисунок 306).
Рисунок 306. Свойства атрибута «Month Name»
Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку «Обозреватель» измерения «Date», нажмите кнопку «Повторное соединение» и просмотрите пользовательские иерархии «Calendar Date» (Рисунок 307) и «Fiscal Date» (Рисунок 308), чтобы убедиться, что месяцы отсортированы в хронологическом порядке.
Рисунок 307. Элементы иерархии «Calendar Date»
Рисунок 308. Элементы иерархии Fiscal Date
Определение связей атрибутов и порядка сортировки в измерении «Customer» Перейдите в конструкторе измерений на вкладку «Обозреватель» измерения «Customer» и просмотрите элементы иерархии атрибута «Commute Distance» (Расстояние до работы, Рисунок 309).
Рисунок 309. Элементы иерархии атрибута «Commute Distance»
Обратите внимание, что элементы иерархии атрибута отсортированы по ASCII-значениям ключа элементов. В этом случае сортировка по имени или ключу атрибута не сортирует расстояние до работы по принципу «от меньшего к большему». Далее будет выполнена сортировка элементов иерархии атрибута на основе именованного вычисления «CommuteDistanceSort», которое присваивает подходящий номер сортировки каждому значению столбца. В целях экономии времени это именованное вычисление уже добавлено в таблицу «Customer» в представлении источника данных Adventure Works DW (Рисунок 310).
Рисунок 310. Именованное вычисление «CommuteDistanceSort» в таблице «Customer»
Чтобы просмотреть сценарий SQL, используемый в этом именованном вычислении, в окне свойств для этого вычисления просмотрите значение свойства Expression (Рисунок 311).
Рисунок 311. Значение свойства Expression вычисления CommuteDistanceSort
Перейдите на вкладку «Структура измерения» конструктора измерений для измерения «Customer», щелкните правой кнопкой пункт «CommuteDistanceSort» в таблице «Customer» в области «Представление источника данных» и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 312).
В области «Атрибуты» выберите атрибут «CommuteDistanceSort», затем укажите для свойства AttributeHierarchyEnabled этого атрибута значение False. В окне свойств укажите для свойства AttributeHierarchyOptimizedState значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False (Рисунок 313).
Рисунок 313. Свойства атрибута CommuteDistanceSort
Установка этих значений скроет атрибут от пользователей и сократит время обработки. Этот атрибут не будет использоваться для просмотра. Он будет использован только для упорядочивания элементов другого атрибута. Выберите атрибут «Geography», в окне свойств задайте для его свойства AttributeHierarchyVisible значение False, для свойства AttributeHierarchyOptimizedState — значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False. Установка этих значений скроет атрибут от пользователей и сократит время обработки. Этот атрибут не будет использоваться для просмотра. Он может быть использован только для упорядочивания элементов другого атрибута. Поскольку атрибут «Geography» имеет свойства элемента, его свойство AttributeHierarchyEnabled должно иметь значение True. Таким образом, чтобы скрыть атрибут, необходимо присвоить его свойству AttributeHierarchyVisible значение False. Перейдите на вкладку «Связи атрибутов». В списке атрибутов щелкните правой кнопкой мыши атрибут «Commute Distance» и в его контекстном меню выберите команду «Создать связь атрибутов» (Рисунок 314).
В диалоговом окне «Создать связи атрибутов» свойство «Исходный атрибут» имеет значение «Commute Distance». Задайте для свойства «Связанный атрибут» значение «Commute Distance Sort» (Рисунок 315).
Рисунок 315. Диалоговое окно «Создать связи атрибутов»
В списке «Тип связи» выберите тип связи «Жесткая». Связь между элементами атрибута «Commute Distance» и «Commute Distance Sort» не меняется со временем. Нажмите кнопку ОК. Теперь можно приступить к определению порядка сортировки атрибута «Commute Distance». Перейдите на вкладку «Структура измерения». В области «Атрибуты» выберите атрибут «Commute Distance», затем в окне свойств измените значение свойства OrderBy на AttributeKey, а значение свойства OrderByAttribute на Commute Distance Sort (Рисунок 316).
Рисунок 316. Свойства атрибута «Commute Distance»
Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку «Обозреватель» конструктора измерений для измерения «Customer», нажмите кнопку «Повторное соединение» и просмотрите иерархию атрибута «Commute Distance» (Рисунок 317).
Рисунок 317. Элементы иерархии атрибута «Commute Distance»
Обратите внимание, что элементы иерархии атрибута теперь отсортированы в логическом порядке, основанном на увеличении расстояния.
Определение связей атрибутов в определенной пользователем иерархии Далее будут определены связи атрибутов, входящих в естественные пользовательские иерархии в проекте Analysis Services Tutorial. В их число входит иерархия «Customer Geography» измерения «Customer», иерархия «Sales Territories» измерения «Sales Territory», иерархия «Product Model Lines» измерения «Product» и иерархии «Fiscal Date» и «Calendar Date» измерения «Date». Все эти пользовательские иерархии являются естественными иерархиями.
Определение связи атрибутов в иерархии Customer Geography Откройте конструктор измерений для измерения «Customer», затем откройте вкладку «Структура измерения» (Рисунок 318).
Рисунок 318. Вкладка "Структура измерения" для измерения "Customer"
В области «Иерархии» обратите внимание на уровни определяемой пользователем иерархии «Customer Geography». Эта иерархия в настоящий момент представляет для пользователя только набор уровней детализации, так как между уровнями и атрибутами никакие связи не определены. Перейдите на вкладку «Связи атрибутов» (Рисунок 319).
Рисунок 319. Вкладка "Связи атрибутов" для измерения "Customer"
Обратите внимание на четыре связи атрибутов, которые связывают неключевые атрибуты из таблицы «Geography» с ключевым атрибутом из таблицы «Geography». Обратите внимание, что атрибут «Geography» связан с атрибутом «Full Name». Атрибут «Postal Code» косвенно связан с атрибутом «Full Name» через атрибут «Geography», поскольку «Postal Code» связан с атрибутом «Geography», а атрибут «Geography» связан с атрибутом «Full Name». Далее необходимо изменить связи атрибутов таким образом, чтобы исключить использование атрибута «Geography». На схеме щелкните правой кнопкой мыши атрибут «Full Name» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» свойство «Исходный атрибут» имеет значение «Full Name». Задайте для свойства «Связанный атрибут значение «Postal Code». В списке «Тип связи» оставьте выбранным тип «Гибкая», поскольку связи между элементами могут измениться с течением времени (Рисунок 320).
Рисунок 320. Диалоговое окно «Создать связь атрибутов»
Нажмите кнопку ОК. На схеме появляется значок предупреждения, поскольку эта связь избыточна (Рисунок 321).
Рисунок 321. Предупреждение об избыточности связи
Связь «Full Name» -> «Geography» -> «Postal Code» уже существует, и создается связь «Full Name» > «Postal Code». Теперь связь «Geography» -> «Postal Code» является избыточной, поэтому удалим ее. В области «Связи атрибутов» щелкните правой кнопкой мыши связь «Geography» -> «Postal Code» и в контекстном меню выберите команду «Удалить» (Рисунок 322).
Рисунок 322. Контекстное меню связи «Geography» -> «Postal Code»
В открывшемся диалоговом окне «Удаление объектов» нажмите кнопку ОК (Рисунок 323).
Рисунок 323. Диалоговое окно "Удаление объектов"
На схеме щелкните правой кнопкой мыши атрибут «Postal Code» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «Postal Code». Задайте для поля «Связанный атрибут» значение «City». В списке «Тип связи» оставьте выбранным тип «Гибкая». Нажмите кнопку ОК (Рисунок 324).
Рисунок 324. Связь "Postal Code"->"City"
Теперь связь «Geography» -> «City» является избыточной, поэтому удалим ее. В области «Связи атрибутов» щелкните правой кнопкой мыши связь «Geography» -> «City» и выберите команду «Удалить». В открывшемся диалоговом окне «Удаление объектов» нажмите кнопку ОК (Рисунок 325).
Рисунок 325. Схема после удаления связи «Geography» -> «City»
На схеме щелкните правой кнопкой мыши атрибут «City» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «City». Для поля «Связанный атрибут» задайте значение «State-Province». В списке «Тип связи» задайте тип связи «Жесткая», поскольку связь между городом и штатом со временем не изменится. Нажмите кнопку ОК (Рисунок 326).
Рисунок 326. Добавленная связь "City"->"State-Province"
Щелкните правой кнопкой мыши стрелку между элементами «Geography»и «State-Province», а затем в контекстном меню выберите команду «Удалить». В открывшемся диалоговом окне «Удаление объектов» нажмите кнопку ОК (Рисунок 327).
Рисунок 327. Схема после удаления связи «Geography»->«State-Province»
На схеме щелкните правой кнопкой мыши атрибут «State-Province» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «State-Province». Задайте для поля «Связанный атрибут» значение «Country-Region». В списке «Тип связи» выберите тип связи «Жесткая», поскольку связь между штатом и страной (регионом) со временем не изменится. Нажмите кнопку ОК.
В области «Связи атрибутов» щелкните правой кнопкой мыши связь «Geography» -> «CountryRegion», а затем выберите команду «Удалить». В открывшемся диалоговом окне «Удаление объектов» нажмите кнопку ОК (Рисунок 328).
Рисунок 328. Схема после добавления связи «State-Province»->«Country-Region»и удаления связи «Geography» -> «Country-Region»
Перейдите на вкладку «Структура измерения». В области «Атрибуты» щелкните правой кнопкой мыши атрибут «Geography» и в контекстном меню выберите команду «Удалить» (Рисунок 329).
Этот атрибут больше не нужен. В открывшемся диалоговом окне «Удаление объектов» нажмите кнопку ОК. В меню «Файл» выберите команду «Сохранить все».
Определение связей атрибутов в иерархии Sales Territory Откройте измерение «Sales Territory» в конструкторе измерений и перейдите на вкладку «Связи атрибутов» (Рисунок 330).
Рисунок 330. Схема связи атрибутов измерения "Sales Territory"
На схеме щелкните правой кнопкой мыши атрибут «Sales Territory Country» и в контекстном меню выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» свойство «Исходный атрибут» имеет значение «Sales Territory Country». Задайте для свойства «Связанный атрибут» значение «Sales Territory Group». В списке «Тип связи» оставьте выбранным тип «Гибкая». Нажмите кнопку ОК (Рисунок 331).
Рисунок 331. Измененная схема связи атрибутов измерения "Sales Territory"
Атрибут Sales Territory Group теперь связан с атрибутом Sales Territory Country, а он, в свою очередь, с атрибутом Sales Territory Region. Свойству RelationshipType для каждой из этих связей должно быть присвоено значение «Гибкая», поскольку со временем распределение регионов по стране и стран по группам может измениться.
Определение связей атрибутов в иерархии Product Model Lines Откройте в конструкторе измерений измерение «Product» и перейдите на вкладку «Связи атрибутов» (Рисунок 332).
Рисунок 332. Схема связи атрибутов иерархии Product Model Lines
На схеме щелкните правой кнопкой мыши атрибут «Model Name» и в контекстном меню выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «Model Name». Задайте для поля «Связанный атрибут» значение «Product Line». В списке «Тип связи» оставьте выбранным тип «Гибкая». Нажмите кнопку ОК (Рисунок 333).
Рисунок 333. Измененная схема связи атрибутов иерархии Product Model Lines
Определение связей атрибутов в иерархии Fiscal Date Откройте в конструкторе измерений измерение «Date» и перейдите на вкладку «Связи атрибутов» (Рисунок 334).
Рисунок 334. Схема связей атрибутов измерения «Date»
На схеме щелкните правой кнопкой мыши атрибут «Month Name» и в контекстном меню выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» поле «Исходный атрибут» имеет значение «Month Name». Установите поле «Связанный атрибут» в значение «Fiscal Quarter». В списке «Тип связи» выберите тип связи «Жесткая». Нажмите кнопку ОК (Рисунок 335).
Рисунок 335. Добавленная связь "Month Name"->"Fiscal Quarter"
На схеме щелкните правой кнопкой мыши атрибут «Fiscal Quarter» и выберите команду «Создать связь атрибутов». В диалоговом окне «Создать связь атрибутов» свойство «Исходный атрибут имеет» значение «Fiscal Quarter». Задайте для свойства «Связанный атрибут» значение «Fiscal Semester». В списке «Тип связи» выберите тип связи «Жесткая». Нажмите кнопку ОК ().
Рисунок 336. Добавленная связь "Fiscal Quarter"->”Fiscal Semester”
Самостоятельно создайте жесткую связь «Fiscal Semester» -> «Fiscal Year» (Рисунок 337).
Определение связей атрибутов в иерархии Calendar Date
Самостоятельно создайте жесткие связи “Month Name”->”Calendar Quarter”, “Calendar Quarter” -> ”Calendar Semester”, ”Calendar Semester” - >”Calendar Year” (Рисунок 338)
Рисунок 338. Окончательная структура иерархии "Calendar Date"
Определение связей атрибутов в иерархии Geography Откройте в конструкторе измерений измерение «Geography» и перейдите на вкладку «Связи атрибутов» (Рисунок 339).
Рисунок 339. Схема связей атрибутов измерения «Geography»
Рисунок 340. Измененная схема связей атрибутов измерения «Geography»
На схеме щелкните правой кнопкой мыши атрибут «Geography Key и выберите пункт Свойства. Установите для атрибута «Geography Key» свойство AttributeHierarchyOptimizedState в значение NotOptimized, а свойства AttributeHierarchyOrdered и AttributeHierarchyVisible — в значение False. В меню «Файл» выберите команду «Сохранить все». Разверните проект Analysis Services Tutorial.
Определение свойств Unknown Member и Null Processing Далее будут добавлены атрибуты категории и подкатегории товара в измерение «Product» из таблиц, связанных по схеме «снежинка», которые, в свою очередь, будут добавлены в представление источника данных Adventure Works DW. Затем необходимо включить свойство UnknownMember для измерения «Product», для свойства UnknownMemberName — указать значение Assembly Components, связать атрибуты Subcategory и Category с атрибутом названия продукта, а затем определить пользовательскую обработку ошибок для ключевого атрибута элемента, который связывает таблицы, связанные по схеме «снежинка». Если изначально куб Analysis Services Tutorial был определен с помощью мастера кубов, при добавлении атрибутов Subcategory и Category эти шаги будут выполнены автоматически.
Просмотр свойств обработки ошибок и неизвестного элемента в измерении Product Откройте конструктор измерений для измерения «Product», перейдите на вкладку «Структура измерения» и выберите в области «Атрибуты» элемент «Product» (Рисунок 341).
Рисунок 341. Структура измерения "Product"
Теперь можно просматривать и изменять свойства самого измерения. В окне «Свойства» просмотрите свойства UnknownMember и UnknownMemberName (Рисунок 342).
Рисунок 342. Свойства измерения "Product"
Обратите внимание, что свойство UnknownMember отключено, поскольку для него указано значение «None» вместо «Visible» или «Hidden», и что для свойства UnknownMemberName никакое имя не задано. В окне свойств в ячейке свойств ErrorConfiguration выберите «(пользовательский)» (Рисунок 343) и раскройте коллекцию свойств ErrorConfiguration (Рисунок 344).
Рисунок 343. Свойство ErrorConfiguration измерения "Product"
Рисунок 344. Коллекция свойств ErrorConfiguration
Выбор значения «(пользовательский)» для свойства ErrorConfiguration позволяет просмотреть используемые по умолчанию настройки конфигурации обработки ошибок; настройки при этом не изменяются. Просмотрите свойства конфигурации ошибок ключа и ошибок ключа NULL, однако не вносите изменения. Обратите внимание, что по умолчанию при преобразовании ключа NULL в неизвестный элемент ошибка обработки, связанная с этим преобразованием, пропускается (свойство NullKeyConvertToUnknown). Перейдите на вкладку «Обозреватель» и убедитесь, что в списке «Иерархия» выбран параметр «Product Model Lines», а затем раскройте узел «All Products».
Рисунок 345. Элементы узла "All Products"
Обратите внимание на пять элементов уровня «Product Line». Раскройте узел «Components», а затем раскройте немаркированный элемент уровня «Model Name» (Рисунок 346).
Рисунок 346. Компоненты сборки для создания других компонентов
Этот уровень содержит компоненты сборки, используемые при построении других компонентов, начиная с продукта «Adjustable Race».
Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category
Откройте конструктор представления источника данных для представления источника данных «Adventure Works DW», в области «Организатор схем» выберите «Reseller Sales», а затем выберите команду «Добавить или удалить таблицы» в меню «Представление источника данных» среды BI Dev Studio (Рисунок 347).
Рисунок 347. Конструктор представления источника данных
Откроется диалоговое окно «Добавление или удаление таблиц» (Рисунок 348).
Рисунок 348. Диалоговое окно «Добавление или удаление таблиц»
В списке «Включенные объекты» выберите «dbo.DimProduct», а затем нажмите кнопку «Добавить связанные таблицы» (Рисунок 349).
Таблица «dbo.DimProductSubcategory» будет добавлена в список «Включенные объекты». Повторно нажмите кнопку «Добавить связанные таблицы». При этом таблица «dbo.DimProductSubcategory» должна быть выбрана по умолчанию как последняя добавленная. Таблица «dbo.DimProductСategory» будет добавлена в список «Включенные объекты». Нажмите кнопку ОК. В меню «Формат» среды BI Dev Studio последовательно выберите команды «Автоматический макет» и «Диаграмма» (Рисунок 350).
Рисунок 350. Схема "Reseller Sales"
Обратите внимание, что таблицы «dbo.DimProductSubcategory» и «dbo.DimProductCategory» связаны друг с другом, а также с таблицей «ResellerSales» через таблицу «Product». Откройте конструктор измерений для измерения «Product» и откройте вкладку «Структура измерения». Щелкните правой кнопкой мыши область «Представление источника данных» и в контекстном меню выберите команду «Показать все таблицы» (Рисунок 351).
Рисунок 351. Контекстное меню области «Представление источника данных»
В области «Представление источника данных» найдите таблицу «DimProductCategory», щелкните правой кнопкой мыши столбец «ProductCategoryKey» в этой таблице и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 352).
В области «Атрибуты» измените имя нового атрибута на «Category» (Рисунок 353).
Рисунок 353. Изменение имени атрибута «ProductCategoryKey» на «Category»
В окне «Свойства» щелкните в поле свойства NameColumn, а затем нажмите кнопку обзора (…) (Рисунок 354), чтобы открыть диалоговое окно «Столбец имени» (Рисунок 355).
Рисунок 354. Свойства атрибута "Category"
Рисунок 355. Диалоговое окно «Столбец имени»
В списке «Исходный столбец» выберите «EnglishProductSubcategoryName» и нажмите кнопку ОК. В области «Представление источника данных» найдите таблицу «DimProductSubCategory», щелкните правой кнопкой мыши столбец «ProductSubCategoryKey» в этой таблице и в контекстном меню выберите команду «Создать атрибут из столбца». В области «Атрибуты» измените имя нового атрибута на Subcategory. В окне свойств щелкните поле свойства «NameColumn», затем нажмите кнопку обзора (…), чтобы открыть диалоговое окно «Столбец имени». В списке «Исходный столбец» выберите «EnglishProductSubcategoryName» и нажмите кнопку ОК. Создайте новую пользовательскую иерархию под названием «Product Categories» со следующими уровнями (сверху вниз): «Category», «Subcategory» и «Product Name» (, Рисунок 356).
Рисунок 356. Новая иерархия «Product Categories»
Укажите для свойства «AllMemberName» пользовательской иерархии «Product Categories» значение «All Products» (Рисунок 357).
Просмотр пользовательских иерархий в измерении Product На панели инструментов вкладки «Структура измерения» в окне «Конструктор измерений» для измерения «Product» нажмите кнопку «Обработка» (Рисунок 358).
В сообщении о начале выполнения сборки (Рисунок 359) нажмите кнопку «Да», чтобы создать и развернуть проект, а затем нажмите кнопку «Выполнить», чтобы выполнить обработку измерения «Product» (Рисунок 360).
Рисунок 359. Сообщение о начале выполнения сборки
Рисунок 360. Диалоговое окно обработки измерения "Product"
По завершении обработки раскройте узел «Обработка измерения "Product" завершена успешно» в диалоговом окне «Ход обработки», раскройте узел «Обработка Атрибут измерения "Product Name" завершена», а затем раскройте узел «Запросы SQL 1» (Рисунок 361).
Рисунок 361.Результаты хода обработки
Щелкните запрос SELECT DISTINCT, а затем нажмите кнопку «Просмотреть» (Рисунок 362).
Рисунок 362. Запрос SELECT DISTINCT
Обратите внимание, что к предложению SELECT DISTINCT было добавлено предложение WHERE, удаляющее продукты, для которых не задано значение в столбце «ProductSubcategoryKey». Три раза нажмите кнопку «Закрыть», чтобы закрыть все диалоговые окна. Перейдите на вкладку «Обозреватель» конструктора измерений для измерения «Product» и нажмите кнопку «Повтор соединения». Убедитесь, что значение «Product Model Lines» появляется в списке «Иерархия», и последовательно раскройте узлы «All Products» и» Components» (Рисунок 363).
Рисунок 363. Элементы иерархии «Product Model Lines»
Обратите внимание, что список компонентов сборки пуст из-за предложения WHERE в инструкции SELECT DISTINCT. В списке «Иерархия» выберите значение «Product Categories» и последовательно раскройте узлы «All Products» и «Components».
Обратите внимание, что не отображается ни один из компонентов сборки.
Включение неизвестного элемента, определение связи атрибутов и указание свойства пользовательской обработки для значений NULL Чтобы изменить характер работы, описанный в предыдущей задаче, в измерении «Products» следует включить свойство «UnknownMember», установить значение свойства «UnknownMemberName», установить параметр «NullProcessing» в значение «UnknownMember» для атрибутов «Subcategory» и» Model Name», связать атрибут «Category» с атрибутом «Subcategory» и атрибут «Product Line» с атрибутом «Model Name». В результате выполнения этих действий службы SSAS станут использовать значение имени неизвестного элемента для товаров, не имеющих значений в столбце «SubcategoryKey», как будет показано далее. В конструкторе измерений для измерения «Product» перейдите на вкладку «Структура измерения», затем в области «Атрибуты» выберите атрибут «Product». В окне «Свойства» задайте для свойства «UnknownMember» значение «Visible», а для свойства «UnknownMemberName» — значение «Assembly Components» (Рисунок 364).
Рисунок 364. Свойства измерения "Product"
Перейдите на вкладку «Связи атрибутов». На схеме щелкните правой кнопкой мыши атрибут «Subcategory» и выберите команду «Создать связь атрибутов».
В диалоговом окне «Создать связь атрибутов» свойство «Исходный» атрибут имеет значение «Subcategory». Задайте для свойства «Связанный атрибут» значение «Category». Оставьте для типа связи значение «Гибкая» (Рисунок 365).
Рисунок 365. Создание связи атрибутов "Subcategory" и "Category"
Нажмите кнопку ОК. В области «Атрибуты» выберите элемент «Subcategory». В окне «Свойства» разверните свойство «KeyColumns», затем свойство «DimProductSubcategory.ProductSubcategoryKey (Integer)». Установите для свойства «NullProcessing» значение «UnknownMember» (Рисунок 366).
Рисунок 366. Свойства атрибута Subcategory
В области «Атрибуты» выберите элемент «Model Name». В окне «Свойства» разверните свойство «KeyColumns», затем свойство «Product.ModelName (WChar)». Установите для свойства «NullProcessing» значение «UnknownMember» (Рисунок 367).
Рисунок 367. Свойства атрибута Model Name
После внесения этих изменений, если во время обработки в службах SSAS для атрибута «Subcategory» или «Model Name» встретится значение NULL, значение неизвестного элемента будет заменено значением ключа и определенные пользователем иерархии будут созданы правильно.
Повторный просмотр измерения Product Разверните Analysis Services Tutorial. После успешного развертывания перейдите на вкладку «Обозреватель» в конструкторе измерений для измерения «Product» и нажмите кнопку «Повтор соединения». Убедитесь, что в списке «Иерархия» выбран параметр «Product Categories» и раскройте узел «All Products» (Рисунок 368).
Обратите внимание, что элемент «Assembly Components» отображается в качестве нового элемента на уровне категории. Раскройте элемент «Assembly Components» на уровне «Category», а затем раскройте элемент «Assembly Components» на уровне «Subcategory». Обратите внимание, что все компоненты сборки отображаются на уровне «Product Name». Выберите элемент «Product Model Lines» в списке «Иерархия», раскройте узел «All Products», раскройте элемент «Assembly Components» на уровне «Product Line», а затем раскройте элемент «Assembly Components» на уровне «Model Name» (Рисунок 369).
Рисунок 369. Содержимое иерархии "Product Model Lines"
Обратите внимание, что все компоненты сборки теперь отображаются на уровне «Product Name».
Контрольные вопросы 1. Дайте определение понятию «иерархия типа «родители-потомки»». 2. Каким образом формируются иерархии типа «родители-потомки» из измерений типа «родители-потомки»? 3. Для каких целей выполняется группирование элементов атрибутов? Какие существуют способы группирования? 4. Для каких целей иерархии атрибутов могут скрываться или отключаться? 5. Для каких целей иерархии атрибутов внутри пользовательских иерархий можно упорядочивать по уровням? 6. В чем разница между жесткой и гибкой связью атрибутов?
7. Определение связей между измерениями и группами мер Данная лабораторная работа посвящена определению различных типы связей между измерениями куба и группами мер, а также изучению определение свойств этих связей.
Теоретическое введение
Связи измерений Использование измерений определяет связи между измерением куба и группами мер в нем. Измерение куба представляет собой экземпляр измерения базы данных, используемый в конкретном кубе. Куб может содержать (и часто содержит) измерения, которые не связаны непосредственно с группой мер, но которые могут быть косвенно связаны с ней через другое измерение или группу мер. При добавлении к кубу измерения базы данных или группы мер
службы SSAS попытаются определить использование измерения, анализируя связи между таблицами измерений и таблицами фактов в представлении источника данных, используемом для куба, а также связи между атрибутами в измерениях. Службы SSAS автоматически устанавливают параметры использования измерения для связей, которые они смогли обнаружить. Связь между измерением и группой мер состоит из таблиц измерений и фактов, участвующих в связи, и атрибута гранулярности, указывающего детализацию измерения в конкретной группе мер.
Связи обычного измерения Связь обычного измерения между измерением куба и группой мер существует, когда ключевой столбец для измерения соединен непосредственно с таблицей фактов. Эта прямая связь основана на связи между первичным и внешним ключами в базовой реляционной базе данных, но также может быть основана на логической связи, определенной в представлении источника данных. Связь обычного измерения представляет связь между таблицами измерений и таблицей фактов в традиционной структуре схемы «звезда». При определении нового измерения куба или новой группы мер, службы SSAS попытаются определить, существует ли обычная связь, и установить настройку использования измерения в значение Regular. Связь обычного измерения можно просмотреть или отредактировать на вкладке «Использование измерения» конструктора кубов. При определении связи измерения куба с группой мер также указывается атрибут гранулярности для этой связи. Атрибут гранулярности определяет самый низкий уровень детализации, доступный в кубе для измерения, который обычно является ключевым атрибутом для этого измерения. Однако в некоторых случаях может быть необходимо изменить размер гранул гранулярности конкретного измерения куба в конкретной группе мер. Например, может быть необходимо установить атрибут гранулярности для измерения «Время» равным атрибуту «Месяц», а не атрибуту «День», если используется группа мер «Квота на продажу» или «Бюджет». При указании того, что атрибут гранулярности не является ключевым атрибутом, необходимо гарантировать, что все остальные атрибуты в измерении непосредственно или косвенно связаны с этим другим атрибутом через связи атрибутов. Если это не так, службы SSAS не смогут корректно выполнить статистическую обработку данных.
Связи ссылочного измерения Связь ссылочного измерения между измерением куба и группой мер существует в том случае, когда ключевой столбец измерения косвенно соединен с таблицей фактов по ключу в другой таблице измерения, как показано на Рисунок 370.
Рисунок 370. Схема соединения ссылочного измерения с таблицей мер
Связь ссылочного измерения представляет связь между таблицами измерений и таблицей фактов в структуре схемы «снежинка». Когда таблицы измерений связаны по схеме «снежинка», можно определить либо одно измерение с использованием столбцов из нескольких таблиц, либо определить отдельные измерения на основе отдельных таблиц измерений, а затем задать связь между ними при помощи параметров связи ссылочного измерения. На Рисунок 371 показана одна таблица фактов «InternetSales» и две таблицы измерений «Customer» и «Geography», связанные по схеме «снежинка».
Рисунок 371. Пример связи ссылочного измерения с таблицей мер
Можно создать измерение с таблицей «Customer» в качестве главной таблицы и таблицей «Geography», включенной в качестве связанной. После этого определяется обычная связь между измерением и группой мер «InternetSales». Другой вариант - создать два измерения, связанные с группой мер «InternetSales»: измерение, основанное на таблице «Customer» и измерение, основанное на таблице «Geography». После этого можно связать измерение «Geography» с группой мер «InternetSales», используя связь ссылочного измерения, в которую входит измерение «Customer». В этом случае, когда факты в группе мер «InternetSales» измеряются измерением «Geography», факты измеряются по заказчикам и по географии. Если куб содержит вторую группу мер «ResellerSales», то измерить факты в группе мер «ResellerSales» по таблице Geography невозможно, поскольку связи между группой мер «ResellerSales» и «Geography» не существует. Ограничения на количество ссылочных измерений, которые могут быть соединены друг с другом, нет (Рисунок 372).
Рисунок 372. Два ссылочных измерения
Связь ссылочного измерения определяется на вкладке «Использование измерения» конструктора кубов. Связь ссылочного измерения определяется путем указания следующих параметров: Промежуточное измерение, с которым необходимо соединяться. Это может быть обычное измерение или другое ссылочное измерение. Атрибут ссылочного измерения, который определяет самый низкий уровень, для которого измерение доступно для статистической обработки по отношению к группе мер. Атрибут (внешний ключ) в промежуточном измерении, соответствующий атрибуту ссылочного измерения. Обратим внимание, что столбец, соединяющий ссылочное измерение с таблицей фактов, который обычно является ключевым атрибутом ссылочного измерения, должен также быть определен в качестве атрибута в промежуточном измерении. При создании цепи ссылочных измерений необходимо начать с создания обычной связи между первым измерением в цепи и группой мер. Затем по порядку создайте все дополнительные ссылочные связи. Ссылочная связь может быть создана только с измерением, в котором существует связь с группой мер. При создании связи ссылочного измерения связь атрибутов измерения материализуется по умолчанию. Материализация связи атрибута измерения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки материализоваться, то есть сохраняться, в структуре MOLAP измерения во время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов. В ссылочном измерении гранулярность указывается путем идентификации атрибута, определяющего связь между ссылочным измерением и группой мер, соответствующей главной таблице измерения. Когда несколько ссылочных измерений последовательно соединены вместе, ссылки определяют связь между самым внешним измерением и группой мер.
Связи измерения фактов Иногда пользователи хотят иметь возможность вводить для мер измерения, которые образуются из элементов данных таблицы фактов, или создавать запросы к таблице фактов для получения специальных дополнительных сведений, таких как номера счетов или номера заказов на покупку, относящихся к конкретным фактам продаж. При определении измерения, основанного на подобных элементах таблиц фактов, оно называется измерением фактов. Измерения фактов также называют вырожденными измерениями. Измерения фактов полезны для группирования
строк таблицы фактов, например для выбора всех строк, относящихся к определенному номеру счета. Хотя можно поместить эти сведения в отдельную таблицу измерения в реляционной базе данных, создание такой таблицы измерения не принесет пользы, потому что таблица измерения станет расти так же быстро, как и таблица фактов, что будет лишь порождать дублирование и приведет к необоснованной сложности таблицы. Измерения фактов, обычно называемые вырожденными измерениями, представляют собой стандартные измерения, составленные из столбцов атрибутов в таблицах фактов, а не из столбцов атрибутов в таблицах измерений. Полезные данные измерений иногда хранятся в таблице фактов с целью снижения дублирования. Например, на Рисунок 373 приведена таблица фактов FactResellerSales из образца базы данных Adventure Works DW.
Рисунок 373. Пример таблицы фактов с измерениями фактов
Эта таблица содержит данные об атрибутах не только для каждой строки заказа, оформленного посредником, но и для самого заказа. Атрибуты, обведенные на Рисунок 373, идентифицируют данные в таблице «FactResellerSales», которые можно использовать в качестве атрибутов в измерении. В этом случае два дополнительных элемента данных — сопроводительный номер перевозчика и номер заказа на покупку, оформленного посредником, представлены столбцами атрибутов «CarrierTrackingNumber» и «CustomerPONumber». Это весьма полезные сведения. Например, пользователи определенно будут заинтересованы в просмотре статистических сведений (например, суммарной стоимости продуктов) для всех заказов, поставляемых по одному сопроводительному номеру. Однако без измерения данные по этим двум атрибутам не могут быть ни организованы, ни статистически обработаны.
Теоретически можно создать таблицу измерения, использующую те же самые ключевые данные, что и таблица «FactResellerSales», и переместить два остальных столбца атрибутов, «CarrierTrackingNumber» и «CustomerPONumber», в эту таблицу измерения. Однако при этом произойдет дублирование значительной части данных, а также излишнее усложнение хранилища данных с целью представления всего двух атрибутов в отдельном измерении. Службы Analysis Services позволяют указать, следует данные измерения фактов повторить в MOLAP-структуре измерения (это повышает производительность обработки запросов) или же определить измерение фактов как измерение ROLAP, чтобы сохранить место в хранилище за счет снижения производительности обработки запросов. При хранении измерения в режиме хранения MOLAP все элементы измерения, помимо хранения в секциях группы мер, хранятся в экземпляре служб Analysis Services в крайне сжатой структуре MOLAP. При хранении измерения в режиме хранения ROLAP только определение измерения хранится в структуре MOLAP, сами же элементы измерения запрашиваются из соответствующей реляционной таблицы фактов во время обработки запроса. Выбор подходящего режима хранения зависит от того, как часто обращаются с запросами к измерению фактов, сколько строк возвращает типичный запрос, каковы производительность обработки запроса и стоимость обработки. Определение измерения как ROLAP не требует, чтобы все кубы, использующие это измерение, также хранились в режиме ROLAP. При определении измерения фактов можно задать связь между этим измерением и группой мер как связь фактов. К связям фактов применяются следующие ограничения: атрибут гранулярности должен быть ключевым столбцом для измерения, что образует связь «один к одному» между измерением и фактами в таблице фактов; измерение может иметь связь фактов только с одной группой мер.
Связи измерений «многие ко многим» В большинстве измерений каждый факт соединяется с одним и только одним элементом измерения, а один элемент измерения может быть связан с несколькими фактами. В терминах реляционных баз данных такая связь имеет название «один ко многим». Однако часто полезно соединять один факт с несколькими элементами измерения. Например, клиент банка может иметь несколько счетов (чековый, сберегательный, кредитный и инвестиционный), в то время как счет также может иметь нескольких владельцев или совладельцев. Измерение «Клиент», построенное на основе таких связей, имело бы несколько элементов, относящихся к одной транзакции по счету. Для обеспечения поддержки связи измерений «многие ко многим» в представлении источника данных должна быть установлена связь по внешнему ключу между всеми участвующими таблицами, как показано на Рисунок 374. В противном случае будет невозможно выбрать верную промежуточную группу мер при установке связи на вкладке «Использование измерения конструктора кубов».
Рисунок 374. Логическая схема измерения "Многие ко многим»
Связь измерений «многие ко многим» определяет взаимосвязь между измерением и группой мер, указывая промежуточную таблицу фактов, которая соединена с таблицей измерения. Таблица промежуточного измерения, в свою очередь, соединена как с промежуточной таблицей фактов, так и с таблицей фактов, на которой основана группа мер, указанная в связи. Связи «многие ко многим» между промежуточной таблицей фактов с одной стороны и таблицей измерения в связи и промежуточным измерением с другой стороны создают связи «многие ко многим» между элементами первичного измерения и мерами в группе мер, указанной этой связью. Измерения «многие ко многим» расширяют модель измерений за пределы классической схемы «звезда» и поддерживают сложную аналитику, когда измерения не связаны непосредственно с таблицей фактов.
Практические задания
Определение ссылочной связи При выполнении предыдущих лабораторных работ каждое определенное измерение куба основывалось на таблице, непосредственно связанной с таблицей фактов для группы мер через связь «внешний ключ — первичный ключ». В задачах этого раздела измерение «Geography» будет связано с таблицей фактов через измерение «Reseller», которое называется ссылочным измерением. Это позволяет пользователям распределить товарооборот посредников по географии.
Распределение показателя «Reseller Sales - Sales Amount» по измерению «Geography»
В обозревателе решений щелкните правой кнопкой мыши куб «Analysis Services Tutorial» в папке «Кубы» и нажмите кнопку «Обозреватель». Удалите из области данных все иерархии. Добавьте меру «Reseller Sales – Sales Amount» в раздел данных области данных (Рисунок 375).
Рисунок 375. Добавление меры меру «Reseller Sales – Sales Amount» в область данных
Из измерения «Geography»в области метаданных перетащите определяемую пользователем иерархию «Geographies» в область «Перетащите сюда поля строк в области данных» (Рисунок 376).
Обратите внимание, что мера «Reseller Sales – Sales Amount» распределена по элементам атрибута «Country-Region» в иерархии «Geographies» неверно. Откройте конструктор представлений источника данных для представления источника данных DW Adventure Works (Рисунок 377).
Рисунок 377. Представление источника данных DW Adventure Works
В области «Организатор схем» просмотрите связь между таблицами «Geography» и «ResellerSales». Обратите внимание, что прямой связи между этими таблицами нет. Однако между ними существует косвенная связь через таблицу «Reseller» или «SalesTerritory». Дважды щелкните стрелку, представляющую связь между первичным и внешним ключами таблиц «Geography» и «Reseller». Обратите внимание, что в диалоговом окне «Изменить связь» столбец «GeographyKey» является первичным ключом в таблице «Geography» и внешним ключом в таблице «Reseller» (Рисунок 378).
Рисунок 378. Диалоговое окно «Изменить связь»
Нажмите кнопку «Отмена», перейдите в конструктор кубов для куба «Analysis Services Tutorial» и откройте вкладку «Использование измерения» (Рисунок 379).
Обратите внимание, что измерение куба «Geography» сейчас не имеет связей ни с группой мер «Internet Sales», ни с группой мер «Reseller Sales». Нажмите кнопку с многоточием (…) в ячейке «Full Name» на пересечении измерения «Customer» и группы мер «Internet Sales». Обратите внимание, что в диалоговом окне «Задание связи» между таблицей измерения «DimCustomer» и таблицей группы мер «FactInternetSales» определена связь с типом «обычная», которая основана на столбце «CustomerKey» в каждой из этих таблиц (Рисунок 380). Все связи, определенные до настоящего момента, имели такой тип.
Рисунок 380. Диалоговое окно «Задание связи»
Нажмите кнопку «Отмена». Нажмите кнопку с многоточием (…) в ячейке без имени на пересечении измерения «Geography» и группы мер «Reseller Sales» (Рисунок 381).
Рисунок 381. Диалоговое окно «Задание связи»
Обратите внимание, что в диалоговом окне «Задание связи» в настоящее время не определены никакие связи между измерением куба «Geography» и группой мер «Reseller Sales». Невозможно определить обычную связь, поскольку не существует прямой связи между таблицей измерения для измерения «Geography» и таблицей фактов для группы мер «Reseller Sales». В раскрывающемся списке «Выберите тип связи» выберите значение «Ссылочная» (Рисунок 382). Для определения ссылочной связи указывается измерение, непосредственно связанное с таблицей группы мер, которое называется промежуточным измерением и может использоваться в службах SSAS для связи ссылочного измерения с таблицей фактов. Затем следует указать атрибут, который связывает это ссылочное измерение с данным промежуточным измерением.
Рисунок 382. Выбранный тип связи
В списке «Промежуточное измерение» выберите значение «Reseller». Базовая таблица для измерения «Geography» связана с таблицей фактов через базовую таблицу для измерения «Reseller». В списке «Атрибут ссылочного измерения» выберите значение «Geography Key», а затем попробуйте выбрать «Geography Key» в списке «Атрибут промежуточного измерения» (Рисунок 383).
Рисунок 383. Выбор атрибута промежуточного измерения
Обратите внимание, что параметр «Geography Key» не отображается в списке «Атрибут промежуточного измерения». Это обусловлено тем, что столбец «GeographyKey» не определен в качестве атрибута измерения «Reseller Sales». Нажмите кнопку «Отмена». Далее предстоит решить эту проблему, определив атрибут, основанный на столбце «GeographyKey» в измерении «Reseller».
Определение атрибута промежуточного измерения и ссылочной связи измерений Откройте измерение «Reseller» в конструкторе измерений и просмотрите столбцы в таблице «Reseller» в области «Представление источника данных», а также определенные атрибуты в измерении «Reseller» в области «Атрибуты» (Рисунок 384).
Рисунок 384. Измерение «Reseller» в конструкторе измерений
Обратите внимание, что, хотя «GeographyKey» определен как столбец в таблице «Reseller», в измерении «Reseller», основанном на этом столбце, атрибуты измерения не определены. «GeographyKey» определен как атрибут измерения в измерении «Geography», поскольку это ключевой столбец, связывающий базовую таблицу для этого измерения с таблицей фактов. Чтобы добавить атрибут «Geography Key» в измерение «Reseller», щелкните правой кнопкой столбец «GeographyKey» в области «Представление источника данных» и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 385).
В области «Атрибуты» выберите атрибут «Geography Key» и в окне свойств задайте для свойства «AttributeHierarchyOptimizedState» значение «NotOptimized», а для свойств «AttributeHierarchyOrdered» и «AttributeHierarchyVisible» — значение «False» (Рисунок 386).
Рисунок 386. Свойства атрибута «Geography Key»
Атрибут «Geography Key» в измерении «Reseller» будет использоваться только для того, чтобы связать измерение «Geography» с таблицей фактов «Reseller Sales». Поскольку он не будет использоваться для навигации и просмотра, не имеет смысла определять его как видимый. Помимо этого, упорядочение и оптимизация иерархии атрибута отразились бы на производительности обработки данных только отрицательно. Однако чтобы служить связью между двумя измерениями, этот атрибут должен быть активирован. Перейдите в конструктор кубов для куба «Analysis Services Tutorial», откройте вкладку «Использование измерения» и нажмите кнопку с многоточием (…) на пересечении группы мер «Reseller Sales» и измерения куба «Geography». В списке «Выберите тип связи» выберите значение «Ссылочная». В списке «Промежуточное измерение» выберите значение «Reseller». В списке «Атрибут ссылочного измерения» выберите «Geography Key», а затем выберите «Geography Key» в списке «Атрибут промежуточного измерения» ().
Рисунок 387. Создание ссылочной связи
Обратите внимание, что установлен флажок «Материализовать». Это является установкой по умолчанию для многомерных измерений OLAP (MOLAP). Материализация связи атрибута изменения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки при обработке материализоваться, то есть сохраняться в структуре измерения MOLAP на время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов (иногда значительно). Нажмите кнопку ОК. Обратите внимание, что измерение куба «Geography» теперь связано с группой мер «Reseller Sales». Значок указывает, что связь является ссылочной связью измерений (Рисунок 388).
Рисунок 388. Ссылочная связь
Распределение показателя «Reseller Sales» по измерению «Geography» Разверните проект «Analysis Services Tutorial». После успешного завершения развертывания в конструкторе кубов перейдите на вкладку «Обозреватель» и нажмите кнопку «Повторное соединение». Обратите внимание, что мера «Reseller Sales – Sales Amount» теперь верно распределена по элементам атрибута «Country-Region» в пользовательской иерархии «Geographies» (Рисунок 389).
Рисунок 389. Распределение меры «Reseller Sales – Sales Amount» по иерархии «Geographies»
Определение связи фактов В задачах этого раздела нужно добавить новое измерение куба, основанное на столбце «CustomerPONumber» (номер почтового отделения клиента) таблицы фактов «FactInternetSales». Затем предстоит указать связь фактов между этим новым измерением куба и группой мер «Internet Sales».
Определение измерения фактов «Заказы через Интернет» В обозревателе решений щелкните правой кнопкой мыши узел «Измерения» и в контекстном меню выберите команду «Создать измерение» (Рисунок 390).
Рисунок 390. Контекстное меню узла "Измерения"
На странице «Вас приветствует мастер измерений» (Рисунок 391) нажмите кнопку «Далее».
Рисунок 391. Мастер измерений
На странице «Выбор метода создания» выберите параметр «Использовать существующую таблицу» и нажмите кнопку «Далее» (Рисунок 392).
Рисунок 392. Выбор метода создания измерения
На странице «Определение исходных сведений» убедитесь, что выбрано представление источника данных «Adventure Works DW». В списке «Основная» таблица выберите таблицу «InternetSales». Убедитесь, что в списке «Ключевые столбцы» присутствуют столбцы «SalesOrderNumber» и «SalesOrderLineNumber». В списке «Столбец имени» выберите столбец «SalesOrderLineNumber». Нажмите кнопку «Далее» (Рисунок 393).
Рисунок 393. Определение сведений об источнике данных
На странице «Выбор связанных таблиц» снимите флажки для всех таблиц и нажмите кнопку «Далее» (Рисунок 394).
Рисунок 394. Выбор связанных таблиц
На странице «Выбор атрибутов измерения» дважды щелкните флажок в заголовке, чтобы снять все флажки. Атрибут «Sales Order Number» останется выбранным, поскольку он является ключевым атрибутом. Выберите атрибут «Customer PO Number» и нажмите кнопку «Далее» (Рисунок 395).
Рисунок 395. Выбор атрибутов измерения
На странице «Завершение работы мастера» измените имя на «Подробности заказа через Интернет» и нажмите кнопку «Готово» (Рисунок 396).
Рисунок 396. Указание имени измерения
В меню «Файл» выберите команду «Сохранить все». В области «Атрибуты» конструктора измерений для измерения «Подробности заказа через Интернет» выберите атрибут «Sales Order Number» и в окне свойств задайте для свойства «Name» значение «Описание позиции».
Рисунок 397. Область «Атрибуты» конструктора измерений для измерения «Подробности заказа через Интернет»
В ячейке свойства «NameColumn» нажмите кнопку обзора (…). В диалоговом окне «Столбец имени» выберите в списке «Исходная таблица» значение «Product», в списке «Исходный столбец» — значение «EnglishProductName» и нажмите кнопку ОК (Рисунок 398).
Рисунок 398. Выбор столбца, содержащего имя
Добавьте атрибут «Sales Order Number» к данному измерению, перетащив столбец «SalesOrderNumber» из таблицы «InternetSales» области «Представление источника данных» в область «Атрибуты» (Рисунок 399).
Рисунок 399. Добавление атрибута «Sales Order Number»
Измените свойство «Name» нового атрибута «Sales Order Number» на «Номер заказа», а значение свойства «OrderBy» на «Key» (Рисунок 400).
Рисунок 400. Свойства атрибута «Sales Order Number»
В области «Иерархии» создайте пользовательскую иерархию «Заказы через Интернет», состоящую из уровней «Номер заказа» и «Описание позиции» в этом порядке.
В области «Атрибуты» выберите «Подробности заказа через Интернет», а затем просмотрите значение свойства «StorageMode» в окне свойств (Рисунок 401).
Рисунок 401. Свойство «StorageMode» измерения «Подробности заказа через Интернет»
Обратите внимание, что данное измерение хранится как измерение MOLAP. Хотя изменение режима хранения на ROLAP позволит сократить время обработки и пространство для хранения, это произойдет за счет уменьшения скорости обработки запросов. При выполнении упражнений данной лабораторной работы в качестве режима хранения будет использован MOLAP. Чтобы добавить созданное измерение в куб «Analysis Services Tutorial», переключитесь в Конструктор кубов. На вкладке «Структура куба» щелкните правой кнопкой мыши в области «Измерения» и выберите команду «Добавить измерение куба» (Рисунок 402).
Рисунок 402. Контекстное меню области "Измерения" конструктора кубов
В диалоговом окне «Добавление измерения куба» выберите измерение «Подробности заказа через Интернет» и нажмите кнопку ОК (Рисунок 403).
Рисунок 403. Добавление созданного измерения
Определение связи фактов для измерений фактов В конструкторе кубов для куба «Analysis Services Tutorial» перейдите на вкладку «Использование измерений» (Рисунок 404).
Обратите внимание, что измерение куба «Подробности заказа через Интернет» автоматически настроено как измерение, имеющее связь фактов, что отражает его уникальный значок. Нажмите кнопку обзора (…) в ячейке «Описание позиции», на пересечении группы мер «Internet Sales» и измерения «Подробности заказа через Интернет», чтобы просмотреть свойства связи фактов. Будет открыто диалоговое окно «Задание связи» (Рисунок 405).
Рисунок 405. Диалоговое окно «Задание связи»
Обратите внимание, что настройка свойств невозможна. Нажмите кнопку «Отмена».
Просмотр куба с использованием измерения фактов Разверните куб «Analysis Services Tutorial». После успешного завершения развертывания перейдите в конструкторе кубов на вкладку «Обозреватель», выберите куб «Analysis Services Tutorial» и нажмите кнопку «Повторное соединение». Очистите все меры и иерархии в области данных, а затем добавьте измерение «Reseller Sales – Sales – Sales Amount» в раздел строк области данных. В области метаданных разверните узлы «Customer», «Location», «Customer Geography», «Элементы», «All Customers», «Australia», «Queensland», «Brisbane», «4000», щелкните правой кнопкой мыши элемент «Adam Powell» и выберите команду «Добавить в область вложенных кубов» (Рисунок 406).
Рисунок 406. Добавление элемента измерения "Customer"
Фильтр, согласно которому ограничивается число заказов, возвращаемых одному клиенту, позволяет пользователю выполнить детализацию по огромной таблице фактов, не ощущая заметного падения скорости обработки запросов (Рисунок 407).
Рисунок 407. Фильтр
Добавьте определяемую пользователем иерархию «Заказы через Интернет» из измерения «Подробности заказа через Интернет» в раздел строк области данных (Рисунок 408).
Рисунок 408. Номера заказов и объемы закупок Адама Пауэлла
Обратите внимание, что соответствующие номера заказов и объемы закупок Адама Пауэлла теперь отображаются в области данных. Раскройте один из номеров заказа в области строк, чтобы увидеть подробности выбранной позиции строки заказа (Рисунок 409).
Рисунок 409. Подробности конкретного заказа
Определение связи «многие ко многим» В задачах этого раздела предстоит определить измерение «Sales Reasons» (Причины продаж) и группу мер «Sales Reasons», а также создать связь «многие ко многим» между измерением «Sales Reasons» и группой мер «Internet Sales» через группу мер «Sales Reasons».
Добавление необходимых таблиц к представлению источника данных Откройте конструктор представлений источника данных для представления источника данных «DW Adventure Works». Щелкните правой кнопкой мыши область «Организатор схем» и в контекстном меню выберите команду «Создать диаграмму» (Рисунок 410)и укажите «Причина заказа через Интернет» в качестве имени созданной диаграммы (Рисунок 411).
Рисунок 410. Контекстное меню области «Организатор схем»
Рисунок 411. Созданная диаграмма «Причина заказа через Интернет»
Перетащите таблицу «InternetSales» из области «Таблицы» в область «Схема» (Рисунок 412).
Рисунок 412. Добавленная на диаграмму таблица «InternetSales»
Щелкните правой кнопкой мыши область «Диаграмма» и в контекстном меню выберите команду «Добавить или удалить таблицы». В диалоговом окне «Добавление или удаление таблиц» добавьте в список «Включенные объекты» таблицы «DimSalesReason» и «FactInternetSalesReason», а затем нажмите кнопку ОК (Рисунок 413).
Рисунок 413. Добавление таблиц
В меню «Формат» выберите команду «Автоматический макет» | «Диаграмма» (Рисунок 414).
Рисунок 414. Диаграмма "Причина заказа через Интернет"
Обратите внимание, что связь первичный ключ — внешний ключ между задействованными таблицами создается автоматически, так как эти связи определены в базовой реляционной базе данных. Если эти связи не определены в базовой реляционной базе данных, их следует определить в представлении источника данных. В окне свойств измените свойство «FriendlyName» таблицы «DimSalesReason» на «SalesReason», затем измените свойство «FriendlyName» таблицы «FactInternetSalesReason» на «InternetSalesReason». В области «Таблицы» раскройте узел «InternetSalesReason» (dbo.FactInternetSalesReason), щелкните столбец «SalesOrderNumber» и просмотрите в окне свойств свойство «DataType» для этого столбца данных (Рисунок 415).
Обратите внимание, что в качестве типа данных для столбца «SalesOrderNumber» указан тип данных string. Просмотрите типы данных для других столбцов таблицы InternetSalesReason. Обратите внимание, что для остальных двух столбцов этой таблицы указаны числовые типы данных. В области «Таблицы» щелкните правой кнопкой мыши таблицу «InternetSalesReason» (dbo.FactInternetSalesReason) и в контекстном меню выберите команду «Просмотр данных» (Рисунок 416).
Рисунок 416. Данные талицы «InternetSalesReason»
Обратите внимание, что для каждого номера строки каждого заказа значение ключа указывает причину покупки данной позиции.
Определение промежуточной группы мер Переключитесь в конструкторе кубов на куб Analysis Services Tutorial и откройте вкладку «Структура куба». Щелкните правой кнопкой мыши область «Меры» и в контекстном меню выберите команду «Создать группу мер» (Рисунок 417).
В диалоговом окне «Создание группы мер» в списке «Выберите таблицу из представления источника данных» выберите таблицу «InternetSalesReason» и нажмите кнопку ОК ().
Рисунок 418. Диалоговое окно «Создание группы мер»
Обратите внимание, что в области «Меры» теперь отображается группа мер «Internet Sales Reason» (Рисунок 419).
Рисунок 419. Добавленная группа мер
Разверните группу мер «Internet Sales Reason». Обратите внимание, что для этой группы мер определена единственная мера, «Число Internet Sales Reason». Выберите меру «Число Internet Sales Reason» и просмотрите свойства этой меры в окне свойств ().
Рисунок 420. Свойства меры «Число Internet Sales Reason»
Обратите внимание, что свойство «AggregateFunction» для этой меры определено как «Count» (Число), а не «Sum» (Сумма). Это значение выбрано службами SSAS, что базовый тип данных был строковым. Другие два столбца в базовой таблице фактов не были выделены как меры, поскольку в службах SSAS они определены как числовые ключи, а не фактические меры. В окне «Свойства» измените значение свойства «Visible» меры «Число Internet Sales Reason Count» на «False». Эта мера будет использована только для соединения измерения «Sales Reason», которое предстоит определить после группы мер «Internet Sales». Пользователи не смогут просматривать эту меру.
Определение измерения «многие ко многим» В обозревателе решений щелкните правой кнопкой мыши узел «Измерения» и в контекстном меню выберите команду «Создать измерение». На странице «Вас приветствует мастер измерений» нажмите кнопку «Далее». На странице «Выбор метода создания» выберите параметр «Использовать существующую таблицу» и нажмите кнопку «Далее» (Рисунок 421).
Рисунок 421. Выбор метода создания измерения
На странице «Определение исходных сведений» убедитесь, что выбрано представление источника данных «Adventure Works DW». В списке «Основная таблица» выберите таблицу «SalesReason». Убедитесь, что в списке «Ключевые столбцы» присутствует столбец «SalesReasonKey». В списке «Столбец имени» выберите «SalesReasonName» (Рисунок 422).
Рисунок 422. Определение исходных сведений для создания измерения
Нажмите кнопку «Далее». На странице «Выбор атрибутов измерения» атрибут «Sales Reason Key» автоматически выбран, поскольку он является ключевым. Установите флажок рядом с атрибутом «Sales Reason Reason Type», измените его имя на «Sales Reason Type» и нажмите кнопку «Далее» (Рисунок 423).
Рисунок 423. Выбор атрибутов измерения
На странице «Завершение работы мастера» нажмите кнопку «Готово», чтобы создать измерение «Sales Reason». В меню «Файл» выберите команду «Сохранить все». В области «Атрибуты конструктора измерений» для измерения «Sales Reason» выберите «Sales Reason Key» и в окне свойств задайте для свойства «Name» значение «Sales Reason» (Рисунок 424).
Рисунок 424. Свойства атрибута «Sales Reason Key»
В области «Иерархии конструктора измерений» создайте пользовательскую иерархию «Sales Reasons», которая будет содержать уровни «Sales Reason Type» и «Sales Reason» (в указанном порядке) (Рисунок 425).
Рисунок 425. Созданная пользовательская иерархия
В окне свойств задайте значение «Все причины покупки» для свойства «AllMemberName» иерархии «Sales Reason» (Рисунок 426).
Рисунок 426. Значение свойства «AllMemberName» иерархии «Sales Reason»
Укажите значение «Все причины покупки» для свойства «AttributeAllMemberName» измерения «Sales Reason» (Рисунок 427).
Рисунок 427. Значение свойства «AttributeAllMemberName» измерения «Sales Reason»
Чтобы добавить созданное измерение в куб «Analysis Services Tutorial», переключитесь в Конструктор кубов. На вкладке «Структура куба» щелкните правой кнопкой мыши в области «Измерения» и в контекстном меню выберите команду «Добавить измерение куба» (Рисунок 428).
Рисунок 428. Контекстное меню области "Измерения" конструктора кубов
В диалоговом окне «Добавление измерения куба» выберите «Sales Reason» и нажмите кнопку ОК (Рисунок 429).
Рисунок 429. Диалоговое окно «Добавление измерения куба»
В меню «Файл» выберите команду «Сохранить все».
Определение связи «многие ко многим» Переключитесь в конструкторе кубов на куб «Analysis Services Tutorial» и откройте вкладку «Использование измерений».
Обратите внимание, что измерение «Sales Reason» имеет обычную связь, определенную группой мер «Internet Sales Reason», но не имеет связи, определенной группами мер «Internet Sales» или «Reseller Sales». Обратите внимание, что измерение «Подробности заказа через Интернет» имеет обычную связь, определенную группой мер «Internet Sales Reason», которое в свою очередь имеет связь с типом «факт» с группой мер «Internet Sales». Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер, «Internet Sales Reason» и «Internet Sales»), не получится определить связь «многие ко многим». Щелкните ячейку на пересечении группы мер «Internet Sales» и измерения «Sales Reason», а затем нажмите кнопку обзора (...). В диалоговом окне «Задание связи» в списке «Выберите тип связи» укажите значение «Многие ко многим» ().
Рисунок 431. Диалоговое окно «Задание связи»
Требуется определить промежуточную группу мер, соединяющую измерение «Sales Reason» и группу мер «Internet Sales». В списке «Промежуточная группа мер» выберите значение «Internet Sales Reason». Нажмите кнопку ОК. Обратите внимание на значок «многие ко многим», который отражает связь между измерением «Sales Reason» и группой мер «Internet Sales» (Рисунок 432).
Рисунок 432. Связь между измерением «Sales Reason» и группой мер «Internet Sales»
Просмотр куба и измерения «многие ко многим» Разверните куб Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку «Обозреватель» в конструкторе кубов для куба Analysis Services Tutorial и нажмите кнопку «Повторное соединение». Очистите все иерархии и меры в области данных. В раздел данных области «Данные» добавьте меру «Internet Sales-Sales Amount». Добавьте определенную пользователем иерархию «Sales Reasons» из измерения «Sales Reason» в раздел строк области данных. В области метаданных разверните узлы «Customer», «Location», «Customer Geography», «Элементы», «All Customers», «Australia», щелкните правой кнопкой мыши элемент «Queensland» и выберите команду «Добавить в область вложенных кубов». Раскройте каждый из элементов уровня «Sales Reason Type», чтобы просмотреть суммы в долларах для каждой из причин, которые выдвинул заказчик из штата Квинсленд (Queensland) в обоснование покупки товара через Интернет (Рисунок 433).
Рисунок 433. Суммы для каждой из причин покупки
Обратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.
Определение степени гранулярности измерения в группе мер Для разных целей пользователям может понадобиться измерять данные фактов с разной степенью гранулярности или точности. Например, сведения о продажах через посредников или о продажах через Интернет могут записываться каждый день, в то время как данные о квотах продаж могут существовать только для уровня месяца или квартала. В таких случаях пользователям требуется, чтобы измерение времени обладало разной степенью гранулярности для каждой из этих разных таблиц фактов. Определить новое измерение базы данных как измерение времени с другой степенью гранулярности проще всего с помощью служб SSAS. По умолчанию, если измерение используется в группе мер, службы SSAS выполняют грануляцию данных в этом измерении на основе ключевого атрибута измерения. Например, если измерение времени включено в группу мер и применяемая по умолчанию степень гранулярности измерения времени составляет один день, то применяемая по умолчанию степень детализации этого измерения в группе мер также равна одному дню. Это применимо во многих случаях, например для групп мер «Internet Sales» и «Reseller Sales» в данном цикле лабораторных работ. Но когда такое измерение включается в иные типы групп мер, такие как квоты продаж или группа бюджетных показателей, более подходящей степенью гранулярности будет месяц или квартал. Чтобы указать степень гранулярности измерения куба, которая отличается от используемой по умолчанию, следует изменить атрибут гранулярности данного измерения куба как применяемого в конкретной группе мер на вкладке «Использование измерений» в конструкторе кубов. При изменении степени детализации измерения в конкретной группе мер на атрибут, отличный от ключевого атрибута данного измерения, необходимо обеспечить прямую или косвенную связь всех остальных атрибутов в этой группе мер с новым атрибутом гранулярности. Для этого следует указать связи атрибутов между другими атрибутами и атрибутом, заданным как атрибут гранулярности для этой группы мер. В этом случае следует указать дополнительные связи атрибутов, не удаляя существующие связи между атрибутами. Атрибут, указанный как атрибут гранулярности, становится ключевым атрибутом в группе мер для оставшихся атрибутов измерения. Если требуемые связи атрибутов не указаны, в службах SSAS статистические вычисления будут вестись неверно, что будет продемонстрировано в данной лабораторной работе.
В задачах данного раздела требуется добавить группу мер «Sales Quotas» и определить помесячную степень гранулярности измерения даты в этой группе мер. Затем предстоит определить связи между атрибутом месяца и другими атрибутами измерения, чтобы обеспечить правильность статистических вычислений в службах SSAS.
Добавление таблиц и определение группы мер «Sales Quotas» Перейдите в конструктор представлений источника данных к представлению источника данных DW Adventure Works. Щелкните правой кнопкой мыши область «Организатор диаграмм», в контекстном меню выберите команду «Создать диаграмму» и укажите «Sales Quotas» в качестве имени новой диаграммы (Рисунок 434).
Рисунок 434. Новая диаграмма «Sales Quotas»
Перетащите таблицы «Employee», «Sales Territory» и «Date» из области «Таблицы» в область «Схема». Добавьте таблицу «FactSalesQuota» в область «Схема», щелкнув правой кнопкой мыши в области «Схема» и выбрав в контекстном меню команду «Добавить или удалить таблицы» (Рисунок 435).
Рисунок 435. Схема «Sales Quotas»
Обратите внимание, что таблица «SalesTerritory» связана с таблицей «FactSalesQuota» через таблицу «Employee». Просмотрите столбцы таблицы «FactSalesQuota» (Рисунок 436).
Рисунок 436. Столбцы таблицы «FactSalesQuota»
Обратите внимание, что внутри этой таблицы гранулярность данных равна календарному кварталу, что является наиболее подробным уровнем детализации в таблице «FactSalesQuota».
В конструкторе представлений источника данных измените свойство «FriendlyName» таблицы «FactSalesQuota» на «SalesQuotas».
Рисунок 437. Свойства таблицы «FactSalesQuota»
Переключитесь в конструктор кубов на Analysis Services Tutorial и откройте вкладку «Структура куба». Щелкните правой кнопкой мыши область «Меры», выберите команду «Создать группу мер», в диалоговом окне «Создание группы» мер щелкните «SalesQuotas» и нажмите кнопку ОК (Рисунок 438).
Рисунок 438. Добавленная группа мер "Sales Quotas"
Группа мер «Sales Quotas» будет отображена в области «Меры». В области «Измерения» обратите внимание, что определено новое измерение куба «Date» на основе измерения «Date» базы данных. Определение нового измерения куба по времени объясняется неопределенностью в вопросе, какое из существующих связанных со временем измерений куба должно быть связано в службах SSAS со столбцом «DateKey» таблицы фактов «FactSalesQuota», которая лежит в основе группы мер «Sales Quotas». Это будет исправлено позже, в другой задаче данной лабораторной работы. Раскройте группу мер «Sales Quotas». В области «Меры» выберите элемент «Sales Amount Quota» и в окне свойств задайте для свойства «FormatString» значение «Currency» (Рисунок 439).
Рисунок 439. Свойства элемента «Sales Amount Quota»
Выберите меру «Число Sales Quotas» и в окне свойств задайте для свойства «FormatString» значение «# ##0,00;-# ##0,0». Удалите меру «Calendar Quarter» из группы мер «Sales Quotas». В службах SSAS было определено, что лежащий в основе показателя «Calendar Quarter» столбец содержит меры. Однако данный столбец и столбец «CalendarYear» содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер «Sales Quotas» с измерением даты. В области «Меры» щелкните правой кнопкой мыши группу мер «Sales Quotas» и выберите команду «Создать меру». Будет открыто диалоговое окно «Создать меру», содержащее доступные исходные столбцы для меры с типом использования «Сумма». В диалоговом окне «Создание меры» в списке «Использование» выберите значение «Подсчет различных объектов», убедитесь, что в списке «Исходная таблица» выбрана таблица «SalesQuotas», выберите в списке «Исходный столбец» столбец «EmployeeKey» и нажмите кнопку ОК (Рисунок 440).
Рисунок 440. Диалоговое окно «Создание меры»
Обратите внимание, что это измерение создается в новой группе мер с именем «Sales Quotas 1». Меры числа различных объектов в SQL Server создаются в их собственных группах мер, чтобы повысить скорость обработки. (Рисунок 441)
Рисунок 441. Измерение «Число различных объектов EmployeeKey»
Задайте для свойства «Name» меры «Число различных объектов EmployeeKey» значение «Sales Person Count», а для свойства FormatString введите значение «# ##0,00;-# ##0,0» (Рисунок 442).
Рисунок 442. Свойства меры «Число различных объектов EmployeeKey»
Просмотр мер в группе «Sales Quota» по датам Разверните куб Analysis Services Tutorial. После успешного завершения развертывания в конструкторе кубов, где открыт куб Analysis Services Tutotial, перейдите на вкладку «Обозреватель» и нажмите кнопку «Повторное соединение». Очистите все иерархии и меры в области «Данные», а затем очистите все члены измерения на панели «Фильтры». Разверните группу «Sales Quotas» продаж в области метаданных и добавьте в область данных меру «Sales Amount Quota». Добавьте пользовательскую иерархию «Sales Territories» измерения «Sales Territory» в область столбцов (Рисунок 443).
Обратите внимание, что измерение куба «Sales Territory» ни прямо, ни косвенно не связано с таблицей фактов «Sales Quotas». Далее будет определена ссылочная связь измерений между данным измерением и данной таблицей фактов. В области «Данные» щелкните стрелку «вниз» рядом с элементом «Sales Territory Group» и снимите все флажки, кроме флажка «North America», чтобы изменить элементы измерения, отображаемые в элементе «Sales Territory Group», на «North America» (Рисунок 444).
Рисунок 444. Выбор элементов измерения «Sales Territory Group»
В области метаданных раскройте узел «Date». Добавьте в раздел строк пользовательскую иерархию «Date.Fiscal Date», а затем щелкните стрелку «вниз» рядом с элементом «Fiscal Year» области «Данные» и снимите все флажки, за исключением «FY 2004», чтобы отобразить данные только для финансового года 2004 (Рисунок 445).
Рисунок 445. Выбор элементов измерения «Fiscal Year»
В области «Данные» последовательно раскройте финансовый год «FY 2004», первое полугодие «H1 FY 2004», первый квартал «Q1 FY 2004» и месяц «July 2003» (Рисунок 446).
Рисунок 446. Содержимое месяца "июль 2003"
Обратите внимание, что на уровне «Month» появился только элемент «July 2003» вместо элементов «July, 2003», «August, 2003» и «September, 2003» уровня «Month», а на уровне «Date» появился только один элемент — «July 1, 2003» вместо всех дней июля. Это обусловлено тем, что
для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения «Time» установлена на уровне дня. Это будет изменено позже, в следующей задаче данной лабораторной работы. Кроме того, обратите внимание, что значение «Sales Amount Quota» на уровнях месяца и дня равно соответствующему значению на уровне квартала и составляет 13 733 000,00. Это связано с тем, что самый подробный уровень данных для группы мер «Sales Quotas» соответствует кварталу. Это поведение будет изменено в следующей лабораторной работе.
Определение свойств использования измерений для группы мер Sales Quotas Откройте в конструкторе измерений измерение «Employee», щелкните правой кнопкой мыши столбец «SalesTerritoryKey» в области «Представление источника данных» и в контекстном меню выберите команду «Создать атрибут из столбца» (Рисунок 447).
В области «Атрибуты» выберите атрибут «SalesTerritoryKey» и в окне свойств задайте для свойства «AttributeHierarchyOptimizedState» значение «NotOptimized», а для свойств «AttributeHierarchyVisible» и «AttributeHierarchyOrdered» — значение «False» (Рисунок 448).
Рисунок 448. Свойства атрибута «SalesTerritoryKey»
Этот атрибут необходим для связи измерения «Sales Territory» с группами мер «Sales Quotas» и «Sales Quotas 1» в качестве ссылочного измерения. В конструкторе кубов выберите куб «Analysis Services Tutorial» и откройте вкладку «Использование измерений», а затем просмотрите использование измерений в группах мер «Sales Quotas» и «Sales Quotas 1» (Рисунок 449).
Рисунок 449. Использование измерений в группах мер «Sales Quotas» и «Sales Quotas 1»
Обратите внимание, что измерения куба «Employee» и «Date» соединены с группами мер «Sales Quotas» и «Sales Quotas 1» обычными связями. Кроме того, обратите внимание, что измерение куба «Sales Territory» не связано ни с одной из этих групп мер. Щелкните ячейку на пересечении группы мер «Sales Quotas» и измерения «Sales Territory», затем нажмите кнопку обзора (...). Будет открыто диалоговое окно «Задание связи». В списке «Выберите тип связи» выберите значение «Ссылочная». В списке «Промежуточное измерение» выберите значение «Employee». В списке «Атрибут ссылочного измерения» выберите значение «Sales Territory Region». В списке «Атрибут промежуточного измерения» выберите значение «Sales Territory Key» (ключевым столбцом атрибута «Sales Territory» является столбец «SalesTerritoryKey»). Убедитесь, что установлен флажок «Материализовать». Нажмите кнопку ОК (Рисунок 450).
Рисунок 450. Диалоговое окно «Задание связи»
Щелкните ячейку на пересечении группы мер «Sales Quota 1» и измерения «Sales Territory», затем нажмите кнопку обзора (...). Будет открыто диалоговое окно «Задание связи». В списке «Выберите тип связи» выберите значение «Ссылочная». В списке «Промежуточное измерение» выберите значение «Employee». В списке «Атрибут ссылочного измерения» выберите значение «Sales Territory Region». В списке «Атрибут промежуточного измерения» выберите значение «Sales Territory Key» (ключевым столбцом атрибута «Регион территории продаж» является столбец SalesTerritoryKey). Убедитесь, что установлен флажок «Материализовать». Нажмите кнопку ОК. Удалите измерение куба «Date» (Рисунок 451).
Рисунок 451. Удаление измерения "Date"
Вместо четырех связанных со временем измерений куба в качестве даты, относительно которой будут распределяться квоты продаж, будет использоваться измерение куба «Order Date» из группы мер «Sales Quotas». Это измерение куба также будет использоваться как первичное измерение даты в кубе. В списке «Измерения» переименуйте измерение куба «Date (Order Date)» в «Date (Date)» (Рисунок 452).
Переименование измерения куба «Order Date» на «Date» упрощает его восприятие как первичного измерения даты в этом кубе. Нажмите кнопку обзора (…) в ячейке на пересечении группы мер «Sales Quotas» и измерения «Date (Date)». В диалоговом окне «Определение связи» в списке «Выберите тип связи» выберите значение «Обычная». В списке «Атрибут гранулярности» выберите значение «Calendar Quarter» (Рисунок 453).
Рисунок 453. Предупреждение о выборе в качестве атрибута гранулярности неключевого атрибута
Будет выведено предупреждение, что в качестве атрибута гранулярности выбран неключевой атрибут и необходимо убедиться, что все остальные атрибуты прямо или косвенно связаны с этим атрибутом гранулярности, указав их в качестве свойств элементов. В области «Связь» диалогового окна «Задание связи» соедините столбцы измерений «CalendarYear» и «CalendarQuarter» из таблицы, лежащей в основе измерения «Date (Date)» куба, со столбцами «CalendarYear» и «CalendarQuarter» из таблицы, лежащей в основе группы мер «Sales Quota», а затем нажмите кнопку ОК (Рисунок 454).
Рисунок 454. Соединение столбцов измерения со столбцами группы мер
Атрибут «Calendar Quarter» определен как атрибут гранулярности для измерения «Date (Date)» куба в группе мер «Sales Quotas», однако атрибут «Date» продолжает оставаться атрибутом гранулярности для групп мер «Internet Sales» и «Reseller Sales». Повторите предыдущие четыре шага для группы мер «Sales Quotas 1».
Определение связи между атрибутом «Calendar Quarter» и другими атрибутами измерения даты Откройте в конструкторе измерений измерение «Date» и перейдите на вкладку «Связи атрибутов» (Рисунок 455).
Рисунок 455. Связи атрибутов измерения "Date"
Обратите внимание, что, хотя атрибут «Calendar Year» связан с атрибутом «Calendar Quarter» через атрибут «Calendar Semester», атрибуты финансового календаря связаны только друг с другом. Они не соединены с атрибутом «Calendar Quarter», и потому статистические вычисления в группе мер «Sales Quotas» будут выполняться неправильно.
На схеме щелкните правой кнопкой мыши атрибут «Calendar Quarter», а затем в контекстном меню выберите команду «Создать связь атрибутов». В диалоговом окне «Создание связи атрибутов» поле «Исходный атрибут» имеет значение «Calendar Quarter». Установите поле «Связанный атрибут» в значение «Fiscal Quarter». Нажмите кнопку ОК (Рисунок 456).
Рисунок 456. Создание связи атрибутов
Обратите внимание на предупреждение о том, что измерение Date содержит одну или несколько избыточных связей атрибутов, которые могут помешать статистической обработке данных, если в кубе в качестве атрибута гранулярности используется неключевой атрибут (Рисунок 457).
Рисунок 457. Предупреждение о наличии избыточных связей
Удалите связь атрибута «Fiscal Quarter» с атрибутом «Month Name» (Рисунок 458).
Рисунок 458. Окончательная связь атрибутов
В меню «Файл» выберите команду «Сохранить все».
Просмотр мер в группе «Sales Quota» по датам Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку «Обозреватель конструктора» кубов для куба Analysis Services Tutorial и нажмите кнопку «Повторное соединение» (Рисунок 459).
Рисунок 459. Распределение меры «Sales Amount Quota» по измерениям «Sales Territory»
Обратите внимание, что мера «Sales Amount Quota» правильно распределена по измерениям «Sales Territory», потому что измерение Sales Territory теперь определено как ссылочное измерение. Кроме того, обратите внимание, что отображаются все элементы уровня финансового квартала, при этом значение каждого из элементов соответствует уровню квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения «Date» также установлена на уровне квартала. В следующей лабораторной работе будет рассмотрено, как распределять квартальную сумму пропорционально по месяцам.
Контрольные вопросы 1. Каким образом измерение куба связано со схемой базы данных? 2. Как создается связь обычного измерения между измерением куба и группой мер? 3. Как создается связь ссылочного измерения между измерением куба и группой мер?
4. Дайте определение понятию «измерение фактов». Каким образом хранятся данные этих измерений? 5. Каким образом создается связь измерений «многие ко многим»?
8. Определение вычислений Теоретическое введение Данная лабораторная работа посвящена вопросам определения вычислений, являющихся многомерными выражениями или сценариями многомерных выражений. Вычисления позволяют определять вычисляемые элементы, именованные наборы и другие команды сценариев, расширяющие возможности куба служб SSAS. Например, с помощью команды сценария можно определить вложенный куб и присвоить вычисление его ячейкам. Вычисление представляет собой многомерное выражение или сценарий, используемый для определения вычисляемого элемента, именованного набора или назначения с указанием области в кубе в службах SSAS. Вычисления позволяют добавлять объекты, определенные не данными куба, а выражениями, которые могут ссылаться на прочие части куба, другие кубы, или даже данные вне базы данных служб SSAS. Вычисления позволяют расширить возможности куба, увеличивая гибкость и производительность приложений бизнес-аналитики.
Вычисляемые элементы Вычисляемый элемент представляет собой элемент, значение которого вычисляется в процессе выполнения при помощи многомерного выражения, которое задается во время определения вычисляемого элемента. Вычисляемый элемент доступен для приложений бизнес-аналитики, равно как и любой другой. Вычисляемые элементы не увеличивают размер куба, потому что в кубе хранятся только определения; значения вычисляются в памяти, когда возникает необходимость ответить на запрос. Вычисляемые элементы можно определять для любого измерения, включая измерение мер. Вычисляемые элементы, созданные в измерении мер, называются вычисляемыми мерами. Хотя вычисляемые элементы обычно основаны на данных, уже существующих в кубе, можно создавать сложные выражения, объединяя данные с арифметическими операторами, числами и функциями. Также можно воспользоваться функциями многомерных выражений, например LookupCube, чтобы получить доступ к данным других кубов базы данных служб SSAS. В состав служб SSAS входят библиотеки стандартизированных функций приложения Visual Studio, при этом можно использовать хранимые процедуры для извлечения данных из источника, отличного от текущей базы данных служб SSAS. Например, предположим, что руководство судоходной компании хочет определить типы груза, наиболее выгодные с точки зрения перевозки, используя для этого показатель прибыли в расчете на единицу объема. Берется куб «Перевозки», содержащий измерения «Груз», «Флот» и «Время» и меры «Price_to_Ship» (Цена_перевозки), «Cost_to_Ship» (Стоимость_перевозки) и «Volume_in_Cubic_Meters» (Объем_в_кубических_метрах); однако в кубе нет меры для прибыльности. В кубе можно создать вычисляемый элемент как меру, именуемую
«Прибыль_за_кубический_метр», путем объединения существующих мер в следующем выражении: ([Measures].[Price_to_Ship] - [Measures].[Cost_to_Ship]) /[Measures].[Volume_in_Cubic_Meters] После создания вычисляемого элемента при следующем просмотре куба «Перевозки», мера «Прибыль_за_кубический_метр» появится вместе с другими мерами.
Именованные наборы Именованный набор представляет собой многомерное выражение инструкции CREATE SET, возвращающее набор (множество) элементов измерения. Можно определять именованные наборы и сохранять их как часть определения куба, а также создавать именованные наборы в клиентских приложениях. Для создания именованных наборов используется сочетание данных куба, арифметических операторов, чисел и функций. Именованный набор создается для многократного использования в запросах многомерных выражений. Именованный набор обеспечивает пользователям простоту создания запросов и, зачастую, позволяет использовать имя набора вместо выражений набора для сложных и часто применяемых выражений набора. Именованные наборы могут применяться пользователями в запросах многомерных выражений в клиентских приложениях, а также для определения наборов во вложенных кубах. Вложенный куб представляет собой коллекцию перекрестно соединенных наборов, ограничивающую для последующих инструкций пространство куба заданным подпространством. Определение ограниченного пространства куба является базовой концепцией в построении сценариев многомерных выражений. Именованные наборы упрощают запросы многомерных выражений и служат удобными псевдонимами для сложных регулярно используемых выражений наборов. Например, можно определить именованный набор с именем «Крупные торговые посредники», содержащий набор элементов измерения «Торговые посредники», у которых имеется наибольшее число служащих. Тогда конечные пользователи смогут использовать именованный набор «Крупные торговые посредники» в запросах, а вы сможете использовать его, чтобы определить набор во вложенном кубе. Определения именованных наборов хранятся в кубах, но их значения существуют только в памяти. Чтобы создать именованный набор, можно воспользоваться командой «Создать именованный набор» на вкладке «Вычисления» конструктора кубов.
Команды сценариев Команда сценария представляет собой сценарий многомерного выражения, включенный в состав определения куба. Команды сценария позволяют осуществлять практически любое действие, поддерживаемое многомерными выражениями в кубе, такие как отнесение вычисления только к части куба. В службах SSAS сценарии многомерных выражений можно применять как к кубу в целом, так и к отдельным его секциям в отдельных точках при выполнении сценария. Команда сценария по умолчанию, являющаяся инструкцией CALCULATE, заполняет ячейки в кубе статистическими данными, основанными на области по умолчанию. Областью по умолчанию является весь куб, но можно определить более ограниченную область, известную как вложенный куб, а затем применить сценарий многомерных выражений только к
этому конкретному пространству куба. Инструкция SCOPE определяет область всех последующих многомерных выражений и инструкций в пределах сценария вычислений до окончания или переопределения области. Затем используется инструкция THIS, чтобы применить многомерное выражение к текущей области. Можно использовать инструкцию BACK_COLOR, чтобы задать фоновый цвет ячеек в текущей области, что может быть полезно при отладке. Например, можно использовать команду сценария для распределения между сотрудниками квот на продажи по времени и территории продаж на основе взвешенных значений продаж за предыдущий период времени.
Определение вычислений При определении нового вычисления в конструкторе кубов оно добавляется в область «Организатор сценариев» на вкладке «Вычисления» конструктора кубов, а поля для конкретного типа вычисления отображаются в форме вычислений на панели «Выражения» вычисления. Вычисления выполняются в порядке, в котором они перечислены на панели «Организатор сценариев». Можно изменить порядок вычислений, щелкнув отдельное вычисление правой кнопкой мыши и выбрав команду «Переместить вверх» или «Переместить вниз» или выбрав вычисление и воспользовавшись значками «Переместить вверх» или «Переместить вниз» на панели инструментов вкладки «Вычисления». На вкладке «Вычисления» можно добавить новые вычисления, а также просмотреть или изменить существующие вычисления в одном из следующих представлений в области «Выражения» вычисления: 1. Представление формы. В этом представлении отображаются выражения и свойства отдельной команды в графическом формате. При редактировании сценария многомерных выражений поле выражения занимает все представление формы. 2. Представление сценария. В этом представлении отображаются все сценарии вычислений в редакторе кода, что позволяет легко изменять сценарии вычислений. Если панель «Выражения» вычисления находится в представлении сценария, окно «Организатор сценариев» скрыто. Представление сценария поддерживает выделение кода цветом, сопоставление скобок, автоматическую подстановку, а также области кода многомерных выражений. Можно развернуть или свернуть области кода многомерных выражений, чтобы упростить редактирование. Для добавления к кубу определенных вычислений также можно использовать мастер бизнесаналитики. Например, с помощью этого мастера можно добавить к кубу логику операций со временем, то есть определить вычисляемые элементы для времязависимых расчетов, таких, как временные интервалы, скользящие средние или рост за период.
Практические задания В задачах этой лабораторной работы определяются вычисляемые меры, чтобы обеспечить пользователям возможность просмотра коэффициента валовой прибыли и показателя продаж для осуществления продаж через Интернет, товарооборота посредников и всех других продаж.
Определение вычисляемых элементов Определение статистических вычислений для физических мер Откройте конструктор кубов для куба Analysis Services Tutorial и перейдите на вкладку «Вычисления» (Рисунок 460).
Обратите внимание, что по умолчанию в областях «Выражения» вычисления и «Организатор сценариев» доступна команда CALCULATE. Эта команда указывает, что меры в кубе должны быть вычислены в соответствии со значениями свойства «AggregateFunction». Значения мер обычно суммируются, но могут подсчитываться или статистически обрабатываться другим образом. На панели инструментов вкладки «Вычисления» нажмите кнопку «Создать вычисляемый элемент». В области «Выражения» вычисления будет отображена новая форма, в которой следует задать свойства нового вычисляемого элемента. Новый элемент также отображается в области «Организатор сценариев» (Рисунок 461).
Рисунок 461. Форма свойств нового вычисляемого элемента
В поле «Имя» измените имя вычисляемой меры на *Итоговая сумма продаж+. Если имя вычисляемого элемента содержит пробелы, его необходимо заключать в квадратные скобки. Обратите внимание, что в списке «Родительская иерархия» по умолчанию новый вычисляемый элемент создается в измерении «Measures». Вычисляемый элемент в измерении мер часто называют вычисляемой мерой. На вкладке «Метаданные» области «Средства вычисления» вкладки «Вычисления» последовательно раскройте узлы «Measures» и «Internet Sales», чтобы просмотреть метаданные для группы мер «Internet Sales» (Рисунок 462).
Рисунок 462. Метаданные для группы мер «Internet Sales»
Элементы метаданных можно перетянуть из области «Средства вычисления» в поле «Выражение», а затем добавить операторы и другие элементы для создания многомерных выражений. Кроме того, многомерное выражение можно ввести непосредственно в поле «Выражение». Перетяните показатель «Internet Sales – Sales Amount» из вкладки «Метаданные» области «Средства вычисления» в поле «Выражение» области «Выражения» вычисления. В поле Выражение после *Measures].[ Internet Sales – Sales Amount] введите знак плюс (+). На вкладке «Метаданные» панели «Средства вычисления» раскройте элемент «Reseller Sales» и перетащите показатель «Reseller Sales – Sales Amount» в поле «Выражение» панели «Выражения» вычисления после знака плюс (+) (Рисунок 463).
Рисунок 463. Сконструированное выражение
В списке «Строка форматирования» выберите «Currency». В списке «Установленное поведение» установите флажки для показателей Продажи через Интернет — сумма продаж и Товарооборот посредников — сумма продаж и нажмите кнопку ОК (Рисунок 464).
Рисунок 464. Указание параметров "Строка форматирования" и "Установленное поведение"
Меры, указанные в списке «Установленное поведение», используются для разрешения запросов NON EMPTY в многомерных выражениях. Если в списке «Установленное поведение» указана одна или несколько мер, в службах SSAS вычисляемый элемент считается пустым, если все указанные меры пусты. Если значение свойства «Установленное поведение не указано», в службах SSAS проводится оценка вычисляемого элемента с целью определения, является ли он пустым. В области инструментов вкладки «Вычисления» нажмите кнопку «Представление сценария» и просмотрите сценарий расчета в области «Выражения вычисления» (Рисунок 465).
Рисунок 465. Представление сценария
Обратите внимание, что новое вычисление добавляется в исходное выражение CALCULATE. Вычисления разделены точкой с запятой. Кроме того, обратите внимание, что в начале сценария вычисления отображается комментарий. Рекомендуется добавлять комментарии в сценарий для групп вычислений, поскольку в дальнейшем они помогут другим разработчикам понимать сложные сценарии вычислений. Добавьте новую строку в сценарий вычисления после команды Calculate; и перед добавленным сценарием вычислений, а затем введите на отдельной строке сценария следующий текст (Рисунок 466): /* Calculations to aggregate Internet Sales and Reseller Sales measures */
Рисунок 466. Добавленная строка комментария
На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление формы», убедитесь, что в области «Организатор сценариев» выбран показатель *Итоговая сумма продаж+, и нажмите кнопку «Создать вычисляемый элемент». Измените имя нового вычисляемого элемента на *Общая стоимость продукции+ и создайте следующее выражение в поле «Выражения»: [Measures].[Internet Sales-Total Product Cost] + [Measures].[Reseller Sales-Total Product Cost] В списке «Строка форматирования» выберите «Currency». В списке «Установленное поведение» установите флажки для показателей «Internet Sales-Total Product Cost» и «Reseller Sales-Total Product Cost» (Рисунок 467).
Рисунок 467. Параметры вычисления [Общая стоимость продукции]
Заданы два вычисляемых элемента, которые отображаются в области «Организатор сценариев» (Рисунок 468).
Рисунок 468. Созданные вычисляемые элементы
Эти вычисляемые элементы можно использовать в других вычислениях, если они будут впоследствии заданы в сценарии вычисления. Определение любого вычисляемого элемента можно просмотреть, выбрав его в области «Организатор сценариев». Оно отображается в области «Выражения» вычисления в представлении формы. Новые определенные вычисляемые элементы не отображаются в области «Средства вычисления», пока не будут развернуты. Вычисления не требуют обработки.
Создание вычислений коэффициента валовой прибыли Убедитесь. что в области «Организатор сценариев» выбран показатель *Общая стоимость продукции+ и нажмите кнопку «Создать вычисляемый элемент» на панели инструментов вкладки «Вычисления». В поле «Имя» измените имя новой вычисляемой меры на *Коэффициент валовой прибыли по продажам через Интернет+. В поле «Выражение» создайте следующее многомерное выражение:
([Measures].[Internet Sales-Sales Amount] - [Measures].[Internet Sales-Total Product Cost]) / [Measures].[Internet Sales-Sales Amount] В списке «Строка форматирования» выберите значение «Percent».В списке «Установленное поведение» установите флажок для показателя «Internet Sales-Sales Amount» (Рисунок 469).
Рисунок 469. Вычисляемая мера *Коэффициент валовой прибыли по продажам через Интернет+
На панели инструментов вкладки «Вычисления» нажмите кнопку «Создать вычисляемый элемент». В поле «Имя» измените имя новой вычисляемой меры на *Коэффициент валовой прибыли по продажам через торгового посредника+. В поле «Выражение» создайте следующее многомерное выражение: ([Measures].[Reseller Sales-Sales Amount] - [Measures].[Reseller Sales-Total Product Cost]) / [Measures].[Reseller Sales-Sales Amount] В списке «Строка форматирования» выберите значение «Percent». В списке «Установленное поведение» установите флажок для показателя «Reseller Sales-Sales Amount» (Рисунок 470).
Рисунок 470. Вычисляемая мера *Коэффициент валовой прибыли по продажам через торгового посредника+
На панели инструментов вкладки «Вычисления» нажмите кнопку «Создать вычисляемый элемент». В поле «Имя» измените имя вычисляемой меры на *Итоговый коэффициент валовой прибыли+. В поле «Выражение» создайте следующее многомерное выражение: ([Measures+.*Итоговая сумма продаж+ - [Measures+.*Общая стоимость продукции+) / [Measures+.*Итоговая сумма продаж+ Обратите внимание, что этот вычисляемый элемент ссылается на другие вычисляемые элементы. Этот вычисляемый элемент является допустимым, поскольку он рассчитывается после вычисляемых элементов, на которые ссылается. В списке «Строка форматирования» выберите значение «Percent». В списке Установленное поведение установите флажки для показателей «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount» (Рисунок 471).
На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление сценария» и просмотрите три вычисления, только что добавленные в сценарий вычисления. Добавьте новую строку в сценарий вычисления непосредственно перед вычислением *Коэффициент валовой прибыли по продажам через Интернет+, а затем введите на следующей строке сценария приведенный ниже текст (Рисунок 472): /* Calculations to calculate gross profit margin */
Рисунок 472. Представление сценария с добавленным комментарием
Создание вычислений «Проценты от общего» На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление формы». В области «Организатор сценариев» выберите показатель *Итоговый коэффициент валовой прибыли+ и нажмите кнопку «Создать вычисляемый элемент» на панели инструментов вкладки «Вычисления». Выбор последнего вычисляемого элемента в области «Организатор сценариев» перед нажатием кнопки «Создать вычисляемый элемент» гарантирует, что новый вычисляемый элемент будет добавлен в конец сценария. Сценарии выполняются в том порядке, в котором они отображаются в области «Организатор сценариев». Измените имя нового вычисляемого элемента на *Доля продаж через Интернет по всей номенклатуре продукции+. В поле «Выражение введите следующее выражение»: Case When IsEmpty( [Measures].[Internet Sales-Sales Amount] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[Internet Sales-Sales Amount]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[Internet Sales-Sales Amount] ) End В этом многомерном выражении рассчитывается доля каждого из товаров в итоговом значении продаж через Интернет. Использование инструкции Case в сочетании с функцией IS EMPTY позволяет избежать ошибки деления на ноль в том случае, если по данному товару отсутствуют продажи. В списке «Строка форматирования» выберите значение «Percent». В списке «Установленное поведение» установите флажок для показателя «Internet Sales – Sales Amount» (Рисунок 473).
Рисунок 473. Вычисляемая мера *Доля продаж через Интернет по всей номенклатуре продукции+
На панели инструментов вкладки «Вычисления» нажмите кнопку «Создать вычисляемый элемент». Измените имя нового вычисляемого элемента на *Доля товарооборота посредников по всей номенклатуре продукции+. В поле «Выражение» введите следующее выражение: Case When IsEmpty( [Measures].[Reseller Sales-Sales Amount] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[Reseller Sales-Sales Amount]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[Reseller Sales-Sales Amount] ) End В списке «Строка форматирования» выберите значение «Percent». В списке «Установленное поведение» установите флажок для показателя «Reseller Sales – Sales Amount» (Рисунок 474).
Рисунок 474. Вычисляемая мера *Доля товарооборота посредников по всей номенклатуре продукции+
На панели инструментов вкладки «Вычисления» нажмите кнопку «Создать вычисляемый элемент». Измените имя нового вычисляемого элемента на *Общая доля продаж по всей номенклатуре продукции+. В поле «Выражение» введите следующее выражение: Case When IsEmpty( [Measures].[Итоговая сумма продаж] ) Then 0 Else ( [Product].[Product Categories].CurrentMember, [Measures].[ Итоговая сумма продаж]) / ( [Product].[Product Categories].[(All)].[All], [Measures].[ Итоговая сумма продаж+ ) End В списке «Строка форматирования» выберите значение «Percent». В списке «Установленное поведение» установите флажки для показателей «Internet Sales – Sales Amount» и «Reseller SalesSales Amount» (Рисунок 475).
Рисунок 475. Вычисляемая мера *Общая доля продаж по всей номенклатуре продукции+
На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление сценариев» и просмотрите три вычисления, только что добавленные в сценарий вычисления. Добавьте новую строку в сценарий вычисления непосредственно перед вычислением *Доля продаж через Интернет по всей номенклатуре продукции+, а затем введите на следующей строке сценария приведенный ниже текст (Рисунок 476): /* Calculations to calculate percentage of product to total product sales */
Рисунок 476. Представление сценариев
Теперь создано восемь вычисляемых элементов, которые отображаются в области «Организатор сценариев» в представлении формы (Рисунок 477).
Рисунок 477. Созданные вычисляемые элементы
Просмотр новых вычисляемых элементов Разверните проект Analysis Services Tutorial. После успешного окончания развертывания перейдите на вкладку «Обзор», нажмите кнопку «Повторное соединение» и удалите все иерархии
и меры из области «Данные». В области «Метаданные» раскройте узел «Measures», чтобы отобразить новые вычисляемые элементы в измерении мер (Рисунок 478).
Рисунок 478. Созданные вычисляемые элементы
Добавьте меры «Итоговая сумма продаж», «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount» в область данных и просмотрите результаты (Рисунок 479).
Рисунок 479. Значения мер меры «Итоговая сумма продаж», «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount»
Обратите внимание, что мера «Итоговая сумма продаж» является суммой мер «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount».
Добавьте пользовательскую иерархию «Product Categories» в область фильтра области «Данные» и отфильтруйте данные по позиции «Mountain Bikes» (Горные велосипеды) (Рисунок 480).
Рисунок 480. Фильтр по иерархии «Product Categories»
Обратите внимание, что мера «Итоговая сумма продаж» рассчитывается для категории продаж товара «Mountain Bikes» на основе мер «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount». Добавьте пользовательскую иерархию «Date.Calendar Date» в область строк и просмотрите результаты (Рисунок 481).
Обратите внимание, что мера «Итоговая сумма продаж» рассчитывается за каждый календарный год для категории продаж товара «Mountain Bikes» на основе мер «Internet Sales – Sales Amount» и «Reseller Sales – Sales Amount». Добавьте меры «Итоговый коэффициент валовой прибыли», «Коэффициент валовой прибыли по продажам через Интернет» и «Коэффициент валовой прибыли по продажам через торгового посредника» в область данных и просмотрите результаты (Рисунок 482).
Рисунок 482. Добавленные меры «Итоговый коэффициент валовой прибыли», «Коэффициент валовой прибыли по продажам через Интернет» и «Коэффициент валовой прибыли по продажам через торгового посредника»
Обратите внимание, что коэффициент валовой прибыли по продажам через торгового посредника значительно ниже, чем по продажам через Интернет. Кроме того, обратите внимание, что коэффициент валовой прибыли по продажам горных велосипедов увеличивается с течением времени. Измените фильтр с «Mountain Bikes» на «Bikes» и просмотрите результаты (Рисунок 483).
Рисунок 483. Валовая прибыль по продажам всех велосипедов
Обратите внимание, что коэффициент валовой прибыли по всем велосипедам, проданным через торговых посредников, является отрицательным, поскольку туристические и дорожные велосипеды продаются в убыток. Измените фильтр на «Accessories» и просмотрите результаты (Рисунок 484).
Рисунок 484. Валовая прибыль по продажам ассесуаров
Обратите внимание, что продажа аксессуаров увеличивается с течением времени, но они составляют лишь небольшую часть общей суммы продаж. Кроме того, обратите внимание, что коэффициент валовой прибыли для продаж аксессуаров выше, чем для велосипедов. Последовательно раскройте узлы 2004 год, затем 2 полугодие 2004 года и 3 квартал 2004 года (Рисунок 485).
Рисунок 485. Отсутствующие данные по продажам
Обратите внимание, что в этом кубе не было продаж через Интернет после июля 2004 года и продаж через торгового посредника после июня 2004 года. Эти цифры по продажам еще не добавлены из систем источников в базу данных Adventure Works DW.
Определение именованных наборов Далее требуется определить два именованных набора: именованный набор «Основные товары» и именованный набор «Крупные торговые посредники».
Определение именованного набора «Основные товары» Перейдите на вкладку «Вычисления» конструктора кубов и нажмите кнопку «Представление формы» на панели инструментов. В области «Организатор сценариев» щелкните элемент *Общая доля продаж по всей номенклатуре продукции+ и на панели инструментов вкладки «Вычисления» нажмите кнопку «Создать именованный набор» (Рисунок 486).
Рисунок 486. Кнопка «Создать именованный набор» на панели инструментов
При определении нового вычисления на вкладке «Вычисления» следует помнить, что вычисления разрешаются в том порядке, в каком они приведены в области «Организатор сценариев». Положение фокуса ввода в этой панели при создании нового вычисления определяет порядок выполнения вычисления; определение нового вычисления создается непосредственно за тем вычислением, на котором находится фокус ввода. В поле «Имя» измените имя нового именованного набора на *Основные товары+. В области «Организатор сценариев» обратите внимание на особый значок, отличающий именованный набор от команды сценария или вычисляемого элемента (Рисунок 487).
Рисунок 487. Создание именованного набора *Основные товары+
На вкладке «Метаданные» области «Средства вычисления» последовательно раскройте элементы «Product», «Category», «Элементы» и «All Products». Если в области «Средства вычисления» не отображаются метаданные, нажмите кнопку «Повторное соединение» на панели инструментов. Перетащите элемент «Bikes» в поле «Выражение» (Рисунок 488).
Рисунок 488. Выражение набора
Создано выражение набора, которое будет возвращать набор элементов, относящихся к категории «Bikes» в измерении «Product».
Определение именованного набора «Крупные торговые посредники» Щелкните правой кнопкой мыши пункт *Основные товары+ в области «Организатор сценариев» и на панели инструментов нажмите кнопку «Создать именованный набор». В поле «Имя» измените имя этого именованного набора на *Крупные торговые посредники+. Для получения набора элементов с наибольшим числом сотрудников из иерархии атрибута «Имя торгового посредника» при ее пересечении с набором элементов в иерархии атрибута «Количество сотрудников» будет использована функция Exists. В поле «Выражение» введите Exists(). На вкладке «Метаданные» области «Средства вычисления» раскройте измерение «Reseller», а затем раскройте иерархию атрибута «Reseller Name». Перетащите уровень «Reseller Name» в скобки выражения набора Exists. Для получения всех элементов этого набора будет использована функция Members. После части выражения набора введите точку, а затем добавьте функцию Members. Выражение должно иметь следующий вид: Exists([Reseller].[Reseller Name].[Reseller Name].Members)
Теперь, когда определен первый набор для выражения Exists, можно приступить к добавлению второго набора — набора элементов измерения «Reseller», которое имеет наибольшее количество сотрудников. На вкладке «Метаданные» области «Средства вычисления» раскройте пункт «Number of Employees» в измерении «Reseller», раскройте строку «Элементы», а затем раскройте уровень «All Resellers» (Рисунок 489).
Рисунок 489. Уровень "All Resellers" измерения "Reseller"
Обратите внимание, что элементы этой иерархии атрибута не распределены по группам. Откройте конструктор измерений для измерения «Reseller» и в области «Атрибуты» выберите элемент «Number of Employees» (Рисунок 490).
Рисунок 490. Элемент "Number of Employees" в конструкторе измерения "Reseller"
В окне свойств измените значение свойства «DiscretizationMethod» на «Aotomatic», а затем измените значение свойства «DiscretizationBucketCount» на «5».
Разверните куб «Analysis Services Tutorial». После успешного завершения развертывания переключитесь в конструктор кубов, выберите куб «Analysis Services Tutorial» и нажмите кнопку «Повторное соединение» на панели инструментов «Вычисления». На вкладке «Метаданные» области «Средства вычисления» раскройте пункт «Number of Employees» в измерении «Reseller», раскройте строку «Элементы», а затем раскройте уровень «All Resellers» (Рисунок 491).
Рисунок 491. Группы элементов иерархии "Number of Employees"
Обратите внимание, что элементы этой иерархии атрибута сейчас хранятся в пяти группах с номерами от 0 до 4. Чтобы увидеть номер группы, наведите указатель мыши на группу и дождитесь всплывающей подсказки. Элементы этой иерархии атрибута распределены по группам, так как свойству «DiscretizationBucketCount» присвоено значение «5», а свойству «DiscretizationMethod» — значение «Automatic». В окне «Выражение» добавьте запятую в выражении для набора Exists после функции Members и перед закрывающей скобкой, а затем перетяните элемент «83 — 100» из области «Метаданные» и поместите его после запятой (Рисунок 492).
Рисунок 492. Именованный набор [Крупные торговые посредники]
Составлено выражение для набора Exists, которое будет возвращать набор элементов, пересекающийся с двумя указанными наборами: набором всех торговых посредников и набором посредников, имеющих от 83 до 100 сотрудников, когда на одной из осей будет находиться именованный набор [Крупные торговые посредники]. На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление сценария» и просмотрите два именованных набора, которые были добавлены к сценарию вычислений. Добавьте к сценарию вычислений новую строку непосредственно перед первой командой CREATE DYNAMIC SET, а затем добавьте к сценарию в отдельной строке следующий текст (Рисунок 493): /* named sets */
Рисунок 493. Добавленный комментарий
Определены два именованных набора, которые отображаются в области «Организатор сценариев». Теперь можно приступить к развертыванию этих именованных наборов и просмотру соответствующих измерений в кубе.
Просмотр куба с использованием новых именованных наборов Разверните куб «Analysis Services Tutorial». После успешного окончания развертывания откройте вкладку «Обозреватель» и нажмите кнопку «Повторное соединение». Удалите все иерархии и меры в области «Данные». Добавьте меру «Reseller Sales – Sales Amount» в область данных, а затем добавьте пользовательскую иерархию «Product Categories» в область строк (Рисунок 494).
Рисунок 494. Распределение меры "Reseller Sales - Sales Amount" по пользовательской иерархии "Product Categories"
Раскройте строку «Bikes», чтобы увидеть элементы уровня «Subcategories» (Рисунок 495).
Рисунок 495. Элементы уровня «Subcategories»
В области «Метаданные» в измерении «Product» щелкните правой кнопкой мыши именованный набор «Основные товары» и в контекстном меню выберите пункт «Добавить в область вложенных кубов» (Рисунок 496).
Рисунок 496. Фильтр по именованному набору "Основные товары"
Обратите внимание, что в кубе остались только элемент «Bikes» атрибута «Category» и элементы подкатегорий, входящих в категорию «Bikes». Это связано с тем, что именованный набор «Основные товары» используется для определения вложенного куба, свойства которого отображаются в области «Фильтр», находящейся над областью «Данные». Этот вложенный куб
ограничивает число элементов атрибута «Category» в измерении «Product» внутри вложенного куба элементами именованного набора «Основные товары». В области «Метаданные» раскройте элемент «Reseller», щелкните правой кнопкой мыши элемент «Крупные торговые посредники» и выберите команду «Добавить в область вложенных кубов» (Рисунок 497).
Рисунок 497. Фильтр по именованному набору «Крупные торговые посредники»
Обратите внимание, что мера «Reseller Sales – Sales Amount» в области «Данные» отображает количество продаж только для крупных посредников, продающих велосипеды. Кроме того, обратите внимание, что в области «Фильтр» теперь отображаются два созданных именованных набора, которые используются для определения именно этого вложенного куба.
Определение назначений с указанием области с помощью команд сценариев Далее будут применены инструкции SCOPE и THIS, чтобы определить квоты продаж для каждого финансового квартала финансового года 2005. Затем квоты продаж будут распределены по месяцам для всех финансовых годов в кубе. Также будет рассмотрено применение точек останова для отладки сценария вычисления.
Просмотр распределения квот на количество продаж по датам и сотрудникам Откройте конструктор кубов для куба Analysis Services Tutorial и откройте вкладку «Обозреватель». Удалите все иерархии и измерения в области «Данные» и все элементы измерений в области «Фильтр». В раздел данных области «Данные» добавьте меру «Sales Amount Quota» из группы мер «Sales Quotas». Добавьте определенную пользователем иерархию «Fiscal Date» из измерения «Date» в область столбцов. Добавьте иерархию атрибута «Employee Name» из измерения «Employee» в область строк (Рисунок 498).
Рисунок 498.Распределение меры «Sales Amount Quota» по финансовым годам и сотрудникам
Обратите внимание, что для финансового года 2005 не задано никаких значений квот продаж. В области столбцов нажмите кнопку со стрелкой рядом с иерархией «Fiscal Year», снимите флажки рядом с «FY 2002» и «FY 2003», а затем нажмите кнопку ОК. В области столбцов последовательно разверните узлы «FY2004», «H2 FY 2004» и «Q4 FY 2004» (Рисунок 499).
Рисунок 499. Квота продаж по каждому из сотрудников, которые имеют квоту продаж на каждый месяц четвертого квартала 2004 финансового года
Обратите внимание, что квота суммы продаж для каждого финансового месяца финансового квартала совпадает с квотой суммы продаж для этого финансового квартала. Это обусловлено тем, что гранулярность измерения времени в группе мер «Sales Quota» установлена на уровне квартала, что обсуждалось в предыдущей лабораторной работе.
Определение области вычисления квоты суммы продаж в финансовом году 2005 Выберите вкладку «Вычисления», а затем нажмите кнопку «Представление формы» на панели инструментов.
В области «Организатор сценариев» выберите элемент «Крупные посредники», а затем нажмите кнопку «Создать команду сценария» на панели инструментов вкладки «Вычисления» (Рисунок 500).
Рисунок 500. Кнопка «Создать команду сценария» на панели инструментов вкладки «Вычисления»
Обратите внимание, что в области «Выражения вычислений» отображается пустой сценарий и что команда этого сценария отобразится с пустым заголовком в области «Организатор сценариев». В области «Выражения вычислений» введите следующую инструкцию: /* Changing Scope to All or Default Member */ SCOPE (ROOT()) Инструкция SCOPE изменит область куба на «Все» или на элемент по умолчанию для всех атрибутов в этом кубе (Рисунок 501).
Рисунок 501. Созданная команда сценария SCOPE (ROOT())
Нажмите кнопку «Создать команду сценария» в области инструментов вкладки «Вычисления», а затем введите следующую инструкцию в области «Выражения вычислений» (Рисунок 502): /* Defining the cube scope for the sales amount quotas for FY2005 */ SCOPE ()
Рисунок 502. Конструирование команды SCOPE для FY2005
Обратите внимание, что под последним выражением появится волнистая красная линия, которая указывает, что в скобках необходимо указать набор элементов для инструкции SCOPE. Затем добавьте меру «Sales Amount Quota» в инструкцию SCOPE, чтобы включить ее в область. На вкладке «Метаданные» области «Средства вычисления» раскройте элементы «Measures» и «Sales Amount Quota», затем перетащите элемент «Sales Amount Quota» в скобки инструкции SCOPE в области «Выражения вычислений» (Рисунок 503).
Рисунок 503. Добавление элемента «Sales Amount Quota» в инструкцию SCOPE
Обратите внимание, что красная волнистая линия исчезла. После этого необходимо добавить элемент измерения «FY 2005» в инструкцию SCOPE, чтобы внести этот элемент измерения времени в текущую область. На вкладке «Метаданные» области «Средства вычисления» раскройте измерение «Date», затем элементы «Fiscal Date», «Fiscal Year» и перетащите элемент «FY 2005» в инструкцию SCOPE в области «Выражения вычислений» сразу после элемента *Sales Amount Quota+ определяемого набора. Обратите внимание на волнистую красную линию под частью *Date+ нового элемента набора. Эта линия указывает, что прямо перед этим элементом измерения имеется синтаксическая ошибка, так как в инструкции SCOPE все элементы набора должны отделяться запятыми. Добавьте необходимую запятую перед частью *Date+ элемента «FY 2005» в измерении «Date» (Рисунок 504).
Рисунок 504. Добавление элемента «FY2005» в инструкцию SCOPE
Обратите внимание, что красная волнистая линия исчезла. Затем из измерения «Employee» добавьте элементы пользовательской иерархии «Employees» в инструкцию SCOPE, чтобы добавить эти элементы в текущую область действия. На вкладке «Метаданные» области «Средства вычисления» раскройте измерение «Employee» и перетащите определяемую пользователем иерархию «Employees» в инструкцию SCOPE в области «Выражения вычислений» сразу после элемента *Date+.*Fiscal Date+.*Fiscal Year+.&*2005+ в определяемом наборе данных. Обратите внимание на волнистую красную линию под частью *Employee+ нового элемента набора, которая означает, что элементы инструкции SCOPE должны быть разделены запятыми. Поставьте нужную запятую перед частью *Employee+ нового элемента (Рисунок 505).
Рисунок 505. Добавление пользовательской иерархии «Employees» в инструкцию SCOPE
Обратите внимание, что красная волнистая линия исчезла. В конце элемента *Employee+.*Employees+ этого набора в инструкции SCOPE добавьте следующее предложение, чтобы завершить определение третьего элемента набора: .Members Это предложение указывает, что в текущую область куба должны быть включены все элементы иерархии «Employees» измерения «Employee». Убедитесь, что завершенная инструкция SCOPE соответствует следующему сценарию: /* Defining the cube scope for the sales amount quotas for FY2005 */ SCOPE ([Measures].[Sales Amount Quota], [Date].[Fiscal Date].[Fiscal Year].&[2005], [Employee].[Employees].Members)
Была определена область, определяющая вложенный куб, к которому будет применяться многомерное выражение для вычисления квот продаж для финансового года 2005. На панели инструментов вкладки «Вычисления» нажмите кнопку «Представление сценария» и просмотрите последние добавленные команды (Рисунок 506).
Рисунок 506. Добавленные в представление сценария команды
Обратите внимание, что каждая команда сценария появляется в виде, введенном в области «Выражения вычислений», однако в конце ее стоит точка с запятой. Также обратите внимание, что службы SSAS вставили примечание перед каждой командой сценария, которое позволяет понять смысл отдельной команды.
Определение и проверка нового вычисления квоты продаж для финансового года 2005 Далее в сценарий будет добавлена новая команда, вычисляющая размер квоты продаж на 2005 финансовый год по всем элементам измерения «Employee». Однако вместо представления «Форма» команда будет добавлена прямо в представление сценария. В представлении «Сценарий» между командами сценария необходимо ставить точку с запятой. В представлении «Сценарий» введите следующую инструкцию на новой строке в конце сценария вычисления: * Applying a calculation to the subcube */ THIS = [Date].[Fiscal Date].[Fiscal Year].&[2004] * 1.25;
Инструкция THIS присваивает мере «Sales Amount Quota» новое значение на пересечении элементов «Employee» и «FY 2005» вложенного куба. Новое значение основано на значении, существующем на пересечении элемента «Employee» и меры «Sales Amount Quota» для финансового года 2004, умноженного на 1,25. В области «Выражения вычислений» щелкните границу слева от инструкции THIS, чтобы задать точку останова (Рисунок 507).
Рисунок 507. Точка останова
Заметьте, что на этой границе появилась красная точка, а инструкция выделена красным цветом. При выполнении проекта в режиме отладки измененный проект будет развернут на экземпляре служб SSAS, куб будет обработан и сценарий вычисления будет выполнен до точки останова. Затем можно продолжить выполнение по шагам. Если не задать точку останова и выполнить проект в режиме отладки, то сценарий вычисления прервется на первой инструкции сценарии, то есть на инструкции CALCULATE. В меню «Отладка» выберите команду «Начать отладку». Также можно нажать клавишу F5. Проект будет развернут и обработан, а сценарий вычисления будет выполнен вплоть до точки останова (Рисунок 508).
Рисунок 508. Сценарий, выполненный до точки останова
Скрыв все закрепленные окна, можно освободить больше площади для просмотра области «Сводная таблица», отображаемой в нижней части вкладки» Вычисления». Область «Сводная таблица» помогает в отладке. В области «Сводная таблица» в раздел данных добавьте меру «Sales Amount Quota», в область столбцов добавьте определяемую пользователем иерархию «Fiscal Date», а затем в область строк — иерархию атрибута «Employee Name» из измерения «Employee». Выполните прокрутку до нижней части сводной таблицы и просмотрите сотрудников, для которых назначены квоты продаж (Рисунок 509).
Рисунок 509. Сотрудники, для которых назначены квоты продаж
Обратите внимание, что в элементе «FY 2005» уровня «Fiscal Year» для меры «Sales Amount Quota» ни у одного сотрудника нет значения в области данных меры «Sales Amount Quota». По умолчанию в режиме отладки в области «Сводная таблица» отображаются пустые ячейки. Нажмите клавишу F10, чтобы выполнить инструкцию THIS и вычислить квоты продаж для финансового года 2005 (Рисунок 510).
Рисунок 510. Квоты продаж для финансового года 2005
Обратите внимание, что теперь в области «Сводная таблица» вычислены ячейки на пересечении меры «Sales Amount Quota», элемента измерения «FY 2005» и элемента «Employee Name».
Заметьте также, что ячейки, затронутые инструкцией THIS, выделены желтым цветом. Включить или отключить выделение измененных ячеек можно с помощью значка инструментов. По умолчанию, измененные ячейки выделены.
на панели
В области «Сводная таблица» снимите флажки «FY 2002», «FY 2003» и «FY 2004», чтобы удалить эти элементы из области столбцов. Щелкните правой кнопкой мыши в любом месте области данных и в контекстном меню выберите пункт «Показывать пустые ячейки», чтобы удалить флажок, поставленный для этого параметра, и скрыть пустые ячейки (эта функция доступна также на панели инструментов вкладки «Вычисления» ). Это упростит просмотр всех сотрудников, имеющих значения для квоты суммы продаж (Рисунок 511).
Рисунок 511. Сотрудники, имеющие значения для квоты суммы продаж
Попытайтесь развернуть узел «FY 2005» в разделе столбцов области «Сводная таблица». Обратите внимание, что раскрыть элемент «FY2005» не удается, так как значения элемента «H1 FY 2005» на пересечении меры «Sales Amount Quota» и иерархии атрибута «Employee Name» не были вычислены (поскольку они оказались вне текущей области). Чтобы просмотреть пустые ячейки для значений элементов «H1 FY 2005», щелкните в любом месте области «Сводная таблица» и в контекстном меню выберите команду «Показывать пустые ячейки», чтобы показать все пустые ячейки. В меню «Отладка» выберите команду «Остановить отладку» (или нажмите сочетание клавиш Shift-F5). Удалите точку останова в сценарии вычисления, щелкнув красную точку на левом поле.
Распределение квоты суммы продаж по полугодиям и кварталам финансового года 2005 Далее будет изменена область расчетов, чтобы включить элементы финансового полугодия 2005 финансового года вместо элемента 2005 финансового года, для каждого из которых будет выделена половина значения квоты продаж для 2005 финансового года. Затем в область вместо элемента 2005 финансового года включаются элементы кварталов 2005 финансового года, и для
каждого из них выделяется четверть значения квоты продаж на 2005 финансовый год. В завершение будет произведена проверка выделенных значений. В представлении «Сценарий» области «Выражения вычислений» введите следующую инструкцию в новой строке в конце сценария вычисления: /* Allocation of Sales Amount Quota to the 2005 Fiscal Semesters */ SCOPE ( [Date].[Fiscal Semester].[Fiscal Semester].Members );
Эта инструкция SCOPE вложена в другую инструкцию SCOPE, поскольку инструкция END SCOPE расположена между данной инструкцией SCOPE и предыдущей инструкцией SCOPE. При вложении инструкции SCOPE вложенная инструкция SCOPE наследует область родительской инструкции для атрибутов, область которых не изменяется. Предыдущая инструкция SCOPE не изменяет меру «Sales Amount Quota», пользовательскую иерархию «Employees» или пользовательскую иерархию «Fiscal Date» непосредственно. Она добавляет в определение вложенного куба все элементы иерархии атрибута «Fiscal Semester» (с помощью функции Members). В результате выполнения вложенной инструкции SCOPE пространство куба будет включать все элементы на пересечении элемента «Employee» и меры «Sales Amount Quota» в любом финансовом полугодии 2005 финансового года. Обратите внимание, что в данный момент этот финансовый год содержит всего одно полугодие. В области «Выражения вычислений» введите следующую инструкцию на новой строке в конце сценария вычисления: THIS = [Date].[Fiscal Date].CurrentMember.Parent / 2;
Эта инструкция присваивает каждому финансовому полугодию в определенном пространстве куба значение, вычисленное для этого финансового квартала. Функция CurrentMember.Parent выделяет каждому элементу половину значения его родителя. В области «Выражения вычислений» введите следующую инструкцию на новой строке в конце сценария вычисления: /* Allocation of Sales Amount Quota to the 2005 Fiscal Quarters */ SCOPE ( [Date].[Fiscal Quarter].[Fiscal Quarter].Members );
Эта инструкция SCOPE также вложена в другую инструкцию SCOPE, поскольку инструкция END SCOPE расположена между данной инструкцией SCOPE и предыдущей инструкцией SCOPE. Предыдущая инструкция SCOPE не изменяет меру «Sales Amount Quota», пользовательскую иерархию «Employees» или пользовательскую иерархию «Fiscal Date» непосредственно. Она добавляет в определение вложенного куба каждый элемент иерархии атрибута «Fiscal Quarter» (с помощью функции Members). В результате пространство куба включает все элементы на пересечении элемента «Employee» и меры «Sales Amount Quota» каждого финансового квартала 2005 финансового года (в данный момент этот финансовый год содержит всего один квартал). В области «Выражения вычислений» введите следующую инструкцию на новой строке в конце сценария вычисления: THIS = [Date].[Fiscal Date].CurrentMember.Parent / 2
Эта инструкция присваивает каждому финансовому кварталу в определенном пространстве куба значение, вычисленное для этого финансового квартала. Функция CurrentMember.Parent используется, чтобы присвоить каждому элементу половину значения его родителя. На панели «Выражения вычислений» щелкните границу рядом с последней инструкцией SCOPE, чтобы установить точку останова, а затем нажмите клавишу F5 (Рисунок 512).
Рисунок 512. Точка останова
Сценарий вычисления будет выполнен до этой точки останова. Щелкните сначала правой кнопкой мыши в любом месте раздела данных области «Сводная таблица», а затем в контекстном меню выберите пункт «Показывать пустые ячейки», чтобы скрыть пустые ячейки (Рисунок 513).
Рисунок 513. Область данных со скрытыми пустыми ячейками
Обратите внимание, что область данных заполняется теми же мерами и иерархиями, которые использовались при последнем проходе отладчика, а значение элемента «H1 FY 2005» вычисляется, как половина родительского. Обратите внимание, что значение для каждого элемента «FY 2005» вычисляется заново на основе статистической обработки его элементов, в данном случае первого финансового полугодия финансового года. Значение элемента 2005-го финансового года зависит от вычисления элемента «Fiscal Semester 2005», так как каждый сценарий выполняется в отдельном проходе. Чтобы сделать существующее выражение не изменяемым последующими инструкциями сценария вычисления, используйте инструкцию FREEZE, которая фиксирует текущие значения ячеек заданного вложенного куба. Когда ячейки зафиксированы, изменения в других ячейках не влияют на них. В области столбцов раскройте элемент «H1 FY 2005». Обратите внимание, что значения элемента «Q1 FY 2005» еще не вычислялись. Щелкните сначала в любом месте раздела данных области Сводная таблица, а затем значок «Показывать пустые ячейки» ( ) в области инструментов вкладки «Вычисления». В области столбцов раскройте элемент «Q1 FY 2005» (Рисунок 514).
Рисунок 514. Содержимое элемента «Q1 FY 2005»
Обратите внимание, что двум месяцам первого квартала 2005 финансового года не присвоено значение, так как они пока не включены в область текущего вложенного куба (до тех пор, пока не выполнены последние две инструкции сценария). Измерение времени в кубе Analysis Services Tutorial содержит только два первых месяца финансового года 2005. Поэтому элементы «Q2 FY 2005» отсутствуют. Нажмите клавишу F10, чтобы выполнить инструкцию SCOPE, после чего нажмите клавишу F10 снова, чтобы выполнить последнюю инструкцию сценария вычисления, которая применит данное вычисление к текущему вложенному кубу.
Рисунок 515. Значения элемента Q1 FY 2005
Обратите внимание, что вычисляется значение элемента «Q1 FY 2005», при этом значения элементов «H1 FY 2005» и «FY2005» вычисляются повторно (как результат статистической обработки их дочерних элементов). Кроме того, обратите внимание, что значение для каждого
финансового месяца финансового года 2005 (июля и августа 2005-го года) не вычисляется. На следующем этапе будут присвоены соответствующие значения каждому из кварталов. В меню «Отладка» выберите команду «Остановить отладку» (или нажмите сочетание клавиш Shift + F5). Удалите точку останова в сценарии вычисления.
Распределение квот продаж по месяцам В области «Выражения вычислений» введите следующую инструкцию на новой строке в конце сценария вычисления: /* Allocate Quotas to Months */ SCOPE ( [Date].[Fiscal Date].[Month Name].Members );
Данная инструкция SCOPE является вложенной инструкцией области, она изменяет пространство куба, к которому применено многомерное выражение, чтобы присвоить квоты суммы продаж для каждого финансового месяца на основе значений, указанных для каждого финансового квартала. Эта инструкция SCOPE аналогична предыдущей вложенной инструкции SCOPE, однако в ней переопределяется область самой определенной пользователем иерархии «Fiscal Date». Поэтому элементы пространства куба вместо элементов финансового месяца финансового года 2005 теперь будут включать в себя все элементы финансового месяца измерения «Date». В области «Выражения вычислений» введите следующую инструкцию на новой строке в конце сценария вычисления: THIS = [Date].[Fiscal Date].CurrentMember.Parent / 3;
Эта инструкция присваивает каждому элементу месяца иерархии «Fiscal Date» треть значения его родителя уровня квартала. Это вычисление будет применено ко всем финансовым месяцам куба. В области «Выражения вычислений» щелкните границу слева от последней инструкции THIS, чтобы установить точку останова, а затем нажмите клавишу F5 (Рисунок 516).
Рисунок 516. Просмотр значений для июля и августа 2004 года.
Обратите внимание, что для июля и для августа 2004 года значения не вычислены. Щелкните правой кнопкой мыши область «Данные» и к контекстном меню выберите команду «Показывать пустые ячейки», чтобы отобразить только ячейки, имеющие значения. Это позволит легче проследить, как последняя инструкция применяется в сценарии вычисления. Нажмите клавишу F10, чтобы выполнить последнюю инструкцию (Рисунок 517).
Рисунок 517. Вычисленные значения для июля и августа 2004 года.
Обратите внимание, что значение «Sales Amount Quota» для каждого сотрудника в каждом финансовом месяце равно трети значения родительского элемента. В области столбцов удалите элемент «FY 2005» и добавьте элемент «Q4 FY 2004». Последовательно раскройте элементы «FY 2004», «H2 FY 2004» и «Q4 FY 2004» ().
Заметьте, что значение для каждого финансового месяца равно трети итогового значения для финансового квартала. В меню «Отладка» выберите команду «Остановить отладку». Удалите точку останова в сценарии вычисления. На панели инструментов нажмите кнопку «Сохранить все».
Контрольные вопросы 1. Дайте определение понятию «вычисление». Какие существуют виды вычислений в SSAS?
2. Дайте определение понятиям «вычисляемый элемент» и «вычисляемая мера». 3. Дайте определение понятию «именованный набор». Каким образом он создается? 4. Какие функции могут выполнять команды сценариев?
9. Определение ключевых индикаторов производительности Данная лабораторная работа посвящена определению ключевых индикаторов производительности в проекте служб SSAS. Ключевые индикаторы производительности предоставляют среду для определения вычислений по мерам деятельности организации на стороне сервера, а также приводят к единому виду отображения результатов. Ключевые индикаторы производительности могут отображаться в отчетах, порталах и инструментальных панелях, через API-интерфейсы доступа к данным, а также с использованием средств Microsoft и средств сторонних производителей. Ключевые индикаторы производительности представляют собой упакованные в метаданные обычные меры и иные многомерные выражения.
Теоретическое введение
Понятие KPI Употребляемый в деловой лексике термин «ключевой индикатор производительности» (Key Performance Indicator, KPI) означает количественно исчислимую меру успешности бизнеса. В службах SSAS ключевой индикатор производительности представляет собой коллекцию вычислений, связанных с группой мер куба и используемых для оценки успешности бизнеса. Обычно такие вычисления являются сочетанием многомерных выражений или вычисляемых элементов. В состав ключевых индикаторов производительности также входят метаданные, определяющие способ отражения клиентскими приложениями результатов вычислений ключевого индикатора производительности. Ключевой индикатор производительности применяется для обработки информации о заданной цели, записанной в кубе фактической формулы производительности и результатах измерений, которые показывают тренд и состояние производительности. Объекты AMO используются для задания формул и других определений, касающихся значений ключевого индикатора производительности. Интерфейс запроса, такой как ADOMD.NET, используется в клиентском приложении для выборки и предоставления конечному пользователю доступа к значениям ключевого индикатора производительности. Простой объект KPI состоит из основной информации, цели, фактически достигнутого значения, значения состояния, значения тренда и папки, в которой можно выполнить просмотр ключевого индикатора производительности. Основная информация включает имя и описание ключевого индикатора производительности. Цель — это многомерное выражение, вычисление которого приводит к получению некоторого числа. Фактическое значение — это многомерное выражение, вычисление которого приводит к получению некоторого числа. Значение статуса и тренда — это многомерные выражения, вычисление которых приводит к получению некоторого числа. Папка — это предлагаемое местоположение для ключевого индикатора производительности, информация о котором должна быть предоставлена клиенту.
Главным преимуществом ключевых индикаторов производительности, реализованных в службах SSAS, является то, что они представляют собой серверные ключевые индикаторы производительности, которые могут использоваться различными клиентскими приложениями. Серверные ключевые индикаторы производительности выражают истину в последней инстанции по сравнению с независимыми показателями «истины», полученными в отдельных клиентских приложениях. Более того, часто выполнение сложных расчетов на сервере, а не на клиентском компьютере может быть выполнено значительно более эффективно.
Общие термины ключевых индикаторов производительности В Таблица 11 представлены определения стандартных терминов ключевых индикаторов производительности в службах SSAS. Таблица 11. Определения терминов KPI
Термин
Определение
Цель
Численное многомерное выражение или вычисление, которое возвращает целевое значение ключевого индикатора производительности.
Значение
Численное многомерное выражение, которое возвращает фактическое значение ключевого показателя производительности.
Состояние
Многомерное выражение, которое отражает состояние ключевого индикатора производительности в определенный момент времени. Многомерное выражение состояния должно возвращать нормализованное значение в диапазоне от -1 до 1. Значения, равные или меньшие -1, будут интерпретироваться как «плохое» или «низкое» значение. Значение, равное нулю (0), интерпретируется как «приемлемое» или «среднее». Значения, большие или равные 1, будут интерпретироваться как «хорошие» или «высокие». При необходимости может быть возвращено неограниченное количество промежуточных значений, которые могут использоваться для отображения любого числа дополнительных состояний, при условии поддержки со стороны клиентского приложения.
Тренд
Многомерное выражение, которое оценивает значение ключевого индикатора производительности с течением времени. Тренд может быть любым критерием, основанным на времени и имеющим смысл в некотором бизнес-контексте. Многомерное выражение тренда позволяет пользователю определять, улучшается или ухудшается значение ключевого индикатора производительности с течением времени.
Индикатор состояния
Видимый элемент, благодаря которому можно быстро получить представление о состоянии ключевого индикатора производительности. Отображаемое значение элемента зависит от значения многомерного
выражения, которое оценивает состояние. Индикатор тренда
Видимый элемент, благодаря которому можно быстро получить представление о тренде ключевого индикатора производительности. Отображаемый элемент зависит от значения многомерного выражения, оценивающего тренд.
Папка отображения
Папка, в которой пользователь, просматривающий куб, увидит ключевой индикатор производительности.
Ссылка на существующий ключевой индикатор производительности, который использует значение дочернего индикатора при вычислении родительского. Иногда один ключевой индикатор производительности будет представлять собой вычисление, составленное из значений других индикаторов. Данное свойство позволяет точнее отображать дочерние ключевые индикаторы производительности под родительским в клиентских приложениях.
Элемент текущего времени
Многомерное выражение, которое возвращает элемент, идентифицирующий временный контекст ключевого индикатора.
Вес
Численное многомерное выражение, которое назначает ключевому индикатору производительности значение относительной важности. Если ключевой индикатор производительности назначен родительскому ключевому индикатору, то при вычислении значения родительского ключевого индикатора его вес используется для пропорциональной регулировки результатов значения дочернего.
Родительские ключевые показатели производительности Организация может отслеживать различные бизнес-метрики на различных уровнях. Например, для оценки успешности коммерческой деятельности в рамках всей компании можно использовать только два или три ключевых показателя, но эти общие показатели могут иметь в своей основе три или четыре других ключевых показателя производительности, отслеживаемых подразделениями организации. Кроме того, подразделения организации для вычисления одного и того же ключевого индикатора производительности могут пользоваться другими статистическими данными, а результаты использовать для выведения ключевого индикатора, общего для всей организации. Службы SSAS позволяют определить связь типа «родители-потомки», существующую между ключевыми индикаторами. Такая связь позволяет использовать результаты дочернего ключевого индикатора производительности для вычисления результатов родительского. Также клиентские приложения могут использовать данную связь для правильного отображения родительских и дочерних ключевых индикаторов производительности.
Веса Веса также можно присваивать дочерним ключевым индикаторам производительности. Вес позволяет службам SSAS пропорционально регулировать результаты дочернего индикатора во время вычисления значения родительского.
Извлечение и отображение ключевых индикаторов производительности Отображение ключевых индикаторов производительности зависит от реализации клиентского приложения. Например, нажатие кнопки «Представление обозревателя» на панели инструментов на вкладке «Ключевые индикаторы производительности» конструктора кубов демонстрирует одну возможную реализацию клиента, в которой для отображения индикаторов состояния и тренда используются графические средства, для группировки ключевых индикаторов производительности используются папки отображения, а дочерние ключевые индикаторы производительности отображаются под родительским. Можно использовать функции многомерных выражений для извлечения таких отдельных частей ключевого индикатора производительности, как значение или цель для последующего использования в многомерных выражениях, инструкциях и сценариях.
Определение KPI Чтобы определить ключевой индикатор производительности, сначала задается его имя и группа мер, с которой он будет связан. Ключевой индикатор производительности может быть связан со всеми группами мер или с одной из них. Затем предстоит определить следующие элементы ключевого индикатора производительности: 1. выражение значения - представляет собой физическая мера (например, «Продажи»), вычисляемая мера (такая как «Прибыль») или вычисление, которое определено в ключевом индикаторе производительности с использованием многомерного выражения; 2. целевое выражение - представляет собой константу или многомерное выражение, результатом которого является значение, определяющее цель для меры, которая определяется выражением значения. Например, целевое выражение может быть суммой, на которую руководство предприятия хотело бы увеличить продажи или прибыль; 3. выражение состояния - является многомерным выражением, в результате вычисления которого службы Analysis Services возвращают текущее состояние выражения значения относительно целевого выражения. Целевое значение представляет собой нормализованное значение в диапазоне от -1 до +1 (-1 — очень плохо, а +1 — очень хорошо). Выражение состояния отображается в графическом виде, позволяя легко определить состояние выражения значения относительно целевого выражения; 4. выражение тренда - является многомерным выражением, которое используется в службах Analysis Services для вычисления текущего тренда (тенденции к увеличению или уменьшению) выражения значения по сравнению с целевым выражением. Выражение тренда помогает пользователю быстро определить, улучшается или ухудшается выражение значения относительно целевого выражения. С выражением тренда может быть связано одно или несколько графических изображений, что помогает пользователям быстро понять текущий тренд. В дополнение к перечисленным элементам, которые указываются для ключевого индикатора производительности, можно настроить несколько свойств ключевого индикатора производительности. К этим свойствам относятся папка отображения, родительский ключевой индикатор производительности, если индикатор вычисляется по данным других индикаторов,
текущий элемент времени (при его наличии), вес индикатора (при его наличии), а также описание индикатора.
Практические задания В данной лабораторной работе предстоит определить ключевые индикаторы производительности в представлении формы, а также просмотреть с их помощью данные куба в обозревателе. Будут определены два ключевых индикатора производительности в проекте «Analysis Services Tutorial» и выполнен их просмотр в кубе «Analysis Services Tutorial». Будут определены следующие ключевые индикаторы производительности: 1. доход от продаж через торгового посредника - с помощью этого индикатора можно оценить, как фактический товарооборот посредников соотносится с квотами на продажи через посредников, как близко находится достигнутый объем продаж к целевому и каков тренд достижения цели; 2. коэффициент общей валовой прибыли продукта - этот ключевой индикатор производительности показывает, насколько близок коэффициент общей валовой прибыли для каждого продукта к целевой границе, а также показывает тренд достижения этой цели.
Определение ключевого индикатора производительности «Доход от продаж через торгового посредника» Откройте в конструкторе кубов куб Analysis Services Tutorial и перейдите на вкладку «Ключевые индикаторы производительности» (Рисунок 518).
Вкладка «Ключевые индикаторы производительности» содержит несколько панелей. В левой части вкладки расположены панели «Организатор ключевых индикаторов производительности» и «Средства вычисления». Панель отображения в центре вкладки содержит подробные сведения об индикаторе, выбранном на панели «Организатор ключевых индикаторов производительности». На панели инструментов вкладки «Ключевые индикаторы производительности» нажмите кнопку «Создать ключевой индикатор производительности». На панели отображения будет выведен пустой шаблон индикатора (Рисунок 519).
Рисунок 519. Шаблон индикатора производительности
В поле «Имя» введите «Доход от продаж через торгового посредника» и выберите «Reseller Sales» в списке «Связанная группа мер». На вкладке «Метаданные» панели «Средства вычисления» раскройте узлы «Measures» и «Reseller Sales» и перетащите меру «Reseller Sales – Sales Amount» в поле «Выражение значения». На вкладке «Метаданные» панели «Средства вычисления» раскройте узлы «Measures» и «Sales Quota» и перетяните меру «Sales Amount Quota» в поле «Целевое выражение». Убедитесь, что в списке «Признак состояния» выбрано значение «Шкала» и введите в поле «Выражение состояния» следующее многомерное выражение: Case When KpiValue("Доход от продаж через торгового посредника")/KpiGoal("Доход от продаж через торгового посредника")>=.95 Then 1 When KpiValue("Доход от продаж через торгового посредника")/KpiGoal("Доход от продаж через торгового посредника")<.95 And KpiValue("Доход от продаж через торгового посредника")/KpiGoal("Доход от продаж через торгового посредника")>=.85
Then 0 Else-1 End
Многомерное выражение служит основой оценки достижения целевого значения. Данное многомерное выражение определяет, что если фактический товарооборот посредников составляет более 85 % от целевого объема, то для заполнения графического изображения используется значение 0. Так как в качестве графического символа используется шкала, указатель шкалы находится посередине. Если фактический товарооборот посредников составляет более 90 %, указатель будет показывать три четверти шкалы. Убедитесь, что в списке «Признак тренда» выбрано значение «Стандартная стрелка» и введите в поле «Выражение тренда» следующее выражение: Case When IsEmpty (ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember)) Then 0 When ( KpiValue("Доход от продаж через торгового посредника") (KpiValue("Доход от продаж через торгового посредника"), ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember)) / (KpiValue ("Доход от продаж через торгового посредника"), ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember))) >=.02 Then 1 When( KpiValue("Доход от продаж через торгового посредника") (KpiValue ( "Доход от продаж через торгового посредника" ), ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember)) / (KpiValue("Доход от продаж через торгового посредника"), ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember))) <=.02 Then -1 Else 0 End
Это многомерное выражение служит основой оценки тренда по достижению заданной цели.
Просмотр куба с использованием ключевого индикатора производительности «Доход от продаж через торгового посредника» Разверните куб Analysis Services Tutorial. После успешного завершения развертывания на панели инструментов вкладки «Ключевые индикаторы производительности» нажмите кнопку «Представление обозревателя», а затем кнопку «Повторное соединение» (Рисунок 520).
На панели «Обозреватель ключевых индикаторов производительности» отображаются шкалы состояния и тренда на основании значений установленного по умолчанию элемента каждого из измерений вместе с текущим и целевым значениями. По умолчанию для каждого из измерений задан элемент «Все» уровня «Все», поскольку в качестве элемента по умолчанию не был указан другой элемент измерения. В области фильтра в списке «Измерение» выберите «Sales Territory», в списке «Иерархия» выберите «Sales Territories», в списке «Оператор» выберите «Равно», а затем в списке «Критерий» фильтра установите флажок для значения «North America» (Рисунок 521).
Рисунок 521. Фильтр по измерению "Sales Territory"
В следующей строке области «Фильтр» в списке «Измерение» выберите пункт «Date», в списке «Иерархия» выберите пункт «Calendar Date», в списке «Оператор» выберите пункт «Равно», а затем в списке «Критерий фильтра» установите флажок для значения «Q3 CY 2003»(Рисунок 522).
Рисунок 522. Фильтр по измерению "Date"
Щелкните панель «Обозреватель ключевых индикаторов производительности», чтобы обновить значения индикатора «Reseller Sales». Обратите внимание, что разделы «Значение», «Цель» и «Состояние» ключевого индикатора производительности отражают значения для нового периода времени.
Определение ключевого индикатора производительности «Итоговый коэффициент валовой прибыли» Нажмите кнопку «Представление формы» на панели инструментов вкладки «Ключевые индикаторы производительности», а затем нажмите кнопку «Создать ключевой индикатор производительности».
В поле «Имя» введите «Коэффициент общей валовой прибыли продукта» и убедитесь, что значение <Все> появилось в списке «Связанная группа мер». На вкладке «Метаданные» панели «Средства вычисления» перетащите меру «Итоговый коэффициент валовой прибыли» в поле «Выражение значения». В поле «Целевое выражение» введите следующее выражение: Case When [Product].[Category].CurrentMember Is [Product].[Category].[Accessories] Then .40 When [Product].[Category].CurrentMember Is [Product].[Category].[Bikes] Then .12 When [Product].[Category].CurrentMember Is [Product].[Category].[Clothing] Then .20 When [Product].[Category].CurrentMember Is [Product].[Category].[Components] Then .10 Else .12 End
В списке «Признак состояния» выберите «Цилиндр». Введите следующее многомерное выражение в поле Выражение состояния: Case When KpiValue( KpiGoal ( Then 1 When KpiValue( KpiGoal ( And KpiValue( KpiGoal ( Then 0 Else -1 End
"Коэффициент общей валовой прибыли продукта" ) / "Коэффициент общей валовой прибыли продукта" ) >= .90 "Коэффициент общей валовой прибыли продукта" ) / "Коэффициент общей валовой прибыли продукта" ) <
.90
"Коэффициент общей валовой прибыли продукта" ) / "Коэффициент общей валовой прибыли продукта" ) >= .80
Многомерное выражение служит основой оценки достижения целевого значения. Убедитесь, что в списке «Признак тренда» выбрано значение «Стандартная стрелка», и введите в поле «Выражение тренда» следующее многомерное выражение: Case When IsEmpty (ParallelPeriod ([Date].[Calendar Date].[Calendar Year],1, [Date].[Calendar Date].CurrentMember)) Then 0 When VBA!Abs ( KpiValue( "Коэффициент общей валовой прибыли продукта" ) ( KpiValue ( "Коэффициент общей валовой прибыли продукта" ), ParallelPeriod ( [Date].[ Calendar Date].[ Calendar Year], 1,
[Date].[ Calendar Date].CurrentMember ) ) / ( KpiValue ( "Коэффициент общей валовой прибыли продукта" ), ParallelPeriod ( [Date].[ Calendar Date].[ Calendar Year], 1, [Date].[ Calendar Date].CurrentMember ) ) ) <=.02 Then 0 When KpiValue( "Коэффициент общей валовой прибыли продукта" ) ( KpiValue ( "Коэффициент общей валовой прибыли продукта" ), ParallelPeriod ( [Date].[ Calendar Date].[ Calendar Year], 1, [Date].[ Calendar Date].CurrentMember ) ) / ( KpiValue ( "Коэффициент общей валовой прибыли продукта" ), ParallelPeriod ( [Date].[Calendar Date].[Calendar Year], 1, [Date].[Calendar Date].CurrentMember ) ) >.02 Then 1 Else -1 End
Это многомерное выражение служит основой оценки тренда по достижению заданной цели.
Просмотр куба с использованием ключевого индикатора производительности «Итоговый коэффициент валовой прибыли» Разверните куб Analysis Services Tutorial. После успешного завершения развертывания нажмите кнопку «Повторное подключение» на панели инструментов вкладки «Ключевые индикаторы производительности», а затем перейдите на панель «Представление обозревателя» (Рисунок 523).
Ключевой индикатор производительности «Коэффициент валовой прибыли» показывает значение индикатора для «Q3 CY 2003» и территории продаж «North America».
На панели «Фильтр» в списке «Измерение» выберите значение «Product», в списке «Иерархия укажите» значение «Category», в списке «Оператор» выберите значение «Равно», а затем в списке «Критерий фильтра» выберите значение «Bikes» (Рисунок 524).
Рисунок 524. Коэффициент валовой прибыли для продажи велосипедов
Выводится коэффициент валовой прибыли для продажи велосипедов через посредников в Северной Америке для Q3 CY 2003.
Контрольные вопросы 1. Дайте определение понятию «KPI» с точки зрения деловой лексики и служб SSAS. 2. Из каких компонентов состоит объект KPI? 3. Дайте определение понятиям «цель», «значение», «состояние», «тренд». 4. Дайте определение понятиям «индикатор состояния», «индикатор тренда», «папка отображения». 5. Дайте определение понятиям «родительский ключевой индикатор производительности», «элемент текущего времени», «вес».
10.
Определение перспектив куба и переводов метаданных.
Данная лабораторная работа посвящена вопросам определения перспектив и переводов. Определение перспектив позволяет снизить сложность куба, а определение переводов позволяет пользователям просматривать метаданные куба на разных языках.
Теоретическое введение
Перспективы Перспективой называется определение, позволяющее пользователям рассматривать куб с помощью более простого способа. Перспектива — это подмножество средств куба. Перспектива позволяет администраторам создавать представление куба и помогает пользователям сосредоточиться на данных, имеющих для них наибольшую значимость. Перспектива содержит подмножества множества всех объектов куба. Перспектива не может включать элементы, которые не определены в родительском кубе. Простой объект Perspective состоит из основной информации, измерений, групп мер, вычислений, ключевых индикаторов производительности и действий. Основная информация включает имя и меру перспективы по умолчанию. Измерения — это подмножество измерений куба. Группы мер — это подмножество групп мер куба. Вычисления — это подмножество вычислений куба.
Ключевые индикаторы производительности представляют собой подмножество ключевых индикаторов производительности куба. Действия — это подмножество действий куба. Вначале должны быть проведены обновление и обработка куба, и только после этого появляется возможность использовать перспективу. Кубы в службах SSAS представляют собой очень сложные объекты для исследования. Один куб может представлять содержимое целого хранилища данных, при этом несколько групп мер в кубе будут представлять несколько таблиц фактов и несколько измерений, основанных на нескольких таблицах измерений. Такой куб представляет собой очень сложную конструкцию с высокоразвитой структурой, что может отпугнуть пользователей, которым для удовлетворения своих запросов в области бизнес-аналитики и отчетности зачастую необходимо взаимодействовать только с небольшой частью куба. Перспектива определяет просматриваемое подмножество куба, которое предоставляет точки зрения на данные куба, учитывающие особенности предприятия и приложения. Перспектива контролирует видимость объектов, содержащихся в кубе. В перспективе можно отображать или скрывать следующие объекты: 1. измерения; 2. атрибуты; 3. иерархии; 4. группы мер; 5. меры; 6. ключевые индикаторы производительности; 7. вычисления (вычисляемые элементы, именованные наборы и команды сценариев); 8. действия. Например, в кубе Adventure Works образца базы данных Adventure Works DW служб SSAS содержится одиннадцать групп мер и двадцать одно различное измерение куба, представляющие собой продажи, прогнозы продаж и финансовые данные. Клиентское приложение может напрямую использовать весь куб, но такая точка зрения может быть перегружена для пользователя, пытающегося извлечь основные сведения о прогнозах продаж. Вместо этого пользователь может воспользоваться перспективой «Цели продаж», чтобы ограничить представление куба Adventure Works объектами, относящимися к прогнозированию продаж. Даже те объекты куба, которые не видны пользователю в перспективе, могут быть указаны напрямую и извлечены с помощью инструкций XML для аналитики, многомерных выражений или расширений интеллектуального анализа данных. Перспективы не ограничивают доступ к объектам в кубе и не должны использоваться с такой целью. Перспективы используются для улучшения качества работы пользователя с кубом. Перспектива является представлением куба в режиме только для чтения. Перспективу нельзя использовать для переименования или изменения объектов в кубе. Также с помощью перспективы нельзя изменить поведение или возможности куба, например использование визуальных итогов. Перспективы предназначены для использования не в качестве механизма обеспечения безопасности, а как средство улучшения качества работы пользователя в приложениях бизнесаналитики. Все параметры безопасности перспективы наследуются из базового куба. Например, перспективы не могут обеспечить доступ к объектам куба, к которым пользователь еще не имеет доступа. Безопасность куба должна быть настроена прежде, чем будет предоставлен доступ к объектам в кубе через перспективу.
Переводы Поддержка различных языков в службах SSAS достигается посредством переводов. Перевод — это механизм для отображения меток и заголовков на другом языке. Каждый перевод определяется как пара значений: строка, представляющая переведенный текст, и число, представляющее идентификатор языка. В службах SSAS возможен перевод всех объектов. Перевод содержит код языка и привязки для свойств объектов служб SSAS, которые могут быть представлены на различных языках. Например, можно задать перевод базы данных служб SSAS, чтобы представить заголовок и описание этой базы данных на некотором языке. Значения атрибутов измерений также можно перевести. Клиентское приложение отвечает за поиск языка, заданного пользователем, и отображения на этом языке всех меток и заголовков. Объект может иметь неограниченное число переводов. Простой объект Translation состоит из идентификационного кода языка и переведенного заголовка. Идентификационный код языка — это значение Integer с идентификатором языка. Переведенный заголовок представляет собой переведенный текст. В службах SSAS перевод измерений — это зависящее от языка представление имени измерения, имени объекта служб SSAS или одного из его элементов, например заголовка, элемента или уровня иерархии. Службы SSAS также поддерживают переводы объектов кубов. Переводы обеспечивают серверную поддержку клиентских приложений, которые поддерживают несколько языков. Часто пользователи из разных стран просматривают куб и его измерения. Полезно иметь возможность перевода различных элементов куба и его измерений на другой язык, чтобы эти пользователи могли просматривать и понимать куб. Например, если пользователь из Франции обращается к кубу с рабочей станции, имеющей французский языковой стандарт, он видит значения свойства объекта на французском языке. Аналогично пользователь в Германии, обращающийся к тому же кубу с рабочей станции с немецкой настройкой языкового стандарта, видит те же значения свойства объекта на немецком языке. Сведения о параметрах сортировки и языке для клиентского компьютера хранятся в форме кода языка. При соединении клиент передает идентификатор языка экземпляру служб SSAS. Экземпляр использует этот идентификатор для определения, какой набор переводов необходимо использовать при предоставлении метаданных для объектов служб SSAS. Если объект служб SSAS не содержит заданного перевода, то для возвращения содержимого обратно клиенту используется язык по умолчанию.
Практические задания
Определение и поиск перспектив Далее будет определено несколько разных перспектив, в которых затем будет просмотрен куб.
Определение перспективы «Продажи через Интернет» Откройте конструктор кубов для куба Analysis Services Tutorial и перейдите на вкладку «Перспективы» (Рисунок 525).
На панели инструментов вкладки «Перспективы» нажмите кнопку «Создать перспективу» ( ). Новая перспектива появляется в столбце «Имя перспективы» с заданным по умолчанию именем «Перспектива», как показано на Рисунок 526.
Рисунок 526. Созданная новая перспектива
Обратите внимание, что для каждого из объектов установлен флажок. Пока не снят флажок для одного из объектов, перспектива будет идентична заданной по умолчанию перспективе данного куба.
Измените имя перспективы на «Продажи через Интернет». На следующей строке задайте для свойства DefaultMeasure значение «Internet Sales – Sales Amount». При просмотре куба с помощью этой перспективы будет видна именно эта мера, если не будет выбрана другая. Снимите флажки для следующих объектов (Рисунок 527): группа мер «Reseller Sales»; группа мер «Sales Quotas»; группа мер «Sales Quotas 1»; измерение куба «Reseller»; измерение куба «Geography»; измерение куба «Sales Territory»; измерение куба «Employee»; измерение куба «Promotion»; ключевой индикатор производительности «Доход от продаж через торговых посредников»; именованный набор «Крупные торговые посредники»; вычисляемый элемент «Итоговая сумма продаж»; вычисляемый элемент «Общая стоимость продукции»; вычисляемый элемент «Коэффициент валовой прибыли по продажам через торгового посредника»; вычисляемый элемент «Итоговый коэффициент валовой прибыли»; вычисляемый элемент «Доля товарооборота посредников во всей номенклатуре продукции»; вычисляемый элемент «Общая доля продаж во всей номенклатуре продукции». Эти объекты не связаны с продажами через Интернет.
Рисунок 527. Выбор объектов, входящих в представления «Продажи через Интернет»
Определение перспективы «Продажи через посредников» На панели инструментов вкладки «Перспективы» нажмите кнопку «Создать перспективу». Измените имя новой перспективы на «Продажи через посредников». Установите меру Reseller Sales-Sales Amount в качестве меры по умолчанию. Если пользователи выполняют просмотр куба при помощи этой перспективы, они будут видеть именно эту меру, если не выберут другую. Снимите флажки для следующих объектов:
группа мер «Internet Sales»; группа мер «Internet Sales Reason»; измерение куба «Customer»; измерение куба «Подробности заказа через Интернет»; измерение куба «Sales Reason»; вычисляемый элемент «Итоговая сумма продаж»; вычисляемый элемент «Общая стоимость продукции»; вычисляемый элемент «Коэффициент валовой прибыли по продажам через Интернет»; вычисляемый элемент «Итоговый коэффициент валовой прибыли»; вычисляемый элемент «Доля продаж через Интернет во всей номенклатуре продукции»; вычисляемый элемент «Общая доля продаж во всей номенклатуре продукции». Эти объекты не связаны с продажами через торгового посредника.
Рисунок 528. Выбор объектов, входящих в представления «Продажи через посредников»
Определение перспективы «Сводки о продажах» На панели инструментов вкладки «Перспективы» нажмите кнопку «Создать перспективу». Измените имя новой перспективы на «Сводки о продажах». Нельзя указывать вычисляемую меру как меру по умолчанию. Снимите флажки для следующих объектов: группа мер «Internet Sales»;
группа мер «Reseller Sales»; группа мер «Internet Sales Reason»; группа мер «Sales Quotas»; группа мер «Sales Quotas 1»; измерение куба «Подробности заказа через Интернет»; измерение куба «Sales Reason». Установите флажки для следующих объектов (Рисунок 529): мера Internet Sales Count; мера Reseller Sales Count.
Рисунок 529. Создание перспективы "Сводки по продажам"
Просмотр куба в каждой из перспектив
Разверните куб «Analysis Services Tutorial». После успешного завершения развертывания перейдите на вкладку «Обозреватель» и нажмите кнопку «Повторное соединение». Очистите все меры и иерархии в области данных, а также все измерения в области фильтра. Просмотрите меры и измерения в области метаданных. Обратите внимание, что отображены все определенные меры и группы мер (Рисунок 530).
Рисунок 530. Меры и измерения
На панели инструментов вкладки «Обозреватель» выберите в списке «Перспектива» пункт «Продажи через Интернет» и просмотрите меры и измерения в области метаданных.
Рисунок 531. Меры и измерения в перспективе «Продажи через Интернет»
Обратите внимание, что отображаются только те объекты, которые определены для перспективы «Продажи через Интернет». В области «Метаданные» раскройте узел «Measures». Обратите внимание, что отображается только группа мер «Internet Sales», а также вычисляемые элементы «Коэффициент валовой прибыли по продажам через Интернет» и «Доля продаж через Интернет во всей номенклатуре продукции» (Рисунок 532).
Рисунок 532. Группа мер и вычисляемые элементы в перспективе "Продажи через Интернет»
Раскройте элемент «Internet Sales», щелкните правой кнопкой мыши элемент «Internet Sales-Sales Amount» и выберите команду «Добавить в область данных». Эта мера будет выведена в области «Данные». В списке «Перспективы» на панели инструментов «Обозреватель» выберите элемент «Продажи через посредников». Обратите внимание, что мера «Internet Sales-Sales Amount» теперь не отображается в области «Данные». В области «Метаданные» раскройте узел «Mearures» (Рисунок 533).
Рисунок 533. Группы мер и вычисляемые элементы в перспективе «Продажи через посредников»
Обратите внимание, что группа мер «Internet Sales» теперь не отображается в списке мер. В списке «Перспективы» панели инструментов «Обозреватель» выберите элемент «Сводки о продажах». В области метаданных разверните элементы «Measures», «Internet Sales» и «Reseller Sales» (Рисунок 534).
Рисунок 534. Группы мер и вычисляемые элементы в перспективе «Сводки о продажах»
Обратите внимание, что в каждой из этих групп мер отображается лишь одна мера.
Определение и просмотр переводов Задание переводов для метаданных измерения «Date» Откройте конструктор измерений для измерения «Date» и перейдите на вкладку «Переводы». Отобразятся метаданные языка по умолчанию для каждого объекта измерения. Языком по умолчанию для куба «Analysis Services Tutorial» является английский (Рисунок 535).
Рисунок 535. Вкладка "Переводы" конструктора измерения «Date»
На панели инструментов вкладки «Переводы» нажмите кнопку «Создать перевод» ( диалоговом окне «Выбор языка» будет раскрыт список языков (Рисунок 536).
Рисунок 536. Диалоговое окно «Выбор языка»
). В
Выберите значение Spanish (Spain) и нажмите кнопку ОК. Появится новый столбец, в котором, при необходимости, можно задать испанский перевод для объектов метаданных. В данной лабораторной работе будет переведено лишь небольшое количество объектов исключительно для демонстрации процесса перевода. На панели инструментов вкладки «Переводы» нажмите кнопку «Создать перевод», затем в диалоговом окне «Выбор языка» выберите значение French (France) и нажмите кнопку ОК. Отобразится новый столбец, где можно задать перевод для французского языка (Рисунок 537).
Рисунок 537. Созданные переводы для испанского и французского языков
В строке объекта «Date» измерения «Date» в столбце перевода «Spanish (Spain)» введите «Fecha», а в столбце перевода «French (France)» — «Temps».
Рисунок 538. Значения в строке "Date"
В строке объекта «Month Name» введите в столбце перевода «Spanish (Spain)» значение «Mes del Ano», а в столбце перевода «French (France)» — значение «Mois d'Annee». Обратите внимание, что при вводе этих переводов появляется многоточие (…). Если нажать кнопку с многоточием, то можно будет выбрать столбец в базовой таблице, который содержит переводы для каждого из элементов иерархии атрибута. Щелкните многоточие (…) для перевода в столбце «Spanish (Spain)» атрибута «Month Name». Будет открыто диалоговое окно «Перевод данных атрибута» ().
Рисунок 539. Диалоговое окно «Перевод данных атрибута»
В списке «Столбцы перевода» выберите «SpanishMonthName». Нажмите кнопку ОК, а затем щелкните многоточие (…), чтобы перевод атрибута «Month Name» был подставлен в столбце «French (France)». В списке «Столбцы для перевода» выберите «FrenchMonthName» и нажмите кнопку ОК (Рисунок 540).
Рисунок 540. Переводы для испанского и французского языков
Указание перевода для метаданных куба «Analysis Services Tutorial» Перейдите в конструктор кубов на куб «Analysis Services Tutorial» и откройте вкладку «Переводы» (Рисунок 541).
Рисунок 541. Метаданные куба на языке "по умолчанию"
Появятся метаданные на языке, установленном по умолчанию для каждого из объектов куба. Языком по умолчанию для куба «Analysis Services Tutorial» является английский. На панели инструментов вкладки «Переводы» нажмите кнопку «Создать перевод». В диалоговом окне «Выбор языка» будет раскрыт список языков. Выберите значение «Spanish (Spain)» и нажмите кнопку ОК. Появится новый столбец, в котором, при необходимости, можно задать
испанский перевод для объектов метаданных. Данной лабораторной работе переведено лишь небольшое количество объектов исключительно для демонстрации процесса перевода. На панели инструментов вкладки «Переводы» нажмите кнопку «Создать перевод», затем в диалоговом окне «Выбор языка» выберите значение «French (France)» и нажмите кнопку ОК. Появится новый столбец, где можно задать перевод для французского языка. В строке объекта «Заголовок» группы мер «Internet Sales» в столбце перевода «Spanish (Spain)» введите значение «Ventas del lnternet», а в столбце перевода «French (France)» — значение «Ventes D'Internet» (Рисунок 542).
Рисунок 542. Перевод заголовков группы мер «Internet Sales»
В строке объекта «Заголовок» группы мер «Internet Sales – Sales Amount» в столбце перевода «Spanish (Spain)» введите значение «Cantidad de las Ventas del Internet», а в столбце перевода «French (France)» — значение «Quantite de Ventes d'Internet» (Рисунок 543).
Рисунок 543. Перевод заголовка группы мер «Internet Sales – Sales Amount»
Просмотр куба с использованием переводов Разверните куб «Analysis Services Tutorial». После успешного окончания развертывания перейдите на вкладку «Обозреватель» и нажмите кнопку «Повторное соединение». Удалите все иерархии и меры в области «Данные» и выберите «Analysis Services Tutorial» в списке «Перспективы». В области метаданных разверните узел «Measures», а затем «Internet Sales». Обратите внимание, что в группе мер показатель «Internet Sales-Sales Amount» отображается на английском (Рисунок 544).
Рисунок 544. Название показателя «Internet Sales-Sales Amount» на английском
На панели инструментов выберите в списке «Язык» значение «Spanish (Spain)» (Рисунок 545).
Рисунок 545. Название показателя «Internet Sales-Sales Amount» на испанском
Обратите внимание, что элементы в области метаданных заполняются повторно. После заполнения элементов в области метаданных обратите внимание, что мера «Internet Sales-Sales Amount» больше не отображается в папке отображения «Internet Sales». Теперь она отображается на испанском языке в новой папке отображения с именем «Ventas del lnternet». В области метаданных щелкните правой кнопкой мыши «Cantidad de las Ventas del Internet» и выберите команду «Добавить в область данных». В области метаданных последовательно разверните узлы «Date» и «Calendar Date», щелкните правой кнопкой мыши элемент «Date.Calendar Date» и выберите команду «Добавить в область строк». В области «Данные» последовательно разверните «CY 2004», «H1 CY 2004» и «Q1 CY 2004» (Рисунок 546).
Рисунок 546. Названия месяцев на испанском
Обратите внимание, что имена месяцев отображаются на испанском языке На панели инструментов в списке «Язык» выберите значение «French (France)». Обратите внимание, что имена месяцев и имя меры теперь также отображаются на французском языке.
Контрольные вопросы 1. Дайте определение понятию «перспектива». Какие функции она выполняет? Какие объекты она может содержать? Можно ли при помощи перспективы изменять объекты куба? 2. Дайте определение понятию «перевод». Какие функции он выполняет? Из каких компонентов состоит объект Translation?
11.
Определение ролей администраторов и пользователей.
В данной лабораторной работе будет задана роль безопасности с разрешениями на обработку данных базы служб SSAS, после чего будет выполнена проверка созданной роли безопасности.
Теоретическое введение
Обеспечение безопасности служб SSAS Чтобы обеспечить надлежащую безопасность данных, хранимых в службах SSAS, необходимо обеспечить безопасность всех точек доступа к экземпляру служб SSAS. Эти точки доступа включают: 7. Защита компьютера со службами SSAS. Как и в случае любого приложения, наиболее простым способом доступа к данным в службах SSAS является физическое использование компьютера, на котором запущено приложение. Если несанкционированный пользователь получит физический доступ к компьютеру, на котором запущены службы SSAS, то этот пользователь потенциально может получить доступ к любым данных, хранящимся на этом компьютере, независимо от других мер безопасности, используемых для защиты данных. Чтобы повысить физическую безопасность компьютера, на котором запущены службы SSAS, выполните следующие шаги:
убедитесь в том, что только санкционированные пользователи имеют физический доступ к компьютеру. По возможности установите компьютер в запертой комнате с ограниченным доступом; отключите функцию загрузки с дискеты, если это возможно в настройках BIOS материнской платы, и рассмотрите возможность полного удаления дисковода; отключите функцию загрузки с CD-ROM, если это возможно в настройках BIOS материнской платы; увеличьте защиту компьютера путем использования пароля при включении и повысьте защиту настроек BIOS материнской платы, используя пароль доступа к BIOS; используйте корпус для компьютера, который поддерживает обнаружение проникновения, и который невозможно открыть без ключа; храните ключ в безопасном месте вдали от компьютера; 8. Защита операционной системы Windows для служб SSAS. Операционная система с неверно выставленными параметрами безопасности может подвергнуть риску безопасность экземпляра служб SSAS. Следующие мероприятия позволят повысить защищенность операционной системы: ограничение интерактивного доступа; ограничение сетевого доступа; отключение ненужных служб; указание и ограничение портов. Экземпляр по умолчанию служб SSAS осуществляет прослушивание порта 2383. Если именованный экземпляр использует другой порт, то этот порт нужно открыть на межсетевом экране; предоставление прав локального администрирования. Только члены группы локальных администраторов обладают правом запускать, останавливать и настраивать службы Microsoft Windows. Чтобы предоставить пользователям, ответственным за управление всем экземпляром служб SSAS, права на управление службами Windows, необходимыми для экземпляра служб SSAS, этих пользователей следует сделать членами группы локальных администраторов. 9. Защита программных файлов, общих компонентов и файлов данных. Местоположение по умолчанию для файлов служб SSAS — «\Program Files\Microsoft SQL Server\MSAS10.#\OLAP», где # представляет собой номер экземпляра. В этой структуре папок имеются четыре вложенные папки: Backup, Bin, Data и Log. В этих папках хранятся данные резервного копирования, важные файлы для самой службы SSAS, фактические данные измерений и кубов, а также данные журналов. Эти данные должны быть защищены. Программа установки предоставляет доступ ко всем файлам в этой структуре папок только членам локальной группы «Администраторы» и учетной записи входа в службы SSAS. Пользователям доступ к файлам в этих папках не требуется.
10. Безопасность взаимодействия клиентов с экземпляром служб SSAS, что включает шифрование данных, проверку подлинности клиента, установку пакетов безопасности, и указание частоты обновления кэша ролей. 11. Защита источников данных, используемых службами SSAS. Если неавторизованные пользователи получат доступ к источникам данных, из которых службы SSAS загружают данные, эти пользователи будут иметь доступ к сведениям, которые хранятся в экземпляре служб SSAS. Следует ограничить доступ к этим источникам данных. Для просмотра кубов и измерений пользователям служб SSAS не нужны разрешения на эти источники данных. 12. Обеспечение безопасности доступа с помощью служб SSAS. Службы SSAS разрешают устанавливать соединения только пользователям, прошедшим проверку подлинности Windows, если только не разрешены анонимные подключения, и пользователям, которым предоставлены разрешения в экземпляре служб SSAS. Пользователям, не имеющим разрешений, устанавливать соединения запрещено. Службы SSAS не выполняют собственной проверки подлинности пользователей. При проверке подлинности всех пользователей перед авторизацией доступа к данным служб SSAS или перед предоставлением пользователям возможности выполнения административных задач службы SSAS полагаются на операционную систему Windows. По умолчанию любой пользователь, не являющийся членом роли сервера, не имеет разрешений служб SSAS. Чтобы получить разрешения, член роли сервера должен сначала создать пользовательскую роль базы данных, а затем предоставить этой роли разрешения. Пользовательской роли базы данных могут быть предоставлены ограниченные или полные административные разрешения в базе данных. Этой роли также могут быть предоставлены ограниченные или полные разрешения на доступ к данным. После создания пользовательской роли базы данных член роли сервера должен добавить соответствующих пользователей и группы Windows. Пользователь получает разрешения в службах SSAS только после его добавления к пользовательской роли базы данных.
Настройка безопасности служб SSAS После установки экземпляра служб SSAS все члены локальной группы «Администраторы» становятся членами роли сервера на этом экземпляре и обладают разрешениями уровня сервера для выполнения любой задачи в пределах этого экземпляра служб SSAS. По умолчанию никакие другие пользователи не имеют разрешений на доступ к объектам в экземпляре. Члены роли сервера служб SSAS могут предоставлять другим пользователям доступ к объектам сервера и базы данных, используя среду SQL Server Management Studio, среду BI Dev Studio или XMLA-сценарий. Член роли сервера служб SSAS может предоставить другим пользователям доступ к службам SSAS следующими способами: 3. путем предоставления пользователям административного доступа либо уровня сервера, либо уровня базы данных;
4. путем использования ролей базы данных, чтобы предоставить пользователям доступ к источникам данных, кубам, измерениям, структурам интеллектуального анализа данных и моделям интеллектуального анализа данных.
Предоставление административного доступа Административный доступ к объектам в экземпляре служб SSAS предоставляется пользователям и группам Microsoft Windows следующими способами: 3. Пользователи и группы могут получить административный доступ к службам SSAS на уровне сервера с помощью роли сервера. Члены роли сервера на экземпляре службSSAS имеют неограниченный доступ ко всем объектам и данным данного экземпляра служб SSAS. Член роли сервера служб SSAS может добавлять пользователей и группы Microsoft Windows в роль сервера служб SSAS. Для выполнения любых задач на уровне сервера, например для создания базы данных, изменения свойств сервера или запуска трассировки (кроме обработки событий) пользователь должен входить в состав роли сервера служб SSAS. По умолчанию члены локальной группы «Администраторы» входят в состав роли сервера служб SSAS. Тем не менее, их принадлежность к этой роли сервера не отражается в пользовательском интерфейсе. 4. Пользователи и группы могут получить административный доступ к определенной базе данных служб SSAS с помощью роли базы данных. В службах Microsoft SQL Server члены роли сервера служб SSAS могут создавать в базе данных роли базы данных и предоставлять этим ролям полные или ограниченные административные разрешения в базе данных. Члены роли сервера служб SSAS могут добавлять к этим ролям базы данных пользователей и группы Microsoft Windows.
Разрешения, которые роль сервера служб SSAS может предоставить роли базы данных Роль сервера служб SSAS может предоставить роли базы данных следующие разрешения: 4. полные административные разрешения в базе данных. В качестве члена роли базы данных с разрешениями «Полный доступ» (администратор) пользователь Windows может выполнять в рамках базы данных любую задачу, включая следующие: обработка объектов базы данных; чтение данных базы данных; чтение метаданных базы данных; добавление пользователей к существующим ролям базы данных; создание новых ролей базы данных; определение разрешений для ролей базы данных. 5. только разрешение на обработку некоторых объектов служб SSAS. При предоставлении роли базы данных разрешения на обработку объекта данных администратор получает возможность передать задачу обработки некоторых объектов без предоставления
дополнительных внешних разрешений пользователю, выполняющему обработку. При предоставлении роли базы данных разрешений на обработку следует иметь в виду то, что разрешения носят аддитивный характер. Например, одна роль базы данных разрешает пользователю обрабатывать определенный куб, в то время как другая роль базы данных предоставляет тому же пользователю разрешение на обработку измерения в этом же кубе. Разрешения из двух различных ролей объединяются, в результате чего пользователь получает разрешение на обработку как куба, так и заданного измерения в рамках такого куба. Пользователь, роль базы данных которого имеет только разрешения на обработку одного или нескольких объектов базы данных, не сможет воспользоваться средой SQL Server Management Studio или BI Dev Studio для подключения к службам SSAS и выполнения обработки объектов. Для данных средств необходимо, чтобы у пользователя было разрешение на доступ к метаданным объекта. Следовательно, для обработки таких объектов пользователю, располагающему только разрешениями на обработку объектов, необходимо будет использовать XMLA-сценарий. Разрешения на обработку могут быть предоставлены на уровнях базы данных, куба, измерения и структуры интеллектуального анализа данных. 6. разрешение на просмотр определения объекта служб SSAS, но не обработку объекта или представление фактических данных. Предоставление роли базы данных разрешения на чтение метаданных выбранных объектов позволяет администратору предоставить пользователям разрешения на просмотр определений объектов, при этом не предоставляя этим пользователям разрешение на изменение определения объекта, изменение структуры базы данных или просмотр реальных данных для объекта. При предоставлении роли базы данных разрешения на чтение метаданных следует помнить, что разрешения являются аддитивными. Например, одна роль базы данных может предоставлять пользователю разрешение на чтение метаданных для конкретного куба, в то время как другая роль базы данных может предоставлять тому же пользователю разрешение на чтение метаданных для измерения в этом кубе. Разрешения из этих двух различных ролей комбинируются, предоставляя пользователю разрешение на чтение как метаданных для куба, так и метаданных для измерения в пределах этого куба. Чтобы просмотреть определение объекта в среде SQL Server Management Studio или в среде BI Dev Studio, пользователь должен иметь роль базы данных, которая предоставляет разрешение на чтение метаданных базы данных.
Практические задания После установки экземпляра служб SSAS все члены локальной группы «Администраторы» являются членами роли сервера служб SSAS в этом экземпляре и имеют разрешения уровня сервера для выполнения любой задачи в пределах этого экземпляра служб SSAS. По умолчанию другие пользователи не имеют разрешения на администрирование или просмотр объектов данного экземпляра служб SSAS. Член роли сервера служб SSAS может предоставить пользователям серверные права на администрирование, сделав этих пользователей членами роли «Сервер», которая дает неограниченный доступ ко всем объектам и данным текущего экземпляра служб SSAS. Член роли сервера служб SSAS может дополнительно управлять пользовательским доступом, предоставляя пользователям ограниченный или полный набор разрешений на администрирование и доступ на
уровне базы данных. Ограниченные права на администрирование включают в себя разрешения на обработку или определение чтения на уровне базы данных, куба или измерения. В задачах этого раздела будет определена роль безопасности «Обработка объектов базы данных», которая предоставляет членам этой роли разрешение на обработку всех объектов базы данных, не предоставляя прав на просмотр данных в базе данных.
Определение роли «Обработка объектов базы данных» В обозревателе решений щелкните правой кнопкой мыши элемент «Роли» и выберите команду «Создать роль». Будет открыт конструктор ролей (Рисунок 547).
Рисунок 547. Конструктор ролей
Установите флажок «Обработка базы данных». В окне свойств укажите для свойства «Name» новой роли значение «Обработка объектов базы данных» (Рисунок 548).
Рисунок 548. Свойство "Name" созданной роли
Перейдите на вкладку «Членство» конструктора ролей (Рисунок 549).
Обратите внимание, что эта роль не содержит пользователей или групп. На данном этапе требуется только создать роль. После развертывания администратор может добавить в эту роль пользователей или группы. Перейдите на вкладку «Кубы» конструктора ролей (Рисунок 550).
Рисунок 550. Вкладка "Кубы" конструктора ролей
Обратите внимание, что члены этой роли имеют разрешение на обработку этой базы данных, но не имеют разрешения на доступ к данным в кубе «Analysis Services Tutorial» и не имеют доступа к локальному кубу и детализации. Перейдите на вкладку «Измерения» конструктора ролей (Рисунок 551).
Обратите внимание, что члены этой роли имеют разрешения на обработку всех объектов измерения этой базы данных и по умолчанию имеют разрешения на чтение для каждого объекта измерения в базе данных Analysis Services Tutorial. Разверните проект Analysis Services Tutorial. Роль «Обработка объектов базы данных» определена и развернута. После развертывания куба в производственной среде администраторы развернутого куба могут по мере необходимости добавлять пользователей в эту роль, чтобы передавать ответственность за обработку определенным пользователям.
Контрольные вопросы 1. Перечислите точки доступа к экземпляру SSAS. 2. Какие мероприятия следует предпринять для обеспечения физической безопасности компьютера? 3. Какие мероприятия предназначены для повышения защищенности операционной системы? 4. Каким образом реализуется защита программных файлов, общих компонентов и файлов данных? 5. Как повысить безопасность взаимодействия клиентов с экземпляром служб SSAS? 6. Каким образом реализуется проверка подлинности пользователей, использующих SSAS? 7. Какие пользователи становятся членами роли сервера служб SSAS по умолчанию? Какими способами можно предоставить другим пользователям доступ к службам SSAS? 8. Какими способами может быть предоставлен административный доступ к объектам в экземпляре служб SSAS? 9. Какие разрешения роль сервера служб SSAS может предоставить роли базы данных?
12.
Заполнение куба при помощи Integration Services
Данная лабораторная работа посвящена вопросам создания новых пакетов, добавления и настройки соединения с источниками данных и назначениями, а также работы с новыми компонентами потока управления и потока данных для заполнения хранилищ данных.
Теоретическое введение Службы Microsoft SQL Server Integration Services (SSIS) — это платформа для создания высокопроизводительных решений по интеграции данных, включая пакеты, обеспечивающие извлечение, преобразование и загрузку для хранения данных. Службы SSIS содержат: 1. графические средства и мастера сборки и отладки пакетов; 2. задачи выполнения функций потока операций, таких как FTP, выполнение инструкций SQL и отправка сообщений по электронной почте; 3. источники данных и адреса назначения для получения и загрузки данных; 4. преобразования для очистки, статистической обработки, слияния и копирования данных; 5. службу управления, службу SSIS для администрирования выполнения и хранения пакетов, а также API-интерфейсы для программирования модели объектов служб SSIS.
Практические задания В данной лабораторной работе при помощи конструктора служб SSIS будет произведено создание простого пакета, который извлекает данные из файла, выполняет уточняющий запрос в ссылочной таблице и записывает данные в таблицу фактов FactCurrencyRate образца базы данных AdventureWorksDW.
Формат данных источника Данные источника представлены в виде набора курсов валют, содержащегося в плоском файле SampleCurrencyData.txt. Данные источника в этом файле имеют четыре столбца: средний курс валюты, ключ валюты, ключ даты и курс на конец дня.
При работе с данными источника плоских файлов важно понимать, как диспетчер соединений с плоскими файлами интерпретирует данные плоских файлов. Если плоский файл является документом в кодировке Unicode, диспетчер соединений с плоскими файлами определяет все столбцы как *DT_WSTR+ с шириной, по умолчанию равной 50. Если же исходный файл является документом в кодировке ANSI, столбцы определяются как *DT_STR+ с шириной 50. Возможно, потребуется изменить эти настройки, чтобы оптимизировать столбцы для конкретных данных. Чтобы сделать это, необходимо узнать тип данных в назначении, куда будут заноситься эти данные, а затем выбрать правильный тип данных в диспетчере соединений с плоскими файлами.
Формат таблицы-назначения Конечным назначением источника данных является таблица фактов FactCurrencyRate в базе данных AdventureWorksDW (Таблица 12). Таблица 12. Формат таблицы фактов FactCurrencyRate
Имя столбца
Тип данных Таблица уточняющих запросов
Столбец подстановки
AverageRate
float
Нет
Нет
CurrencyKey
int (FK)
DimCurrency
CurrencyKey (PK)
TimeKey
Int (FK)
DimTime
CurrencyKey (PK)
EndOfDayRate
float
Нет
Нет
Таблица фактов FactCurrencyRate имеет четыре столбца и связи с двумя таблицами измерений
Сопоставление данных источника и назначения Анализ форматов данных источника и назначения показывает, что для значений CurrencyKey и TimeKey необходимы преобразования «Уточняющий запрос». Преобразования, которые будут
выполнены, получат значения CurrencyKey и TimeKey, используя альтернативные ключи из таблиц измерений DimCurrency и DimTime (Таблица 13). Таблица 13. Сопоставление данных источника и назначения
Столбец плоских файлов Имя таблицы
Имя столбца
Тип данных
0
FactCurrencyRate
AverageRate
Float
1
DimCurrency
CurrencyAlternateKey nchar(3)
2
DimTime
FullDateAlternateKey
Datetime
3
FactCurrencyRate
EndOfDayRate
Float
Создание нового проекта служб Integration Services Запустите BI Dev Studio. В меню «Файл» выберите пункт «Создать» и подпункт «Проект», чтобы создать новый проект служб SSIS (Рисунок 553).
Рисунок 553. Создание нового проекта в BI Dev Studio
В диалоговом окне «Создать проект» в области «Шаблоны» выберите вариант «Проект служб SSIS». В поле Имя измените заданное по умолчанию имя на Integration Services Turotial. При необходимости снимите флажок «Создать каталог для решения» (Рисунок 554).
Рисунок 554. Настройка параметров создаваемого проекта
По умолчанию будет создан пустой пакет с именем Package.dtsx, который будет добавлен к проекту (Рисунок 555).
Рисунок 555. Созданный по умолчанию проект
На панели инструментов «Обозреватель решений» щелкните правой кнопкой мыши файл Package.dtsx, выберите команду «Переименовать» и переименуйте пакет по умолчанию в «Lab11.dtsx». Получив предупреждение о переименовании объекта пакета, нажмите кнопку «Да» (Рисунок 556).
Рисунок 556. Предупреждение о переименовании объекта пакета
Установка свойств проекта, зависящих от языка и региональных стандартов В меню «Вид» выберите пункт «Окно свойств». В окне «Свойства» присвойте свойству LocaleID значение Английский (США) (Рисунок 557).
Рисунок 557. Окно свойств пакета
Добавление диспетчера соединений с плоскими файлами Далее к созданному пакету будет добавлен диспетчер соединений с плоскими файлами. Диспетчер соединений с плоскими файлами позволяет пакету извлекать данные из плоских файлов. С помощью диспетчера соединений с плоскими файлами можно указать имя и расположение файла, языковые стандарты и кодовую страницу, а также формат файла, включая разделители столбцов. Эти данные будут использованы при извлечении пакета из плоского файла. Кроме того, можно вручную указать тип данных для каждого столбца или в диалоговом окне «Предлагаемые типы столбцов» указать автоматическое сопоставление столбцов извлекаемых данных с типами данных в службах SSIS. В данной лабораторной работе предстоит настроить следующие свойства диспетчера соединений с плоскими файлами: 1. Имена столбцов. Так как в плоском файле не указаны имена столбцов, диспетчер соединений с плоскими файлами создает имена столбцов по умолчанию. Указанные имена по умолчанию не дают представления о содержащихся в столбцах данных. Чтобы сделать имена по умолчанию более понятными, следует заменить их именами, взятыми из таблицы фактов, в которую производится загрузка данных.
2. Сопоставление данных. Сопоставление типов данных, указанное для диспетчера соединений с плоскими файлами, используется всеми компонентами источников данных «плоский файл», которые обращаются к диспетчеру подключения. Можно сопоставить типы данных вручную с помощью диспетчера соединений с плоскими файлами или использовать «диалоговое окно Предлагаемые типы столбцов». В данной лабораторной работе предстоит просмотреть сопоставления, предложенные в диалоговом окне «Предлагаемые типы столбцов», а затем вручную создать необходимые сопоставления в диалоговом окне «Редактор диспетчера соединений с плоскими файлами». Щелкните правой кнопкой область «Диспетчеры соединений» и в контекстном меню выберите команду «Создать соединение с плоским файлом» (Рисунок 558).
Рисунок 558. Контекстное меню области "Диспетчер соединений"
В диалоговом окне «Редактор диспетчера соединений с плоскими файлами» в поле «Имя диспетчера соединений» введите «DS Sample». Нажмите кнопку «Обзор». В диалоговом окне «Открыть» найдите папку, содержащую образец данных, а затем откройте файл SampleCurrencyData.txt. По умолчанию образцы данных устанавливаются в папку C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data (Рисунок 559).
Рисунок 559. Редактор диспетчера соединений с плоскими файлами
Убедитесь, что в диалоговом окне «Редактор диспетчера соединений с плоскими файлами» свойство «Языковой стандарт» установлено в значение «Русский (Россия)», а свойство «Кодовая страница» - в значение 1251. В левой части редактора нажмите пункт «Дополнительно». В области свойств измените свойство «Имя» для столбца 0 на AverageRate, для столбца 1 – на «CurrencyID», для столбца 2 на «CurrencyDate», а для столбца 3 на «EndOfDayRate» (Рисунок 560).
Рисунок 560. Задание имен столбцов
По умолчанию для всех четырех столбцов указан строковый тип данных *DT_STR+ со значением параметра «OutputColumnWidth», равным 50. В диалоговом окне «Редактор диспетчера соединений с плоскими файлами» нажмите кнопку «Предложить типы». Службы SSIS автоматически предлагают большинство соответствующих типов данных на основании первых 100 строк данных. Можно изменить параметры предложения по большему или меньшему количеству данных, чтобы указать тип данных по умолчанию для целочисленных и логических данных или чтобы добавить пробелы в дополнение к строковым столбцам. На данный момент не изменяйте значения параметров в диалоговом окне «Предполагаемые типы столбцов» и нажмите кнопку ОК, чтобы службы SSIS предложили типы данных для столбцов (Рисунок 561).
Вернется область «Дополнительно» диалогового окна «Редактор диспетчера соединений с плоскими файлами», где можно просмотреть типы данных столбцов, предложенные службами SSIS (Рисунок 562).
Рисунок 562. Предложенные SSIS типы данных столбцов
В данной лабораторной работе для данных из файла SampleCurrencyData.txt в службах SSIS предлагаются типы данных, приведенные во втором столбце, а типы данных, требуемые для столбцов назначения, которые будут определены позже, приведены в последнем столбце (Таблица 14). Таблица 14. Предложенные SSIS типы данных источника и типы данных для столбцов назначения
Столбец плоских файлов Предложенный тип Целевой столбец
Целевой тип
AverageRate
Float [DT_R4]
FactCurrencyRate.AverageRate
Float
CurrencyID
String [DT_STR]
DimCurrency.CurrencyAlternateKey nchar(3)
CurrencyDate
Date [DT_DATE]
DimTime.FullDateAlternateKey
datetime
EndOfDayRate
Float [DT_R4]
FactCurrencyRate.EndOfDayRate
Float
Типы данных, предложенные для столбцов «CurrencyID» и «CurrencyDate», несовместимы с типами данных в полях целевой таблицы. Необходимо изменить тип данных столбца «CurrencyID» со строкового *DT_STR+ на строковый *DT_WSTR+, так как типом данных поля
«DimCurrency.CurrencyAlternateKey» является nchar (3). В качестве типа данных поля «DimTime.FullDateAlternateKey» задан тип «DateTime», поэтому необходимо изменить тип параметра «CurrencyDate» с типа даты *DT_Date+ на тип временной метки базы данных [DT_DBTIMESTAMP]. В окне свойств измените тип данных столбца «CurrencyID» со строкового *DT_STR+ на тип «Строка в Юникоде *DT_WSTR+» (Рисунок 563).
Рисунок 563. Изменение типа данных столбца «CurrencyID»
В области свойств измените тип данных столбца «CurrencyDate» с типа даты *DT_DATE+ на тип «временная метка базы данных *DT_DBTIMESTAMP+». Нажмите кнопку ОК.
Добавление и настройка диспетчера соединений OLE DB После добавления диспетчера соединений с плоскими файлами для подключения к источникам данных предстоит добавить диспетчер соединений OLE DB для соединения с назначением. Диспетчер соединений OLE DB позволяет пакету получать данные из любого источника данных, совместимого с OLE DB, а также загружать данные в такой источник данных. Используя диспетчер соединений OLE DB, можно указать для соединения сервер, метод проверки подлинности и базу данных по умолчанию.
Будет создан диспетчер соединений OLE DB, использующий проверку подлинности Windows для подключения к локальному экземпляру AdventureWorksDW. Щелкните правой кнопкой мыши область «Диспетчеры соединений» и выберите команду «Создать соединение OLE DB» (Рисунок 564).
Рисунок 564. Контекстное меню области "Диспетчер соединений"
В диалоговом окне «Настройка диспетчера соединений OLE DB» нажмите кнопку «Создать» (Рисунок 565).
Рисунок 565. Диалоговое окно «Настройка диспетчера соединений OLE DB»
В диалоговом окне «Диспетчер соединений» введите localhost в поле «Имя сервера» (Рисунок 566).
Рисунок 566. Диспетчер соединений
Если в качестве имени сервера указано значение localhost, диспетчер соединений соединяется с экземпляром SQL Server, расположенном по умолчанию на локальном компьютере. Чтобы использовать удаленный экземпляр SQL Server, замените localhost именем сервера, с которым нужно соединиться. Убедитесь, что в группе параметров «Вход на сервер» выбран вариант «Использовать проверку подлинности Windows». В группе «Подключение к базе данных» в раскрывающемся списке «Выберите или введите имя базы данных» введите или выберите имя «AdventureWorksDW». Нажмите кнопку «Проверить соединение», чтобы убедиться, что параметры соединения указаны правильно. Нажмите кнопку ОК. Нажмите кнопку ОК. Убедитесь, что на панели «Подключение к данным» в диалоговом окне «Настройка диспетчера соединений OLE DB» выбрано значение «localhost.AdventureWorksDW». Нажмите кнопку ОК.
Добавление задачи потока данных в пакет После того как были созданы диспетчеры соединений для исходных и целевых данных, предстоит добавить в пакет задачу потока данных. Задача потока данных включает в себя подсистему
обработки потока данных, которая осуществляет передачу данных между источниками и назначениями, а также преобразует, очищает и изменяет данные при их перемещении. В задаче потока данных сосредоточена большая часть работы в процессе извлечения, преобразования и загрузки. Перейдите на вкладку «Поток управления» (Рисунок 567).
Рисунок 567. Вкладка "Поток управления"
В окне «Панель элементов» разверните элемент «Элементы потока управления» (Рисунок 568) и перетащите элемент «Задача потока данных» в область конструктора вкладки «Поток управления» (Рисунок 569).
Рисунок 568. Окно "Панель элементов"
Рисунок 569. Добавленная задача потока данных
В области конструктора «Поток управления» щелкните правой кнопкой мыши добавленный элемент «Задача потока данных», выберите команду «Переименовать» и измените имя на «Получение курса валют». Рекомендуется давать уникальное имя каждому компоненту, добавляемому в область конструктора. Для удобства применения и обслуживания имена компонентов должны описывать их функции. Следование этим правилам именования обеспечивает самодокументируемость пакетов служб SSIS. Щелкните правой кнопкой мыши задачу потока данных, выберите «Свойства», в окне «Свойства» убедитесь, что свойство «LocaleID» имеет значение «English (United States)» (Рисунок 570).
Рисунок 570. Свойство "LocaleID" задачи "Получение курса валют"
Добавление и настройка источника плоских файлов Далее будет произведено добавление к пакету и настройка источника плоских файлов. Источник плоских файлов представляет собой компонент потока данных, использующий метаданные, определенные диспетчером соединений с плоскими файлами для описания формата и структуры данных, извлекаемых из плоского файла в процессе преобразования. Источник плоских файлов можно настроить для получения данных из единичного плоского файла путем определения формата этого файла, который предоставляется диспетчером соединений с плоскими файлами. Будет настроен источник плоских файлов, пользующийся ранее созданным диспетчером соединения «DS Sample». Откройте конструктор «Поток данных», дважды щелкнув задачу потока данных «Получение курса валют» или перейдя на вкладку «Поток данных» (Рисунок 571).
Рисунок 571. Конструктор "Поток данных"
В окне «Панель элементов» раскройте элемент «Источники потока данных» и перетяните «Источник «Плоский файл»» в область конструктора вкладки «Поток данных» (Рисунок 572).
Рисунок 572. Добавленный элемент «Источник «Плоский файл»»
В области конструктора «Поток данных» щелкните правой кнопкой мыши добавленный «Источник «Плоский файл»», в контекстном меню выберите команду «Переименовать» и измените имя на «Получение котировок валют». Дважды щелкните источник плоских файлов, чтобы открыть диалоговое окно «Редактор источника "Плоский файл"» (Рисунок 573).
В поле «Диспетчер соединений с плоскими файлами» введите или выберите «DS Sample». В левой части окна выберите пункт «Столбцы» и убедитесь, что имена столбцов заданы правильно (Рисунок 574).
Рисунок 574. Имена столбцов
Нажмите кнопку ОК. Щелкните правой кнопкой мыши источник «Плоский файл» и в контекстном меню выберите пункт «Свойства». В окне «Свойства» убедитесь, что свойство «LocaleID» имеет значение «Russian (Russia)» (Рисунок 575).
Добавление и настройка преобразований «Уточняющий запрос» После того как настроен источник плоских файлов для извлечения данных из файла источника, следует определить преобразования «Уточняющий запрос», необходимые для получения значений «CurrencyKey» и «TimeKey». Преобразование «Уточняющий запрос» выполняет поиск, соединяя данные указанного входного столбца со столбцом эталонного набора данных. Эталонным набором данных может быть таблица или представление, новая таблица или результат инструкции SQL. В данной лабораторной работе преобразование «Уточняющий запрос» использует диспетчер соединений OLE DB, чтобы подключиться к базе данных, содержащей данные, служащие источником для эталонного набора данных. Будут добавлены в пакет и настроены следующие два компонента преобразования «Уточняющий запрос»: первое преобразование предназначено для уточняющего запроса значений в столбце «CurrencyKey» таблицы измерения «DimCurrency», сопоставленных со значениями столбца «CurrencyID» плоского файла; второе преобразование предназначено для уточняющего запроса значений в столбце «TimeKey» таблицы измерения «DimTime», сопоставленных со значениями столбца «CurrencyDate» плоского файла.
Добавление и настройка преобразования «Уточняющий запрос CurrencyID» В окне «Панель элементов» раскройте группу компонентов «Преобразования потока данных» и перетащите компонент «Уточняющий запрос» в область конструктора на вкладку «Поток данных». Поместите «Уточняющий запрос» прямо под источником «Получение котировок валют» (Рисунок 576).
Щелкните источник плоского файла «Получение котировок валют» и перетащите зеленую стрелку на вновь добавленное преобразование «Уточняющий запрос», соединив эти два компонента ().
Рисунок 577. Соединение компонентов "Получение котировок валют" и "Уточняющий запрос"
В области конструктора «Поток данных» щелкните элемент «Уточняющий запрос» в преобразовании «Уточняющий запрос» и измените имя на «Уточняющий запрос CurrencyID». Дважды щелкните преобразование «Уточняющий запрос CurrencyID». На вкладке «Общие» задайте следующие параметры (Рисунок 578). Выберите «Полное кэширование». В области «Тип соединения» выберите «Диспетчер соединений OLE DB».
На вкладке «Соединение» задайте следующие параметры (Рисунок 579): Убедитесь, что в диалоговом окне «Диспетчер соединений OLE DB» отображается «localhost.AdventureWorksDW». Выберите вариант «Использовать результаты SQL-запроса» и введите или скопируйте следующую инструкцию SQL: select * from (select * from [dbo].[DimCurrency]) as refTable where [refTable].[CurrencyAlternateKey] = 'ARS' OR [refTable].[CurrencyAlternateKey] = 'AUD' OR
[refTable].[CurrencyAlternateKey] = 'BRL' OR [refTable].[CurrencyAlternateKey] = 'CAD' OR [refTable].[CurrencyAlternateKey] = 'CNY' OR [refTable].[CurrencyAlternateKey] = 'DEM' OR [refTable].[CurrencyAlternateKey] = 'EUR' OR [refTable].[CurrencyAlternateKey] = 'FRF' OR [refTable].[CurrencyAlternateKey] = 'GBP' OR [refTable].[CurrencyAlternateKey] = 'JPY' OR [refTable].[CurrencyAlternateKey] = 'MXN' OR [refTable].[CurrencyAlternateKey] = 'SAR' OR [refTable].[CurrencyAlternateKey] = 'USD' OR [refTable].[CurrencyAlternateKey] = 'VEB'
На вкладке «Столбцы» задайте следующие параметры (Рисунок 580): на панели «Доступные входные столбцы» перетащите «CurrencyID» на панель «Доступные столбцы подстановки» и поместите его на элемент «CurrencyAlternateKey»; в списке «Доступные столбцы подстановки» установите флажок слева от столбца «CurrencyKey».
Нажмите OK, чтобы вернуться в область конструктора «Поток данных». Щелкните правой кнопкой мыши преобразование «Уточняющий запрос CurrencyID», в контекстном меню выберите пункт «Свойства» (Рисунок 581).
Рисунок 581. Свойства компонента "Уточняющий запрос CurrencyID"
В окне «Свойства» убедитесь, что свойство «LocaleID» установлено в значение «English (USA)» и свойство «DefaultCodePage» установлено в значение «1252».
Добавление и настройка преобразования «Уточняющий запрос DataID» В окне «Панель элементов» перетащите компонент «Уточняющий запрос» в область конструктора «Поток данных». Поместите «Уточняющий запрос» прямо под преобразование «Уточняющий запрос CurrencyID» (Рисунок 582).
Щелкните преобразование «Уточняющий запрос CurrencyID» и перетащите зеленую стрелку на вновь созданное преобразование «Уточняющий запрос», соединив эти два компонента. В диалоговом окне «Выбор входов и выходов» выберите «Выход совпадений преобразований «Уточняющий запрос»» в раскрывающемся списке «Выход» и нажмите кнопку ОК (Рисунок 583).
Рисунок 583. Выбор входов и выходов
В области конструктора «Поток данных» щелкните элемент «Уточняющий запрос» в только что добавленном преобразовании «Уточняющий запрос» и измените имя на «Уточняющий запрос DataID» (Рисунок 584).
Рисунок 584. Связь между компонентами «Уточняющий запрос CurrencyID» и «Уточняющий запрос DataID»
Дважды щелкните преобразование «Уточняющий запрос DataID». На вкладке «Общие» выберите «Частичное кэширование» (Рисунок 585).
На вкладке «Соединение» задайте следующие параметры (Рисунок 586): убедитесь, что в поле «Диспетчер соединений OLE DB» отображается «localhost.AdventureWorksDW»; в поле «Использовать таблицу или представление» введите или выберите «[dbo].[DimTime]».
На вкладке «Столбцы» задайте следующие параметры (Рисунок 587): на панели «Доступные входные столбцы» перетяните «CurrencyDate» на панель «Доступные столбцы подстановки» и поместите его на элемент «FullDateAlternateKey»; в списке «Доступные столбцы подстановки» установите флажок слева от столбца «TimeKey».
Нажмите OK, чтобы вернуться в область конструктора «Поток данных». Щелкните правой кнопкой мыши преобразование «Уточняющий запрос DateID» и выберите пункт «Свойства». В окне «Свойства» убедитесь, что свойство «LocaleID» установлено в значение «English (USA)» и свойство «DefaultCodePage» установлено в значение «1252».
Добавление и настройка образца назначения OLE DB Созданный пакет теперь может извлекать данные из плоского источника данных и преобразовывать эти данные в формат, совместимый с форматом назначения. Далее требуется загрузить преобразованные данные в указанное назначение. Чтобы загрузить данные, необходимо добавить назначение OLE DB в поток данных. Далее будет добавлено и настроено назначение OLE DB, что позволит использовать диспетчер соединений OLE DB, созданный ранее. На «Панели элементов» раскройте группу компонентов «Назначения потока данных» и перетяните «Назначение OLE DB» в область конструктора вкладки «Поток данных». Поместите
компонент «Назначение OLE DB» непосредственно под преобразованием «Уточняющий запрос DateID» (Рисунок 588).
Рисунок 588. Добавленный компонент «Назначение OLE DB»
Щелкните преобразование «Уточняющий запрос DateID» и перетяните зеленую стрелку к добавленному компоненту «Назначение OLE DB», чтобы соединить эти два компонента. В диалоговом окне «Выбор входов и выходов» щелкните выберите вариант «Выход совпадений преобразования «Уточняющий запрос»» в раскрывающемся списке «Выходы» (Рисунок 589) и нажмите кнопку ОК.
Рисунок 589. Выбор входов и выходов при соединении компонентов «Уточняющий запрос DateID» и «Назначение OLE DB»
В области конструктора «Поток данных» щелкните элемент «Назначение «OLE DB»» в только что добавленном преобразовании «Назначение «OLE DB»» и измените имя на «Образец назначения OLE DB» (Рисунок 590).
Дважды щелкните значок «Образец назначения OLE DB». Убедитесь, что в диалоговом окне «Редактор назначения OLE DB» на закладке «Диспетчер соединений OLE DB» выбрано значение «localhost.AdventureWorksDW». В поле «Имя таблицы или представления» введите или выберите значение «[dbo].[FactCurrencyRate]» (Рисунок 591).
Рисунок 591. Закладка «Диспетчер соединений OLE DB» диалогового окна «Редактор назначения «OLE DB»»
Перейдите на закладку «Сопоставления» (Рисунок 592).
Рисунок 592. Закладка «Сопоставления» диалогового окна «Редактор назначения «OLE DB»»
Убедитесь, что входные столбцы «AverageRate», «CurrencyKey», «EndOfDayRate» и «TimeKey» правильно сопоставлены с целевыми столбцами. Если друг с другом сопоставлены столбцы с одинаковыми именами, то сопоставление правильное. Нажмите кнопку ОК. Щелкните правой кнопкой мыши назначение «Образец назначения OLE DB» и в контекстном меню выберите пункт «Свойства». В окне «Свойства» убедитесь, что свойство «LocaleID» установлено в значение «English (USA)» и свойство «DefaultCodePage» имеет значение «1252».
Добавление заметки к потоку данных Щелкните правой кнопкой мыши в области конструктора потока данных и в контекстном меню выберите «Добавить заметку». В окне заметки введите или вставьте копированием следующий текст:
Поток данных извлекает данные из файла, находит значения в столбце «CurrencyKey» таблицы «DimCurrency» и в столбце «TimeKey» таблицы «DimTime», после чего записывает данные в таблицу «FactCurrencyRate». Чтобы в окне заметки перенести текст на следующую строку, поместите курсор в место, где должна начинаться новая строка, и нажмите клавиши Ctrl и Enter (Рисунок 593).
Рисунок 593. Заметка, добавленная к потоку данных
Выполнение пакета В меню Отладка выберите команду «Начать отладку». Пакет будет запущен, и в таблицу фактов «FactCurrencyRate» из базы данных «AdventureWorksDW» будет добавлено 1097 строк.
После окончания работы пакета выберите в меню Отладка пункт Остановить отладку.
Контрольные вопросы 1. Какие функции выполняют SSIS? 2. Какие компоненты содержат службы SSIS?
Литература 1. MSDN Library http://msdn.microsoft.com 2. Роберт Э. Уолтерс, Майкл Коулс, Роберт Рей, Фабио Феррачати, Дональд Фармер. SQL Server 2008: ускоренный курс для профессионалов. Apress, 2009. 3. Бергер А., Горбач И. Меломед Э., Щербинин В., Степаненко В. Microsoft SQL Server 2005 Analysis Services. OLAP и многомерный анализ данных. BHV, 2007.
4. A. Berger, E. Melomed. Microsoft SQL Server 2008 Analysis Services. Pearson Education eBook Publish Date: January 21, 2009 5. Спирли Э. Корпоративные хранилища данных. Планирование, разработка и реализация. Т.1. Вильямс, 400 с., ил. 6. Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Методы и модели анализа данных: OLAP и Data Mining – СПб.: БХВ-Петербург, 2004. – 336 с.: ил. 7. Федоров А., Елманова Е. Введение в OLAP. КомпьютерПресс №№4,5, 2001.