OLAP измерение для логического, времени, выборочного подсчета - PullRequest
0 голосов
/ 21 апреля 2011

Я только начал возиться с MS SQL Analysis Services. Для начала я создаю один куб из таблицы деталей продаж. Для измерений я создал ProductDim из основной таблицы продукта, LocationDim из таблиц местоположения и CalendarDim.

Однако я застрял при попытке предоставить эти данные:

  • логический: как разрешить пользователю фильтровать активные / неактивные транзакции? Должен ли я создать измерение, содержащее 2 значения, ИСТИНА и ЛОЖЬ?
  • время: я должен создать измерение, содержащее от 00:00:00 до 23:59:59, или я должен объединить время с моим измерением календаря?
  • количество транзакций: в одной транзакции может быть много позиций, есть идентификатор позиции и есть идентификатор транзакции. Как настроить измерение, чтобы пользователь мог видеть количество транзакций? Потому что количество мер - это количество позиций.

1 Ответ

1 голос
/ 27 мая 2011

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

  1. Для этого вы должны создать что-тоназывается «мусорное» измерение: в основном это измерение без атрибутов.http://en.wikipedia.org/wiki/Dimension_(data_warehouse)

  2. Возможно, вы не хотите, чтобы измерение времени сливалось с календарем.В итоге вы храните слишком много записей.Если ваша детализация минутная, то один день будет 24 * 60 = 1440 записей.Вы должны решить, как гранулировать вы хотите (в минуту, в секунду ??), а затем сохранить целые дни в измерении «Время».Таким образом, у ваших таблиц фактов будет два ключа: один для вашего календарного измерения и один для вашего «временного» измерения.

  3. Счет транзакций должен быть «мерой», я думаю (нет?).Я предполагаю, что у вас есть идентификатор транзакции, потому что у вас есть несколько позиций на транзакцию.Когда вы настраиваете показатель, вы можете сделать «отдельный подсчет» идентификатора транзакции.

...