|
|
|
OBIEE Сложная (или не очень) формула на на бизнес уровне в репозитории или...
|
|||
|---|---|---|---|
|
#18+
OBIEE 12c, но я думаю, что это применимо и к 11 версии BI Есть ли возможность на бизнес уровне настроить вычисляемый показатель, чтобы он отображал одно значение, если выбран определенный(ые) показатель(и) или другое, в противном случае? Имеется в виду следующее: У меня модель состоит из данных многомерного куба Esaabse(суммы, веса) и данных реляционной таблицы(детальные данные типа документов, пользователей, и их агрегатов вида count distinct). Для примера: Изм Период -Год -Квартал -Месяц Изм Товар -Категория -Детальный Товар Показатели -Стоимость(essbase) -Вес(essbase) -Документ(реляц БД) -Пользователь(реляц БД) -Кол-во документов(рел БД) -Кол-во пользователей(рел БД) -Стоимость(рел БД)* -Вес(рел БД)* Два последних показателя равны по значениям многомерным данным. Они нужны для отображения показателей стоимости и веса в случае, когда выбран показатель Документ или Пользователь, т.к. в этом случае многомерные показатели отображают null. Пример Если я выбираю, например, измерение Период-Год и Показатель Стоимость(essbase), я получаю данные из многомерного куба вида Период Стоимость(essbase) 2016 1000$ 2017 2000$ Если я добавляю к этому Показатель Документ Период Стоимость(essbase) Документ 2016 null 123 343 233 2017 null 878 Если я добавляю Стоимость(рел БД) Период Стоимость(essbase) Документ Стоим(рел БД) 2016 null 123 300$ 343 300$ 233 400$ 2017 null 878 2000$ Но две Стоимости неудобны для пользователей, поэтому Мне необходимо либо 1. Добавить новый вычилсяемый показатель Стоимость(вычисляемая), который будет Отображать значение показателя Стоимость(essbase), если не выбраны показатели Пользователь или Документ и отображать значение показателя Стоимость(рел БД), если какой-либо из этих показателей выбран 2.Добавить новый вычилсяемый показатель Стоимость(вычисляемая), который будет Отображать значение показателя Стоимость(essbase), если она не null и Стоимость(рел БД), если null IFNull(Стоимость(essbase), Стоимость(рел БД)) меня не устраивает, т.к. сразу идет запрос и к Многомерной и к реляционной БД в любом случае. 3. Как-то настроить модель, чтобы в случае добавления детальных показателей(Документ или Пользователь) Стоимость(essbase) отображалась, как значение для изместных пересечений измерений(Период-Товар) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2018, 16:29 |
|
||
|
OBIEE Сложная (или не очень) формула на на бизнес уровне в репозитории или...
|
|||
|---|---|---|---|
|
#18+
menja_zovut_deniska, Реализовать выбор того или иного источника можно при помощи построения бизнес-модели. Первым делом нужно сделать таблицы измерения для "документ" и "пользователь" На физическом уровне связывете их с фактом из БД по соотвтествующим полям. Добавляете их на логический уровень Там также соединяете с фактом Делаете для этих новых измерений level-based иерархии (можно стандартныv образом с 2 уровнями - total и detail - есть пункт меню по нажатию правой кнопкой по таблице-измерению на лог. уровне) Далее в фактовой логической таблице у Вас 2 источника. Вам не нужно 2 разных показателя один из эсбэйса, другой из БД Делаете один показатель, но с 2 разными источниками. В меню показателя на вкладке column source: derived from phisical mappings (ставите галочку, чтоб показывал все источники) и для каждого источника выбираете соответствующий столбец. Ещё нужно указать, что в источнике из БД данные есть для уровней "документ" и "пользователь" : открываете в папке sources соответствующий источник и указываете на вкладке content детальный уровень для этих иерархий. В отчёты нужно будет добавлять документ и пользователь из таблиц-измерений. Также источники для таблицы факта нужно расположить в следующем порядке: сначала essbase, потом БД Описанная конструкция будет работать следующим образом: Система проверяет, какие показатели в каких разрезах вы выбрали в отчёт: сначала смотрит первый источник в списке фактовой таблицы (то есть эссбэйс, т.к. мы его расположили первым), если в этом источнике есть все запрошенные столбцы и он соединён (согласно вкладке контент со всеми запрошенными измерениями), то он берет все данные из него, если нет, то переходит к следующему. То есть речь не про юнион из двух источников, а про выбор одного или другого. В случае если нет детализации по пользователю и документу - будет выбран источник эссбэйс для показателя, в случае если есть, то источник БД Юнион тоже можно реализовать. Просто из Вашего описания не очень понятно как источник из БД относится к измерениям времени и товара, по какому признаку данные распределяются между эссбэйс и БД (дублируют они друг друга или дополняют) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 12:41 |
|
||
|
OBIEE Сложная (или не очень) формула на на бизнес уровне в репозитории или...
|
|||
|---|---|---|---|
|
#18+
terna, Спасибо за ответ, но "Первым делом нужно сделать таблицы измерения для "документ" и "пользователь"" - не получится, потому что членов измерений может быть несколько миллионов, а самих измерений пару десятков(это детальные данные в реляционной таблице). Похоже это я перемудрил и нужно было не самому пытаться разрулить, какую стоимость показывать, а смапить их и дать движку BI возможность выбрать источник)) Но получить ответ на вопрос уже не рамках этой задачи было бы интересно Возможно ли построить логику на бизнес уровне, чтобы "Отображать значение показателя Стоимость(essbase), если не выбраны показатели Пользователь или Документ и отображать значение показателя Стоимость(рел БД), если какой-либо из этих показателей выбран" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 13:22 |
|
||
|
OBIEE Сложная (или не очень) формула на на бизнес уровне в репозитории или...
|
|||
|---|---|---|---|
|
#18+
menja_zovut_deniska, ок, но по идее, если делать всё "по науке", то все же для каждого такого измерения надо на логическом уровне делать таблицу-измерение. Как вариант для случая с большим количеством записей и фактическим отсутствием соответствующего справочника в качестве такового предлагают использовать повторно сам факт (можно погуглить по degenerate dimention). Но так-то должно работать и всё то же самое, но без справочников, если сделать один показатель с источником в двух разных физических таблицах (просто указать источники в правильном порядке сначала более общий, потом более детальный, на случай, если в общем не нашёл всех показателей, можно также явно указать приоритет источников). А для двух разных показателей по идее вариант только с ifnull, но он и правда пойдёт с запросами в обе таблицы сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 17:42 |
|
||
|
OBIEE Сложная (или не очень) формула на на бизнес уровне в репозитории или...
|
|||
|---|---|---|---|
|
#18+
menja_zovut_deniska, почему заостряю внимание на том, как "по науке", потому что опыт показывает, что вот вариант попроще вроде работает, а потом получаешь проблемы откуда не ждали (то считается не совсем правильно, то агрегируется не так), и каждый раз непредсказуемо это всплывает именно из-за того, что где-то "перехитрил" систему и дальше продолжаются костыли) но это, наверное, у всех так) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 17:46 |
|
||
|
|

start [/forum/search_topic.php?author=PSYon&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 640ms |
| total: | 919ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...