Методи стиснення LuckyTemplates у DAX Studio

У цьому посібнику ви дізнаєтеся про різні методи стиснення LuckyTemplates, які допоможуть оптимізувати ваш звіт.

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

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

Зміст

Техніка стиснення LuckyTemplates №1: кодування значень

Перший називається кодуванням значень.

Кодування значень шукає математичне співвідношення між кожним значенням у стовпці, щоб зменшити пам’ять. Ось приклад у Microsoft Excel:

Цей стовпець потребує 16 384 біт для збереження значень.

Методи стиснення LuckyTemplates у DAX Studio

Щоб обчислити необхідні біти, спочатку скористайтеся функцією MAX() в Excel, щоб отримати найбільше значення в стовпцях. У цьому випадку це 9144. Потім скористайтеся функцією POWER(), щоб обчислити необхідні біти. Використовуйте аргумент POWER(2, X), де X — будь-яке додатне значення, яке поверне відповідь, більшу за значення MAX. X у цьому випадку також представляє необхідні біти. Отже, для цього прикладу значення X дорівнює 14, що призводить до 16384 . Таким чином, стовпець вимагає 14 біт пам'яті.

Щоб зменшити необхідні біти за допомогою кодування значень, VertiPaq шукає MIN значення в стовпці та віднімає його від кожного значення. У цьому випадку MIN значення в стовпці дорівнює 9003. Якщо відняти це значення зі стовпця, він поверне такі значення:

Методи стиснення LuckyTemplates у DAX Studio

Використовуючи ті самі функції та аргументи, ви можете побачити, що для нового стовпця значення MAX дорівнює 141. А використання 8 як значення X призводить до 256 . Тому для нового стовпця потрібно лише 8 біт.

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

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

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

Техніка стиснення LuckyTemplates №2: кодування довжини серії

Другий метод кодування називається Run Length Encoding.

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

Наведемо приклад:

Методи стиснення LuckyTemplates у DAX Studio

У цьому випадку він визначає, що в першому рядку доступне одне червоне значення. Потім він дізнається, що значення чорного починається з другого рядка та доступне для наступних чотирьох клітинок. Він переходить до третього значення, Blue , яке починається з шостого рядка та доступне для наступних трьох рядків. І так триває, доки не досягне останнього значення в стовпці.

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

Методи стиснення LuckyTemplates у DAX Studio

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

Методи стиснення LuckyTemplates у DAX Studio

З цим правильно відсортованим стовпцем ви можете побачити, що метод Run Length Encoding тепер повертає структуру даних з одним рядком менше.

Методи стиснення LuckyTemplates у DAX Studio

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

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

Техніка стиснення LuckyTemplates №3: кодування словника

Третій метод кодування називається Словникове кодування.

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

Використовуючи попередній приклад, давайте розглянемо, як працює словникове кодування. У цьому випадку значенням Red, Black і Blue присвоюється індекс 0, 1 і 2 відповідно.

Методи стиснення LuckyTemplates у DAX Studio

Потім створюється структура даних, подібна до структури кодування довжини серії. Однак замість того, щоб зберігати фактичні значення, Dictionary Encoding зберігає призначений індекс кожного значення.

Методи стиснення LuckyTemplates у DAX Studio

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

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

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

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

У цьому випадку Analysis Services створить дві структури даних. Спочатку буде створено словник, а потім застосовано до нього кодування довжини серії, щоб ще більше збільшити стиснення стовпця.

Порядок сортування в Analysis Services

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

Як приклад, давайте розглянемо стовпець, що містить значення червоного, синього, чорного, зеленого та рожевого. Їм також присвоєно номери від 1 до 5. Це діє як словник нашої колонки.

Методи стиснення LuckyTemplates у DAX Studio

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

Методи стиснення LuckyTemplates у DAX Studio

Перетягніть формулу до останнього рядка. Натисніть OK , якщо з’явиться спливаюче вікно «Велика операція» . Тепер це виглядатиме так:

Методи стиснення LuckyTemplates у DAX Studio

Потім скопіюйте весь стовпець і вставте його як значення .

Методи стиснення LuckyTemplates у DAX Studio

Тепер, якщо ви перейдете до параметра «Файл» у своєму документі Excel і клацнете « Інформація» , ви побачите, що стовпець займає 14,1 МБ .

Щоб зменшити обсяг споживаної оперативної пам’яті, ви можете відсортувати стовпець від А до Я. Якщо ви ще раз перевірите розмір, ви побачите, що його зменшено до 12,5 МБ .

Зменшення на 1,9 МБ може здатися незначним. Це пояснюється тим, що для демонстрації в прикладі використано один стовпець у Excel. Excel обмежений лише 1 мільйоном рядків. Однак у LuckyTemplates ваші дані можуть містити мільярди рядків і стовпців. Скорочення використовуваного простору зростає експоненціально.

Висновок

Коли ваші дані відсортовано найбільш оптимальним чином, Analysis Services застосовує один із трьох методів стиснення залежно від типу даних.

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


Відкрийте для себе унікальні ідеї за допомогою функції TOPN LuckyTemplates

Відкрийте для себе унікальні ідеї за допомогою функції TOPN LuckyTemplates

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

Моделювання даних у LuckyTemplates за допомогою допоміжних таблиць

Моделювання даних у LuckyTemplates за допомогою допоміжних таблиць

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

Розширений DAX для LuckyTemplates: впровадження логіки ранжування в унікальній статистиці

Розширений DAX для LuckyTemplates: впровадження логіки ранжування в унікальній статистиці

Тут ми зануримося в LuckyTemplates Advanced DAX і запровадимо логіку ранжирування, щоб отримати дуже унікальну інформацію. У цьому прикладі я також демонструю розгалуження міри.

Функція параметра LuckyTemplates «Що, якщо».

Функція параметра LuckyTemplates «Що, якщо».

У цьому блозі представлено нову функцію в LuckyTemplates — параметр аналізу «Що, якщо». Ви побачите, як це робить усе швидким і легким для аналізу сценарію.

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

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

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

Параметри LuckyTemplates через редактор запитів

Параметри LuckyTemplates через редактор запитів

Дізнайтеся та зрозумійте, як можна створювати та використовувати параметри LuckyTemplates, які є потужною функцією редактора запитів.

Кругла гістограма – візуалізація для вашої інформаційної панелі

Кругла гістограма – візуалізація для вашої інформаційної панелі

У цьому підручнику буде обговорено створення круглої гістограми за допомогою Charticulator. Ви дізнаєтеся, як створити їх для звіту LuckyTemplates.

Функції та формули PowerApps | Вступ

Функції та формули PowerApps | Вступ

Дізнайтеся, як використовувати функції та формули PowerApps, щоб покращити функціональність і змінити поведінку в нашій програмі Canvas Power Apps.

Труба в R: підключення функцій за допомогою Dplyr

Труба в R: підключення функцій за допомогою Dplyr

У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX від LuckyTemplates дозволяє повернути рейтинг певного числа в кожному рядку таблиці, який є частиною списку чисел.