Помогите понять OLAP MDX Query - PullRequest
       74

Помогите понять OLAP MDX Query

1 голос
/ 07 января 2011

Я пытался изучить кубы SSAS и MDX. До сих пор мне удалось создать куб, который возвращает правильные данные / вычисления при просмотре через браузер куба.

Query Builder использовался для создания запроса в службах отчетов для запроса куба. Я посмотрел на сгенерированный MDX и вытащил материал, который, похоже, не имеет значения для реальных результатов. Запрос выглядит так:

SELECT NON EMPTY { [Measures].[AverageConnectedSeconds] } ON COLUMNS,    
NON EMPTY { ([Operator].[ACCESS DEF].[ACCESS DEF].ALLMEMBERS * [Calls].[Notification Time Bands].[Notification Time Bands].ALLMEMBERS) } ON ROWS    
FROM ( SELECT ( -{ [Calls].[Notification Time Bands].&[0] } ) ON COLUMNS    
FROM ( SELECT ( { [Calls].[Incoming YN].[N] } ) ON COLUMNS    
FROM ( SELECT ( -{ [Calls].[Entity Type].&[6] } ) ON COLUMNS   
FROM ( SELECT ( -{ [Calls].[Reason Text].&[Background Call] } ) ON COLUMNS    
FROM ( SELECT ( { STRTOMEMBER(@OperatorId) } ) ON COLUMNS   
FROM [PNC5data] )))))

Я прочитал о синтаксисе, и я THINK Я понимаю, почему запрос выполняет вложенные выборки. Правильно ли я понимаю, что вложенные операторы SELECT FROM действуют как предложение WHERE в SQL?

Если так: Для чего используется предложение WHERE в MDX и когда / почему я должен его использовать?

Если кто-нибудь сможет дать мне представление о том, что на самом деле происходит в этом запросе, я буду очень признателен! Или, если вы сможете направить меня к ресурсу, я смогу углубить мое понимание MDX, я был бы очень рад!

Спасибо

Джеймс

Ответы [ 2 ]

5 голосов
/ 07 января 2011

Понимание предложения ГДЕ простое. Во многих источниках вы увидите, что люди жалуются на его вводящее в заблуждение название. Лучшее имя для использования - Slicer . Используя предложение where, вы можете запрашивать фрагмент куба вместо всего куба (очевидно, вы получите некоторый прирост производительности при запросе фрагмента вместо целого куба).

Предложение FROM используется для запроса куба или для запроса другого запроса MDX, то есть подзапросов . Подзапросы, как правило, медленнее, но и более мощные. например когда вы используете иерархию в качестве среза, вы не можете использовать ее на оси, в то время как с подзапросом вы можете, например, подзапросы могут изменить структуру иерархий.

В приведенном выше утверждении вы видите вложенные подзапросы. Если вы знаете некоторый синтаксис MDX, легко разбить и интерпретировать каждый подзапрос или даже переместить его в секвенсор.

Я относительно новичок во всей теме OLAP. Я использовал два источника: справочник по icCube MDX (я не фанат Microsoft, icCube был хорошей, простой в использовании альтернативой) и ускоренный переход к MDX . Мне особенно нравится Fast track to MDX, потому что его объяснение основных функций MDX и терминологии (например, set, tuple, function и т. Д.) Легко следовать, особенно если вы используете инструменты Microsoft BI. Возможно, вы захотите взглянуть и на этот пост .

0 голосов
/ 07 февраля 2011

Ранее я опубликовал ссылку на свое введение в MDX, и она была хорошо принята, но в этой публикации есть много других полезных ресурсов. в наилучшем-MDX-ссылки-на-сеть

...