2015-09-01 5 views
0

Недавно началось внедрение многомерной модели в SSAS. OLTP имеет таблицу, в которой хранятся множественные меры на основе столбцов Attribute и Entity. Столбец атрибутов имеет различные имена измерений. Если в строке значение атрибута равно Dim1, то столбец Entity будет иметь значение Dim1. Аналогично, столбец атрибутов может иметь любое имя измерения и его значение будет находиться в столбце Entity. У нас также есть несколько таблиц, где мы имеем несколько столбцов атрибутов и сущностей. например Атрибут1 и Атрибут2. Оба являются именами измерения, а entity1 и entity2 сохраняют свои соответствующие значения. Меры также зависят от порядка размеров. Чтобы быть конкретным, таблицы хранят значения Value at the Risk (VAR), рассчитанные при различном сжатии. VAR, рассчитанный по фонду и сжатию сектора, отличается от VAR, рассчитанного на Сектор и сжатие фонда. OLTP хранит его как атрибут1 (фонд), атрибут2 (сектор) и сущность1 (значение Фонда) и Entity2 (значение сектора). Запросить это также легко, когда caluse [где attribute1 = 'Fund' и attribute2 = 'Sector'] или [where attribute1 = 'Sector' и attribute2 = 'Fund']
Как это можно эффективно смоделировать в кубе?Многомерная модель SSAS Cube

Мой текущий подход создает таблицу фактов, которая имеет отдельный столбец с ненужным внешним ключом для каждого измерения. Если мне нужно сохранить данные для измерения1, то его значение внешнего ключа будет сохранено в size1 (которое является внешним ключом в таблице Dimension1), другие ключи измерения (размер2, размер3 ..) будут указывать на значение N/A соответствующего измерения.

Как можно улучшить этот подход? За и против ? Как упорядочение размеров может быть достигнуто в конструкции куба

+0

Как сказал SebTHU, было бы полезно, если бы вы могли отредактировать это, чтобы сказать, какие различные бизнес-концепции вы пытаетесь моделировать. Вы упомянули «Сектор», «Фонд» и «VAR» - есть ли еще, или только те? Я думаю, что возможно, что вы слишком сильно основываетесь на структуре базы данных OLTP, когда то, что вам нужно для моделирования, - это бизнес-процессы и концепции, но трудно сказать, когда просто обсуждаете общие параметры. –

+0

Кроме того, если вы думаете, что было бы полезно узнать структуру ваших текущих таблиц, не могли бы вы показать нам фактические структуры (с измененными именами, если вам нужно анонимизировать вещи), а не описывать их? –

+0

@Jo Douglass: Вопрос уже отредактирован. У нас есть несколько таких мер, как ImpliedVol, Vol, VAR и т. Д., А размеры - это Фонд, Символ, Сектор, Подсектор, Страна, Мастерфонд и т. Д. Нам нужна таблица фактов, где эти меры могут храниться для различного сжатия, например, Фонд, Символ, Фонд и Символ, символ и фонд, сектор и фонд. Когда у нас есть сжатие фонда, внешний ключ для другого коментария (размерности) будет указывать на значение N/A этого измерения. Как сохранить порядок заказа (фонд и символ) или (символ и фонд) при получении данных? – 107

ответ

0

Я не уверен, что именно вы имеете в виду под этим:

создание таблицы фактов со всеми размерами, как внешний ключ, который указывает на фактические таблицы размеров

но это звучит как неправильный подход.

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

Из-за этого проблема заключается в том, что ваша исходная система страдает от антипаттера базы данных: это делает атрибуты «гибкими», позволяя добавлять атрибуты adhoc, просто создавая строку с (AttributeName, ObjectThisIsAnAttributeOfID, AttributeValue) , а не определять это отношение как структуру таблицы с FK в основную таблицу.

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

  1. Сколько различных значений атрибутов есть? Каждое отдельное значение является кандидатом для измерения в кубе.
  2. Для каждого атрибута, сколько различных значений Entity существует? Имеют ли они общий тип данных? Знаете ли вы, какие будущие значения могут быть? ? Это необходимо сделать для каждого измерения.
  3. Для каждой «вещи» (факта), которая имеет значения атрибута: имеют ли они неизменно значения для ВСЕХ атрибутов? Или для подмножества атрибутов?

Вы можете обнаружить, что (учитывая работу и время) вы можете моделировать только небольшое подмножество существующих атрибутов.

Не стесняйтесь, прокомментируйте или ответьте более подробно, если я неправильно понял.

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

+0

«Создавая таблицу фактов со всеми измерениями как внешний ключ, который указывает на фактические таблицы измерений», я имею в виду, что для каждого измерения, которое может иметь значения для факта, есть отдельный столбец (внешний ключ). Вы упомянули об этом. В большинстве случаев один или два внешних ключа указывают на соответствующее значение. Другие внешние ключи указывают на значение Неизвестное или N/A. Хорошо ли иметь большинство внешних ключей, указывающих на Неизвестное значение? Я создал отдельные измерения для каждого отдельного значения атрибута. – 107

+0

Пункт 1: Создали отдельные размеры для каждого отдельного значения атрибута. Пункт 2: для каждого атрибута мы имеем разные значения Entity. Типы данных одинаковы во всех измерениях. Пункт 3: Ни один из фактов не имеет значений для всех атрибутов. Факты имеют значения для одного измерения или двух измерений или могут быть три. Остальные размеры указывают на значение Неизвестное (N/A). Факты рассчитываются для одного измерения или подмножества измерений. – 107

+0

С этой моделью я столкнулся с еще одной проблемой. таблицы фактов имеют данные (меры), зависящие от порядка размеров, используемых для расчета меры. Измерение, вычисленное с помощью параметра Dimension1, затем Dimension2 будет отличаться от измерений, рассчитанных с помощью Dimension2, затем Dimension1. В будущем меры могут рассчитываться с тремя или четырьмя измерениями. Как следует упорядочить порядок измерения? Должен ли я создать другую таблицу, в которой будет храниться порядок измерений, а таблица основных фактов имеет внешний ключ, указывающий на таблицу захвата заказа? – 107

Смежные вопросы