Оформление
Кеши и лимиты
Платформа кеширует то, что дорого пересчитывать: структуру таблиц, списки значений полей, готовые выборки виджетов и разбор файлов. Кеш всегда компромисс между свежестью и нагрузкой на источник, поэтому сроки жизни задаются настройками — их меняет администратор при развёртывании.
Эта страница объясняет, почему данные иногда отстают и что проверять, когда пользователь сообщает, что цифры не обновились. Вторая частая причина отставания — не кеш, а режим датасета: в извлечении виджеты читают снимок, собранный по расписанию, см. Материализация.
Коротко: сроки и что их сбрасывает
| Что кешируется | Срок | Что сбрасывает раньше срока |
|---|---|---|
| Готовая выборка виджета | 1 минута | Пересборка витрины у датасета в режиме извлечения |
| Структура таблиц источника | 5 минут | Завершение загрузки в витрину |
| Списки значений полей | 5 минут | — |
| Разбор файлов из объектного хранилища | 5 минут | — |
Описание сущностей OData ($metadata) | 10 минут | — |
Экрана для правки этих значений нет: их задаёт администратор при развёртывании. Ниже — подробности по каждому кешу и наблюдаемые эффекты.
Выборка виджета
Готовый ответ виджета сохраняется, чтобы дашборд с сотней пользователей не превратился в сотню одинаковых запросов к источнику.
| Что | Значение по умолчанию |
|---|---|
| Срок жизни | 1 минута |
| Максимальный размер ответа | 1 МБ — ответы крупнее не кешируются |
Ключ кеша строится по плану запроса. Правила видимости строк применяются до кеширования: в кеш попадает уже ограниченная выборка. У датасета в режиме извлечения в ключе участвует версия витрины, поэтому после перезаливки выдача обновляется сразу. Для прямого запроса срок жизни — это и есть предел отставания.
Структура таблиц источника
Состав таблиц и колонок платформа получает от драйвера и хранит 5 минут. Без этого каждый виджет заново спрашивал бы источник о структуре.
Для витрины извлечения кеш сбрасывается по отметке о завершении загрузки. Для живого источника 5 минут — предел отставания после ALTER TABLE: если в базе добавили колонку, в интерфейсе она появится не мгновенно.
Списки значений полей
Значения, которые подставляются в фильтры и правила видимости строк, кешируются на 5 минут.
Разбор файлов и S3
| Настройка | Значение по умолчанию |
|---|---|
| Файлов для определения схемы | 5 первых по шаблону |
| Строк для превью | 1 000 |
| Строк для определения типов колонок | 10 000 |
| Срок жизни разобранного набора | 5 минут |
| Наборов в памяти одновременно | 16 |
| Предел числа файлов по шаблону | 10 000 |
| Предельный размер файла | 256 МБ |
| Подключений к хранилищу в памяти | 8, закрываются через 10 минут простоя |
Предел размера касается только форматов, которые читаются целиком, — XLSX, документного JSON и ZIP. CSV, JSONL, Parquet и Avro платформа читает построчно, и на них ограничение не распространяется.
Не путайте с загрузкой файла в источник типа Файл: там свой предел — 50 МБ на файл, и он относится к самой загрузке, а не к чтению объектов из хранилища.
Отсюда два следствия: только что загруженный в бакет файл появляется не сразу, а колонка, которая есть лишь в шестом файле набора, в таблицу не попадёт. Подробнее — в разделе Файлы и S3.
Чтение OData
Источник типа OData (1С) платформа читает по HTTP, поэтому у него свои пределы.
| Настройка | Значение по умолчанию |
|---|---|
Записей в одной странице ($top) | 1 000 |
| Таймаут HTTP-запроса | 60 секунд |
Срок жизни разобранного $metadata | 10 минут |
Страница крупнее уменьшает число обращений к 1С, но каждый ответ готовится дольше; таймаут одинаков и для запроса метаданных, и для страницы данных. Из срока жизни $metadata следует, что новый реквизит, опубликованный в 1С, появится в платформе не сразу, а в течение десяти минут.
Лимит колонок сводной таблицы
В шапке сводной таблицы не больше 200 колонок нижнего уровня. Если разбивка даёт больше, шапка обрезается, и виджет помечает выдачу как усечённую. Это не ошибка данных: чтобы увидеть всё, уменьшите разбивку или замените поле на менее дробное.
Где менять значения
Все сроки и лимиты задаются при развёртывании — переменными окружения сервиса или настройками bi.object-storage.* и widget.* в конфигурации приложения. Экрана для их правки в интерфейсе нет.
Что дальше
- Материализация — как режим датасета влияет на свежесть данных.
- Синхронизация и ETL — пересборка витрины, которая сбрасывает кеш.