Создание SSAS иерархий с несколькими таблицами измерений
Если вам необходимо создать иерархию с использованием нескольких измерений, вы можете использовать именованный запрос или материализованное представление, потому что SSAS не имеет возможности читать столбцы / атрибуты из нескольких измерений. Давайте посмотрим, как это будет происходить в базе данных AdventureWorks.
Этот процесс осуществляется достаточно просто. Ключом к нему является обеспечение правильной настройки схемы “снежинки”. Как уже было сказано выше, мы собираемся использовать базу данных AdventureWorks для создания нашего решения.
Здесь вы можете увидеть, что схема разработана в стиле снежинки. Первое измерение из таблицы фактов - это размер продукта, второй - размер подкатегории, и, наконец - размер категории.
Важным аспектом здесь является то, что из таблицы фактов наибольший объем данных будет иметь размер продукта, который присоединяется к таблице фактов. Вы можете разбить его на подкатегорию, а затем на категорию, которая похожа на подход, противоположный подходу “сверху вниз”. Вместо того, чтобы идти от одного до пяти, вы переходите от пяти к одному. Каждый продукт является частью одной категории.
Следующим важным аспектом создания этой иерархии является наличие ссылки на внешний ключ для определения того, какой продукт является частью какой-либо подкатегории, и то же самое с подкатегорией, на которую ссылаются категории. На рисунке выше также показан каждый первичный ключ на всех трех таблицах.
Начнем с чистого листа внутри решения AdventureWorks DW SSAS. Щелкните правой кнопкой мыши на Dimensions в Solution Explorer и выберите New Dimension.
Далее вам откроется Dimension Wizard. Выберите “Use an existing table”.
Далее вам нужно будет ввести свою основную таблицу. Важно понимать, что основная таблица будет таблицей с наибольшим количеством записей. В случае базы данных AdventureWorks , это таблица продуктов. Первичный ключ - это наш ключевой столбец.
На следующей странице мастера определяются связанные таблицы, основанные на настройке представления источника данных. Как вы можете видеть, мастер уже определил категории и подкатегории товаров.
Затем выберите ключи атрибута. Это столбцы, которые мы будем использовать в иерархии, чтобы связывать их друг с другом.
Заметьте, что мы используем Product Subcategory Alternate Key вместо Primary Key, который установлен в таблице. имеет такое же целочисленное значение, что и Primary Key. Это намеренно используется для линейной зависимости атрибутов вместо вертикальной.
Здесь вы можете завершить работу мастера. Назовите свое измерение и нажмите «Готово». Он будет заполнять все в представлении конструктора измерений.
Обратите внимание, что мы перечислили свои ключевые значения в атрибутах и на моей панели Data Source View, в нашем источнике данных есть три физических таблицы, которые мы будем использовать.
Затем мы дадим нашим столбцам несколько удобных имен. Давайте заменим Product key на Product, Product Category Key на Category, а Product Subcategory Key на SubCategory.
Теперь нам нужно перейти в свойства и изменить столбец с именем для каждого из этих атрибутов. По сути, мы определяем фактический столбец, который мы хотим отобразить в нашей иерархии. Давайте отобразим английское имя для атрибута.
Щелкните правой кнопкой мыши на атрибуте в панели атрибутов и выберите свойства. Прокрутите вниз до NAMECOLUMN и выберите столбец, который вы хотите отобразить.
Повторите то же действие для других столбцов, которые вы используете в иерархии.
Ваши отношения атрибутов должны быть линейными и напоминать подход “сверху вниз”:
Как только это будет завершено, вам необходимо обработать измерение, чтобы вы могли просматривать результаты. Они должны выглядеть так:
Заметьте, что мы создали иерархию, используя три таблицы, и теперь вы можете перейти к конкретному продукту.
Цель этой статьи - показать, как вы можете создать иерархию, используя несколько таблиц. Можно ли это сделать в SSAS? Да, это можно сделать; однако для этого требуется наличие правильной структуры, которая является схемой “снежинки”. У нее есть свои плюсы и минусы, но мы можем затронуть их в другой статье. Надеемся, это поможет разработчикам BI правильно построить свои иерархии, когда нужно использовать более одной таблицы.