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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Доступность настройки кеширования данных кубов и справочников в зависимости от режима кеширования в веб-приложении в ОС 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