Найкращі практики імпорту даних у Power BI

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

практики

Навіть якщо у статті згадується Power BI, усі описані найкращі практики також діють для табличних моделей Power Pivot та Analysis Services. Демо-файл, який ви можете завантажити (в кінці статті), містить зразок файлу Power BI та відповідні подання, визначені у файлі SQL для AdventureWorksDW.

Використовуйте подання

Завжди імпортуйте подання та ніколи не імпортуйте таблиці в моделі даних.

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

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

Найкраща практика використання подань:

  • Створіть схему для певної моделі даних: наприклад, це може бути ім'я маркера даних або назва групи звітів, які будуть використовувати спільну модель даних.
  • Створіть одне подання для кожної таблиці, яку потрібно створити в моделі даних Power BI в рамках цієї схеми.
  • Додайте до подання лише ті стовпці, які є корисними та будуть використовуватися в моделі даних Power BI.
  • Під час імпорту таблиць у Power BI видаліть ім'я схеми та збережіть лише ім'я подання.

Дотримуючись цієї найкращої практики, ви заявляєте в базі даних, які таблиці та стовпці використовуються у звіті, щоб адміністратор бази даних був відомий існуючим залежностям від самої бази даних. Перш ніж публікувати у виробництві зміни в структурі бази даних, можна адаптувати ці представлення, щоб вони продовжували працювати, повертаючи той самий вміст, не порушуючи оновлення існуючих звітів. Більше того, набагато простіше відстежувати залежності між поданнями та таблицями в одній реляційній базі даних. Наприклад, у SQL Server ви можете використовувати вбудовані функції (наприклад, Перегляд залежностей таблиці) або сторонні інструменти (наприклад, SQL Dependency Tracker від Red Gate).

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

Створені подання повинні містити явний список стовпців і не повинні бути загальним, наприклад:

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

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

Використовуйте значущі імена

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

Вам слід видалити будь-який префікс та будь-який суфікс, який ви можете використовувати в назвах таблиць. Наприклад, звичайно бачити Dim і Fact, які використовуються як префікси таблиць у схемі реляційної зірки. Немає сенсу показувати ці префікси користувачеві. Слід також уникати префіксів подань, таких як "v" або "vw". Ви повинні показати "Клієнти" замість "DimCustomers" або "vwCustomers".

Слід уникати скорочень, префіксів та суфіксів в назвах стовпців. Однак можливий виняток із відомих скорочень. Наприклад, вам слід використовувати “Сума продажів” замість “SalesAmt” або “SalesAmount”. Ви можете використовувати пробіл та спеціальні символи в іменах стовпців подання. Мета полягає в тому, щоб спростити життя для користувача, а не спростити життя для програміста, який повинен ввести ім'я стовпця на клавіатурі. У Power BI у вас є Intellisense, коли ви пишете формулу DAX.

Рекомендується перейменовувати всі стовпці у поданнях, використовуючи саме ті імена, які ви надасте в інтерфейсі користувача Power BI. Слід уникати перейменування таблиць і стовпців у моделі даних Power BI. Причиною цього є спрощення обслуговування та підтримки, крім того, що це набагато продуктивніший спосіб перейменування сутностей. Якщо ви перейменовуєте стовпець у Power BI, якщо користувач побачить у звіті деякі неправильні або відсутні дані, він відкриє виклик служби підтримки, згадавши відомі йому сутності. Якщо ці імена визначені лише в моделі даних Power BI, ймовірно, запит на підтримку буде перенаправлений до моделятора даних, який у більшості випадків відкриє модель даних лише для того, щоб виявити, що певна таблиця в базі даних не містить права даних. Це відбувається лише тому, що більшість баз даних адміністраторів не знають Power BI або просто не мають доступу до визначення моделі даних. Переміщуючи перейменування у поданнях, ви дозволяєте будь-якому DBA аналізувати залежності та покращувати запит користувача, підвищуючи виклик на інший рівень підтримки лише тоді, коли проблема пов'язана з проблемою обчислення, а не з відсутнім оновленням базового таблиця (яку може вирішити сама DBA).

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

Використовуйте техніку, яка явно порушує правила іменування, коли ви імпортуєте стовпці, які слід приховувати для користувача. Наприклад, якщо у вас є схема зірочок і ви використовуєте сурогатні ключі, ви можете використовувати суфікс ключа в назві стовпця без будь-якого пробілу, наприклад, використовуючи “CustomerKey” замість “Ключ клієнта”. Ви також можете додати префікс, який переміщує ім'я стовпця на початок алфавітного порядку. Наприклад, ви можете використовувати “_CustomerKey” замість “CustomerKey”. Таким чином, ці імена будуть на початку списку імен стовпців, і буде простіше перевірити, чи всі вони приховані. Однак використання префікса - це не гарна ідея, якщо ви хочете дозволити користувачеві використовувати такий стовпець для перетворень та/або приєднання даних до інших джерел даних. Більше того, якщо стовпець містить ключ програми замість сурогатного ключа, можливо, ви хочете зберегти стандартну конвенцію про іменування (за допомогою «Ключа клієнта»), щоб зберегти стовпець видимим у моделі даних (щоб користувач міг відображати його у звітах).

Уникайте двозначності в назвах стовпців та мір

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

Подумайте заздалегідь про назви мір. Якщо ви хочете представити ім’я “Сума продажів” для користувачів на суму всіх сум продажів, тоді ви не можете використовувати суму продажів як назву стовпця, інакше механізм відмовиться створити міру, оскільки його назва конфліктує зі стовпцем. Використання для міри дивних назв, таких як «Сума суми продажів», не є хорошим рішенням. Якщо ви плануєте узагальнити число проти показу його таким, яким воно є, тоді краще імпортувати його в модель з певними правилами іменування, а потім приховати та виставити як міру. Наприклад, ви можете імпортувати SalesAmount як LineAmount (без пробілів, тому ви навмисно порушуєте правило пробілу між словами в іменах стовпців та таблиць), а потім приховати його у звіті та визначити такий видимий показник:

Якщо ви хочете зберегти існуючі базові дані, позначте їх як “Не узагальнювати” та виставте імена стовпців, дотримуючись принципу іменування. Наприклад, використовуйте кількість рядків та одиницю ціни для видимих ​​стовпців з оригінальними іменами стовпців OrderQuantity та UnitPrice та створіть міру, яка правильно підсумовує добуток двох стовпців рядок за рядком:

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

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

Видаліть непотрібні стовпці

Не виставляйте у поданні стовпець, який не є необхідним у моделі даних Power BI.

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

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

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

Розділити дату та час

Не виставляйте стовпці DATETIME, завжди розділіть їх на два стовпці, один на DATE, а другий на TIME. Зменште точність ЧАСУ, якщо потрібно, до години, хвилини чи секунди відповідно до бізнес-вимог.

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

Застосувати позначку як таблицю дат до таблиць із датами

Функції часової розвідки вимагають позначення таблиці як таблиці дат, якщо стовпець сурогатного ключа (як правило, ціле число) використовується у взаємозв'язку між таблицею фактів і виміром.
Навіть якщо цього не потрібно, коли відносини базуються на стовпці DATE, найкраще завжди прикрашати таблицю дат атрибутом «Позначити як таблицю дат». Таким чином, інтерфейс користувача та інші функції Power BI усвідомлюють роль таблиці, покращуючи взаємодію з користувачем.

До лютого 2018 року Power BI не мав атрибута «Позначити як таблицю дат». Рекомендується застосовувати цей атрибут у моделях, створених до лютого 2018 року.
Також для отримання додаткової інформації прочитайте Time Intelligence у Power BI Desktop.

Додає всі числа до стовпця.

Повертає вказану дату у форматі datetime.

ДАТА, ЧАС

Перетворює години, хвилини та секунди, задані як числа, у час у форматі дата-час.