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 покладається на стовпці з низькою кардинальністю, тобто ті, що містять повторювані значення, щоб ефективно стискати дані. Унікальний обчислюваний стовпець часто повністю знецінює цю ефективність стиснення і multiplies обсяг оперативної пам'яті, потрібної для утримання моделі в пам'яті. Зі зростанням моделі це роздування пам'яті може швидко перевищити ліміти ємності вашого робочого простору в хмарі Microsoft.

Як статичний контекст обмежує гнучкість звітності

Окрім споживання пам'яті, обчислювані стовпці створюють серйозні функціональні обмеження через те, як вони працюють із контекстом обчислення. Обчислюваний стовпець працює строго в контексті рядка. Він оцінює поточні значення рядка незалежно від взаємодій користувача, фільтрів-списків або перехресної фільтрації, вибраної на полотні звіту.

Якщо ви створюєте обчислюваний стовпець, щоб позначити клієнтів з високою вартістю за статичним порогом, ця класифікація фіксується на рівні сховища. Якщо користувач згодом змінює фільтр-список, щоб переглянути дані за регіонами, або змінює діапазон дат, обчислюваний стовпець залишається байдужим до цих фільтрів. Він не може динамічно адаптуватися до змінних станів агрегації, адже його значення вже було обчислено й збережено годинами тому під час останнього оновлення.

Ця жорсткість контрастує з мірами, які обчислюють результати на льоту, повністю спираючись на контекст фільтрації, який користувач застосував саме в цей момент. Коли користувач взаємодіє з візуалом, міра перераховується, щоб дати точну інформацію з урахуванням контексту, тоді як обчислюваний стовпець лише повторює статичні дані, що зберігаються в оперативній пам’яті.

Проєктування легших моделей для Microsoft Fabric і Azure

Хмарна звітність для підприємств вимагає високої ефективності, особливо під час масштабування в Microsoft Fabric, Azure та складних середовищах даних Microsoft 365. Громіздкі семантичні моделі виснажують ресурси інфраструктури, уповільнюють відгук на запити та дратують бізнес-користувачів, які чекають на завантаження панелей.

Щоб ваші звіти працювали максимально швидко, обмежуйте обчислювані стовпці суворо тими сценаріями, де значення на рівні рядка справді обов’язкові. Наприклад, обчислюваний стовпець може знадобитися, якщо потрібно створити ключ зв’язку між таблицями на основі кількох параметрів або якщо значення має використовуватися в засобі фільтрації (слайсері) чи в правилі безпеки на рівні рядків (RLS), де міри не допускаються.

Для всіх інших аналітичних обчислень, таких як підсумки, середні значення, співвідношення та умовні агрегації, переносьте логіку в міри. Міри не займають місця в сховищі, адже не зберігають значення в моделі. Натомість вони існують у пам’яті лише як код і виконуються тільки тоді, коли візуал запитує дані. Такий підхід економить оперативну пам’ять, максимізує стиснення та забезпечує стабільну роботу вашої хмарної інфраструктури.

Висновок

Розуміння фундаментальної різниці між зберіганням на рівні рядків і динамічним виконанням запитів є критично важливим для кожного, хто створює масштабовані аналітичні рішення. Мінімізуючи непотрібні обчислювані стовпці та роблячи ставку на потужність динамічних мір, ви можете суттєво покращити швидкість звітів і зменшити споживання пам’яті.

Щоб дізнатися більше про цю тему та почути повний пояснення без жаргону щодо того, як рушій обробляє ваші формули, послухайте повний епізод. Будьте попереду у стратегії своєї хмарної аналітики, слідкуючи за новими експертними порадами в подкасті M365 FM.

Поширені запитання

Чому обчислювані стовпці споживають так багато пам’яті в Power BI?

Обчислювані стовпці обчислюють кожен окремий рядок під час оновлення даних і постійно зберігають ці значення в оперативній пам’яті моделі. Це не дає рушію VertiPaq ефективно стискати дані, що швидко призводить до роздування моделі.

Чи займають міри місце в семантичній моделі Power BI?

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

Коли насправді доцільно використовувати обчислюваний стовпець?

Обчислювані стовпці слід залишати для окремих сценаріїв, де контекст рядка є обов’язковим, наприклад для створення складених ключів для зв’язків, застосування правил RLS або для елементів, які мають відображатися як статичні значення у слайсерах.

Як обчислювані стовпці впливають на продуктивність відображення звіту?

Надмірна кількість обчислюваних стовпців збільшує загальний розмір семантичної моделі та погіршує стиснення даних. Більші моделі потребують більше пам’яті та обчислювальної потужності, що зрештою сповільнює виконання запитів і час завантаження звітів у всьому вашому робочому просторі.

Power BI Fabric workspace Microsoft Excel Microsoft Fabric Semantic model

Related articles

RSS