[Документация Yandex Cloud](../../index.md) > [Yandex DataLens](../index.md) > Подключения > Кеширование

# Кеширование

_Кеш_ хранит в себе часто запрашиваемые данные и обеспечивает к ним быстрый доступ.

{% note info %}

Кеш DataLens не сохраняет исходные данные из источника, а только временно хранит результаты отдельных запросов. Для хранения аналитических [витрин данных](../../glossary/datamart.md) вы можете использовать, например, [Yandex Managed Service for ClickHouse®](../../managed-clickhouse/index.md).

{% endnote %}

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

Время жизни кеша для подключения по умолчанию — 300 секунд (5 минут). Пользователь может изменить время жизни кеша в настройках подключения до 86 400 секунд (1 сутки). Настройка доступна для подключений, перечисленных в блоке `Базы данных` раздела [Подключение к источнику данных в Yandex DataLens](connection/index.md), кроме подключения Snowflake. По ссылкам на странице вы можете посмотреть, как изменить настройку для каждого конкретного подключения.

## Особенности использования кеша в DataLens {#using}

DataLens не выполняет запросы к данным в кеше. Из кеша возвращается только целиком результат запроса, который не используется при агрегации и в подзапросах. Результаты запросов, которые отличаются друг от друга, кешируются отдельно.

Если в запросе используется функция времени [`NOW()`](../function-ref/NOW.md), то полученное из кеша значение этой функции может отличаться от реального на величину, не превышающую время жизни кеша.

При использовании [RLS](../security/row-level-security.md) к запросу добавляется дополнительная фильтрация. Для каждого правила в RLS будет сгенерирован свой запрос, результаты которого кешируются отдельно. Одинаковые запросы для пользователей с одинаковыми правилами RLS используют один кеш.

DataLens кеширует результаты запросов, которые сформированы с помощью [селекторов](../dashboard/selector.md). Для уменьшения обращений к БД используйте в селекторах значения по умолчанию.



## Кеширование в публичных объектах {#caching-in-public}

Для [публичных](datalens-public.md) чартов и дашбордов действует дополнительное кеширование, поэтому для них время жизни кеша составляет не менее 5 минут.


## Условия сброса кеша {#reset-cache}

Кеш будет сброшен в следующих случаях:

* Истечение времени жизни кеша.
* Изменения любых параметров подключения, кроме названия.
* Обновление полей в датасете.
* Изменение SQL-запроса в источнике датасета.

## Вопросы и ответы {#qa}

{% cut "Можно ли в инспекторе чартов отследить, что запрос пошел в кеш?" %}

На данный момент такой возможности нет. Но если в запросе использовать функции определения времени (например, `NOW()`), можно увидеть разницу между текущим реальным временем и текущим временем, которое сохранено в кеше. По разнице можно понять, насколько актуальные данные в кеше.

{% endcut %}

{% cut "Есть ли ограничение объема кеша для запроса или пользователя?" %}

Для каждого запроса объем данных в кеше ограничен только объемом хранилища кеша — 512 МБ.
Ограничения объема кеша на пользователя или экземпляр DataLens нет.

{% endcut %}

{% cut "Работает ли кеш в настройках выбора цвета в чарте?" %}

Если в секцию **Цвета** добавить поле, которое уже участвует в построении чарта, то будет использован кеш.
Если в секцию **Цвета** добавить новое поле, будет выполнен новый запрос к данным в источнике.

{% endcut %}

_ClickHouse® является зарегистрированным товарным знаком [ClickHouse, Inc](https://clickhouse.com)._