Всем доброго времени суток! Помогите со следующей задачей: Необходимо вывести в визуализацию

(столбчатая диаграмма) максимальное количество открытых сеансов приложений в одну минуту при выбранном разрезе год/месяц/день/час/минута.

Вводные:
Есть таблица на SQL, в которую записывается информация о сеансах пользователей 1С в компании. В ней около 15 столбцов с информацией о приложении, сервере или пользователе (они будут использоваться как фильтры в отчете, в расчетах не участвуют). Главные столбцы, которые я использую в своей задаче это идентификатор сеанса, дата-время начала и окончания. На текущий момент в этой таблице несколько сотен тысяч строк за 3 месяца.

Проблемы с которыми я столкнулась:
1) Не меняя формата исходной таблицы загрузила её в модель. Создала вычисляемый календарь со временем (точность до минуты) - без него корректно не работала ось в графике. календарь НЕ связывала с данными. Этот календарь использовала в оси и в фильтре.
Сделала меру, чтобы просто посчитать кол-во сеансов.
CALCULATE(
DISTINCTCOUNT('Сеансы'[id]),
FILTER('Сеансы', [Время начала] <= MAX('_Календарь + время'[ДатаВремя]) && [Время окончания] >= MIN('_Календарь + время'[ДатаВремя]) )
)
Далее создала меру для расчета максимального кол-ва сеансов в минуту в выбранном периоде (год/месяц/день/час/минута):
VAR ByMinutes =
SUMMARIZE(
'_Календарь + время',
[ДатаВремя],
"Sessions",
[Кол-во сеансов])
VAR Test_Maxx =
MAXX(
ByMinutes,
[Sessions])
RETURN
Test_Maxx
Дело в том, что эти меры считают правильно и сохраняют возможность фильтрации данных, но отрабатывают крайне долго.
Возможно ли оптимизировать эти меры?

2) Пробовала пойти другим путем и через PQ развернуть время работы поминутно в строки и связать это с календарем - в первый раз развернулось в 523 млн записей (до самой меры так и не дошла), а во все следующие - запрос даже не прогрузился из-за нехватки памяти((

В общем, буду рада любым идеям по оптимизации этой задачки☀️

4 ответов

21 просмотр

1. Сумма сеансов = VAR _min = MIN( '_Календарь + время'[ДатаВремя] ) VAR _max = MAX('_Календарь + время'[ДатаВремя] ) RETURN CALCULATE( SUMX( VALUES( 'Сеансы (по минутам)'[id] ); 1 ); 'Сеансы'[Время начала] <= _max && 'Сеансы'[Время окончания] >= _min ) 2. Сеансов в минуту v2 = MAXX( VALUES( '_Календарь + время'[ДатаВремя] ); [Сумма сеансов] )

1 шаг, простой. Никогда не используйте в summarize конструкцию, которая вычисляет поля. используйте связку adddcolums + summarize. 2 шаг Иногда связка sumx( distinct() , 1) работает быстрее distintcount (зависит от данных). Попробуйте замерить в dax studio. 3 шаг, сложный Таблицы Дата + время убийцы производительности. Читайте про cardinality В вашем случае стоит сделать 2 таблицы. Обычную календарь + таблицу времени. В таблице фактов так же разбить на 2 столбца, дата отдельно и время. Сделать связи (физическая связь самое быстрое, что есть в PBI) После этого должно наступить счастье и радость.

Sonya-Lebedeva Автор вопроса

Сразу скажу, это без наезда) Я просто не поняла, как они тут будут работать в связке

Sonya Lebedeva
Сразу скажу, это без наезда) Я просто не поняла, к...

https://radacad.com/how-to-use-time-and-date-dimensions-in-a-power-bi-model Почитайте все же про разделение столбцов. Связи можете не делать, никто не заставляет.

Похожие вопросы

Обсуждают сегодня

Добрый день! Вопрос, понимаю, не очень принципиальный и можно его обойти, но просто любопытно, откуда в срезе берётся "Пусто"? Если в срез перетягиваю Месяц из Sales, то всё х...
Anastasiya
28
Добрый день! Помогите, пожалуйста, может быть кто сталкивался. У заказчика есть интересное требование. Есть данные по проектам и дисциплинам по этим проектам (каждый проект ...
Leonid Solovev
20
Добрый вечер. Поручили выбрать сервис для нового дашборда компании. Пока выбор упал на power bi. Можете что нибудь рассказать об опыте использования? Подводных камнях, способо...
Илья
33
добрый день всем! Пожалуйста, помогите решить данную проблему: дашборд не мой, при обновлении датасета с браузера - выдает ошибку - {"error":{"code":"DM_GWPipeline_Gateway_Mas...
Feniks Sushhaya
15
Здравствуйте! Подскажите, можно ли в DAX вычесть НДС прямо в формуле SAMX, или нужна обязательно таблица с процентами НДС? "НДС нужно исключить. Считайте НДС равным 1.2 (20%)....
Владимир
26
Добрый день, Коллеги. Подскажите пожалуйста в чем причина ? При выборе поля Размер, гистограмма по Размерам формируется , а по Складам -нет. Названия Складов все заполнены ...
Julia Po
33
Всем привет) Я уже задавала этот вопрос на прошлой неделе, но возможно, в пятницу было очень непонятно сформулировано. Постаралась сейчас максимально понятно все описать Необ...
Катя Каткова
4
День добрый. Есть такой вопрос. Имеем матрих таблицу, есть по каждому человеку группы вопросов, он отвечал на них и имеет баллы. Т. Е. В группе есть несколько вопросов. Нужно ...
Oleg Savinkov
21
Коллеги! По одиночке в стреде PBI Desktop все запросы к Analytic srv и SQL SRV отрабатываются долго (много данных), но выполняются. Но при обовлении всей модели выдает ошибк...
Антон Москвин
23
Видимо это имели в виду?
Ekaterina Lelekova
25
Карта сайта