M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Почему вычисляемые столбцы в Power BI портят производительность отчётов и раздувают память модели

By ·

Узнайте, почему чрезмерное использование вычисляемых столбцов в Power BI раздувает память модели и портит производительность отчётов. Разберитесь, как оптимизировать архитектуру модели данных.

Automatically translated with AI from the original post. Read the English original

Cover: Power BI Calculated Columns vs Measures - Simply Explained

Неправильное использование вычисляемых столбцов в Power BI может незаметно раздувать память модели данных и замедлять отрисовку отчётов. В отличие от динамических мер, вычисляемые столбцы вычисляют и сохраняют каждую строку при обновлении данных, потребляя ценную оперативную память и увеличивая нагрузку на обработку в архитектуре вашей рабочей области.

Главное

Скрытая стоимость памяти при построчной оценке

При создании нового отчёта в Power BI легко войти в привычку использовать вычисляемые столбцы для каждого нового показателя, который нужно отобразить. Нужна ли маржа прибыли, объединённое полное имя или категория для продаж, создание столбца в таблице кажется интуитивным. В конце концов, результаты сразу видны в представлении данных, точно как в таблице Excel.

Однако Power BI — это аналитический движок, а не электронная таблица. Каждый раз, когда вы создаёте вычисляемый столбец, вы указываете движку базы данных VertiPaq вычислить это значение для каждой строки таблицы в процессе обновления данных. Если в вашей таблице продаж пять миллионов строк, новый вычисляемый столбец добавит пять миллионов отдельных записей в семантическую модель.

Хуже того, вычисляемые столбцы мешают алгоритмам сжатия движка. VertiPaq полагается на столбцы с низкой кардинальностью, то есть с повторяющимися значениями, чтобы эффективно сжимать данные. Уникальный вычисляемый столбец часто разрушает эту эффективность сжатия, умножая объём оперативной памяти, необходимой для хранения модели в памяти. По мере роста модели это раздувание памяти может быстро превысить лимиты ёмкости вашей рабочей области в облаке Microsoft.

Как статический контекст ограничивает гибкость отчётности

Помимо потребления памяти, вычисляемые столбцы вносят существенные функциональные ограничения из-за того, как они работают с контекстом вычисления. Вычисляемый столбец работает строго в контексте строки. Он оценивает значения текущей строки независимо от действий пользователя, срезов или перекрёстной фильтрации, выполненной на холсте отчёта.

Если вы создаёте вычисляемый столбец, который помечает клиентов с высокой стоимостью по статичному порогу, эта классификация записывается в уровень хранения. Если пользователь позже изменит срез, чтобы просмотреть данные по региону, или изменит диапазон дат, вычисляемый столбец останется безразличным к этим фильтрам. Он не может динамически адаптироваться к изменяющимся состояниям агрегации, потому что его значение уже было вычислено и сохранено несколько часов назад при последнем обновлении.

Такая жёсткость резко контрастирует с мерами, которые вычисляют результаты на лету, полностью опираясь на контекст фильтров, который пользователь применил в данный момент. Когда пользователь взаимодействует с визуализацией, мера пересчитывается и выдаёт точные, учитывающие контекст данные, тогда как вычисляемый столбец лишь воспроизводит статичные данные, хранящиеся в RAM.

Проектирование более лёгких моделей для Microsoft Fabric и Azure

Корпоративная облачная отчётность требует высокой эффективности, особенно при масштабировании на Microsoft Fabric, Azure и сложные информационные массивы Microsoft 365. Громоздкие семантические модели расходуют инфраструктурные ресурсы, замедляют время отклика запросов и раздражают бизнес-пользователей, которые ждут загрузки дашбордов.

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

Для всех остальных аналитических вычислений, таких как итоги, средние значения, соотношения и условные агрегации, переносите логику в меры. Меры не занимают место в хранилище, поскольку не сохраняют значения в модели. Вместо этого они находятся в памяти только в виде кода и выполняются лишь тогда, когда визуализация запрашивает данные. Такой подход экономит RAM, максимизирует сжатие и помогает вашей облачной инфраструктуре работать без сбоев.

Заключение

Понимание фундаментальных различий между хранением на уровне строк и динамическим выполнением запросов необходимо всем, кто создаёт масштабируемые аналитические решения. Минимизируя ненужные вычисляемые столбцы и опираясь на возможности динамических мер, вы можете существенно повысить скорость отчётов и снизить потребление памяти.

Чтобы глубже разобраться в теме и услышать полное объяснение без профессионального жаргона о том, как движок обрабатывает ваши формулы, послушайте полный выпуск. Будьте на шаг впереди в стратегии облачной аналитики, слушая M365 FM Podcast, где мы регулярно делимся экспертными знаниями.

Часто задаваемые вопросы

Почему вычисляемые столбцы так сильно расходуют память в Power BI?

Вычисляемые столбцы обрабатывают каждую строку при обновлении данных и постоянно хранят эти значения в RAM модели. Это мешает движку VertiPaq эффективно сжимать данные, что быстро приводит к раздуванию модели.

Занимают ли меры место в хранилище семантической модели Power BI?

Нет, меры не занимают место в хранилище. Они хранятся просто как определения формул в метаданных и вычисляются динамически только тогда, когда визуализация или взаимодействие пользователя запрашивает расчёт.

Когда действительно уместно использовать вычисляемый столбец?

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

Как вычисляемые столбцы влияют на производительность отрисовки отчётов?

Избыточное количество вычисляемых столбцов увеличивает общий размер семантической модели и ухудшает сжатие данных. Большим моделям требуется больше памяти и вычислительной мощности, что в итоге замедляет выполнение запросов и время загрузки отчётов во всём рабочем пространстве.

Power BI Fabric workspace Microsoft Excel Microsoft Fabric Semantic model

Related articles

RSS