Совет №56. Многомерное моделирование для Microsoft Analysis Services
За последние несколько лет растущее количество наших студентов и клиентов спрашивали нас о Microsoft SQL Server 2000 Analysis Services (AS). Analysis Services, как серверный OLAP продукт, очень хорошо вписывается в технологию многомерного моделирования, которую в течение длительного времени развивает Kimball Group. Но подходит ли он идеально? Существуют ли вещи, которые Вам нужно знать, если вы проектируете многомерную модель данных, которая будет доступна из куба Analysis Services? Конечно, существуют!
Первая и наиболее сильная связь между кубом Analysis Services и реляционной многомерной моделью – это то, что куб должен быть построен из реляционной многомерной модели. Реляционный многомерный источник может быть в любой реляционной СУБД, хотя выгрузка данных из некоторых СУБД выполняется лучше, чем из других.
Многомерная модель на реляционной платформе и в кубе Analysis Services имеют измерения и факты, обе любят суррогатные ключи; обе отмечают важность использование хорошо продуманных иерархий, чтобы поддерживать навигацию по многомерным данным. Согласованные измерения в терминологии Кимбала называются разделяемыми измерениями в Analysis Services. Более развитые техники, как мусорные измерения (junk dimensions), ролевые измерения и бесфактовые таблицы фактов легко переносятся.
Наиболее важным различием между многомерным миром на реляционной платформе и Analysis Services OLAP- это поведение измерений. Чем более Вы знакомы с реляционными измерениями, тем более причудливыми Вы найдете измерения Analysis Services. Проблема в том, что на первый взгляд они выглядят похоже, но фактически ведут себя совершенно по разному. Рассмотрим реляционное измерение, например, клиент. Обычно оно становится в кубе несколькими, похожими на измерениями структурами. Каждый атрибут или иерархия по которым Вы хотите вести анализ должны иметь в кубе свое собственное измерение. Например, если Вы хотите сравнить продажи по полу или географическому региону, Вам нужны в кубе измерение пол и иерархия измерения география, в то время как в реляционной многомерной структуре они могут быть частью измерения Клиент.
В только что описанном примере Вам не нужно менять реляционную модель. В Analysis Services, Вы бы определили географическую иерархию в измерении Клиент. Вы сначала создали атрибут Пол как member property измерения Клиент и затем преобразовали его в виртуальное измерение. Это преобразование достаточно просто произвести, требуется только несколько кликов мыши, но это кажется странным и лишним для тех, кто глубоко разбирается с поведением реляционной модели. Microsoft осознал это и анонсировал, что в следующей версии Analysis Services измерения будут вести себя в большей степени как реляционные.
Мы коротко обобщим некоторые другие отличия и сходства, которые Вы можете встретить при работе с Analysis Services.
Что хорошо:
- Обычно измерениями родитель-потомок легче управлять и выполнять запросы, если они находятся в Analysis Services, по сравнению с реляционными измерениями. В реляционном измерении Вам понадобится перемещаться по иерархии используя таблицу с описанием связей. В Analysis Services, Вы просто моделируете реляционное измерение со структурой родитель-потомок и создаете измерение типа «parent-child».
- Analysis Services хранит все измерения в памяти, поэтому желательно ограничивать общее количество members по всем измерениям в пределах 5-7 миллионов на 32-х битной платформе. Вы можете увеличить это число в случае доступности 64-х битных систем приемлемой стоимости, но похоже, что усилия того не стоят.
- Вы можете определить многомерное выражение для того, чтобы вычислить все что угодно на любом уровне куба. Наглядный пример – это вычисление, определяющее складские остатки полуаддитивными по отношению ко времени. Обратной стороной является необходимость поиска и правильной реализации сложного выражения.
- Для инкрементального процессинга куба необходимо определить новые строки, которые нужно добавить к таблице фактов. Маркировка записей таблицы фактов с измерением для аудита или другими метаданными позволяет выделять их для инкрементального процессинга куба.
- SCD тип 2 легко реализуется в Analysis Services.
- Измерения Analysis Services могут быть построены из схем звезда или снежинка. Когда выполняются запросы к Analysis Services, не имеет большого значения, как именно структурированы таблицы измерений в реляционной части, хотя звезда, в общем случае, легче для сопровождения. Конечно, если запросы выполняются непосредственно к реляционной многомерной модели, то обычно звезда обеспечивает большую простоту и скорость выполнения запросов, чем снежинка. Например, прогнозные данные на уровне бренда потребуют и измерения на уровне бренда, в то время как фактические данные могут быть на уровне учетной единицы (SKU).
Что не очень хорошо:
- SCD тип 1 могут вызвать трудности, если измененная колонка является частью иерархии измерения. Если измененный атрибут является просто member property или вирутальным измерением, то это не проблема. Проблема возникает с восстановлением истории иерархического атрибута являются агрегаты. Analysis Services сталкивается с абсолютно такой же проблемой, как если бы Вы управляли агрегатами в реляционной базе данных. Хотя есть некоторые способы, которые обсуждаются в приведенном ниже Performance Guide.
- Измерения многие-ко-многим в Analysis Services 2000 ограниченные. Мы видели многих испытывающих разные способы, чтобы заставить их работать, но ни один из них не стал привлекательным на практике.
- Нет способа изменить строку фактов в кубе Analysis Services, вы может перестроить целиком куб. При небольших объемах данных Выможете перестроить куб целиком. При больших объемах, Вы могли бы изолировать изменяемые строк в партиции (вероятно в партиции за последние 30 дней) и полностью перестроить только эту партицию. Партиции требуют дорогой редакции Enterprise Edition.
Ниже приведены некоторые опубликованные Microsoft статьи об Analysis Services:
- Analysis Services Performance Guide
- Analysis Services Operations Guide
- Creating Large-Scale, Highly Available OLAP Sites
- Advantages of 64-bit to SQL Server 2000 Enterprise Edition BI Customers
- SQL Server 2000 (64-bit) Analysis Services: Why Migrate and What to Expect
Автор оригинала: Joy Mundy
Перевод на русский язык: Андрей Прохоров
Оригинальный документ располагается здесь
Для удобства отслеживания новых публикаций рекомендуем подписаться на рассылку или на канал RSS.