Кеширование
Кеш хранит в себе часто запрашиваемые данные и обеспечивает к ним быстрый доступ.
Примечание
Кеш DataLens не сохраняет исходные данные из источника, а только временно хранит результаты отдельных запросов. Для хранения аналитических витрин данных вы можете использовать, например, Yandex Managed Service for ClickHouse®.
DataLens кеширует результаты запроса пользователя, поэтому при изменении данных в источнике дашборды и чарты могут обновляться не сразу. Максимальный объем данных в кеше — 512 МБ для каждого запроса.
Время жизни кеша по умолчанию — 300 секунд (5 минут). Пользователь может изменить время жизни кеша в настройках подключения до 86 400 секунд (1 сутки).
Особенности использования кеша в DataLens
DataLens не выполняет запросы к данным в кеше. Из кеша возвращается только целиком результат запроса, который не используется при агрегации и в подзапросах. Результаты запросов, которые отличаются друг от друга, кешируются отдельно.
Если в запросе используется функция времени NOW()
, то полученное из кеша значение этой функции может отличаться от реального на величину, не превышающую время жизни кеша.
При использовании RLS к запросу добавляется дополнительная фильтрация. Для каждого правила в RLS будет сгенерирован свой запрос, результаты которого кешируются отдельно. Одинаковые запросы для пользователей с одинаковыми правилами RLS используют один кеш.
DataLens кеширует результаты запросов, которые сформированы с помощью селекторов. Для уменьшения обращений к БД используйте в селекторах значения по умолчанию.
Кеширование в публичных объектах
Для публичных чартов и дашбордов действует дополнительное кеширование, поэтому для них время жизни кеша составляет не менее 5 минут.
Условия сброса кеша
Кеш будет сброшен в следующих случаях:
- Истечение времени жизни кеша.
- Изменения любых параметров подключения, кроме названия.
- Обновление полей в датасете.
- Изменение SQL-запроса в источнике датасета.
Вопросы и ответы
Можно ли в инспекторе чартов отследить, что запрос пошел в кеш?
На данный момент такой возможности нет. Но если в запросе использовать функции определения времени (например, NOW()
), можно увидеть разницу между текущим реальным временем и текущим временем, которое сохранено в кеше. По разнице можно понять, насколько актуальные данные в кеше.
Есть ли ограничение объема кеша для запроса или пользователя?
Для каждого запроса объем данных в кеше ограничен только объемом хранилища кеша — 512 МБ.
Ограничения объема кеша на пользователя или экземпляр DataLens нет.
Работает ли кеш в настройках выбора цвета в чарте?
Если в секцию Цвета добавить поле, которое уже участвует в построении чарта, то будет использован кеш.
Если в секцию Цвета добавить новое поле, будет выполнен новый запрос к данным в источнике.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc