Групи обчислення

Стосується: SQL Server 2019 та пізніших версій Служби аналізу Azure Analysis Services Power BI Premium

служб

Групи обчислень можуть значно зменшити кількість зайвих мір, групуючи загальні вирази мір як елементи обчислення. Групи обчислень підтримуються в табличних моделях на рівні сумісності 1500 і вище.

Ця стаття описує:

  • Переваги
  • Як працюють розрахункові групи
  • Рядки динамічного формату
  • Перевага
  • Бокова рекурсія
  • Замовлення
  • Як творити
  • Обмеження

Переваги

Групи обчислень вирішують проблему в складних моделях, де може спостерігатися поширення надлишкових заходів, використовуючи ті самі розрахунки - найпоширеніші з розрахунками інтелекту часу. Наприклад, аналітик продажів хоче переглянути загальний обсяг продажів та замовлення за місяцем до дати (MTD), кварталом до дати (QTD), роком до дати (YTD), замовленнями за рік до попередньої дати рік (PY) тощо. Моделіст даних повинен створити окремі міри для кожного розрахунку, що може призвести до десятків мір. Для користувача це може означати необхідність сортувати стільки ж заходів і застосовувати їх окремо до свого звіту.

Давайте спочатку подивимося, як групи обчислень відображаються для користувачів в інструменті звітування, як Power BI. Потім ми розглянемо, з чого складається група обчислень, і як вони створюються в моделі.

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

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

З групою обчислень, у цьому прикладі з іменем Інтелект часу, коли користувач перетягує файл Розрахунок часу пункт до Стовпці область фільтра, кожен елемент обчислення відображається як окремий стовпець. Значення для кожного рядка обчислюються з базової міри, Продажі.

Групи обчислення працюють з явний Заходи DAX. У цьому прикладі, Продажі - це явна міра, вже створена в моделі. Групи обчислень не працюють із неявними показниками DAX. Наприклад, у Power BI неявні міри створюються, коли користувач перетягує стовпці на візуальні елементи для перегляду агрегованих значень, не створюючи явного мірила. На даний момент Power BI генерує DAX для неявних мір, записаних як вбудовані розрахунки DAX - тобто неявні міри не можуть працювати з групами обчислень. Введено нову властивість моделі, видиму в табличній об’єктній моделі (TOM), DiscourageImplicitMeasures. Наразі для створення груп обчислень для цієї властивості потрібно встановити значення правда. Якщо встановлено значення true, Power BI Desktop у режимі Live Connect вимикає створення неявних заходів.

Групи обчислень також підтримують запити багатовимірних виразів даних (MDX). Це означає, що користувачі Microsoft Excel, котрі запитують табличні моделі даних за допомогою багатозначної роботи, можуть повною мірою скористатися перевагами груп обчислень у зведених таблицях та діаграмах робочого аркуша.

Як вони працюють

Тепер, коли ви побачили, як групи обчислень приносять користь користувачам, давайте подивимось, як створюється показаний приклад групи обчислень Time Intelligence.

Перш ніж вдаватися до подробиць, давайте представимо деякі нові функції DAX спеціально для груп обчислень:

SELECTEDMEASURE - Використовується виразами для елементів обчислення для посилання на міру, яка наразі знаходиться в контексті. У цьому прикладі міра продаж.

SELECTEDMEASURENAME - Використовується виразами для елементів обчислення для визначення міри, яка знаходиться в контексті за іменем.

ISSELECTEDMEASURE - Використовується виразами для елементів обчислення, щоб визначити міру, яка знаходиться в контексті, вказану в переліку мір.

SELECTEDMEASUREFORMATSTRING - Використовується виразами для елементів обчислення для отримання рядка формату міри, що знаходиться в контексті.

Приклад часової розвідки

Назва таблиці - Інтелект часу
Назва стовпця - Розрахунок часу
Перевага - 20

Елементи розрахунку інтелекту часу

Поточний

MTD

QTD

З початку року

PY

PY MTD

PY QTD

PY YTD

ТАК

YOY%

Щоб перевірити цю групу обчислень, виконайте запит DAX у SSMS або DAX Studio з відкритим кодом. Примітка: YOY та YOY% у цьому прикладі запиту пропущено.

Запит часової розвідки

Повернення запиту Time Intelligence

У таблиці повернення відображаються розрахунки для кожного застосованого елемента розрахунку. Наприклад, див. QTD за березень 2012 року - це сума січня, лютого та березня 2012 року.

Рядки динамічного формату

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

Табличні моделі підтримують динамічне форматування мір за допомогою функції FORMAT DAX. Однак функція FORMAT має недолік повернення рядка, змушуючи міри, які в іншому випадку були б числовими, також повертати як рядок. Це може мати деякі обмеження, наприклад, не працювати з більшістю візуальних елементів Power BI, залежно від числових значень, наприклад діаграм.

Рядки динамічного формату для аналізу часу

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

Для YOY%, ми можемо замінити рядок формату, встановивши для властивості виразу рядка формату значення 0,00%; - 0,00%; 0,00%. Щоб дізнатись більше про властивості вираження рядкового форматування, див. Властивості комірки MDX - ФОРМАТУВАТИ ЗМІСТ РЯДК.

Як ви бачите, у цій візуальній матриці в Power BI Поточний продаж/РІК і Потоки/РІК замовлень зберігають відповідні рядки формату базової міри. Продажі YOY% і Замовлення YOY%, однак замінює рядок формату на використання процентного формату.

Рядки динамічного формату для конвертації валют

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

A FormatString стовпець додається до DimCurrency таблиці та заповнюється рядками формату для відповідних валют.

У цьому прикладі наступну групу обчислень визначають як:

Приклад конвертації валют

Назва таблиці - Конвертація валют
Назва стовпця - Розрахунок перерахунку
Перевага - 5

Елементи розрахунку для конвертації валют

Без перетворення

Конвертована валюта

Формат рядкового виразу

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

Наступна анімація показує динамічний формат конвертації валют Продажі міра у звіті.

Перевага

Пріоритет - властивість, визначена для групи обчислень. Він визначає порядок оцінки, коли існує більше однієї групи обчислень. Більше число означає більший пріоритет, тобто воно буде оцінено перед групами обчислення з меншим пріоритетом.

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

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

Хоча такі розрахунки обчислюються незалежно від обчислень інтелекту часу, цілком може виникнути вимога їх комбінувати. Наприклад, користувач може побачити барелі нафти на день з початку року, щоб переглянути денну норму нафти з початку року до поточної дати. У цьому випадку слід встановити пріоритет для елементів розрахунку.

Приклад середніх показників

Назва таблиці Середні показники.
Назва стовпця - Середній розрахунок.
Перевага є 10.

Елементи розрахунку для середніх значень

Без середнього

Середнє значення за день

Ось приклад запиту та таблиці повернення DAX:

Середній запит

Середнє повернення запиту

У наступній таблиці показано, як обчислюються значення за березень 2012 року.

Розрахунок назви стовпця
З початку року Сума продажів за січень, лютий, березень 2012 року
= 495 364 + 506 994 + 373 483
Середнє значення за день Продажі за березень 2012 року розділені на кількість днів у березні
= 373 483/31
Середньодобовий показник з початку року З початку року за березень 2012 року поділено на кількість днів у січні, лютому та березні
= 1 375 841/(31 + 29 + 31)

Ось визначення елемента обчислення з початку року, яке застосовується з перевагою 20.

Ось щоденне середнє значення, яке застосовується з перевагою 10.

Оскільки пріоритет групи обчислення часової інтелекту є вищим, ніж у групи розрахунку середніх показників, він застосовується якомога ширше. Розрахунок щоденного середнього значення з початку року застосовує YTD як до чисельника, так і до знаменника (кількості днів) середньоденного розрахунку.

Це еквівалентно наступному виразу:

Не цей вираз:

Бокова рекурсія

У наведеному вище прикладі розвідки часу деякі елементи обчислення відносяться до інших у тій самій групі обчислень. Це називається боковою рекурсією. Наприклад, YOY% посилається на обидва ТАК і PY.

У цьому випадку обидва вирази обчислюються окремо, оскільки вони використовують різні оператори обчислення. Інші типи рекурсії не підтримуються.

Один елемент обчислення у контексті фільтра

У нашому прикладі розвідки часу, PY YTD Пункт обчислення має єдиний вираз обчислення:

Аргумент YTD для функції CALCULATE () замінює контекст фільтра для повторного використання логіки, вже визначеної в елементі обчислення YTD. Неможливо застосувати PY та YTD в одному оцінюванні. Групи обчислень застосовуються лише в тому випадку, якщо один елемент обчислення з групи обчислень знаходиться у контексті фільтру.

Замовлення

За замовчуванням, коли стовпець із групи обчислень розміщується у звіті, елементи розрахунку впорядковуються за алфавітом за назвою у звіті. Порядок відображення елементів звітів у звіті можна змінити, вказавши властивість Ordinal. Вказівка ​​порядку елементів обчислень із властивістю «Порядок» не змінює пріоритету, порядку, в якому оцінюються елементи обчислення. Це також не змінює порядок, у якому елементи обчислень відображаються у табличному провіднику моделей.

Щоб вказати порядкову властивість для елементів розрахунку, потрібно додати другий стовпець до групи розрахунків. На відміну від стовпця за замовчуванням, де Тип даних - Текст, другий стовпець, що використовується для впорядкування елементів обчислення, має тип даних "Ціле число". Єдина мета цього стовпця - вказати числовий порядок, у якому відображаються елементи розрахунку в групі розрахунків. Оскільки цей стовпець не надає значення у звіті, найкраще встановити значення Прихований властивість до True.

Після того, як другий стовпець додано до групи обчислень, ви можете вказати значення властивості «Порядок» для елементів розрахунку, які потрібно замовити.

Створіть групу обчислення

Групи обчислень підтримуються у Visual Studio з проектами служб Analysis Services VSIX оновлення 2.9.2 та новіших версій. Групи обчислень також можна створити за допомогою мови сценаріїв табличної моделі (TMSL) або табличного редактора з відкритим кодом.

Створення групи обчислень за допомогою Visual Studio

У Провіднику табличних моделей клацніть правою кнопкою миші Групи обчислення, а потім клацніть Нова група розрахунків. За замовчуванням нова група розрахунків матиме один стовпець та один елемент розрахунку.

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

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

Щоб додати додаткові елементи розрахунку, клацніть правою кнопкою миші Елементи розрахунку, а потім клацніть Новий елемент розрахунку.

Для замовлення елементів розрахунку

У Провіднику табличних моделей клацніть правою кнопкою миші групу обчислення, а потім клацніть Додати стовпець.

Назвіть стовпець Порядковий (або щось подібне), введіть опис і встановіть Прихований властивість до True.

Для кожного елемента розрахунку, який потрібно замовити, встановіть Порядковий властивість до додатного числа. Кожне число є послідовним, наприклад, спочатку з’явиться елемент обчислення із властивістю «Порядок» 1, другим - властивість 2 тощо. Елементи обчислення із типовим значенням -1 не включаються до замовлення, але з’являються перед замовленими елементами у звіті.

Обмеження

Захист на рівні об’єкта (OLS), визначений у таблицях груп обчислень, не підтримується. Однак OLS можна визначити в інших таблицях тієї ж моделі. Якщо елемент обчислення стосується захищеного об'єкта OLS, повертається загальна помилка.

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

Детальні рядки Вирази не підтримуються групами обчислень.

Розумні розповідні візуальні зображення в Power BI не підтримуються групами обчислень.

Неявне агрегування стовпців у Power BI не підтримується для моделей із групами обчислень. В даний час, якщо DiscourageImplicitMeasures для властивості встановлено значення помилковий (за замовчуванням) з’являються варіанти агрегування, проте їх не можна застосувати. Якщо DiscourageImplicitMeasures встановлено на правда, варіанти агрегування не відображаються.