2011-01-07 3 views
1

Я пытался узнать кубы SSAS и MDX. До сих пор мне удалось создать куб, который возвращает правильные данные/вычисления при просмотре через браузер куба.Помогите понять вопрос OLAP 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]))))) 

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

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

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

Спасибо,

Джеймс

ответ

5

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

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

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

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

+0

Определенно очень важно сказать, что WHERE в SQL не совпадает с WHERE в MDX. –

0

Я отправил ссылку на мое введение в MDX раньше, и он был хорошо принят, но в этой публикации есть много других хороших ресурсов. the-best-mdx-references-on-the-net

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