Essbase Count of Dimensions

Количество направлений (измерений)  в одном приложении

Разрешено  до 21 измерения в BSO кубе. Оптимальными является кубы с 12 направлениями,  так же допустимым  является 14 направлений.(Но я знаю вполне работоспособные модели с 19 измерениями , но в них была произведенена очень тонкая настройка расчетов Continue reading “Essbase Count of Dimensions”

Выбор типа сжатия файла данных Essbase

ПРАКТИЧЕСКОЕ ЗНАЧЕНИЕ ИМЕЮТ ТОЛЬКО ДВА ТИПА СЖАТИЯ

BITMAP – тип сжатия по умолчанию. Хорош в случаях когда в блоке более двух направлений и в базе данных множество конкурентных расчетов. Наиболее безопасный и надежный способ хранения данных.

RLE – позволяет сократить размер БД на треть , по сравнению с Bitmap. Хорошо сжимает модели построенные для бюджетного планирования, так как в этом случае данные обычно имеют тенденцию повторятся в разрезе одного из направлений (периода времени). Хорошо подходит для случаев, когда расчеты агрегатов в БД происходят в монопольном режиме. Имеет ограничения в использовании:

  • Хорошо жмет блоки состоящих из двух направлений
  • Первое направление в блоке – наименее длинное.
  • Плохо работает с конкурентными расчетами в нагруженной МБД (может стать причиной XCP)

За счет того что БД имеет меньший размер на диске (до 30%), повышает скорость расчетов на 15%.

Основные настройки конфигурационного файла EssBase.cfg

Применять данные настройки рекомендуются в старте проекта, что бы модели настраивались с учетом влияния изменения поведения Essbase CFG.Некоторые из этих настроек следует пересматривать для оптимизации одновременной работы сверхбольших и средних приложений, так как могут внести некоторые неожиданности в поведении EssBase (особенно на больших и нагруженных базах)

  • AGENTLOGMESSAGELEVEL уровень детализации логов ( ERROR)
  • CSSSYNCLEVEL синхронизирует безопасность при перезапуске сервера (auto)
  • AGTSVRCONNECTIONS – определяет кол-во начальных потоков между агентом и приложением. (5)
  • AGENTTHREADS – определяет общее кол-во потоков агента (40)
  • SERVERTHREADS – определяет общее кол-во потоков OLAP приложения (200)
  • EXPORTTHREADS  – увеличивает число потоков при выгрузке данных в текстовый файл –
  • LOCKTIMEOUT – время блокировки при операции Lock (обычно возникает в SS клиенте) (600)
  • MULTIPLEBITMAPMEMCHECK принудительно переключает распределение памяти в кеше калькулятора в однопоточный режим, если хоть раз было переполнение в многопоточном (TRUE)
  • PARCALCMULTIPLEBITMAPMEMOPT оптимизирует работу памяти в кеше калькулятора (TRUE)
  • CALCCACHE – управляет кешем калькулятора. Для операций CalcDim и AGG в скрипте имеет смысл пробовать SET CALCCACHE OFF;

    CALCCACHE TRUE
    CALCCACHEHIGH 200000000
    CALCCACHEDEFAULT 75000000
    CALCCACHELOW 2000000

  • CALCLOCKBLOCK % – сколько фиксировать блоков в памяти при расчете

    CALCLOCKBLOCKHIGH 4000
    CALCLOCKBLOCKDEFAULT 2000
    CALCLOCKBLOCKLOW 1000

  • CALCOPTFRMLBOTTOM переключает сервер в блочный режим расчета (UP)
  • DATAEXPORTENABLEBATCHINSERT упаравляет процессом выгрузки данных в БД
  • CALCPARALLEL определяет кол-во потоков при параллельном расчете (1)
  • CALCTASKDIMS Определяет количество разряженных направлений (выбираются снизу – вверх), элементы которых будут участвовать в распараллеливании
  • DYNCALCCACHEWAITFORBLK определяет ждать ли кеш калькулятора, при переполнении (FALSE/TRUE)
  • DYNCALCCACHEMAXSIZE Определяет память выделяемую под динамический кеш калькулятора (200M)
  • DELAYEDRECOVERY определяет поведение EssBase по очистке места при аварийном завершении работы (FALSE)
  • GRIDEXPANSION  – управляет ретривом для прозрачных партиций (ON/OFF)
  • QRYGOVEXECTIME задает макс время работы отчета (600)
  • QRYGOVEXECBLK задает макс число блоков разрешенных для доступа в одном отчете (100000)
  • PIPEBUFFERSIZE задает размер буффера используемого между Spreadsheet Extractor и Report Writer. (65534)
  • VLBREPORT рекомендует EssBase автоматически определять размер буфера (100 KB – 10 MB) для запросов ( исключая Dynamic Calc, attribute, Dynamic Time Series members) (TRUE/FALSE)
  • SUPNA схлопывает миссинг блоки на стороне сервера (ON)
  • NO_HOSTNAME_LISTCONNECT запрещает писать в логи FQDN имена, повышает производительность если есть проблемы с DNS (TRUE)
  • MEMSCALINGFACTOR множитель распределения памяти для 64bit систем
  • DYNCALCCACHECOMPRBLKBUFSIZE Определяет размер временного буфера для хранения сжатых блоков для расширения размера кеша динамического калькулятора (200000)

    ; настраиваем загрузку данных из внешних источников DLSINGLETHREADPERSTAGE TRUE
    DLTHREADSPREPARE 3
    DLTHREADSWRITE 4

  • CalcLimitFormulaRecursion предотвращает выполнениея сложных, взимосвязаных формул. Указывает разработчику на ошибки (TRUE).
  • NETDELAY сетевое время ожидание клиента (800)
  • NETRETRYCOUNT количество попыток в разрешении сетевых ошибок (1000)
  • NETTCPCONNECTRETRYCOUNT кол-во попыток восстановления TCP соединений (20)

Количество баз данных в одном приложении Essbase

Разрешено до 4-x баз в приложении, но рекомендуемое значение – 1, так как только в этом случае избегаются риски, связанные с тем, что Essbase запускает отдельный обслуживающий процесс для каждого приложения (не для БД):

  • Утилизация памяти (актуально для 32 битной версии) – нельзя выйти за порог 2GB для одного приложения.
  • Конкурентные обслуживающие процессы по перестройке (restructure) БД, обновлению метаданных, выгрузке данных
  • Единая точка восстановления, при возникновении XCP события в одном из кубов – страдают все соседи по приложению.
  • Конкуренции связанные с работой обслуживающего сервиса – Essbase Agent – он поддерживает параллельную работу только для приложений (не для БД )
  • Блокировка изменений системных настроек одного куба при конкурентной активности (расчет, выгрузка) в соседнем кубе.
  • Один поток на приложение по выгрузке данных
  • Один лог файл на приложение.

Но, если приложение не использует EPMA для хранения и разделения направлений, то является допустимым совмещение в одном приложении нескольких БД  для решения задач разделения метаданных и данных.