В этой статье:

Настройка кэширования

Загрузка данных в глобальный кэш

Загрузка кэшированных данных в оперативную память

Сохранение данных при использовании глобального кэша

Консоль управления глобальным кэшем

Потребление памяти и производительность

Сценарии использования глобального кэша

Логирование выполняемых действий

Ограничения работы глобального кэша

Работа с глобальным кэшем

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

Поддерживается два режима работы с кэшем:

Для кэширования данных справочников и кубов можно использовать оба режима.

Настройка кэширования

Для использования кэширования данных кубов и справочников глобальным кэшем сохраните объекты в многомерном виде в СУБД.

Доступность настройки кэширования данных кубов и справочников в зависимости от режима кэширования в веб-приложении в ОС Linux и в ОС Windows:

Режим кэширования Куб Справочник
Сессионный
Кросс-сессионный

Доступность настройки кэширования данных кубов и справочников в зависимости от режима кэширования в настольном приложении в ОС Windows:

Режим кэширования Куб Справочник
Сессионный
Кросс-сессионный

Условные обозначения:

- настройка доступна;

- настройка недоступна.

Примечание. Работа с настроенным и созданным кэшем доступна для кубов и справочников любого типа приложений и используемой ОС.

Настройки сессионного кэширования

Для использования сессионного кэширования кубов в настольном приложении для ОС Windows:

  1. Укажите значение global для строкового параметра CacheType в разделе InMem в файле settings.xml или в настройках системного реестра ОС Windows.

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

  1. Выберите куб, данные которого необходимо закэшировать, в навигаторе объектов.

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

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

  4. Нажмите кнопку «Обновить кэш», чтобы отстроенный многомерный объект сохранился в базе данных. Учитывайте, что для кубов в базе данных сохраняются все данные куба. Чтобы сохранить кэш для кубов по определенной отметке нужно использовать «Консоль управления глобальным кэшем». Особенности работы с кэшем:

    • если объект параметрический, то кэш необходимо создать для всех необходимых наборов значений параметра. Диалог задания параметра будет показан при нажатии кнопки «Обновить кэш»;

    • если создаются ярлыки для стандартных кубов, то для ярлыка может быть создан и настроен отдельный кэш. Если для ярлыка отсутствует кэш, то используется кэш исходного куба.

Для использования сессионного кэширования справочников в настольном приложении для ОС Windows:

  1. Укажите значение global для строкового параметра CacheType в разделе InMem в файле settings.xml или в настройках системного реестра ОС Windows.

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

  1. Выберите справочник, данные которого необходимо закэшировать, в навигаторе объектов.

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

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

  4. Нажмите кнопку «Обновить кэш», чтобы отстроенный объект сохранился в базе данных. Учитывайте, что для справочников в базе данных сохраняются все элементы. Особенности работы с кэшем:

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

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

Настройки кросс-сессионного кэширования

Для использования кросс-сессионного кэша:

  1. Укажите значение global для строкового параметра CacheType в разделе InMem в файле settings.xml или в настройках системного реестра ОС Windows или ОС Linux.

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

  1. Настройте дополнительно:

Примечание. Если раздел Dimensions или целочисленный параметр Cache отсутствуют, то их необходимо создать вручную. Раздел Dimensions должен быть заполнен на всех клиентских компьютерах, если используется настольное приложение, или на BI-сервере, если используется веб-приложение.

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

Загрузка данных в глобальный кэш

Загрузка данных в глобальный кэш возможна с использованием различных вариантов:

Примечание. После задания или изменения настроек в файле settings.xml или в настройках системного реестра перезапустите настольное приложение или BI-сервер.

Выбор варианта загрузки данных в глобальный кэш зависит от решаемых задач и структуры источников данных.

Загрузка кэшированных данных в оперативную память

Загрузка кэшированного объекта в оперативную память происходит при первом обращении к этому объекту. Затем в зависимости от настроек данные объекта будут доступны только текущему пользователю при использовании сессионного режима или всем пользователям при использовании кросс-сессионного режима. Все дальнейшие обращения будут происходить к объекту в оперативной памяти, дополнительных запросов к СУБД не будет.

Полный кэш

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

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

Кэш по параметрам

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

Примечание. Для кубов и справочников с параметрами доступен только кэш по параметрам.

Сохранение данных при использовании глобального кэша

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

Так как глобальный кэш хранится отдельно от данных кубов и справочников, то и при изменении данных в исходных объектах, в кэш они не загружаются автоматически.

Для обновления данных в кэше нажмите кнопку «Обновить кэш» в свойствах объекта или заново «прогрейте» кэш, используя мастер «прогрева» кэша консоли управления глобальным кэшем. Учитывайте особенности сохранения данных для полного кэша и для кэша по параметрам в многопользовательском режиме:

Консоль управления глобальным кэшем

Для запуска консоли:

http://<IP-адрес или DNS-имя сервера>/fp10.x/app/cache.html#repo=<идентификатор репозитория>

Примечание. Для работы с консолью управления глобальным кэшем в репозитории должно быть установлено расширение «Кэш кубов».

Доступные настройки:

Создание кэша данных

Для создания кэша данных и выбора объекта кэширования нажмите кнопку «Настроить» в области мастера создания кэша на стартовой странице консоли.

После выполнения действия будет открыта вкладка «Модель кэша»:

Задайте настройки:

Выбор куба для кэширования

Создание и редактирование записей кэша

Удаление записи кэша

Мастер «прогрева» кэша

Для наполнения записи кэша данными нажмите кнопку «Настроить» в области мастера «прогрева» кэша на стартовой странице консоли.

После выполнения действия будет открыта вкладка «Прогрев кэша»:

Задайте настройки:

Выбор куба для прогрева кэша

Настройка метода прогрева кэша

Мониторинг

Для просмотра записей, загруженных в память BI-сервера, нажмите кнопку «Настроить» в области мастера мониторинга памяти на стартовой странице консоли.

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

Потребление памяти и производительность

Перед тем как принимать решение об использовании кэширования для данных ознакомтесь со значениями скорости работы и потреблением памяти. Представленные значения показателей зависят от аппаратного обеспечения, нагрузки на сервере СУБД и прочих условий.

Потребление памяти зависит от:

Усреднённые показатели потребления памяти и производительности справочников:

Количество элементов справочника, млн.

Количество и тип данных пользовательских атрибутов

Первое открытие без кэша, с.

Первое открытие с кэшем, с.

Второе открытие с «прогретым» кэшем, с.

Память, MБ

1

-

5,93

1,81

0

273,2

1

3 целых, 2 строковых

6,49

2

0

320,5

1

5 целых, 5 строковых

6,59

2,05

0

355,6

3

-

16,95

5,15

0

849

3

3 целых, 2 строковых

17,99

5,7

0

952,5

3

5 целых, 5 строковых

18,43

6,31

0

1055,2

Усреднённые показатели потребления памяти и производительности кубов с вещественным типом данных:

Количество записей, млн.

Количество измерений

Количество фактов

Первое открытие без кэша, с.

Первое открытие с кэшем, с.

Второе открытие с прогретым кэшем, с.

Память, ГБ

10

5

1

19.7

3.6

0

0.52

10

5

5

52.0

31.6

0

2.3

10

10

1

43.2

4.6

0

0.68

10

10

5

67.2

35.7

0.01

3.2

10

18

1

67

9

0.01

1.2

10

18

5

90.3

48.4

0.01

4.8

100

5

1

216.6

40.4

0.01

4.7

100

10

1

279.4

48.2

0.01

6.5

100

18

1

567.6

135.4

0.01

9.3

Также учитывайте влияние настроек и структуры кубов на количество требуемой оперативной памяти:

Если при загрузке кэша закончилась оперативная память:

Сценарии использования глобального кэша

Используйте глобальный кэш, если у вас реализован сценарий:

Принимая решение об использовании кэширования данных в продукте «Форсайт. Аналитическая платформа», учитывайте:

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

Логирование выполняемых действий

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

Создаются следующие таблицы:

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

По умолчанию доступ к таблицам будет у всех пользователей репозитория. При необходимости администратор должен настроить права доступа в соответствии с требованиями разрабатываемой системы.

Ограничения работы глобального кэша

Перед тем как принимать решение об использовании кэширования для данных ознакомтесь c ограничениями:

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

См. также:

Кэширование данных по технологии In-Memory