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 элемента)