Первое, что нужно изучить в DAX — разница между вычисляемыми столбцами и мерами. В этой статье мы кратко описали эти 2 разных способа расчета значений и когда лучше использовать каждый из них.
Вычисляемые столбцы в Power BI
При создании модели данных в Power Pivot для Excel, Analysis Services Tabular или Power BI Desktop, вы можете расширить вашу таблицу, создав новые столбцы.
Для начала выберите таблицу и нажмите на кнопку "Создать столбец":
Далее, задайте имя столбца и введите формулу DAX. Вычисляемый столбец ничем не отличается от любого другого столбца в таблице, и его можно использовать в любой части отчета. Вы также можете использовать вычисляемый столбец для определения связей с другими таблицами, если это необходимо.
Вычисляемые столбцы создаются на основе данных, которые уже были загружены в вашу модель данных. Когда вы пишете формулу вычисляемого столбца, она автоматически применяется ко всей таблице и оценивается отдельно для каждой строки.
Значения в вычисляемых столбцах оцениваются при первом их определении и при обновлении набора данных. После оценки значения сохраняются в вашей модели данных. Это означает увеличение размера вашей модели данных и потребление большего объема оперативной памяти. Чем больше у вас вычисляемых столбцов, тем больше будет ваша модель. Это может показаться странным, если вы привыкли к столбцам, вычисляемым SQL или Excel, а не сохраняемым, которые вычисляются во время запроса и не используют память.
Анонсы всех видео, статей и полезностей - в нашем Telegram🔥
Присоединяйтесь, обсуждайте и автоматизируйте!
Экономия ресурсов полезна при проведении сложных расчетов. Например, ABC анализа. Время, необходимое для их вычисления, всегда равно времени обработки, а не времени запроса, что повышает удобство работы пользователей. Тем не менее, вы всегда должны помнить, что вычисляемый столбец использует драгоценную оперативную память. Если, у вас есть сложная формула для вычисляемого столбца, может возникнуть соблазн разделить этапы вычисления в разных промежуточных столбцах.
Когда вы пишете вычисляемый столбец, вам нужно полагаться только на контекст строки. Контекст строки — это просто понятие текущей строки таблицы. Он указывает, для какой строки мы вычисляем значения, чтобы DAX мог просматривать другие значения в той же строке. В вычисляемом столбце подразумевается контекст строки. Когда вы записываете выражение в вычисляемый столбец, выражение оценивается для каждой строки таблицы. Вычисляемый столбец "видит" только текущую строку.
Меры в Power BI
Существует еще один способ определения вычислений в модели DAX. С его помощью вы можете агрегировать значения из многих строк в таблице. Эти расчеты являются мерами и имеют иконку в виде калькулятора.
Имя "меры" используется в пользовательском интерфейсе, за исключением Excel 2013, в котором используется термин «вычисляемое поле» вместо «меры». Excel 2016 вернулся к термину «меры», используемому в DAX и первоначально использовавшемуся также в Power Pivot для Excel 2010.
Меры неявно не имеют контекста строки. Это связано с тем, что по умолчанию они работают на агрегированном уровне. Таким образом, вы не можете просто ссылаться на столбцы в показателе DAX. Вы получите сообщение об ошибке, поскольку не существует контекста строки.
Ошибка связана с тем, что мера не будет знать, какую строку выбрать в столбце. Чтобы сослаться на столбец в показателе, вы должны поместить столбец в функцию агрегирования. Поскольку мы агрегируем значения, не имеет значения, какую строку мы используем, нам не нужен контекст строки, поскольку мы просто агрегируем все значения в одном столбце, чтобы вернуть одно значение. В качестве альтернативы мы можем создать контекст строки в показателе с помощью функции итератора.
Каковы основные моменты мер DAX?
- Рассчитывается с использованием всех фильтров: Контекстная фильтрация.
- Не сохраняется и не рассчитывается заранее.
- Когда вы помещаете его на страницу отчета и изменяете срез, фильтр или касаетесь гистограммы или любого другого визуального элемента, чтобы выделить его, и это влияет на значение этого показателя, оно вычисляется на ходу.
- Расчет использует ЦП.
Разница вычисляемого столбца и меры в Power BI
Столбцы оцениваются в каждой строке, а меры проверяются только на том уровне детализации, на котором они показаны. Это основное различие между вычисляемыми столбцами и мерами. Меры пересчитываются при каждом визуальном контакте, тогда как столбцы пересчитываются при каждом обновлении данных. В отличие от мер, значения столбца не реагируют на выбор фильтра или параметры.
Параметр сравнения | Мера | Вычисляемый столбец |
Хранение | Результат вычисления не хранится в памяти модели, а вычисляется "на лету", в зависимости от контекстов. | Результат вычисления хранится в метаданных модели и пересчитывается только при обновлении источника данных. |
Использование ресурсов | Процессор (CPU). | Оперативная память. |
Способ вычисления | Только с использованием агрегирующих функций при обращении к столбцу. | Построчно для каждой строки таблицы хранения. |
Визуализация результата | Можно увидеть только при добавлении в визуальный элемент на странице отчета. | Можно увидеть сразу в таблице хранения на вкладке "Данные" |
Заключение
Давайте подытожим: меры представляют собой агрегаты, вычисляемые при каждом визуальном взаимодействии, столбцы же — выражения на уровне строк, которые оцениваются во время загрузки и обновления данных.
Чтобы выбрать между столбцом и мерой, нужно понимать суть нашего вычисления. Желательно создавать меры для коэффициентов и агрегаций (суммы, процента, итд), а также для выражений, которые реагируют на контекст указанного фильтра. Столбцы больше подходят для статических и строковых выражений, атрибутов и категорий.
Комментарии