get Oracle SmartView plugin

Essbase Maxl hacks

Несколько слов о приемах программирования, которые приближают использование Maxl к «полноценному» языку программирования (скрипту). Конечно, можно использовать mod_perl или mod_phyton, и это оправдано в ряде случаев, но умение делать необычные вещи с помощью базового функционала делают проект проще (дешевле) в обслуживании.

Итак , что же в Maxl языке добавляет гибкости в работе :

  1. Использование переменных системного окружения в качестве нативных переменных Maxl.
  2. Использование переменных Maxl для параметризации calc скрипта в выражении “execute calculation
  3. Встраивание в код одного Maxl скрипта, файл с кодом другого Maxl.
  4. Вызов внешних программ.
  5. Использование конструкции IfError .

Continue reading “Essbase Maxl hacks”

EssBase:Основные приемы эффективной загрузки данных через LoadRules

Основные приемы эффективной загрузки данных через LoadRules :

1) SQL запрос, должен быть максимально простым, без подзапросов и объединений

2) Вся вычурная логика должна остаться на уровне БД

3) Запрос должен содержать в себе явное перечисление все колонок, использование маски (*) чревато проблемами при эксплуатации и внесении изменений.

4) Удобнее всего создавать для каждого куба один Rul файл вида

Dim1,Dim2,Dim3,..,DimN,DblValue

И все выгрузки привести к этому формату спрятав под единым интерфейсным VIEW

5) Для того что бы трансформировать таблицу фактов из вида

Dim1,Dim2,Dim3,..,DimN,Accont1,Account2,Account3,…,AccountN в
Dim1,Dim2,Dim3,..,DimN,DblValue

Можно использовать Full Outer Join , но наиболее эффективным способом является написание табличных функций (Oracle PipeLine )

6) Для передачи параметров загрузки можно использовать Essbase Substitution Variable, тогда типичный вызов будет выглядеть следующим образом

alter database $vApp.$vApp set variable “vCurrLE” $vLE ;
alter database $vApp.$vApp set variable “vCurrYear” $vYear ;

import database $vApp.$vApp
data connect as $vODBCLogin identified by $vODBCPassword
using rules_file “$vWorkDir/ess/$vMXLSHName.rul”
on error write to “$vWorkDir/log/$vLogFileName.txt.err”;

7) Все загружаемые значения должны быть округлены до требуемой точности. (3 или 5 -ый знак после запятой)

8) Если название колонок в SQL запросе совпадают с названием аналитик МБД EssBase, то их можно не связывать в свойствах Rul файла.

9) Для загрузки данных в ASO , довольно эффективным является использование промежуточных буферов

10) Возможно выжать несколько % производительности, если расположить аналитики в загрузке в соответствии с аналитиками Outline.

11) Для BSO обязательно располагать Dense измерения справа, рядом с загружаемыми значениями.

12) Если скорость загрузки является ключевой метрикой в определении общей производительности приложения, то нужно расположить одно из Dense измерений в столбцах.

13) Essbase Load Rules хранятся в бинарном формате и, для корректного создания , нужно выполнять следующие условия
а) запрещается изменять их через текстовые редакторы, все исправления только через консоль EAS
b) сохранять только при наличии тестовой выгрузки данных в EAS.

14) Не нужно предварительно агрегировать данные – essbase успешно соберет все значения сам.

15) Для скорости загрузки нужно справочники строить от кодов аналитик, что бы значения иерархии можно было получить не с помощью внешнего подзапроса, а строковым объединением ( Префикс+ID элемента)

Построение репозитория Oracle BI 11g для правильного использования избыточности в витрине

Задача:
Увеличить производительность при формировании отчетов Oracle BI Answers

Решение:
Один из вариантов решения – это при формировании отчета Answers в запросе к базе данных уменьшить количество соединений таблиц. Этого можно добиться путем дублирования атрибутов измерений в таблице факта, т.е. создания избыточности. Но возникает вопрос: как настроить BI чтобы на презентационном уровне был один единый столбец атрибута измерения и в зависимости от выбранных фактов он формировался из своей таблицы или из таблицы фактов?

Предлагаю построить в Oracle BI такой пример и посмотреть как он работает. …

Continue reading “Построение репозитория Oracle BI 11g для правильного использования избыточности в витрине”

Ручной перенос приложения Hyperion Planning ч3

Стоит задача перенести приложение Hyperion Planning со среды разработки на промышленную среду с изменением аналитик, имени приложения и пр. Для этого используется «ручной» способ переноса через выгрузку EPMA, форм, задач.

Часть 3 – переносим формы, задачи, данные, правила расчетов.
Continue reading “Ручной перенос приложения Hyperion Planning ч3”