powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Непонятная работа функции Generate или получение набора родителей на основе набора детей
9 сообщений из 9, страница 1 из 1
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32513918
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что имеем: несбалансированное парент-чайлд измерение Номенклатура, где есть не периодические товары, например:
Код: plaintext
1.
2.
3.
4.
ТНП
   Карамель
      Чупа чупс маленький
      Чупа чупс средний
      Чупа чупс большой
и есть периодические:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Периодические издания
   Ежедневная пресса
      Московский комсомолец
         Московский комсомолец  1 / 04 
         Московский комсомолец  2 / 04 
         Московский комсомолец  3 / 04 
      Известия
         Известия  1 / 04 
         Известия  2 / 04 
         Известия  3 / 04 
необходимо по периодическим изданиям получить неабор только изданий с указанием количества продаж, возвратов и прочих мер. Т.е. необходимо игнорировать номера одной и той же газеты, а заменить множество номеров на их родителя. Вся проблема в том, что измерение не сбалансированное и нельзя сказать что нужные родители лежат на известном уровне. Как решаю проблему на основе BOL и сдешних комментариев:
Код: plaintext
1.
Distinct(GENERATE(DESCENDANTS([Номенклатура].[ 1559  Периодические 
издания],, LEAVES), {[Номенклатура].CurrentMember.Parent}))
-предварительно получаю список оконечных листьев, от них перехожу к их родителям и удаляю дубли. По предположениям должно быть то что нужно, а именно, такой набор листьев:
Код: plaintext
1.
2.
3.
4.
5.
         Московский комсомолец  1 / 04 
         Московский комсомолец  2 / 04 
         Московский комсомолец  3 / 04 
         Известия  1 / 04 
         Известия  2 / 04 
         Известия  3 / 04 

должен превратиться в такой набор родителей:
Код: plaintext
1.
      Московский комсомолец
      Известия

однако же превращается в такое:

Код: plaintext
1.
2.
3.
Периодические издания
   Ежедневная пресса
      Московский комсомолец
      Известия

где лишним является:

Код: plaintext
1.
Периодические издания
   Ежедневная пресса

вопрос - почему так? откуда берутся лишние родители и как решить?
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32514422
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Вжик:

На мой взгляд Вы пытаетесь делать с помощью MS AS то, на что он не заточен. Рекомендую превратить измерение parent-child в набор колонок, в каждой из которых будут названия одного уровня иерархии. Схлопните ненужные уровни на уровне DWH, и после этого сформируйте обычное измерение в MS AS.
Я обычно провожу преобразование parent-child с помощью виртуальных вьюшек Impromptu, а уровни схлопываю уже в OLAP-сервере Cognos PowerPlay...
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32514492
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позвольте с Вами не согласиться в неподходимости для этого MS AS. В общих чертах эту задачу я решил с помощью иных конструкций МДХ. В данном случае мне именно непонятна работа указанной функции. Ну и на мой взгляд, добавлять колонки - это плохой тон. Вся проблема здесь в том, что несбалансированное парент-чайлд измерение - сложная структура, дающая как приемущества, так и недостатки.
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32514571
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Вжик:

Ну и на мой взгляд, добавлять колонки - это плохой тон. Вся проблема здесь в том, что несбалансированное парент-чайлд измерение - сложная структура, дающая как приемущества, так и недостатки.

Да, тон может и не самый лучший, но от этого никуда не денешься в случаях, аналогичных Вашему - когда постоянно растет число листьев в измерении товаров. Известно, что преимущества парент-чайлд проявляются только при небольшом количестве мемберов, а дальше наступают тормоза. Издатели печатной продукции этого не понимают, не идут навстречу пользователям MS AS :) и выпускают новые номера своих газет (а каждый номер - это мембер). Если не закачивать в куб детализацию до номера - снизится полезность аналитической системы.
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32514646
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, честно говоря, могу только предполагать, т.к. сам с подобным не сталкивался. Я думаю, дело не в Generate, а в Descendants, работу которой что-ли обрабатывает Generate. Т.е., калькулирует не на основании результата Descendants, а на основании процесса её вычисления. Я понимаю, что отдаёт бредом, но никаких других идей нет.

Если у Вас от [Номенклатура].[1559 Периодические
издания] вниз всё сбалансированно и вы просто не знаете глубину, можно поступить так: взять листья, "выдрать первый"(или последний), от него - родителя, от него Siblings.
Если от [Номенклатура].[1559 Периодические
издания] вниз несбалансированно, то обрабатывай те set, который Вы получили. Выделяйте из него то, что нужно.
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32515469
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не смог воспроизвести такого поведения на обоих dimensions из Foodmart 2000 - Employees & Account. Моя теория, что может быть у Номенклатуры определены hidden Data Members, которые включены в LEAVES.
Кстати, не обязательно делать Distinct, т.к. Generate и так сделает его автоматически если не указан флаг ALL.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32516152
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, точно, это ведь PC. Может, у Вас дам стоит "Members with data" не в leaf members only. Может, это они и лезут?
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32516235
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз, насколько я понимаю - нужно поправить параметры измерения Номенклатуры на уровне базы MS AS ?
...
Рейтинг: 0 / 0
Непонятная работа функции Generate или получение набора родителей на основе набора детей
    #32516243
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это скорей всего оно. Щаз поправлю. Спасибо огромное.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Непонятная работа функции Generate или получение набора родителей на основе набора детей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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