Про овец и капусту. (Все что хотели знать о производительности расчетов BSO, но боялись спросить.)

… по следам оптимизации одного расчета с 40 до 2 минут.

На учебных курсах и в кулуарах, когда говорят о блоках, о свойствах аналитик, рассказывают о «плотности» данных, как о измеримой сущности, взвешивая которую можно определить какие аналитики использовать для формирования блока.

Например, мы считаем овец каждый месяц, по регионам и имеем следующую таблицу

( Овца 1-го типа)… ( Овца 100-го типа)

Кол-во овец

Янв

Фев

Мар

Юг

5

5

5

Север

6

6

6

Запад

7

7

7

Восток

8

8

8

Для классического случая, когда показатели и периоды плотные,   в данном примере 400 блоков (4 региона и 100 типов овец). Если ;t на аналитике «Овцы » поставить признак «плотный», а на «Периодах» разряженный, то кол-во блоков сократиться до 48 (4 региона и 12 периодов).

Как такое изменение скажется на  производительности расчетов: Для того что бы подсчитать «Итого овец», нужно произвести всего 48 операций чтения блоков, а не 400 как в первом случае.

Это все хорошо в теории, на практике мы считаем и овец и капусту и фермеров и все что душе угодно. И показателей и предметов счета у нас великое множество, и всех их в блок не отправишь.

Такое многообразие мира приводит к простому решению – блок состоит обычно из двух аналитик «Период» и «Показатель». Такое же решение по умолчанию предлагает Hyperion Planning. Это не хорошо и не плохо, это факт из жизни с которым мы можем в дальнейшем работать:

Создать отдельное приложения для каждой сущности подсчета : овец, капусты и фермеров. Естественно возникает вопросы интеграции, решение которых по своей сложности, обычно, чуть проще разработки самих расчетов модели.

Из всего выше сказанного, разработчику нужно решить дилемму

  1. Все в одной модели: просто разрабатывать, но долгие  расчеты
  2. Множество приложений: быстрые расчеты, но требуют решения дополнительные интеграционные задачи.

ЕР