Кейс: посчитать количество записей в справочнике

Это – одна из основополагающих операций для многих аналитических расчётов. Но не очень очевидная с т.зр. реализации.

Чтобы было что посчитать, нужно добавить к справочнику/объекту пустой числовой реквизит.
А чтобы система поняла, что это счётчик, в показателе OLAP-куба сделать каждую его запись константой со значением "1".

Предположим, что мы хотим посчитать, сколько раз отгружали фрукты по договорам поставки. Справочник с исходными данными называется "Фруктов отгружено".

Добавьте колонку "Индекс" в справочник "Фруктов отгружено".

  1. Если числовой реквизит "Индекс" еще не создан, создайте его: Администрирование → Структура базы данных → Реквизиты → Создайте новый реквизит:
    • "Название" – Индекс;
    • "Тип реквизита" – Число;
    • "Число цифр до запятой" – 1;
    • "Число цифр после запятой" – 0;
    • "Максимальное значение" – 1;
    • "Формат" – Число.
  2. В настройке реквизитов в справочке → изменить в поле с реквизитом "Индекс" → снимите с него галки "Показывать" и "Обязательный". Сохраните изменения.

Создайте новый OLAP-куб "Количество транзакций".

  1. Администрирование → Структура базы данных → OLAP-кубы → Создать.
  2. Заполните поля формы:
    • НазваниеКоличество транзакций;
    • Описание – может помочь для поиска нужного OLAP-куба при дальнейших настройках;
    • выберите иконку, чтобы было проще ориентироваться;
    • Число цифр после запятой – 0;
    • чек-бокс Показывать только одну (последнюю по времени) запись по проекту оставить пустым.
    • Режим обновления – выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать.
      Чтобы данные для пользователей в отчётах открывались быстро, выберите "Один раз в сутки" или "По таймеру".
      Настройки таймера.

  1. В созданном шаблоне OLAP-куба в блоке "Измерения" → Создать.
  2. Создайте измерение – реквизит-классификатор. В нашем примере это "Фрукты":
Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)

Так будет выглядеть блок с измерениями в примере с яблоками:

Создайте показатель-запрос "Индикатор".

  1. В блоке "Показатели" → Создать.
  2. Блок "Свойства показателя OLAP-куба":
    1. введите название измерения – Индикатор;
    2. "Тип показателя" – Запрос;
    3. "Свойства" – поставить чек-бокс на Агрегация и на Скрытый.
  3. Блок "Настройки запроса":
    1. "Источник" – Справочник → выберите из списка справочник "Фруктов отгружено" (название того справочника в который пользователи вносят информацию);
    2. "Реквизит" – выберите тот числовой реквизит, в который пользователи вносят количество проданных фруктов.
      Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
    3. "Параметры":
      1. "Измерение OLAP-куба" – выберите ранее созданное измерение – Фрукты;
      2. "Дата источника" – все даты, кроме "Системной" – это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте Системный;
      3. "Дата OLAP-куба" – Дата (точный).
  4. Сохраните изменения.

Создайте показатель-формулу "Количество сделок".

  1. В блоке "Показатели" → Создать.
  2. Блок "Свойства показателя OLAP-куба":
    1. введите название измерения – Количество сделок;
    2. "Тип показателя" – Формула;
    3. "Свойства" – поставить чек-бокс на Агрегация.
  3. Блок "Формула" → выбрать "Константа" → указать "1".
  4. Сохраните изменения.

Куб готов. Вы можете использовать его для дальнейших вычислений. Например, чтобы узнать сумму среднего чека.
Проверить, что система посчитала, можно через создание OLAP-отчёта.

  • product/olap/case_index.txt
  • Последнее изменение: 25/07/2019 06:31
  • mayn