Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Динамически отключить dimension в MDX запросе ? / 23 сообщений из 23, страница 1 из 1
04.12.2004, 15:02
    #32813051
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Всем привет.
Очень серьезный вопрос.
Представим, что есть fact_table и она связанна с тремя дименшионами.
Два из которых важные, третье может учавствовать в запросе или не учавствоать.
Главные: Projects and Regions.
Второстепенное фильтр: Profile_DW

Скажем так, я хочу получить значение measurement для Region для определенного Project
select
non empty { [Regions_DW].[All Regions_DW].children } on 0
from
Region_CUBE
where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] )

Идеально хочу получить : Russia = 2
Но в реальности получаю : Russia = 6
Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2.
Но, эта запись одновременно принадлежит еще трем Profiles. Profiles _ это как дополнительный фильтр, если он выставлен, то я пишу:
select
non empty { [Regions_DW].[All Regions_DW].children } on 0
from
Region_CUBE
where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] , [Focus_DW].[All Focus_DW].[50] )
Но когда он не выставлен, мне вообще он не нужен, не нужна связь Profiles c fact_article, потому что в этом случа он все портит. – данный умножаются на количество вхождений в дименшион Profiles.
Как можно “отключить” дименшион Profiles когда он не нужен ?
...
Рейтинг: 0 / 0
06.12.2004, 10:39
    #32813861
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
McLuadВсем привет.
Очень серьезный вопрос.
Представим, что есть fact_table и она связанна с тремя дименшионами.
Два из которых важные, третье может учавствовать в запросе или не учавствоать.
Главные: Projects and Regions.
Второстепенное фильтр: Profile_DW

Скажем так, я хочу получить значение measurement для Region для определенного Project
select
non empty { [Regions_DW].[All Regions_DW].children } on 0
from
Region_CUBE
where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] )

Идеально хочу получить : Russia = 2
Но в реальности получаю : Russia = 6
Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2.
Но, эта запись одновременно принадлежит еще трем Profiles. Profiles _ это как дополнительный фильтр, если он выставлен, то я пишу:
select
non empty { [Regions_DW].[All Regions_DW].children } on 0
from
Region_CUBE
where ( [Projects_DW].[All Projects_DW].[5999], [Measures].[Eav] , [Focus_DW].[All Focus_DW].[50] )
Но когда он не выставлен, мне вообще он не нужен, не нужна связь Profiles c fact_article, потому что в этом случа он все портит. – данный умножаются на количество вхождений в дименшион Profiles.
Как можно “отключить” дименшион Profiles когда он не нужен ?


Было бы гораздо проще помочь вам если бы вы ваши таблички назывались так же как измерения, а таблице фактов показывались, только относящиеся к обсуждению поля. А то как то неловко додумывать, какая таблица скрывается за Focus_DW.

У вас связи по полям являющимся ключами листового уровня измерений?
...
Рейтинг: 0 / 0
06.12.2004, 10:39
    #32813862
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
указать Default Member для Focus_DW.
либо делать два куба: с Focus_DW и без.
...
Рейтинг: 0 / 0
06.12.2004, 10:44
    #32813879
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Dmitry Biryukovлибо делать два куба: с Focus_DW и без.

А как переключаться посоветуете?
А если таблица фактов N-Гигов?
...
Рейтинг: 0 / 0
06.12.2004, 10:50
    #32813892
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
backfire Dmitry Biryukovлибо делать два куба: с Focus_DW и без.

А как переключаться посоветуете?
А если таблица фактов N-Гигов?

я так понял запрос формируется динамически...
так и писать
strMDX = strMDX + " FROM " + strProperCubeName
...
Рейтинг: 0 / 0
08.12.2004, 11:24
    #32818174
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Dmitry Biryukovуказать Default Member для Focus_DW.
либо делать два куба: с Focus_DW и без.

Привет всем.
Короче ситуация горела, надо было срочно проект здавать. В первый день увидел что никто не ответил, так больше и не смотрел, только сегодня снова зашел на форум, увидел что есть ответы, спасибо всем.
Сделал так как описывал Дмитрий, два куба, один содержит Focus другой нет. На большее фантазии на хватило, но может и другово решения не было.
Всем спасибо за ответы
...
Рейтинг: 0 / 0
10.12.2004, 08:17
    #32822188
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Мне кажется, что просто в измерении Profile_DW не должно быть общего итога (т.е. члена All Profile_DW), тогда и суммирования происходить не будет
...
Рейтинг: 0 / 0
10.12.2004, 10:16
    #32822384
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
БеляевМне кажется, что просто в измерении Profile_DW не должно быть общего итога (т.е. члена All Profile_DW), тогда и суммирования происходить не будет
Это предвычесленного агрегатного значения не будет, а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения.
Если же в MDX не указывать Profile_DW, то результат будет расчитываться исходя из default member.
...
Рейтинг: 0 / 0
10.12.2004, 10:27
    #32822424
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Dmitry Biryukov
а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения.


Это как? Что то мне это трудно представить, что в измерении без AllLevel какой то клиент сгенерит MDX для его получения
...
Рейтинг: 0 / 0
10.12.2004, 11:26
    #32822590
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Суммирование - это проблема клиента (в Excel можно отключить итог по строкам, столбцам), а default member - ну уж сделайте тогда какой-то допустим: Profile_DW - "неизвестно" или "не установлено" и сгрузите в него всю копию исходных данных

PS

Хотя проблема у Вас конечно же в дизайне, надо предметную область тщательнее проанализировать: определить есть ли зависимость между измерениями
отношения "многие ко многим" надо устранять (тем более они не поддерживаются в текущей версии AS), алгоритм устранения - известен (новое измерение)
...
Рейтинг: 0 / 0
10.12.2004, 12:10
    #32822802
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
backfire Dmitry Biryukov
а клиенту (например Excel) ничего не помешает написать такой MDX, который просуммирует значения.


Это как? Что то мне это трудно представить, что в измерении без AllLevel какой то клиент сгенерит MDX для его получения

Элементарно:
...
Рейтинг: 0 / 0
10.12.2004, 12:26
    #32822875
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Тема аггрегирования элементов у которых нет All - мне очень близка, я прямо сейчас меняю код функции Aggregate в Юконе, и мы тут спорим - разрешать ли вообще Aggregate по non-aggregatable аттрибутам (т.е. по уровню над которым нет All). Пример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :) С другой стороны, может ошибку поднимать в этом случае как-то слишком жестоко. Ну во всяком случае, следующей версии Excel мы советуем, чтобы они даже в UI такого не разрешали, чтобы пользователей не путать...

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
10.12.2004, 13:09
    #32823042
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Однозначно разрешать!
а то потом в форуме получите кучу вопросов типа "как сложить мемберов у которых нет AllLevel?".
как вариант сделать это опцией, выключенной по умолчанию.
имхо, наличие уровня All - это одно, а суммирование мемберов этого измерения - совсем другое.
представим такой надуманный пример. Товары:
уровень1
- те, которые измеряются в штуках
- те, которые измеряются в литрах
- те, которые измеряются в метрах
уровень2 - собственно сам товар.
Сумма на уровне ALL смысла не имеет.
Но, тем не менее, я хочу суммировать мемберов нижнего уровня.
...
Рейтинг: 0 / 0
10.12.2004, 13:17
    #32823067
олапист
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
как все запущено ... неужели в MS вопросы проектирования решаются на этапе кодирования 3-ей беты
...
Рейтинг: 0 / 0
10.12.2004, 13:20
    #32823075
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
MoshaПример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :)
Пример взят из Фудмарта :-) там в измерении Category есть уровень ALL, и в кубе Budget суммируется Forecat и Actual
...
Рейтинг: 0 / 0
10.12.2004, 14:17
    #32823270
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
MoshaТема аггрегирования элементов у которых нет All - мне очень близка, я прямо сейчас меняю код функции Aggregate в Юконе, и мы тут спорим - разрешать ли вообще Aggregate по non-aggregatable аттрибутам (т.е. по уровню над которым нет All). Пример который привел Дмитрий - просто классический - какой смысл аггрегировать Actual, Budget и Forecast :) С другой стороны, может ошибку поднимать в этом случае как-то слишком жестоко. Ну во всяком случае, следующей версии Excel мы советуем, чтобы они даже в UI такого не разрешали, чтобы пользователей не путать...

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights


Решать от смысле аггрегации, на уровне MDX, уровня, над которым нет ALL может только автор куба, все остальное - спекуляции.

Если это запретить в Excel - лично мне по барабану. (хотя "детям спички не игрушка" :-))

Если это запретить в MDX - это пожалуйста не надо.
...
Рейтинг: 0 / 0
10.12.2004, 16:26
    #32823712
OLAPMASTER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Да ребята послушаеш Вас плакать хочеться, а как же один ко многим???
Вот от сюда все и проблемы что когда кубик делаем непонимаем что строиться затпрос на inner join table. Вот твои поля Profiles_ ее умножают на три вот тебе и 6. А когда говориш ему конткретно какой профиль он тебе даст 2.
...
Рейтинг: 0 / 0
10.12.2004, 21:59
    #32824302
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
backfireРешать от смысле аггрегации, на уровне MDX, уровня, над которым нет ALL может только автор куба, все остальное - спекуляции.
Ну и я говорю что автор куба - если не сделал All level - значит не хочет чтобы аггрегировали.

Dmitry BiryukovСумма на уровне ALL смысла не имеет.
Но, тем не менее, я хочу суммировать мемберов нижнего уровня
Вопрос стоял только об аггрегировании элементов верхнего уровня, для которых аггрегирование не имеет смысла - элементы нижних уровней конечно можно будет аггрегировать.

backfireЕсли это запретить в MDX - это пожалуйста не надо.
olapistкак все запущено ... неужели в MS вопросы проектирования решаются на этапе кодирования 3-ей беты
Собственно можно и не менять и не заниматься проектированием в конце Бета 3, просто мы сейчас работает над производительностью, и есть возможность сильно улучшить производительность Aggregate (и всех кто на нее опирается, т.е. VisualTotals и т.д.), но за счет некоторых изменений функциональности. Но пока кроме меня никто не захотел менять, так что наверное придется как нибудь изворачиваться чтобы и производительность поднять и функциональность не сломать :) Еще один вопрос - а кто-нибудь делал когда нибудь Aggregate по measures ? И если да, то зачем ?

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
12.12.2004, 00:34
    #32824697
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Mosha Еще один вопрос - а кто-нибудь делал когда нибудь Aggregate по measures ? И если да, то зачем ?


Моша, я бы на Вашем месте не спрашивал, я бы запретил Aggregate по measures (ну кому надо складывать метры с баксами), если бы это давало шанс выжать пару-тройку лишних лошадок из движка.
...
Рейтинг: 0 / 0
14.12.2004, 10:19
    #32826051
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
OLAPMASTERДа ребята послушаеш Вас плакать хочеться, а как же один ко многим???
Вот от сюда все и проблемы что когда кубик делаем непонимаем что строиться затпрос на inner join table. Вот твои поля Profiles_ ее умножают на три вот тебе и 6. А когда говориш ему конткретно какой профиль он тебе даст 2.

В принципе это понимаем.
Другое дело что это не совсем нравится. Было бы идеально, если бы наряду с (All) или (All_Profiles) был бы некий виртуальный мембер типа (None) или (None_Profile) который бы интерпретировался следующим образом:
при его использовании во фразе Where например, соответсвующий dimension вообще бы отрубался и не использовался при расчетах. По аналогии с inner join равнозначно исключению соответсвующей таблицы из главного запроса.
...
Рейтинг: 0 / 0
14.12.2004, 12:29
    #32826415
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Сказали же: этот "виртуальный" мембер называется Default Member.
В данном случае его можно сделать любым кроме ALL
...
Рейтинг: 0 / 0
14.12.2004, 13:37
    #32826608
McLuad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Dmitry BiryukovСказали же: этот "виртуальный" мембер называется Default Member.
В данном случае его можно сделать любым кроме ALL

Мне не нужно делать его любым. Любым - значит каким-то. Скажем я удалил default member и поставил All Level - No. Типа значит никакой default member. Но запрос теперь вообще ничего не возращает. То есть видимо он по прежнему делает join на dimension Profile, но так как нет связи вообще никакой, результирующий запрос ничего не возращает. Мне же нужно что-бы join вообще не делался.
...
Рейтинг: 0 / 0
17.12.2004, 12:48
    #32832111
Fpmip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамически отключить dimension в MDX запросе ?
Позволю себе вернуться к началу обсуждения и усомниться в том, что:

McLuadИдеально хочу получить : Russia = 2
Но в реальности получаю : Russia = 6
Почему идеально 2 – потому что в fact_article есть ттолько одна запись касающеяся проекта 5999 и она содержит 2.
Но, эта запись одновременно принадлежит еще трем Profiles.
...
Как можно "отключить" дименшион Profiles когда он не нужен ?У вас в таблице фактов, очевидно, 3 записи по региону Russia и проекту 5999 (" эта запись одновременно принадлежит еще трем Profiles ")
Так что никакое "отключение" этого измерения Profiles , равно как и создание куба без него (по оригинальной таблице фактов), не поможет.

McLuadСкажем я удалил default member и поставил All Level - No. Типа значит никакой default member.У измерения не может не существать default member (как иначе будет отрабатывать запрос?) -- по умолчанию это либо элемент All , либо (если уровень All отсутствует) первый по порядку элемент.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Динамически отключить dimension в MDX запросе ? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]