Кэширование данных CubeCacheSaver

Для кэширования данных в «Форсайт. Аналитическая платформа» может применяться механизм CubeCacheSaver. CubeCacheSaver – это подсистема, обеспечивающая загрузку данных из источников (кэширование кубов), хранение данных в оперативной памяти, быстрый доступ и высокопроизводительную обработку. Кэширование позволяет избежать необходимости каждый раз отправлять запрос на выборку данных из СУБД. Данный тип кэширования поддерживают все кубы, построенные на стандартном кубе с кэшем.

Данные кэша хранятся в специальной таблице в СУБД и при открытии куба загружаются в оперативную память. В кэш попадают значения по заданной отметке и набору значений параметров куба. При кэшировании справочников в кэш сохраняются значения атрибутов, соответствующие элементам справочника. Учитывается наличие параметров у справочника (для каждого набора параметров создаётся свой кэш), наличие периода действия элементов (справочники НСИ), права доступа разных пользователей к элементам.

Для использования кэширования данных CubeCacheSaver:

  1. В настройках системного реестра или в файле Settings.xml в разделе InMem для строкового параметра UseInMem укажите значение false.

Примечание. Если подраздел InMem или строковый параметр UseInMem отсутствуют, то их необходимо создать вручную.

  1. Выберите стандартный куб в навигаторе объектов.

  2. Включите кэширование объекта с помощью флажка «Кэшируемый объект»:

  3. Из раскрывающегося списка выберите базу данных, в которой будет создана таблица кэша. Если для репозитория задана база данных по умолчанию, то она будет подставлена в раскрывающемся списке. При смене базы данных кэш будет удалён, а в выбранной базе будет создана новая пустая таблица.

После выполнения указанных действий будет использоваться кэширование данных CubeCacheSaver выбранного объекта репозитория. BI-сервер применяет кэширование данных справочников, у которых кэш был включен в настольном приложении. Для заполнения таблицы кэша данными необходимо нажать кнопку «Обновить кэш» на вкладке «Кэш». Данные в двоичном виде будут сохранены в таблицу кэша в СУБД и загружены в оперативную память. В СУБД текущее представление попадает целиком. Если у куба есть параметры, то для каждого набора параметров, кэш необходимо создавать отдельно.

При открытии куба будет следующий приоритет загрузки данных:

  1. Оперативная память;

  2. Таблица с кэшем в СУБД;

  3. Источник данных в СУБД.

Если кэширование куба включено, то при нажатии кнопки «Сохранить изменения» на вкладке «Данные» изменения сохраняются в оперативную память локальной машины и в таблицу с исходными данными источника. При первом открытии куба на другом компьютере будут загружены неактуальные данные из таблицы с кэшем. Для актуализации данных перед открытием куба используйте кнопку «Обновить кэш» на вкладке «Кэш» в настольном приложении или команду «Обновить кэш» в контекстном меню объекта в веб-приложении.  Кэш стандартного куба доступен для обновления по расписанию.

Особенности и ограничения

В текущей реализации имеются следующие ограничения и особенности при работе с кэшированными данными:

Функциональность Комментарии
Параметры Сохранение и обновление кэша производится по тому набору значений параметров, который указан при работе с кубом. Если при открытии куба отсутствует экземпляр кэша с указанным набором значений параметров, то данные запрашиваются из источника куба.
Серверная агрегация В кэш сохраняются агрегированные данные.
Детализация по серверной агрегации При детализации формируется запрос к таблице с исходными данными.
Детализация по запросу Запрос для детализации данных не сохраняется в кэш. При вызове детализации выполняется запрос, который указан в настройках куба.
Вложения Не поддерживается.
Непривязанные измерения В кэш сохраняется размноженная матрица с данными. она же загружается при открытии куба. Если изменяются данные, то необходимо обновлять кэш.
Выражения в привязках измерений Выражения сохраняются и считываются из кэша.
Единицы измерения и показатели Расчёт производится при сохранении или обновлении кэша. При открытии куба загружаются кэшированные данные, перерасчёт не производится. Если изменяются данные, то необходимо обновлять кэш.
Отношения Расчёт производится при сохранении или обновлении кэша. При открытии куба загружаются кэшированные данные, перерасчёт не производится. Если изменяются данные, то необходимо обновлять кэш.
Вычисляемые факты Расчёт производится при сохранении или обновлении кэша. При открытии куба загружаются кэшированные данные, перерасчёт не производится. Если изменяются данные, то необходимо обновлять кэш.
Управление параметрами Сохранение и обновление кэша производится по тому набору значений параметров, который указан при работе с кубом. Если при открытии куба отсутствует экземпляр кэша с указанным набором значений параметров, то данные запрашиваются из источника куба.
Управляющие измерения Расчёт производится при сохранении или обновлении кэша по той отметке, которая передана, либо по отметке по умолчанию для измерений.
Агрегация Расчёт производится при сохранении или обновлении кэша. При открытии куба загружаются кэшированные данные, перерасчёт не производится. Если изменяются данные, то необходимо обновлять кэш.
Варианты отображения куба При работе в навигаторе объектов всегда используется вариант отображения по умолчанию. Через код на Fore/Fore.NET может быть использован любой доступный для куба вариант отображения.
Сегменты данных Не поддерживается.

Кубы-представления, виртуальные кубы, загрузчик в куб, которые построены на стандартных кубах с кэшированием, также будут осуществлять свою работу с кэшированными данными. Автоматические кубы поддерживают кэширование CubeCacheSaver. Многомерный расчёт на сервере БД не поддерживает кэширование CubeCacheSaver.

При выполнении анализа данных и построении отчётов с помощью инструментов «Аналитические запросы (OLAP)», «Аналитические панели», «Отчёты», «Интерактивные формы ввода данных» недоступна следующая функциональность:

См. также:

Кэширование