powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX в Dimension Security.
16 сообщений из 16, страница 1 из 1
MDX в Dimension Security.
    #33307027
Kutuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть измерение Регион, у членов измерения есть свойство "Id Регион" . Мне надо что бы пользователи видели все члены этого измерения у которых свойство "Id Регион" = "14".

На закладке Dimension в Edit a Cube Role поставил для измерения Регион Rule->Custom. В Custom Dimension Security выбрал Top Level ->(All) и Bottom Level ->Регион. Теперь на закладке Advansed пытаюсь задать разрешенных членов с помощью MDX выражения (в котором я к сожалению не силен) которые должны быть видны. Пробовал так:
[Регион].[Регион].Members.Properties("Id Регион")="14"
и так:
[Регион].[Регион].CurrentMembers.Properties("Id Регион")="14"

но получаю одну и туже ошибку
Formula error - token is not valid.

Подскажите пожалуйста как правильно написать MDX выражение.
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307319
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allowed members: Filter([Регион].members, [Регион].CurrentMembers.Properties("Id Регион")="14")
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307424
Kutuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry BiryukovAllowed members: Filter([Регион].members, [Регион].CurrentMember.Properties("Id Регион")="14")


Нет не получается :(. Пишет Formula error - Property name is not valid: "Id Регион"
Но это свойство точно есть! Я даже попробовал подставить в эту конструкцию другое свойство "MEMBER_KEY" которое точно есть и ошибка таже.
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307531
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот етот Propёrtis("Id Регион"), он есть на всех уровнях ???
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307578
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KutuzЕсть измерение Регион, у членов измерения есть свойство "Id Регион" . Мне надо что бы пользователи видели все члены этого измерения у которых свойство "Id Регион" = "14".

На закладке Dimension в Edit a Cube Role поставил для измерения Регион Rule->Custom. В Custom Dimension Security выбрал Top Level ->(All) и Bottom Level ->Регион. Теперь на закладке Advansed пытаюсь задать разрешенных членов с помощью MDX выражения (в котором я к сожалению не силен) которые должны быть видны. Пробовал так:
[Регион].[Регион].Members.Properties("Id Регион")="14"
и так:
[Регион].[Регион].CurrentMembers.Properties("Id Регион")="14"

но получаю одну и туже ошибку
Formula error - token is not valid.

Подскажите пожалуйста как правильно написать MDX выражение.

Ой не знаю сколько у вас данных, но если не мало, то готовьтесь к жутким тормозам, если разворачивать будете не по регион.
Я бы на вашем месте сделал виртуальное измерение на Id Region и задавал Security простым выбором элемента(ов) на этом измерении.
1. Вам бы не надо было столь долго и пока безрезультатно изголятся с MDX
2. Производительность прелагамеого мной решения как минимум на порядок выше того, чем вы сможете достичь, правильно написав формулу.
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307608
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не согласен с backfire по поводу его решения по двум причинам:

1. Создание виртуального измерения и задание security на нем - не является безопасным решением. Его будет очень легко пробить.
2. Производительность будет _хуже_ в решении backfire, а не лучше.

Правильная формула (как описано в моей книжке Fast Track to MDX) в этом случае будет почти как написал Дмитрий:

Код: plaintext
Filter([Регион].[Регион].members, [Регион].CurrentMembers.Properties("Id Регион")="14")

(отличие - это запустить .MEMBERS по уровню а не по измерению)

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307642
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoshaЯ не согласен с backfire по поводу его решения по двум причинам:

1. Создание виртуального измерения и задание security на нем - не является безопасным решением. Его будет очень легко пробить.
2. Производительность будет _хуже_ в решении backfire, а не лучше.

Правильная формула (как описано в моей книжке Fast Track to MDX) в этом случае будет почти как написал Дмитрий:

Код: plaintext
Filter([Регион].[Регион].members, [Регион].CurrentMembers.Properties("Id Регион")="14")

(отличие - это запустить .MEMBERS по уровню а не по измерению)

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


Моша, если по дыркам в защите AS, я не мастер, а вам изнутри они виднее, то что касается MDX - поясните пожалуйста, в чем применение ролей с Custom MDX отличается от выполнения самого MDX?

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

1. (c Фильтром по члену виртуального измерения) - выполняется в лет .

Код: plaintext
1.
2.
3.
select {[Measures].[Verkaufswert]} on columns,
  {[Warengruppe].[Alle], [Warengruppe].[Oberwarengruppe  2 ].members} on rows
from Verkauf
where [Lager Umsatz Kunde].[Lager Umsatz Kunde].&[ 3 ]

2. (c Фильтром по Свойству обычного измерения, на котором построено виртуальное измерение) - еле тащится .


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with 

set [FilterSet] as 'Filter([Kunde].[Kunde].members, [Kunde].currentmember.Properties("LagerUmsatz_")="FREI")'
member [Kunde].[FilterMember] as 'AGGREGATE([FilterSet])'

-- равнотормознуто
-- member [Kunde].[FilterMember] as 'AGGREGATE(Filter([Kunde].[Kunde].members, [Kunde].currentmember.Properties("LagerUmsatz_")="FREI"))'

 
select {[Measures].[Verkaufswert]} on columns,
    {[Warengruppe].[Alle], [Warengruppe].[Oberwarengruppe  2 ].members}  on rows
from Verkauf
where [Kunde].[FilterMember]

p.s. Под фудмарт не переписывал. Надеюсь и так понятно.
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307670
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfireМоша, если по дыркам в защите AS, я не мастер, а вам изнутри они виднее
Дырок в защите AS нет, дырки есть в Вашем решении.

backfireпоясните пожалуйста, в чем применение ролей с Custom MDX отличается от выполнения самого MDX
Разница большая. MDX заданный в Allowed Set выполнится всего один раз, и по его результатам будет построено новое дерево иерархии. Клиент получит именно это новое дерево, и все операции на нем будут проходить быстрее чем работать с изначальным, которое гораздо больше (как минимум в 14 раз) и перефильтровывать все по виртуальному измерению.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307679
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не говоря уже о том, что использование функции Aggregate тут совсем ни при чем. Т.е. если подразумевается что dimension security будет работать с Visual Totals, то опять таки производительность будет выше. А без Visual Totals, Ваше решение похоже вообще не работает.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307690
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfireМоша, если по дыркам в защите AS, я не мастер, а вам изнутри они виднее
Дырок в защите AS нет, дырки есть в Вашем решении.


1. Моша, я веду речь о простом MDX, а Вы мне про какое то "мое" решение.
2. Это же ваши слова МошаСоздание виртуального измерения и задание security на нем - не является безопасным решением. Его будет очень легко пробить.

Все равно это (никакой роли)
1.
Код: plaintext
1.
2.
3.
select {[Measures].[Verkaufswert]} on columns,
    non empty {[Warengruppe].[Alle], [Warengruppe].[Oberwarengruppe  3 ].members}  on rows
from Verkauf
where [Lager Umsatz Kunde].[Lager Umsatz Kunde].&[ 3 ]

выполняется в 5 раз быстрее чем это


(через роль, в которой поставлено
Код: plaintext
Filter([Kunde].[Kunde].members, [Kunde].currentmember.Properties("LagerUmsatz_")="FREI")
)

2.
Код: plaintext
1.
2.
select {[Measures].[Verkaufswert]} on columns,
    non empty {[Warengruppe].[Alle], [Warengruppe].[Oberwarengruppe  3 ].members}  on rows
from Verkauf

хотя 2. все еще гораздо быстрее, чем
MDX Query c фильтром :-(

но если в роли просто ограничить на один элемент виртального измерения
без всяких custom MDX, то потери производительности не происходит.

Так как же Moshaочень легко пробить роль в которой ограничение?
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307691
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha

какая разница между работой "VisualTotals" (функция MDX) и "Visual Totals" (галочка в управлении ролями)?
Я так понимаю, что вы мне всегда упоминали последнее, а я думал о первом. :-(
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307817
Kutuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Mosha
MoshaПравильная формула (как описано в моей книжке Fast Track to MDX) в этом случае будет почти как написал Дмитрий:

Код: plaintext
Filter([Регион].[Регион].members, [Регион].CurrentMembers.Properties("Id Регион")="14")

(отличие - это запустить .MEMBERS по уровню а не по измерению)

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

Если нетрудно поясните, что значит "это запустить .MEMBERS по уровню а не по измерению"
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33307834
Kutuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Alex Fox
Alex FoxА вот етот Propёrtis("Id Регион"), он есть на всех уровнях ???

Нет Propertis("Id Регион") есть только на уровне Регион. Всего в измерении три уровня Регион -> Менеджер -> Клиент
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33308087
Kutuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Mosha
Понял что вы имели ввиду.

2ALL
Все получилось. Спасибо всем за помощь.
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33313851
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
backfire1. Моша, я веду речь о простом MDX, а Вы мне про какое то "мое" решение.
Kutuz поставил четкую задачу, для которой Вы предложили решение. Я его немножко покритиковал. Хотя, как я писал здесь - http://www.sqljunkies.com/WebLog/mosha/archive/2005/04/10/10599.aspx - в Юконе этот подход правильный. Но при этом используется не виртуальное измерение, а атрибут того же самого измерения.

backfireкакая разница между работой "VisualTotals" (функция MDX) и "Visual Totals" (галочка в управлении ролями)?
Я так понимаю, что вы мне всегда упоминали последнее, а я думал о первом. :-(
Совершенно верно - я имел в виду именно dimension security Visual Totals. Вообще то с этими Visual Totals есть небольшая путаница, т.к. в AS есть 4 (четыре) разных фичи, и все они называются одинаково - Visual Totals, только и сфера применения и имплементация у них у всех разная :(

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
MDX в Dimension Security.
    #33314084
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mosha backfire1. Моша, я веду речь о простом MDX, а Вы мне про какое то "мое" решение.
Kutuz поставил четкую задачу, для которой Вы предложили решение. Я его немножко покритиковал. Хотя, как я писал здесь - http://www.sqljunkies.com/WebLog/mosha/archive/2005/04/10/10599.aspx - в Юконе этот подход правильный. Но при этом используется не виртуальное измерение, а атрибут того же самого измерения.

backfireкакая разница между работой "VisualTotals" (функция MDX) и "Visual Totals" (галочка в управлении ролями)?
Я так понимаю, что вы мне всегда упоминали последнее, а я думал о первом. :-(
Совершенно верно - я имел в виду именно dimension security Visual Totals. Вообще то с этими Visual Totals есть небольшая путаница, т.к. в AS есть 4 (четыре) разных фичи, и все они называются одинаково - Visual Totals, только и сфера применения и имплементация у них у всех разная :(

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


Ну так просветите, где разница, и как избежать путаницы с мировосприятием Visulal Totals.

То что в
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX в Dimension Security.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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