Создание представления источника данных
В среде BIDevStudio в режиме immediate откройте созданную базу аналитических служб (в меню File выбрать Open-> AnalysisServicesDatabase, далее указать используемый сервер и выбрать созданную в ходе выполнения предыдущей лабораторной работы базу). В окне SolutionExplorer убедитесь, проверьте, что в базе есть источник данных, ссылающийся на реляционную базу данных AdventureWorksDW ( рис. 23.1, узел DataSources).
Представление источника данных (DataSourceView, DSV) определяется как [1] абстрактное представление, которое позволяет модифицировать способ рассмотрения источника данных (DataSource), либо описать схему и в дальнейшем менять фактический источник данных. Последнее может понадобиться, если в процессе разработки и тестирования используются данные из одной реляционной БД, а в последующем будут использоваться другие базы аналогичной структуры.
Для создания DSV надо выбрать соответствующий узел в окне SolutionExplorer, щелчком правой клавиши вызвать контекстное меню и выбрать пункт "NewDataSourceView" ( рис. 23.1).
В реляционной базе данных AdventureWorksDW есть представление dbo.vTargetMail, позволяющее получит информацию о клиенте (идентификаторы, имя, фамилию, регион, размер годового дохода и т.д.) и о том, купил данный клиент велосипед или нет. Эти данные нам понадобятся для дальнейшего анализа.
Запустив мастер создания DSV, в первом окне укажем используемый источник данных - AdventureWorksDW ( рис. 23.2). В связи с тем, что выбранный источник данных указывает на реляционную БД, следующее окно будет содержать перечень таблиц и представлений, которые можно включить в представление источника данных, здесь надо выбрать представление vTargetMail и таблицу DimGeography ( рис. 23.3).
Если в исходной БД открыть в конструкторе представление vTargetMail>, мы увидим следующий код на языке SQL:
SELECT c.CustomerKey, c.GeographyKey, c.CustomerAlternateKey, c.Title, c.FirstName, c.MiddleName, c.LastName, c.NameStyle, c.BirthDate, c.MaritalStatus, c.Suffix, c.Gender, c.EmailAddress, c.YearlyIncome, c.TotalChildren, c.NumberChildrenAtHome, c.EnglishEducation, c.SpanishEducation, c.FrenchEducation, c.EnglishOccupation, c.SpanishOccupation, c.FrenchOccupation, c.HouseOwnerFlag, c.NumberCarsOwned, c.AddressLine1, c.AddressLine2, c.Phone, c.DateFirstPurchase, c.CommuteDistance, x.Region, x.Age, CASE x.[Bikes] WHEN 0 THEN 0 ELSE 1 END AS BikeBuyer FROM dbo.DimCustomer AS c INNER JOIN (SELECT CustomerKey, Region, Age, SUM(CASE [EnglishProductCategoryName] WHEN 'Bikes' THEN 1 ELSE 0 END) AS Bikes FROM dbo.vDMPrep GROUP BY CustomerKey, Region, Age) AS x ON c.CustomerKey = x.CustomerKey
Отсюда видно, что часть информации о клиенте берется из таблицы dbo.DimCustomer, в частности это код региона проживания клиента (GeographyKey).На рис. 23.4 приведен фрагмент диаграммы, показывающий связь таблицы DimCustomer и таблицы-справочника DimGeography, а рис. 23.5 демонстрирует выборку данных из представления vTargetMail и таблицы DimGeography. Таким образом, если мы хотим знать названия стран и городов пребывания клиентов, нам понадобится таблица DimGeography.
увеличить изображение
Рис. 23.4. Диаграмма, показывающая связь таблиц dbo.DimCustomer и dbo.DimGeography
Но вернемся к создаваемому DSV. Последнее окно мастера позволяет ввести имя DSV. Назовем его TargetMail_dsv ( рис. 23.6)
После того, как представление источника данных создано, открывается визуальный редактор, позволяющий в частности, указать связь между таблицами.Изначально связь не была определена ( рис. 23.7-1), т.к.в исходной БД vTagetMail является не таблицей, а представлением. Но связь можно определить, "протянув" ее мышью на диаграмме от столбца внешнего ключа к соответствующему первичному ключу ( рис. 23.7-2). Особенно важно это сделать, если для анализа используются варианты с вложенными таблицами.