Например, если источников АП много - например 4, но переменная везде одна и та-же - измерение куба, то при установке переменной кнопкой (установка из обработки события, поочередно), что происходит с расчетом? При этом, есть 4 разных виджетов графиков, и только 1 из них активен. Происходит ли пересчет отборов кубов для каждого из них в момент установки переменной (вне зависимости от видимости, т.е. кеширование) или только установка переменной, а пересчет в момент “показа” виджета?
Идет запрос во все источники при установке переменной, вне зависимости от видимости виджетов.
Это можно проверить в DEV-Tools’aх браузера.
На рисунке обработчик события нажатия на выпадающий список, видим что выбранное значение будет прокинуто в 4 источника
В момент выбора значения уходит 4 запроса на сервер.
Дополнительно
Если открыть аналитическую панель первый раз, то уйдет столько запросов, сколько виджетов на АП. То есть каждый виджет запросит для себя данные.
Важно, что один источник может быть у нескольких виджетов, в таком случае запрос уйдет только один и это эффективный подход. Например, настроен источник с 3 мерами. Первые 2 меры можно использовать для отрисовки серий в столбчатой диаграмме, а третью меру для круговой.
Немного про кэш
В том, что уходит много запросов нет ничего страшного из за кэша агрегатов олап-сервера. Когда за расчетом обращаются впервые, то олап-сервер запрашивает данные в БД, рассчитывает и помещает к себе в кэш в оперативную память.
При последующем запросt этого же агрегата любым другим пользователем олап-сервер в БД уже не пойдет, а достанет результат сразу из кэша. Первый запуск принято называть “холодным”, когда идет запрос в БД, а последующие уже “горячие”, так как кэш “прогрет”
То есть при установке переменной происходит пересчет отборов кубов, но если такой пересчет уже был, то просто сразу отдается нужный результат из кэша.
Т.е. на активном виджете в момент подачи запроса появится картинка ожидания, и окончиться с моментом получения последних данных по источнику с ним связанному, и началом отрисовки. Все это происходит на уровне кластера Alfa BI, а пользователь видит только картинку - вершину айсберга? Но если сервер сильно загружен или запрос из очень большого куба (таблицы источника), какой смысл в кешировании или подготовки данных сервером, если например переключения на остальные виджеты так и не происходит? Можно ли явно указать приоритет, или возможно система сама его расставляет, между такими запросами в зависимости от того видим или нет виджет, ведь логично было бы ставить эти запросы в очередь событий, и отрабатывать события для 3 запросов после того как данные по видимому виджету(там) получены и показаны? Более того, если пользователь активно занимается анализом, велика вероятность того, что при такой организации, события (отправленные запросы) в очереди придется сбросить.