No Image

Создание olap куба в ms sql server

СОДЕРЖАНИЕ
1 просмотров
10 марта 2020

Алексей Федоров,
Наталия Елманова, преподаватель УКЦ "Interface Ltd",
КомпьютерПресс 8’2001

В предыдущей статье данного цикла "Создание и заполнение хранилищ данных с помощью Data Transformation Services" мы обсудили вопросы заполнения хранилищ данных и синхронизации их с содержимым оперативной базы данных. На этот раз мы рассмотрим, как на основании хранилищ данных можно создавать многомерные базы данных и OLAP-кубы с помощью Microsoft Analysis Services — аналитических сервисов, с архитектурой которых мы уже знакомы ("Архитектура Microsoft Analysis Services").

Создание многомерных баз данных и описание источников данных

Рассмотрим создание многомерного OLAP-куба на основании хранилища данных Northwind_Mart, которое мы создали и заполнили в предыдущей статье. Напомним, что это хранилище содержит таблицу фактов Sales_Fact и таблицы измерений Employee_Dim, Customer_Dim, Product_Dim, Time_Dim, Shipper_Dim. Отметим, что в процессе создания куба нам придется несколько модифицировать наше хранилище данных, с тем чтобы оно позволяло производить некоторые специальные виды анализа данных.

Для выполнения этого примера следует установить аналитические службы Microsoft SQL Server (напоминаем, что они входят в комплект поставки Microsoft SQL Server Enterprise Edition, Standard Edition, Developer Edition и Personal Edition) и запустить утилиту Analysis Manager, с помощью которой обычно и создаются многомерные базы данных.

Прежде всего следует зарегистрировать в Analysis Manager OLAP-сервер (он может находиться как на локальном компьютере, так и на другом компьютере в рамках локальной сети), выбрав пункт Register Server… из контекстного меню элемента Analysis Servers в левой части главного окна Analysis Manager. Затем нужно соединиться с OLAP-сервером, выбрав пункт Connect контекстного меню соответствующего элемента.

Поскольку OLAP-кубы хранятся в многомерных базах данных, создадим таковую, выбрав пункт New Database… из контекстного меню элемента, соответствующего OLAP-серверу, и введем имя базы данных и ее описание.

Прежде чем создавать OLAP-кубы, необходимо описать источники исходных данных для них. В нашем примере таким источником является созданное ранее хранилище Northwind_Mart. Для описания источника данных выберем из контекстного меню элемента Data Sources пункт New Data Source… и заполним поля стандартной диалоговой панели Data Link Properties: в качестве провайдера данных укажем OLE DB Provider for SQL Server и выберем базу данных Northwind_Mart (рис. 1).

Рис. 1. Создание источника данных

Теперь можно приступать к созданию измерений и кубов.

Создание коллективных измерений

Как мы уже знаем из предыдущих статей данного цикла, у OLAP-куба должно быть как минимум одно измерение. В Microsoft SQL Server Analysis Services измерения делятся на коллективные (shared dimensions) и частные (private dimensions).

Коллективные измерения — это измерения, которые могут быть использованы одновременно в нескольких кубах. Их применение удобно в том случае, когда измерение основано на стандартных данных, применимых при анализе различных предметных областей. Типичным примером создания таких измерений может быть, например, список сотрудников компании. Коллективные измерения принадлежат самой многомерной базе данных и не зависят от того, какие кубы имеются в многомерной базе данных и есть ли они там вообще.

Частные измерения принадлежат конкретному кубу и создаются вместе с ним. Они применяются в том случае, когда данное измерение имеет смысл только в одной конкретной предметной области.

Создать как коллективное, так и частное измерение можно двумя способами: с помощью соответствующего мастера и с помощью редактора измерений.

Создание измерения типа «дата/время»

В качестве примера создадим коллективное измерение, основанное на таблице хранилища данных Time_Dim, воспользовавшись мастером создания измерений (Dimension wizard). Запустить его можно с помощью команды New Dimension | Wizard из контекстного меню элемента Shared Dimensions. Затем необходимо ответить на вопросы мастера создания измерений. В первую очередь следует выбрать, на основании чего мы создаем измерение. Поскольку исходное хранилище данных основано на схеме «звезда», выберем в мастере создания измерений опцию Star Schema: a single dimension table, а затем — имя таблицы, служащей источником данных для создаваемого измерения (в нашем примере — Time_Dim, рис. 2):

Рис. 2. Выбор таблицы для создания измерения

Иерархия данных в измерениях, основанных на данных типа «дата/время», подчиняется определенным стандартным правилам — ведь время измеряется в годах, месяцах, днях, часах, минутах независимо от того, какую предметную область мы анализируем. Поэтому измерения в OLAP-средствах обычно делятся на стандартные (не имеющие отношения ко времени) и временные. Поскольку наше измерение относится к последним, в диалоговой панели Select the dimension type выберем опцию Time Dimension и в качестве колонки, в которой содержатся данные типа «дата/время», укажем поле TheDate.

Теперь нам необходимо выбрать уровни иерархии измерений (например, решить, интересна ли нам информация о часах и минутах, нужны ли нам номера недель года и т.д.), а также определить, когда начинается год с точки зрения данного измерения. Это довольно важная возможность — ведь во многих странах начало финансового года не совпадает с началом года календарного. В нашем случае выберем уровни Year, Quarter, Month, Day и согласимся с тем, что год начинается 1 января (рис. 3).

Рис. 3. Создание измерения типа «дата/время»

Далее нам предстоит выбрать, является ли измерение изменяющимся (changing dimension). В изменяющихся измерениях (новинка в SQL Server 2000) можно перемещать члены измерений между уровнями без перерасчета данных измерения, что во многих случаях бывает удобно. Однако измерения типа Time, как правило, не делают изменяющимися — обычно никто не перемещает месяцы из одного года в другой. Поэтому в данном случае мы не будем выбирать эту опцию.

В заключительной диалоговой панели мы должны ввести имя будущего измерения и, если есть необходимость, создать иерархию в измерении и задать ее имя. Дело в том, что при необходимости можно создать еще одно измерение, основанное на тех же данных, с тем же именем, но с другой иерархией, например Year, Week, Day; в этом случае мы имеем разное представление одних и тех же данных. Присвоим созданной иерархии имя YQMD (рис. 4).

Рис. 4. Создание источника данных

Создание измерения заканчивается запуском редактора измерений — Dimension Editor. В нем при необходимости можно внести изменения в структуру измерения, например добавив дополнительные уровни или свойства членов измерения. Так, если мы планируем анализировать зависимость продаж от дня недели или сравнивать продажи в выходные, праздничные и будние дни, можно перенести в раздел Member Properties уровня Day поля Day of Week, Holiday и Weekend исходной таблицы Time_Dim (рис. 5).

Рис. 5. Dimension Editor

Теперь можно сохранить созданное измерение, выбрав пункт меню File | Save, и закрыть редактор измерений.

Повторим все указанные действия, выбрав при этом другую иерархию — Year, Week, Day, и назовем вновь созданное измерение Time.YWD.

Создание регулярного измерения

Следующее коллективное измерение создадим с помощью редактора измерений. Запустить его можно с помощью команды New Dimension | Editor из контекстного меню элемента Shared Dimensions. Далее в диалоговой панели Select the dimension table выберем таблицу Product_Dim. В редакторе измерений создадим два уровня иерархии этого измерения — CategoryName и ProductName — и перенесем мышью соответствующие имена полей в левую часть редактора измерений. В качестве свойств членов измерения уровня ProductName выберем поля SupplierName и ListUnitPrice. Поскольку переносить продукты из одной категории в другую представляется более разумным, чем переносить месяцы из одного года в другой, сделаем это измерение изменяющимся — соответствующее свойство доступно на вкладке Advanced панели Properties в левой нижней части редактора измерений. Сохраним созданное измерение под именем Product (рис. 6).

Рис. 6. Создание регулярного измерения в Dimension Editor

Создание измерения с несбалансированной иерархией

Следующее измерение будет содержать географические сведения. Такие измерения являются типичными кандидатами для создания так называемых неровных (ragged) иерархий — частного случая несбалансированных (unbalanced) иерархий. Как известно, административно-территориальное деление в разных странах осуществляется по разным правилам: в некоторых странах есть регионы, штаты, административные округа, а в некоторых достаточно указать населенный пункт, и в этом случае сведения о штате или регионе могут отсутствовать.

Чтобы создать измерение с несбалансированной иерархией, добавим в хранилище данных представление, которое будет содержать исходные данные для создания этого измерения:

Это представление содержит данные из таблицы Customer_Dim, а также вычисляемое поле Region1, содержащее название страны вместо строки «Other» в тех случаях, когда сведения о клиенте не содержат данных о регионе или штате. Это поле нам потребуется в дальнейшем для создания несбалансированной иерархии.

Теперь создадим измерение, основанное на вновь созданном представлении CustomerView_Dim хранилища данных. Последовательность действий в этом случае сходна с предыдущим примером. В качестве уровней иерархии этого измерения мы выберем поля Country, Region1, City, CompanyName. Добавим в раздел Member Properties уровня Company Name поля Contact Name и Contact Title.

Несбалансированные иерархии обычно базируются на сокрытии членов измерения, содержащих избыточные сведения. В данном случае таковым является уровень Region1. Выберем его в редакторе измерений и на странице Advanced раздела Properties установим свойство Hide Member If равным Parent’s name. В этом случае все члены уровня Region1, содержащие названия стран, будут скрыты (рис. 7).

Рис. 7. Несбалансированная иерархия

Именно для этого мы и создавали представление в хранилище данных — строка «Other», вполне устраивавшая нас при обращении к самому хранилищу данных, будучи именем члена измерения, не может выступать в качестве условия его скрытия.

Создание измерения типа «родитель-потомок»

Следующее измерение, которое мы создадим, будет основано на таблице Employee_Dim хранилища данных. Обычно измерения, содержащие сведения об административной подчиненности сотрудников, содержат еще один тип несбалансированных иерархий — иерархии типа «родитель-потомок» (parent-child). Такие иерархии нередко основаны на таблицах, где первичный ключ является одновременно и внешним ключом. Исходная таблица Employees базы данных Northwind действительно содержит сведения об административной подчиненности сотрудников (и имеет соответствующий внешний ключ), а таблица Employee_Dim — нет. Поэтому в первую очередь модифицируем ее, добавив к ней поле Reports_To:

Затем с помощью DTS добавим в это поле данные из таблицы Employees (рис. 8).

Рис. 8. Добавление данных в таблицу Employee_Dim

Рис. 9. Определение параметров иерархии «родитель-потомок»

В диалоговой панели Select advanced options следует выбрать опцию Members with data, а в панели Set members with data property — опции Nonleaf members have associated data и Data members are visible. Это позволит анализировать как собственные результаты работы сотрудников, имеющих подчиненных, так и результаты работы их подчиненных. Создадим иерархию в этом измерении, назвав ее Employee.PC, и укажем в качестве свойства члена измерения поле Hire Date. В результате мы получим иерархию, показанную на рис. 10.

Читайте также:  Clipconverter cc на русском языке бесплатно

Рис. 10. Иерархия «родитель-потомок»

В качестве альтернативы создадим еще одну иерархию — Employee.Regular, содержащую один уровень Employee_Name; в качестве свойств члена этого уровня выберем поля Hire Date и Reports_To.

На этом мы закончим создание коллективных измерений и приступим к созданию куба.

Создание OLAP-кубов

Как и измерение, куб можно создать с помощью соответствующего мастера или непосредственно в редакторе кубов. В качестве примера создадим куб, основанный на нашем хранилище данных Northwind_Mart и использующий созданные выше измерения. Запустить мастер создания кубов можно командой New Cube | Wizard из контекстного меню элемента Cubes.

Создание описания куба

Первое, что следует сделать после запуска мастера, — выбрать таблицу фактов для будущего куба. В нашем случае это таблица Sales_Fact. Далее из таблицы фактов следует выбрать одно или несколько полей, на основе которых вычисляются меры куба (то есть поля, данные которых подлежат суммированию либо обработке с помощью других агрегатных функций). Выберем поля Line Item Total, Line Item Quantity и Line Item Discount (рис. 11).

Рис. 11. Выбор мер куба

Следующим шагом будет выбор коллективных измерений, используемых в этом кубе, а также создание недостающих частных измерений. Выберем коллективные измерения Employee.PC, Employee.Regular, Time.YQMD, Product и Customer. Кроме того, добавим новое измерение Shipper, нажав кнопку New Dimension в диалоговой панели выбора измерений. Это приведет к запуску уже знакомого нам мастера создания измерений; в последней из диалоговых панелей мастера в этом случае мы можем выбрать, каким будет создаваемое измерение — частным или коллективным (рис. 12).

Рис. 12. Выбор мер куба

Таким образом, мы определили метаданные куба. По окончании работы мастера будет запущен редактор кубов, в котором при необходимости можно внести исправления в определение куба, например добавить или удалить измерения и меры, создать вычисляемые значения и т.д. (рис. 13).

Рис. 13. Редактор кубов

Создание вычисляемых выражений

Теперь попробуем добавить к нашему кубу вычисляемые значения, то есть значения, которые не хранятся в самом кубе, а вычисляются «на лету». Типичным примером такого значения может быть дополнительная мера, вычисленная на основе уже имеющихся. При вычислениях можно использовать как функции из библиотеки, входящей в состав Analysis Services, так и выражения VBA, а также собственные библиотеки функций (последние следует зарегистрировать в Analysis Services).

Для создания вычисляемых выражений следует выбрать раздел Calculated Members и из контекстного меню выбрать опцию New Сalculated Member. После этого будет запущен построитель выражений (Calculated Member Builder), в котором можно создавать и редактировать выражения, перетаскивая мышью имена измерений и их уровней, мер, имена функций. Например, перенесем в поле для выражения имена мер [Measures].[Line Item Total] и [Measures].[Line Item Discount], поставим между ними знак вычитания, а в качестве значения Member Name ведем Discounted Total (рис. 14).

Рис. 14. Редактор вычисляемых выражений

В результате мы получили еще одну меру — значение суммы, вырученной за товар, с учетом скидки.

Теперь можно сохранить определение куба, выбрав пункт меню File | Save редактора кубов.

Создание многомерного хранилища данных

Процесс создания куба на этом не завершен — мы создали его определение, но не производили никаких вычислений. Прежде чем произвести вычисления, напомним, что существует несколько способов хранения агрегатных данных (мы уже обсуждали эти способы в предыдущих статьях данного цикла). Для данного примера вполне подойдет хранение всех данных в многомерной базе данных (MOLAP), так как объем исходных данных невелик. Однако в других случаях следует оценить, какой способ хранения наиболее выгоден для данной задачи.

Еще один вопрос, который следует решить при создании многомерного хранилища данных — сколько агрегатов следует хранить? Агрегаты — это заранее вычисленные агрегатные данные, соответствующие ячейкам куба. Чем их больше, тем быстрее выполняются запросы к многомерному хранилищу и тем больше объем самого хранилища. Поэтому в общем случае требуется некое их количество, позволяющее осуществить разумный баланс между компактностью и производительностью.

Для определения количества агрегатов и их вычисления следует запустить Storage Design wizard — мастер создания многомерного хранилища. Для этого в редакторе кубов следует выбрать пункт меню Tools | Design Storage.

В первой диалоговой панели следует указать способ хранения данных — MOLAP, ROLAP или HOLAP (в нашем примере мы выберем MOLAP). Затем выбрать, какова должна быть производительность при выполнении запросов (либо будущий максимальный объем хранилища). После этого можно нажать на кнопку Start и получить зависимость производительности от объема хранилища (рис. 15).

Рис. 15. Определение количества агрегатов

И наконец, нам необходимо вычислить сами агрегатные данные. Это можно сделать как в том же мастере создания хранилища, так и в редакторе кубов (команда Tools | Process Cube, рис. 16).

Рис. 16. Вычисление агрегатных данных

Теперь, когда куб готов, можно заняться его просмотром в редакторе кубов (для этого нужно выбрать закладку Data в нижней части экрана, рис. 17).

Рис. 17. Просмотр сечений куба

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

Заключение

В данной статье мы рассмотрели процесс создания многомерных баз данных Microsoft Analysis Services и содержащихся в них объектов. Мы узнали, что:

  • в многомерных базах данных содержится несколько типов объектов, в том числе кубы и коллективные измерения;
  • в Microsoft Analysis Services измерения делятся на коллективные и частные. Коллективные измерения могут быть использованы одновременно в нескольких кубах, а частные — принадлежат конкретному кубу.

Мы также научились создавать измерения с различными типами иерархий и узнали, что:

  • иерархии в измерениях могут быть сбалансированными и несбалансированными. Несбалансированные иерархии обычно базируются на скрытии членов измерения, содержащих избыточные сведения;
  • иерархии типа «родитель-потомок» обычно основаны на таблицах, чей первичный ключ является внешним ключом;
  • можно создать несколько иерархий, используя одни и те же данные.

Кроме того, мы обсудили создание многомерных кубов и теперь знаем, что:

  • при создании куба из таблицы фактов следует выбрать одно или несколько полей, на основе которых вычисляются меры куба, выбрать коллективные измерения, которые будут использоваться в этом кубе, а также создать недостающие частные измерения. При необходимости можно добавить к кубу вычисляемые значения;
  • агрегаты — это заранее вычисленные агрегатные данные, соответствующие ячейкам куба. Чем их больше, тем быстрее выполняются запросы к многомерному хранилищу и тем больше объем самого хранилища;
  • для вычисления агрегатных данных следует оценить, какой способ хранения наиболее выгоден для данной задачи, и определить на основе баланса производительности и объема хранилища, какое количество агрегатов следует создать;
  • после вычисления агрегатных данных куба можно просматривать его двухмерные сечения в редакторе кубов.

Следующая статья данного цикла будет посвящена работе с Microsoft Excel как c OLAP-клиентом.

Статья Алексея Просницкого, РМР, MVP (Компания Leo Consulting), первоначально опубликованная здесь.

В данной финальной (третьей) статье, посвященной настройке бизнес аналитики для построения отчетов в Project Server 2013, мы наконец-то построим куб данных OLAP по проектам и проверим правильность построения отчетов.

1. Установка компонент SQL Server

1.1 Установка управляющих объектов аналитики SQL Server 2008 R2 / 2012

Если управляющие объекты аналитики SQL Server 2008 (AMO) еще не установлены, их следует установить на каждом сервере приложений в ферме, а также на самом сервере SQL.

Используйте версию SQL Server 2008 объектов AMO независимо от того, какая версия SQL Server 2008 или R2 используется для размещения баз данных.

Скачать Microsoft SQL Server 2008 R2 АМО можно по адресу: http://go.microsoft.com/fwlink/?Link >

Скачать Microsoft SQL Server 2012 АМО можно по адресу: http://go.microsoft.com/fwlink/?Link >

После того, как вы скачаете SQL Server AMO, запустите установочный MSI файл и нажмите «Далее», Рисунок 1.

Рисунок 1. Установка Microsoft SQL Server 2008 Analysis Management Object

  1. Подтвердите условия лицензионного соглашения и нажмите «Далее».
  2. Введите свое имя и название организации и нажмите «Далее».
  3. Подтвердите установку продукта, нажав кнопку «Установить».
  4. После окончания установки, нажмите «Готово», Рисунок 2.

Рисунок 2. Завершение установка Microsoft SQL Server 2008 AMO

После установки объектов AMO на сервера приложений и SQL их нужно перегрузить.

1.2 Установка SQL Server 2008 Native Client

Следующий важный шаг, это установки SQL Server 2008 Native Client или SQL Server 2012 Native Client на сервере приложений и на сервере SQL Server.

Скачать Microsoft SQL Server 2008 R2 Native Client можно по адресу: http://go.microsoft.com/fwlink/?Link >

Скачать Microsoft SQL Server 2012 Native Client можно по адресу: http://go.microsoft.com/fwlink/?Link >

После того, как вы скачаете SQL Server Native Clinet, запустите установочный MSI файл и нажмите «Далее», Рисунок 3.

Рисунок 3. Запуск установки SQL Server 2008 Native Client

  1. Подтвердите условия лицензионного соглашения, нажмите «Далее».
  2. Введите свое имя и название организации и нажмите «Далее».
  3. Нажмите «Далее».
  4. Подтвердите установку продукта, нажав кнопку «Установить».
  5. После установки SQL Server 2008 Native Client, Рисунок 4, нажмите «Готово».

Рисунок 4. Окончание установки SQL Server 2008 Native Client

После установки SQL Server Native Client на сервера приложений и SQL их нужно перегрузить.

2. Добавление группы авторов отчетов в качестве администратора сервера служб аналитики

Создайте доменные группы «DOMAINReport Authors» и «DOMAINReport Viewers» в AD, Рисунок 5.

Рисунок 5. Создание группы для пользователей бизнес аналитики

После того, как была создана группа «Report Authors», и был установлен Project Server 2013, можно приступить к настройке прав доступа данной группы к возможности строить кубы данных Project Server и настраивать отчетность.

На сервере, где установлен SQL Server, запустите «Microsoft SQL Server Management Studio», выберите экземпляр ядра СУБД SQL Server, в котором хранятся базы данных отчетов Project Server 2013 и подключитесь к службе «Database Engine».

После этого нужно выполнить следующие шаги:

  1. Разверните «Security (Безопасность)», щелкните правой кнопкой мыши «Logins (Имена для входа)», затем нажмите «New Login (Создать новое имя для входа)».
  2. В окне ««New Login (Создать новое имя для входа)» на странице «General (Общие сведения)» нажмите кнопку «Search (Найти)», Рисунок 6.
  3. Щелкните «Object Types (Типы объектов)» и установите флажок «Группы».
  4. Нажмите кнопку «ОК».
  5. Введите имя группы, созданной для авторов отчетов.
  6. Нажмите кнопку «Check Names (Проверить имена)».
Читайте также:  Как откалибровать компас на смартфоне

При нажатии кнопки «ObjectTypes» нужно поставить галочку у объекта «Groups», чтобы в поле «Entertheobjectsnametoselect» можно было добавить группу «Report Authors».

Рисунок 6. Поиск имени в базе данных

После того, как будет добавлена группа:

  1. Перейдите на страницу «User Mapping (Сопоставление пользователей)».
  2. В окне списка «Users mapping to this login (Пользователи, сопоставленные с этим именем входа)» выберите строку, содержащую базу данных отчетности Project Server 2013.
  3. Установите флажок «Сопоставить для базы данных отчетов Project Server 2013».
  4. Установите флажки «db_datareader», «public», «PSDataAccess», Рисунок 7.
  5. Нажмите кнопку «ОК» и выйдите из «Microsoft SQL Server Management Studio».

Рисунок 7. Установка флажка на чтение базы данных

В домене контролера (AD) не забудьте добавить в группу авторов отчетов (Report Authors), тех пользователей, которые будут настраивать и создавать отчеты.

3. Построение куба OLAP

Теперь пришло время построить тестовый куб OLAP данных.

Для настройки построения куба зайдите в центр администрирования SharePoint Server 2013 по ссылке «Общие параметры приложения – Параметры PWA – Управление – Управление базой данных OLAP», Рисунок 8.

Рисунок 8. Управление базой данных OLAP

Project Server 2013 поддерживает множество кубов. Таким образом, Вы можете создавать кубы специально разных департаментов, чтобы департамент видел только свои данные, а его данные не видели пользователи других департаментов.

Вы можете управлять всеми Вашими кубами с одной страницы:

Для построения нового куба:

  1. Нажмите «Создать» или на имени куба «Имя базы данных», Рисунок 9.
  2. В поле:
  • «Сервер Analysis Services» укажите название сервера, где установлена служба «Analysis Services». По умолчанию это название сервера SQL.
  • «База данных Analysis Services для создания» укажите произвольное название куба OLAP.

Рисунок 9 Создание нового куба базы данных OLAP

Укажите частоту обновления базы данных и нажмите «Сохранить», Рисунок 10.

Рисунок 10. Определение параметров нового куба базы данных OLAP

На странице «Управление базой данных OLAP» выделите тестовый куб и нажмите «Построить сейчас», Рисунок 11.

Рисунок 11. Выделение куба для его построения

Просмотреть статус построения куба вы можете, нажав на ссылку в строке с вашей базой данных в поле «Состояние». При этом откроется дополнительное окно «Состояние построения» с расширенной информацией о состоянии построения куба, Рисунок 12.

Рисунок 12. Процесс построения куба базы данных OLAP

Об успешном построение куба свидетельствует соответствующий статус «Успешное построение!» в поле «Состояние», Рисунок 13.

Рисунок 13. Завершение процесса построения куба базы данных OLAP

4. Настройка доступа к центру бизнес-аналитики

Чтобы предоставить пользователям доступ к центру бизнес-аналитики в PWA (а также к его отчетам), необходимо заполнить группы авторов отчетов и просматривающих отчеты пользователей следующим образом:

  • В группу авторов отчетов (Report Authors) следует добавить учетные записи Active Directory пользователей, ответственных за создание отчетов с помощью Microsoft Excel.
  • В группу просматривающих отчеты (Report Viewers) пользователей следует добавить учетные записи пользователей PWA, которым требуется просматривать отчеты в центре бизнес-аналитики.

Если авторы отчетов также будут просматривать отчеты, то группу авторы отчетов необходимо добавить к группе пользователей, просматривающих отчеты, в Active Directory.

5. Построение отчета

Последний шаг данного раздела, это проверка того, правильно ли все было установлено и настроено. Для проверки необходимо перейти на узел PWA и в меню быстрого запуска зайти в меню «Отчеты – Отчеты – Русский» и щелкнуть на имеющемся отчете, например «ПростойСписокПроектов».

После этого в веб браузере откроется отчет Excel благодаря имеющейся службе Excel Services, Рисунок 14.

Рисунок 14. Построенный отчет Excel Services

В случае, если при открытии отчета появится то или иное предупреждающее окно, советуем скачать файл «Excel Services Troubleshooting.pdf» в котором описаны все возможные проблемы и способы их устранения.

Выполнил всё по шагам и получаю такую ошибку:

[02.12.2014 16:05] Не удалось построить кубы OLAP. Ошибка: Не удалось обработать базу данных служб аналитики Test на сервере PROJECTSERVERPROJ. Ошибка: OLE DB error: OLE DB or ODBC error: Ошибка входа пользователя "ДоменPROJECTSERVER$".; 28000.

PROJECTSERVER – это имя компьютера, на котором установлен SQL сервер. Почему он ломится в базу данных?

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

olapR — это пакет, предоставляемый корпорацией Майкрософт для сервера машинного обучения и SQL Server, с помощью которого можно выполнять запросы многомерных выражений для получения данных из кубов OLAP. The olapR package is an R package, provided by Microsoft for use with Machine Learning Server and SQL Server, that lets you run MDX queries to get data from OLAP cubes. При использовании этого пакета вам не нужно создавать связанные серверы или очищать плоские наборы строк; данные OLAP можно получать напрямую из R. With this package, you don’t need to create linked servers or clean up flattened rowsets; you can get OLAP data directly from R.

В этой статье описывается этот API, а также приводятся общие сведения об OLAP и многомерных выражениях для пользователей R, которые не знакомы с базами данных многомерных кубов. This article describes the API, along with an overview of OLAP and MDX for R users who might be new to multidimensional cube databases.

Экземпляр Analysis Services может поддерживать либо стандартные многомерные кубы, либо табличные модели. Одновременная поддержка обоих типов моделей невозможна. An instance of Analysis Services can support either conventional multidimensional cubes, or tabular models, but an instance cannot support both types of models. Соответственно, прежде чем пытаться выполнить запрос многомерного выражения к кубу, убедитесь, что ваш экземпляр Analysis Services содержит многомерные модели. Therefore, before you try to build an MDX query against a cube, verify that the Analysis Services instance contains multidimensional models.

Что представляет собой куб OLAP? What is an OLAP cube?

OLAP — это технология интерактивной аналитической обработки данных. OLAP is short for Online Analytical Processing. Решения OLAP часто используются для сбора и хранения критически важных данных. OLAP solutions are widely used for capturing and storing critical business data over time. Многие инструменты, панели мониторинга и визуализации используют данные OLAP для бизнес-аналитики. OLAP data is consumed for business analytics by a variety of tools, dashboards, and visualizations. Дополнительные сведения см. в разделе Интерактивная аналитическая обработка. For more information, see Online analytical processing.

Корпорация Майкрософт предлагает службы Analysis Services, с помощью которых вы можете разрабатывать, развертывать и запрашивать данные OLAP в форме кубов или табличных моделей. Microsoft provides Analysis Services, which lets you design, deploy, and query OLAP data in the form of cubes or tabular models. Куб — это многомерная база данных. A cube is a multi-dimensional database. Измерения аналогичны аспектам данных или факторам в R: с помощью измерений определяется конкретное подмножество данных, которые требуется суммировать или анализировать. Dimensions are like facets of the data, or factors in R: you use dimensions to identify some particular subset of data that you want to summarize or analyze. Например, одним из важнейших измерений является время, в связи с чем в большинстве решений OLAP по умолчанию определено множество разных календарей, которые применяются при создании срезов и суммировании данных. For example, time is an important dimension, so much so that many OLAP solutions include multiple calendars defined by default, to use when slicing and summarizing data.

В целях оптимизации производительности в базе данных OLAP часто заранее рассчитываются сводки (или агрегаты), которые сохраняются для более быстрого извлечения в дальнейшем. For performance reasons, an OLAP database often calculates summaries (or aggregations) in advance, and then stores them for faster retrieval. Сводки основываются на мерах, представляющих формулы, которые могут применяться к числовым данным. Summaries are based on measures, which represent formulas that can be applied to numerical data. Таким образом, с помощью измерения определяется подмножество данных, для которого затем вычисляется мера. You use the dimensions to define a subset of data, and then compute the measure over that data. Например, с помощью меры можно рассчитать общую сумму продаж определенной линейки продуктов за несколько кварталов за вычетом налогов, средние затраты на доставку для конкретного поставщика, общий объем выплат по заработной плате с начала года на текущую дату и т. д. For example, you would use a measure to compute the total sales for a certain product line over multiple quarters minus taxes, to report the average shipping costs for a particular supplier, year-to-date cumulative wages paid, and so forth.

Для выполнения запросов к кубам используются многомерные выражения. MDX, short for multidimensional expressions, is the language used for querying cubes. Многомерное выражение как правило содержит определение данных, которое включает одно или несколько измерений и как минимум одну меру. Тем не менее, этим возможности таких выражений не ограничиваются, и они могут включать скользящие интервалы, совокупные средние значения, суммы, ранги или процентили. An MDX query typically contains a data definition that includes one or more dimensions, and at least one measure, though MDX queries can get considerably more complex, and include rolling windows, cumulative averages, sums, ranks, or percentiles.

Ниже приводятся некоторые другие термины, которые могут быть полезны при работе с многомерными выражениями: Here are some other terms that might be helpful when you start building MDX queries:

При создании срезов получается подмножество данных куба с использованием значений из одного измерения. Slicing takes a subset of the cube by using values from a single dimension.

Присегментировании создается вложенный куб посредством указания диапазона значений для нескольких измерений. Dicing creates a subcube by specifying a range of values on multiple dimensions.

Детализация позволяет перейти от сводки к подробностям. Drill-down navigates from a summary to details.

Читайте также:  Синтаксический разбор словосочетания множество слов

Подъем позволяет перейти от подробностей к более высокому уровню статистической обработки. Drill-up moves from details to a higher level of aggregation.

Свертка дает сводные данные по данным в измерении. Roll-up summarizes the data on a dimension.

Сводка поворачивает куб или выбранные данные. Pivot rotate the cube or the data selection.

Создание запросов многомерных выражений с помощью olapR How to use olapR to create MDX queries

В следующей статье подробно описывается синтаксис, используемый при создании или выполнении запросов к кубу: The following article provides detailed examples of the syntax for creating or executing queries against a cube:

API olapR olapR API

Пакет OlapR поддерживает два метода создания запросов многомерных выражений: The olapR package supports two methods of creating MDX queries:

Использование конструктора многомерных выражений. Use the MDX builder. Использование функций R в пакете для создания простого запроса многомерного выражения посредством выбора куба и последующей настройки осей и срезов. Use the R functions in the package to generate a simple MDX query, by choosing a cube, and then setting axes and slicers. Это простой способ создания допустимых запросов многомерных выражений при отсутствии доступа к традиционным средствам OLAP или нехватке опыта работы с языком многомерных выражений. This is an easy way to build a valid MDX query if you do not have access to traditional OLAP tools, or don’t have deep knowledge of the MDX language.

Этот способ подходит не для всех запросов, поскольку многомерные выражения могут быть сложными. Not all MDX queries can be created by using this method, because MDX can be complex. Тем не менее, этот API поддерживает большинство наиболее распространенных и полезных операций, включая срезы, сегментирование, детализацию, свертку и сводку в N измерениях. However, this API supports most of the most common and useful operations, including slice, dice, drilldown, rollup, and pivot in N dimensions.

Копирование и вставка готового многомерного выражения. Copy-paste well-formed MDX. Вы можете вручную создать и затем вставить любой запрос многомерных выражений. Manually create and then paste in any MDX query. Этот вариант является оптимальным, если существуют запросы многомерных выражений, которые вы хотите использовать повторно, или если вы хотите создать запрос, который слишком сложен для обработки в olapR. This option is the best if you have existing MDX queries that you want to reuse, or if the query you want to build is too complex for olapR to handle.

После создания многомерного выражения с помощью любой клиентской программы, например SSMS или Excel, сохраните строку запроса. After building your MDX using any client utility, such as SSMS or Excel, save the query string. Укажите эту строку многомерного выражения в качестве аргумента для обработчика запросов SSAS в пакете olapR. Provide this MDX string as an argument to the SSAS query handler in the olapR package. Поставщик отправит запрос на указанный сервер служб Analysis Services и передаст результаты в R. The provider sends the query to the specified Analysis Services server, and passes back the results to R.

Примеры создания запроса многомерных выражений или запуска существующего запроса см. в разделе Создание запросов многомерных выражений с помощью R. For examples of how to build an MDX query or run an existing MDX query, see How to create MDX queries using R.

Известные проблемы Known issues

В этом разделе представлены некоторые известные проблемы, а также часто задаваемые вопросы, связанные с пакетом olapR. This section lists some known issues and common questions about the olapR package.

Поддержка табличных моделей Tabular model support

При подключении к экземпляру Analysis Services, который содержит табличную модель, функция explore сообщает об успешном выполнении операции и возвращает значение TRUE. If you connect to an instance of Analysis Services that contains a tabular model, the explore function reports success with a return value of TRUE. Тем не менее, объекты табличной модели отличаются от многомерных, а структура многомерной базы данных отличается от структуры табличной модели. However, tabular model objects are different from multidimensional objects, and the structure of a multidimensional database is different from that of a tabular model.

В табличных моделях как правило используется язык DAX (выражения анализа данных), тем не менее вы можете создавать допустимые запросы многомерных выражений к табличной модели, если вы уже знакомы с такими выражениями. Although DAX (Data analysis Expressions) is the language typically used with tabular models, you can design valid MDX queries against a tabular model, if you are already familiar with MDX. Для построения допустимых запросов многомерных выражений к табличной модели нельзя использовать конструкторы olapR. You cannot use the olapR constructors to build valid MDX queries against a tabular model.

Извлечение данных из табличной модели с помощью запросов многомерных выражений неэффективно. However, MDX queries are an inefficient way to retrieve data from a tabular model. Если вам необходимо получить данные из табличной модели для использования в R, рассмотрите следующие способы: If you need to get data from a tabular model for use in R, consider these methods instead:

  • Активируйте DirectQuery для модели и добавьте сервер в качестве связанного сервера в SQL Server. Enable DirectQuery on the model and add the server as a linked server in SQL Server.
  • Если табличная модель построена на основе реляционного киоска данных, получите данные непосредственно из источника. If the tabular model was built on a relational data mart, obtain the data directly from the source.

Как определить, содержит ли экземпляр табличные или многомерные модели? How to determine whether an instance contains tabular or multidimensional models

Один экземпляр служб Analysis Services может содержать несколько моделей, но все они должны быть одного типа. A single Analysis Services instance can contain only one type of model, though it can contain multiple models. Это связано с принципиальными различиями в способах хранения и обработки данных между табличными и многомерными моделями. The reason is that there are fundamental differences between tabular models and multidimensional models that control the way data is stored and processed. Например, табличные модели хранятся в памяти и используют индексы columnstore для максимального ускорения вычислений. For example, tabular models are stored in memory and leverage columnstore indexes to perform very fast calculations. В многомерных моделях данные хранятся на диске, а агрегаты определяются заранее и извлекаются с использованием запросов многомерных выражений. In multidimensional models, data is stored on disk and aggregations are defined in advance and retrieved by using MDX queries.

При подключении к Analysis Services с помощью клиента, такого как SQL Server Management Studio, вы можете определить поддерживаемый тип модели по значку базы данных. If you connect to Analysis Services using a client such as SQL Server Management Studio, you can tell at a glance which model type is supported, by looking at the icon for the database.

Также для определения типа модели, который поддерживает экземпляр, можно просмотреть и запросить свойства сервера. You can also view and query the server properties to determine which type of model the instance supports. Свойство Режим сервера поддерживает два значения: Многомерный и Табличный. The Server mode property supports two values: multidimensional or tabular.

Общие сведения об этих типах моделей см. в следующей статье: See the following article for general information about the two types of models:

Дополнительные сведения о запросе свойств сервера см. в следующей статье: See the following article for information about querying server properties:

Обратная запись не поддерживается Writeback is not supported

Запись результатов пользовательских вычислений R в куб невозможна. It is not possible to write the results of custom R calculations back to the cube.

В общем случае, даже если куб допускает обратную запись, поддерживаются только некоторые операции и при этом может потребоваться дополнительная настройка. In general, even when a cube is enabled for writeback, only limited operations are supported, and additional configuration might be required. Для таких операций рекомендуется использовать многомерные выражения. We recommend that you use MDX for such operations.

Долго выполняющиеся запросы многомерных выражений, блокирующие процессы обработки куба Long-running MDX queries block cube processing

Несмотря на то, что пакет olapR осуществляет только операции чтения, долго выполняющиеся запросы многомерных выражений могут создавать блокировки, препятствующие процессам обработки куба. Although the olapR package performs only read operations, long-running MDX queries can create locks that prevent the cube from being processed. Всегда заранее тестируйте свои запросы многомерных выражений, чтобы точно знать возвращаемый ими объем данных. Always test your MDX queries in advance so that you know how much data should be returned.

При попытке подключиться к заблокированному кубу вы можете получить сообщение об ошибке, связанной с недоступностью хранилища данных SQL Server. If you try to connect to a cube that is locked, you might get an error that the SQL Server data warehouse cannot be reached. В таком случае вы можете включить удаленные подключения, проверить имя экземпляра сервера и попробовать другие способы. Тем не менее, рекомендуется проверить наличие ранее открытых подключений. Suggested resolutions include enabling remote connections, checking the server or instance name, and so forth; however, consider the possibility of a prior open connection.

Администратор SSAS может предотвращать связанные с блокировкой проблемы, определяя и завершая открытые сеансы. An SSAS administrator can prevent locking issues by identifying and terminating open sessions. Также на уровне сервера к запросам многомерных выражений можно применить свойство, задающее время ожидания. Это позволит при необходимости принудительно завершать долго выполняющиеся запросы. A timeout property can also be applied to MDX queries at the server level to force termination of all long-running queries.

Ресурсы Resources

Если вы впервые сталкиваетесь с OLAP или запросами многомерных выражений, см. следующие статьи в Википедии: If you are new to OLAP or to MDX queries, see these Wikipedia articles:

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector