Змініть формати дати за допомогою редактора Power Query
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Сьогодні я хочу поговорити про концепцію моделювання даних під назвою «вимір сміття» . З його назви можна подумати, що це принизлива техніка, якої варто уникати, але насправді це корисний підхід.
Насправді я працював над запитанням із , і сміттєвий вимір був ідеальним рішенням для нього. Як тільки ви побачите та зрозумієте це, ви знайдете для нього багато застосувань у власній роботі. Ви можете переглянути повне відео цього підручника внизу цього блогу.
Зміст
Що таке розміри сміття?
Кімбол і Росс The Data Warehouse Toolkit , одна з біблій розмірного моделювання, визначають його як групування прапорів і індикаторів типово низької потужності . Низька потужність означає невелику кількість унікальних спостережень у певному полі.
У нашому прикладі ми маємо модель даних для нашого бізнесу зі створення персональних ПК. Модель даних стосується замовлень і рахунків-фактур. У нас також є ряд прапорів, за якими ми можемо зафіксувати тип процесора , тип конфігурації башти (компактний або повний) і призначення (ігровий або робоча станція).
Визначення розмірів сміття за допомогою аналогії ящика для кухонного сміття
Якщо ви подивіться на кожне з цих полів, то в кожному полі є лише два унікальні спостереження. Це те, що Кімбол назвав би прапором низької кардинальності . Він каже, що, створюючи абстрактний вимір, ми видаляємо прапори з таблиці фактів, одночасно розміщуючи їх у корисній структурі вимірів.
Аналогія кухонного ящика для сміття для розміру сміття є хорошою. У кожного є шухляда, наповнена гумками, скобами, батарейками, свічками до дня народження тощо. Для будь-якої з цих речей не важливо мати окрему шухляду, але вам потрібно мати місце, де їх поставити.
Зберігання їх може призвести до збільшення розміру таблиці фактів. Скажімо, у нас є таблиця фактів із мільйоном записів. Ми створили багато комп’ютерів, і для кожного комп’ютера, який ми створюємо, ми маємо позначити процесор, башту та призначення. Це означає, що для одного мільйона рядків ПК, які були замовлені, ми також маємо 3 мільйони позначок у таблиці фактів.
Зменшення розміру таблиці фактів
Ми могли б перемістити їх до таблиці розмірів і зв’язати лише з ідентифікатором моделі, щоб видалити 3 мільйони позначок із таблиці фактів. Для цього ми можемо створити окрему таблицю для кожного з цих прапорів, і це буде працювати. Але цей процес ускладнить модель даних, де зазвичай потрібно уникати таблиць з одним стовпцем.
Ідеальним рішенням є використання сміттєвого виміру , де у вас є купа позначок низької потужності, пов’язаних загальним чином. Усе це пов’язано з атрибутами комп’ютерів, які ми створюємо, але не дуже прямо, як зазвичай для конкретної таблиці розмірів.
Перегляд проблеми учасника форуму
Давайте подивимося на конкретну програму, яка була розміщена на форумі. Учасник хотів створити два різних поля, одне для Stalled і одне для Active . Якщо клієнт здійснив транзакцію протягом останніх 45 днів, вона позначається як активна; інакше він буде позначений як зупинений.
Учасник також хотів іншу таблицю розмірів для типу клієнта, яка є або багатопорядковою, або єдиною. Якщо в обліковому записі було дві або більше транзакцій у будь-який момент історії з використанням одного номера рахунку, це вважатиметься клієнтом із кількома замовленнями. І якби у них було лише одне замовлення для даного номера рахунку, це був би клієнт з єдиним замовленням.
Отже, це два прапори, які ми хочемо розробити. Давайте перейдемо до LuckyTemplates і з’ясуємо, як це зробити.
Моделювання даних для вимірювання сміття
Давайте поглянемо на модель даних. Це дуже проста модель даних. Ми маємо свій розширенийі Таблиця транзакцій .
Наша таблиця транзакцій містить лише три поля: номер рахунку , дату рахунка-фактури та кількість продажу .
Загалом, якщо ми зможемо підштовхнути трансформацію ближче до джерела, ми це зробимо. Це не динамічно протягом сеансу звітування, тому нам не потрібно робити це в .
Ми повинні робити це або в Power Query, або в сховищі даних/SQL, якщо у нас є така можливість. Але наразі припустімо, що ні, і що ми просто робимо це.
Визначення типу клієнта для виміру сміття
Перше, що ми зробимо, це визначити тип клієнта, чи це транзакція з одним замовленням чи з кількома замовленнями. Ми будемо використовувати Group By , Count і Count Rows .
Потім додайте всі дані та зробіть операцію «Усі рядки» , щоб ми повертали не зведену таблицю, а початкову таблицю з кількістю рядків у кожному рядку.
Давайте подивимося на результат і розширимо його.
Ми можемо додати спеціальний стовпець і назвати його Тип клієнта , а потім створити оператор IF. Твердження: якщо Count дорівнює 1, то це єдине замовлення; інакше це багатопорядковий.
Ми просто змінимо тип стовпця на текстовий. Тепер ми маємо один із наших двох вимірів у таблиці фактів.
Давайте зробимо таблицю другого розміру. Для цього, якщо до останнього замовлення минуло 45 днів або менше від сьогоднішньої дати, клієнт вважається активним. Якщо протягом 45 днів із сьогоднішнього дня немає замовлення, то клієнт неактивний.
Ми додамо спеціальний стовпець і назвемо стовпець Today . Потім додайте DateTime.LocalNow , щоб отримати поточну дату й час, а потім Date.From , щоб отримати лише частину дати.
Давайте просто змінимо це на тип даних дати, а потім перемістимо стовпець на передній план.
Є простий спосіб створити віднімання між двома стовпцями дат. Просто виділіть ці дві дати, натисніть «Дати» на стрічці, а потім натисніть «Відняти дні» .
Це дасть вам різницю між цими двома датами з точки зору кількості днів. Давайте назвемо цей новий стовпець Дні до сьогодні.
Наступним кроком є визначення мінімальної кількості днів до сьогоднішнього дня, що означає останнє замовлення для кожного номера рахунку. Якщо це число менше або дорівнює 45, воно активне.
Давайте зробимо ще групу за , потім розширені , а потім номер облікового запису .
Знову ж таки, ми використаємо Усі дані для нового імені стовпця та Усі рядки для роботи.
Цього разу ми додамо «Мінімальна кількість днів між» із «Мінімум» як операцію та стовпець « Дні до сьогоднішнього дня» . Це дасть нам останнє замовлення.
Потім ми розгортаємо всі дані та видаляємо номер рахунку .
Коли ми розширимо це, ми матимемо мінімальну кількість днів між номерами рахунків.
Нарешті, ми додамо ще один спеціальний стовпець і назвемо його «Час клієнта» . Ми додамо параметр «що-якщо», де якщо наш Min Days Between менше або дорівнює 45, це означає, що він активний або зупинений .
Видалення непотрібних стовпців
Оскільки тепер у нас багато допоміжних стовпців, давайте клацнемо «Вибрати стовпці» та вилучимо ті, які нам не потрібні.
Ми видалимо стовпці «Кількість» , «Сьогодні », «Дні до сьогодні » та «Мінімальна кількість днів між» . Тепер ми маємо лише вихідну таблицю фактів, а також стовпці «Тип клієнта» та «Час клієнта» .
Замість того, щоб зберігати їх у таблиці фактів, давайте продублюємо цю таблицю.
Ми назвемо повторювану таблицю Account Flags .
Давайте повернемося до таблиці Transactions і вилучимо поля Client Type і Client Timing .
Тепер у нас є вихідна таблиця фактів і таблиця прапорів облікового запису.
Для таблиці «Прапорці облікового запису» нам не потрібні поля «Тип клієнта» та «Час клієнта» , тому ми вилучаємо їх. Ми просто виділяємо всі ці поля, видаляємо рядки та видаляємо дублікати.
Тепер у нас є наша таблиця розмірів сміття. Все, що залишилося, це натиснути «Закрити та застосувати» . Наступним кроком буде зв’язати номер рахунку з нашої таблиці прапорів облікового запису з номером рахунку в нашій таблиці транзакцій .
У нас є зв’язок «один-до-багатьох» між таблицею Transactions (це наша таблиця фактів) і таблицею Account Flags (яка є нашою таблицею вимірювань небажаних).
Висновок
Давайте перенесемо параметри Client Timing і Client Type на наше полотно та перетворимо їх на слайсери. Тепер ми можемо робити саме те, що учасник хотів зробити спочатку, тобто розрізати на основі цих атрибутів.
Якщо ми натиснемо Multi-Order, ми залишимо лише ті, які мають кілька замовлень, а якщо ми перейдемо до Single-Order, ми залишимо ті, які мають одну покупку.
Підводячи підсумок, це в основному те, що таке вимір сміття, і як ви можете його створити. Це дуже корисний прийом, якщо у вас є купа різноманітних позначок низької потужності, які ви хочете ефективно включити у свою модель даних.
Техніка групування за всіма рядками є надзвичайно корисною для створення цих непотрібних розмірів. Сподіваюся, ви знайшли це корисним і як завжди.
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.
Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.
Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.
У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.
У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.
Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.
Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.
У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.
У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.