При работе с «Форсайт. Аналитическая платформа» для ускорения доступа к данным реализовано кэширование объектов репозитория и кэширование данных:
| Кэширование объектов | Кэширование данных | |
| Справочники | ||
| табличные справочники | • |
• |
| вычисляемые справочники | • |
• |
| табличные справочники НСИ | • |
• |
| календарные справочники | — |
• |
| составные табличные справочники НСИ | — |
• |
| Базы данных временных рядов | • |
• |
| Объекты среды разработки | • |
— |
| Регламентные отчеты | • |
— |
| Кубы (всех типов, кроме вычисляемого) | — |
• |
| Карты | • |
— |
Для кэширования источников данных в «Форсайт. Аналитическая платформа» применяется механизм in-memory, позволяющий избежать необходимости каждый раз отправлять запрос на выборку данных из СУБД. При использовании механизма in-memory в оперативную память загружается специальная структура, хранящая данные из источника. В последующем, вся обработка данных (построение среза данных, фильтрация, сортировка и тому подобное) выполняется с данной структурой непосредственно в оперативной памяти, без обращения к источнику данных. Таким образом, сокращается время реакции «Форсайт. Аналитическая платформа» при работе с данными и повышается интерактивность работы пользователя.
При кэшировании элементов справочников и базы данных временных рядов на компьютере пользователя создаются временные копии объекта, содержащие наименования элементов и ссылки на используемые объекты.
Примечание. Кэш элементов справочников и базы данных временных рядов хранится и используется в рамках одного соединения с репозиторием.
Кэширование справочников и базы данных временных рядов работает интеллектуально и доступно для разных пользователей, если они имеют одинаковые права доступа и значения параметров. То есть одновременно может быть закэшировано несколько экземпляров одного и того же объекта (например, для разных значений параметра).
При кэшировании объектов среды разработки используется файловый кэш, создаваемый в папке, которая задана операционной системой (более подробно смотрите в статье базы знаний «Кэширование сборок при компиляции форм и модулей»). Также при кэшировании объектов среды разработки учитывается флажок «Кэширование сборок только на локальном диске», указываемый в параметрах репозитория.
При кэшировании регламентных отчетов создаются экземпляры объекта, открытого с определенными значениями параметров. При открытии объекта с какими-либо параметрами осуществляется проверка наличия в кэше записи, соответствующей данным параметрам. Если запись будет найдена, то будет извлечена и открыта кэшированная версия объекта. Если запись для указанных параметров отсутствует, то будет открыта последняя версия объекта из репозитория. При этом также будут открыты все объекты, от которых он зависит. Кэш экземпляра регламентного отчета хранится в базе репозитория. Управление кэшированием для отчета производится с помощью окна «Кэш объекта».
Для ускорения отрисовки карты в отчетах используется кэширование карт. При открытии отчета происходит проверка кэша на наличие в нем карты. Если карта в кэше найдена, в отчете будет отображена карта из кэша. Если карты в кэше нет, будет открыта карта из репозитория и обновлен кэш. Кэш с картами является общим кэшем для всех открытых репозиториев. При закрытии всех репозиториев кэш карт очищается.
При выборе огромных значков представления объектов в навигаторе объектов происходит кэширование изображений для предварительного просмотра. Кэширование изображений используется только для отчетов, созданных с помощью инструментов «Аналитические панели», «Аналитические запросы (OLAP)», «Отчёты» и «Анализ временных рядов».
В «Форсайт. Аналитическая платформа» в основе кэширования данных кубов и баз данных временных рядов лежит механизм хранения данных в файловом кэше. Файлы, содержащие те данные, с которыми в текущий момент осуществляется работа, проецируются в память компьютера и используются инструментами продукта «Форсайт. Аналитическая платформа». При недостатке памяти организуется постраничная загрузка/выгрузка данных. Кэш организует инкрементальную обработку данных, при которой изменение отдельных ячеек приводит к перерасчёту только связанных с ними данных, а не всего куба. В настольном приложении управление кэшем отдельных объектов осуществляется на вкладке «Кэш» окна «Свойства объекта». BI-сервер будет применять кэширование данных для объектов, у которых кэш был включен в настольном приложении. По умолчанию кэш создаётся в следующих папках:
Windows. «С:\Program Files\Foresight\Foresight Analytics Platform 9\inmem_data\».
Linux. «/var/tmp/inmem_data».
Изменение настроек работы самого механизма кэширования осуществляется в файле Settings.xml или реестре. Настройки задаются на клиентских компьютерах, если используется настольное приложение, или на BI-сервере.
Кэш какого-либо объекта доступен для обновления по расписанию.
Примечание. Работа с кэшем доступна только в рамках одного запущенного экземпляра платформы.
В текущей реализации имеются следующие ограничения при работе кэширования данных:
Кэш не используется, если работа с базой данных временных рядов осуществляется в инструменте «Аналитические запросы (OLAP)» и включен вариант отображения «Атрибуты».
Кэш, созданный для баз данных временных рядов, не будет применяться при работе в инструменте «Анализ временных рядов».
Для совместимости с предыдущими версиями Prognoz Platform также существует возможность включения старого механизма кэширования в «Форсайт. Аналитическая платформа». Для этого в реестре или файле Settings.xml задайте параметру UseInMem значение false. При работе старого механизма кэширования в базе репозитория в двоичном виде создается и сохраняется матрица данных. Этот кэш является общим для всех пользователей и может быть сброшен любым пользователем. Управление кэшем отдельных объектов также осуществляется на вкладке «Кэш» окна «Свойства объекта». Кэш стандартного куба доступен для обновления по расписанию.
Примечание. Для того, чтобы запросить обновленные данные объектов, может потребоваться принудительная очистка кэша.
Особенности старого кэша:
кэш хранится отдельным объектом репозитория, невидимым для пользователя;
кэш является дочерним элементом источника, поэтому при удалении источника удаляется его кэш-объект;
для одного источника может быть создан только один кэш;
при изменении данных в источнике необходимо вручную обновлять кэш. Для кубов доступно обновление кэша по расписанию с помощью планировщика задач;
двоичные данные, хранящиеся в таблицах, кэширутются на локальном диске, также как и объекты среды разработки. Папка для хранения файлов с двоичными данными располагается в профиле пользователя рядом с той папкой, которая определена для кэша объектов среды разработки. При необходимости папку можно изменить, более подробно читайте ниже в подразделе «Управление настройками».
При работе старого механизма кэширования в «Форсайт. Аналитическая платформа» используется ветка реестра [HKEY_CURRENT_USER\Software\Foresight\Foresight Analytics Platform\9.0\9.0]. В данной ветке могут быть созданы следующие дополнительные разделы или ключи:
Дополнительный раздел |
Параметры |
| - |
|
| Orcl8 |
|
| Dimensions |
|
| CacheKeeper |
|
Примечание. При установке BI-сервера или сервера безопасности на веб-сервер IIS по умолчанию пул приложения будет запускаться под учетной записью Network Service; при установке на веб-сервер Apache - сам веб-сервер Apache по умолчанию работает под учетной записью Local System. Чтобы при работе веб-приложения использовались указанные в таблице флаги, записи в реестр должны быть добавлены из-под соответствующей учетной записи. Для этого можно воспользоваться приложением PsExec, которое входит в пакет системных программ Windows Sysinternals. Для запуска выполните команду «psexec -i -u "nt authority\network service" cmd.exe», при этом будет запущена командная строка Windows под указанной учетной записью. Далее в командной строке запустите редактор реестра с помощью команды «regedit» и создайте необходимые флаги.
При работе BI-сервера «Форсайт. Аналитическая платформа» извлечение и хранение данных, необходимых для работы веб-приложения, осуществляется в памяти самого BI-сервера. Также систему можно расширить путем введения дополнительных (более производительных) BI-серверов, на которые будет возложена функция извлечения и кэширования данных из базы репозитория. BI-сервер с веб-приложением будет обращаться к этим BI-серверам и получать поток с необходимыми данными без дополнительного обращения к СУБД.
Для использования такой схемы необходимо в реестре или файле settings.xml заполнить раздел Service. В данном разделе указываются адреса удаленных BI-серверов и настройки репозиториев, для которых будет работать указанная схема кэширования данных.
Примечание. Указанный режим работы кэширования актуален только для тех объектов, для которых включено кэширование в репозитории.
Очистка кэша позволяет избежать использования потенциально устаревших данных.
Примечание. Очистка кэша доступна только в настольном приложении.
Для очистки кэша справочников и базы данных временных рядов выполните команду «Очистить кэш» меню «Сервис» в навигаторе объектов.
Для очистки кэша объектов среды разработки выполните команду менеджера безопасности «Репозиторий > Очистить кэш сборок».
Для очистки кэша регламентного отчета нажмите кнопку «Очистить» в окне «Кэш объекта».
Для очистки кэша данных различных объектов нажмите на кнопку «Очистить кэш» вкладки «Кэш» окна «Свойства объекта».
Для очистки кэша репозитория выполните команду «Очистить кэш» в главном меню «Сервис» навигатора объектов.
См. также: