Источник не рассчитан на аналитику. DataLens подключен напрямую к рабочей базе учетной системы или CRM. Аналитические запросы с группировками по большим таблицам нагружают ее и выполняются медленно. На стороне DataLens время выполнения запроса в источнике ограничено 80 секундами, и если запрос не укладывается, чарт выдаст ошибку вместо данных. Решение — отдельное
аналитическое хранилище с данными, которые обновляются по расписанию.
Нет предагрегации. Чарт каждый раз считает итоги по детальным данным, например по каждой продаже за три года, хотя на дашборде нужны суммы по дням или месяцам. Документация DataLens рекомендует по возможности рассчитывать данные заранее на стороне базы и хранить таблицы разной детализации, например дневную и месячную.
Тяжелый датасет. На скорость влияют
• объединения таблиц (JOIN) внутри датасета, каждое из которых добавляет в запрос подзапрос к полному набору полей таблицы;
• сложные формулы в вычисляемых полях, например многоуровневые агрегации, которые утяжеляют SQL-запрос;
• поля, которые не используются ни в одном чарте.
Связи между таблицами лучше собирать заранее в хранилище и отдавать в DataLens готовую витрину. Вычисляемые поля предпочтительнее создавать на уровне датасета, а не отдельного чарта.
Фильтры по вычисляемой дате. Если дата для фильтра каждый раз вычисляется из поля «дата и время», база не может эффективно использовать сортировку или индекс по этому полю и читает больше данных. Отдельное поле с датой лучше подготовить в источнике. Документация DataLens также советует сортировать таблицы по часто используемым измерениям, обычно это даты.
Дашборд загружает все сразу. В настройках дашборда, в блоке «Прочие настройки», есть три параметра загрузки виджетов
• «Загружать только видимые чарты» — остальные чарты подгружаются по мере прокрутки;
• «Количество одновременно загружаемых виджетов» — помогает, если источник плохо переносит параллельную нагрузку;
• «Приоритет загрузки» — например, сначала чарты на экране, а потом селекторы.
Еще одна частая ошибка — селекторы без значений по умолчанию. Тогда чарты запрашивают все данные, например всю историю вместо текущего месяца. DataLens кеширует результаты запросов с селекторами, поэтому значения по умолчанию еще и сокращают число обращений к базе.
Кеш настроен по умолчанию. DataLens хранит результаты запросов в кеше 5 минут. Для подключений к базам данных время жизни кеша можно увеличить в настройках подключения, максимум до суток. Если данные обновляются раз в день, кеш на несколько часов заметно снизит нагрузку на источник.