Прискорення аналітики в 6 разів: огляд нативного механізму виконання Microsoft Fabric
By Mirko Peters ·
Ласкаво просимо назад до подкасту! У сьогоднішньому дописі ми розвиваємо тему останнього епізоду подкасту, в якому розбираємо приховані архітектурні потужності, що рухають сучасні платформи даних. Якщо ви колись задавались питанням, як аналітичні навантаження в корпоративних середовищах можуть працювати на порядки швидше без повного переписування коду, ви в потрібному місці. Ми докладно розглядаєм
Automatically translated with AI from the original post. Read the English original
Ласкаво просимо назад до подкасту! У сьогоднішньому дописі ми розвиваємо тему останнього епізоду подкасту, в якому розбираємо приховані архітектурні потужності, що рухають сучасні платформи даних. Якщо ви колись задавались питанням, як аналітичні навантаження в корпоративних середовищах можуть раптово працювати на порядки швидше без повного переписування коду, ви в потрібному місці. Ми докладно розглядаємо нативний механізм виконання Microsoft Fabric — технологію, яка змінює те, як інженери даних, дата-сайентисти та бізнес-аналітики думають про масштабування в хмарі, оптимізацію продуктивності та зниження витрат.
У нашому епізоді подкасту Speed Power BI with OneLake and Direct Lake ми розглядаємо, як ці базові механізми взаємодіють з такими інструментами, як OneLake і Direct Lake, щоб прискорити корпоративну звітність. У цьому докладному огляді ми розберемо основні компоненти архітектури, дослідимо магію векторизованого виконання, розглянемо реальні сценарії використання та поговоримо про те, що чекає на сучасні платформи даних.
Головне
- Нативний механізм виконання в Microsoft Fabric прискорює обробку даних до 6 разів порівняно з традиційними середовищами Spark.
- Використання нативного механізму виконання дозволяє зекономити приблизно 83% на кластерах фіксованого розміру, що призводить до суттєвого зниження витрат.
- Механізм підтримує різні формати даних, зокрема Parquet і Delta, що дає змогу ефективно виконувати запити без змін у коді.
- Векторизоване виконання обробляє дані пакетами, що підвищує продуктивність і знижує навантаження на ЦП, а це критично важливо для роботи з великими наборами даних.
- Інтеграція нативного механізму виконання з наявними застосунками Spark не потребує жодних змін, тож його легко впровадити.
- Аналітика в реальному часі дає миттєві інсайти, допомагаючи бізнесу приймати своєчасні рішення на основі актуальних даних.
- Модульна структура механізму дає змогу безшовно інтегрувати його в наявні робочі процеси з даними та підвищує загальну ефективність.
- Майбутні розробки, зокрема інструменти на основі ШІ та оптимізоване керування пам'яттю, обіцяють ще більше покращити можливості обробки даних.
Огляд Microsoft Fabric

Microsoft Fabric є значним кроком уперед в управлінні даними та аналітиці. Його архітектура поєднує різні компоненти, які безшовно працюють разом, щоб посилити ваші можливості обробки даних. Ось докладніший погляд на архітектуру та ключові компоненти.
Архітектура
Архітектура Microsoft Fabric складається з кількох ключових компонентів, які забезпечують ефективну обробку даних. До них належать:
- OneLake Data Lake: це централізоване сховище даних, яке підтримує різні формати. Воно забезпечує безпеку й управління, роблячи його надійним джерелом для ваших потреб у даних.
- Data Engineering (Synapse): цей компонент забезпечує масштабні трансформації даних за допомогою Apache Spark. Він ідеально підходить для складних завдань підготовки даних.
- Data Warehouse (Synapse): цей компонент забезпечує високопродуктивну аналітику на основі SQL. Він глибоко інтегрується з OneLake для роботи зі структурованими даними.
- Real-Time Analytics (Synapse): ця функція забезпечує аналітику з високою пропускною здатністю, дозволяючи миттєво отримувати інсайти з потокових даних.
- Data Factory: цей компонент пропонує широкі можливості інтеграції даних. Маючи понад 200 конекторів, він є необхідним для процесів ETL та ELT.
- Power BI: цей інструмент дає змогу створювати інтерактивні звіти та дашборди. Актуальність даних забезпечується завдяки інтеграції з іншими сервісами.
Ключові компоненти
Інтеграція OneLake і Direct Lake суттєво покращує архітектуру Microsoft Fabric. Нижче наведено деякі переваги цієї інтеграції:
| Перевага | Опис |
|---|---|
| Продуктивність запитів | Запити Direct Lake обробляє движок VertiPaq, що забезпечує продуктивність, порівнянну з режимом Import, без витрат на цикли оновлення даних. |
| Безшовна інтеграція | Direct Lake інтегрується з наявними інвестиціями у Fabric, тож це ідеальний вибір для шару аналітики gold в архітектурі lakehouse за медальйонною моделлю. |
| Максимізація ROI | У пам'ять завантажуються лише потрібні дані, що дозволяє аналізувати обсяги даних, які перевищують ліміти пам'яті. |
| Менша затримка | Семантична модель автоматично синхронізується зі своїми джерелами, тож нові дані стають доступними без графіків оновлення. |
Ця архітектура дозволяє Microsoft Fabric забезпечити безшовну інтеграцію з наявною інфраструктурою даних. Централізоване озеро даних підтримує різні формати даних і гарантує єдине сховище. Крім того, потужні можливості інтеграції даних Data Factory забезпечують узгоджену оркестрацію у всій вашій екосистемі даних.
Використовуючи ці компоненти, ви можете спростити процеси роботи з даними та посилити аналітичні можливості. Microsoft Fabric не лише спрощує управління даними, а й дає змогу ухвалювати обґрунтовані рішення на основі даних у реальному часі.
Огляд движка нативного виконання
Движок нативного виконання є потужним компонентом Microsoft Fabric, який оптимізує обробку даних і аналітику. Він підвищує продуктивність, використовуючи нативні можливості базових джерел даних. Движок підтримує різні оператори й типи даних, зокрема rollup hash aggregate і broadcast nested loop join. Він ефективно обробляє дані у форматах Parquet і Delta, тож є ідеальним для обчислювально складних запитів.
Функціональність
Робота в Microsoft Fabric
Движок нативного виконання безшовно працює в межах ширшої архітектури Microsoft Fabric. Він підвищує продуктивність Apache Spark, замінюючи традиційні оператори виконання на основі JVM реалізаціями на C++. Цей перехід забезпечують такі технології, як Velox і Apache Gluten, які оптимізують виконання запитів завдяки колоночній обробці та векторизації. Ця інтеграція дозволяє існуючим застосункам Spark працювати без змін і суттєво підвищує ефективність складних перетворень і агрегацій даних.
Інтеграція з lakehouse
Інтеграція движка нативного виконання з архітектурою lakehouse є справжнім проривом. Ви можете виконувати запити Spark безпосередньо в інфраструктурі lakehouse без змін у коді. Ця можливість підтримує формати Parquet і Delta, дозволяючи повніше використовувати потенціал ваших даних. Покращення продуктивності движка можуть досягати до 4 разів швидшого виконання, ніж у традиційного Spark з відкритим кодом, що знижує операційні витрати та підвищує ефективність у різних завданнях роботи з даними.
Ключові можливості
Векторизоване виконання
Однією з головних переваг движка нативного виконання є векторизоване виконання. Ця можливість дозволяє движку обробляти дані пакетами, а не по одному рядку. Завдяки колоночним структурам даних і просунутим технікам роботи в пам'яті движок може перевершувати традиційні движки на основі JVM, особливо в хмарних середовищах. Наприклад, внутрішні тести на наборі даних із одним мільярдом рядків показують скорочення часу виконання кожного запиту на 20–32 секунди, що означає покращення продуктивності на 20%–27%.
Покращення продуктивності
Движок нативного виконання забезпечує низку покращень продуктивності, які вирізняють його серед інших движків виконання. Ось ключові з них:
| Джерело | Опис | Покращення продуктивності |
|---|---|---|
| Apache Hudi | Запити до таблиць Copy-on-Write | Скорочення часу виконання на 33% |
| Google DataProc | Продуктивність нативного виконання | До 2,7 разу покращення |
| Microsoft Fabric | Внутрішні тести на наборі даних із одним мільярдом рядків | Скорочення часу виконання на 20–32 секунди на кожен запит, покращення на 20–27% |
Ці вдосконалення роблять Native Execution Engine надійним вибором для організацій, які прагнуть оптимізувати обробку даних. Завдяки ефективній обробці складних перетворень і агрегацій він дає змогу швидше й результативніше отримувати аналітичні висновки з ваших даних.
Переваги продуктивності Microsoft Fabric

Підвищення ефективності
Коли ви працюєте з великими обсягами даних, ефективність стає критично важливою. Native Execution Engine у Microsoft Fabric усуває типові вузькі місця, які уповільнюють обробку даних. Він прискорює робочі навантаження Parquet і Delta, плавно обробляє складні перетворення та оптимізує ресурсомісткі аналітичні запити, що навантажують процесор. Це означає, що ви менше часу чекаєте й більше часу аналізуєте.
| Аспект продуктивності | Опис |
|---|---|
| Прискорення роботи | Суттєве прискорення для робочих навантажень Parquet і Delta, складних перетворень і ресурсомістких запитів, що навантажують процесор. |
| Результати бенчмарків | До 6× вища продуктивність на навантаженнях TPC-DS SF1000, що суттєво знижує витрати на обчислення. |
| Ефективність доступу до пам’яті | Використовує колоночну обробку та інструкції SIMD для ефективного доступу до пам’яті й паралелізму. |
| Інтеграція з оптимізатором Spark | Зберігає адаптивне виконання запитів, предикатне проштовхування та інші оптимізації Spark. |
| Видимість резервного переходу в реальному часі | Показує, коли непідтримувані операції переходять назад до виконання на JVM, що допомагає відстежувати продуктивність. |
Така ефективність знижує приховані витрати, які часто супроводжують керування великими середовищами даних. Ви не витрачаєте ресурси на зайві цикли процесора чи накладні витрати пам’яті. Колоночна обробка та векторизоване виконання в Native Execution Engine дають змогу швидше сканувати дані та використовувати менше циклів процесора. Це знижує вартість кожного запиту та покращує загальну швидкодію системи.
Підвищення швидкості
Швидкість має значення, коли вам потрібні своєчасні аналітичні висновки з даних. Native Execution Engine забезпечує відчутне прискорення без потреби змінювати наявні застосунки. Багато організацій повідомляють про запити, що виконуються у 2–3 рази швидше на різних аналітичних навантаженнях, лише після ввімкнення цього рушія.
Ось як рушій досягає цього прискорення:
- Spark, як зазвичай, створює логічний і оптимізований фізичний план.
- Gluten визначає оператори, які підтримуються нативно, і замінює їх на швидші нативні аналоги.
- Velox виконує ці нативні оператори за допомогою високооптимізованих ядер C++.
- Якщо операція не підтримується, рушій переходить до виконання Spark на JVM, забезпечуючи стабільну продуктивність.
На наборі даних з одним мільярдом рядків бенчмарки показують скорочення часу виконання на 20–32 секунди на кожен запит під час використання кластеризації з Native Execution Engine. Це відповідає покращенню продуктивності на 20–27% для різних комбінацій кластеризованих колонок. Такі покращення допомагають швидше виконувати аналітику та знижують приховані витрати, пов’язані з тривалими запитами.
⚡ Порада: Використовуючи ці вдосконалення швидкості, ви можете прискорити аналітичні процеси та швидше ухвалювати рішення на основі даних без інвестицій у додаткове обладнання.
Архітектура Microsoft Fabric забезпечує масштабування цих переваг разом із вашими даними. Із зростанням наборів даних рушій зберігає високу продуктивність і ефективність витрат. Така масштабованість робить Fabric відмінним вибором для підприємств, які прагнуть оптимізувати конвеєри аналітики та водночас контролювати витрати.
Сценарії використання Native Execution Engine
Native Execution Engine у Microsoft Fabric пропонує численні практичні застосування, які покращують обробку даних і аналітику. Організації різних галузей використовують його можливості, щоб спростити свої процеси та отримувати цінні аналітичні висновки.
Практичні застосування
Фінансові послуги: Банки та фінансові установи використовують Native Execution Engine для швидкої обробки великих масивів даних. Вони аналізують транзакційні дані в режимі реального часу, що дає змогу ефективніше виявляти шахрайство та оцінювати ризики. Швидкість рушія забезпечує миттєві результати аналізу, а це критично важливо в динамічному фінансовому середовищі.
Охорона здоров’я: Медичні заклади використовують рушій для керування даними пацієнтів і проведення складних аналітичних досліджень. Обробляючи дані з різних джерел, вони можуть покращувати результати лікування завдяки прогнозній аналітиці. Здатність рушія ефективно обробляти великі обсяги даних сприяє ухваленню кращих рішень у клінічній практиці.
Роздрібна торгівля: Ритейлери отримують вигоду від Native Execution Engine, оптимізуючи ланцюг постачання та управління запасами. Вони аналізують дані про продажі, щоб прогнозувати попит і відповідно коригувати рівень запасів. Ця можливість допомагає знижувати витрати та підвищувати задоволеність клієнтів, забезпечуючи наявність товарів.
Телекомунікації: Телекомунікаційні компанії використовують рушій для аналізу записів викликів (CDR) і показників продуктивності мережі. Такий аналіз допомагає виявляти тенденції та оптимізувати надання послуг. Ефективність рушія дає змогу здійснювати моніторинг у реальному часі, що є важливим для підтримання якості обслуговування.
Галузеві сценарії
Native Execution Engine добре проявляє себе в різних галузевих сценаріях, пропонуючи адаптовані рішення для конкретних завдань:
Інжиніринг даних: В інжинірингу даних рушій спрощує перетворення сирих даних на практичні висновки. Він підтримує складні конвеєри даних, дозволяючи організаціям автоматизувати робочі процеси з даними. Ця можливість зменшує ручні зусилля та підвищує продуктивність.
Аналітика великих даних: Компанії, які працюють із великими даними, отримують перевагу завдяки здатності рушія швидко обробляти величезні обсяги інформації. Він дає змогу виконувати складні аналітичні запити без втрати продуктивності. Така ефективність є критично важливою для організацій, які покладаються на стратегії, засновані на даних.
Бізнес-аналітика: Рушій покращує застосунки бізнес-аналітики, забезпечуючи швидші відповіді на запити. Користувачі можуть створювати інтерактивні панелі та звіти, які відображають дані в реальному часі. Ця оперативність дає керівникам змогу швидко діяти на основі найсвіжіших висновків.
Попри свої переваги, впровадження Native Execution Engine може бути пов’язане з викликами. Наприклад, складність шляхів виконання може виникати через наявність кількох рушіїв виконання. Через це стає важче відстежувати залежності між конвеєрами даних. Крім того, операційна відповідальність зростає, оскільки команди мусять керувати налаштуванням продуктивності та контролем витрат у різних рушіях.
⚡ Порада: Розуміння цих викликів допоможе вам краще підготуватися до плавнішого впровадження Native Execution Engine в організації.
Використовуючи Native Execution Engine, ви можете трансформувати свої стратегії роботи з даними та розкрити повний потенціал аналітичних можливостей.
Порівняння з іншими рушіями виконання
Порівнюючи Native Execution Engine з іншими рушіями виконання, ви помітите низку функціональних відмінностей. Вони показують, чим Native Execution Engine вирізняється з погляду продуктивності та ефективності.
Функціональні відмінності
Модель виконання: Традиційні рушії виконання часто покладаються на Java Virtual Machine (JVM) для обробки. Натомість Native Execution Engine використовує C++ для своїх операцій. Такий підхід забезпечує швидше виконання та менші накладні витрати.
Обробка даних: Багато рушіїв обробляють дані рядок за рядком. Натомість Native Execution Engine застосовує векторизоване виконання. Цей метод обробляє дані пакетами, що суттєво прискорює аналітичні запити.
Можливості інтеграції: Деякі рушії потребують значних змін, щоб інтегруватися з наявними системами, тоді як Native Execution Engine пропонує модульну архітектуру. Завдяки цьому його простіше інтегрувати у вашні робочі процеси з даними без суттєвих змін.
Конкурентні переваги
Native Execution Engine має низку конкурентних переваг порівняно з альтернативними рушіями виконання. Ці переваги посилюють можливості обробки даних і загалом покращують продуктивність. Ось короткий огляд цих переваг:
| Конкурентна перевага | Опис |
|---|---|
| Нативне векторизоване виконання | Підвищує ефективність використання ресурсів ЦП і зменшує накладні витрати, пов'язані з виконанням на основі JVM. |
| Розширені оптимізації | Включають SIMD, ледачі обчислення (lazy evaluation) та адаптивне виконання запитів, що додатково підвищують продуктивність. |
| Модульність | Дає змогу повторно використовувати компоненти, що спрощує інтеграцію з наявними системами. |
Використовуючи ці конкурентні переваги, ви можете досягти вищої продуктивності та масштабованості в завданнях аналітики даних. Native Execution Engine не лише прискорює роботу, а й оптимізує використання ресурсів. Ця ефективність перетворюється на економію коштів і вищу продуктивність для вашої організації.
⚡ Порада: Оцінюючи рушії виконання, зважте, наскільки їхні унікальні можливості відповідають вашим конкретним потребам в обробці даних. Правильний вибір може суттєво вплинути на ваші можливості аналітики.
Майбутнє Native Execution Engine
Наступні можливості
Майбутнє Native Execution Engine виглядає перспективно: попереду низка цікавих можливостей. Ці зміни мають покращити можливості обробки даних і загальну продуктивність. Ось ключові можливості, які з'являться найближчим часом:
- Materialized Lake Views (MLVs): Ці представлення посилять реалізацію медальйонної архітектури. Вони роблять конвеєри придатними для промислового використання, що дає змогу ефективніше організувати робочі процеси з даними.
- Інструменти інженерії з підтримкою ШІ: Поява вдосконалених інструментів, таких як Copilot, свідчить про сильний фокус на інтеграції можливостей ШІ в робочі процеси інженерії даних. Ця інтеграція спростить процеси й підвищить продуктивність.
- Уніфіковане управління пам'яттю: Рушій оптимізуватиме управління пам'яттю, що суттєво підвищить продуктивність для інженерів даних і фахівців із data science. Обходячи збирач сміття (garbage collector) Java Virtual Machine, він зменшить вузькі місця продуктивності.
Ці можливості відповідають поточним тенденціям у хмарній обробці даних. Вони допоможуть вам задовольнити вимоги до роботи в реальному часі та з низькою затримкою, які є критично важливими для сучасних застосунків.
Наслідки для аналітики
Удосконалення Native Execution Engine матимуть суттєвий вплив на аналітику та бізнес-аналітику. З розвитком рушія ви можете очікувати таких переваг:
- Вища продуктивність: Native Execution Engine уже забезпечує приріст продуктивності у 6 разів порівняно з open-source Spark без необхідності змінювати код. Це покращення дасть змогу ефективніше виконувати складні аналітичні завдання.
- Аналітика в реальному часі: Завдяки здатності обробляти різні типи даних рушій забезпечуватиме прийом даних з високою пропускною здатністю та гібридні запити з надзвичайно низькою затримкою. Ця можливість є критично важливою для аналітики в реальному часі та процесів, керованих ШІ.
- Оптимізоване використання ресурсів: Архітектура й надалі оптимізуватиме використання ресурсів відповідно до принципів cloud-native. Ця оптимізація допоможе вам керувати витратами та водночас зберігати високу продуктивність.
З виходом цих функцій ви помітите, що Native Execution Engine не лише розширює можливості аналітики, а й допомагає швидше ухвалювати рішення на основі даних. Майбутнє аналітики даних із цими інноваціями виглядає перспективно.
⚡ Порада: Слідкуйте за цими змінами, щоб повною мірою використати потенціал Native Execution Engine у ваших робочих процесах аналітики.
Підсумовуючи, Native Execution Engine у Microsoft Fabric відіграє ключову роль у підвищенні продуктивності обробки даних. Завдяки таким технологіям, як Apache Gluten і Velox, рушій зосереджується на векторизованому виконанні та компіляції just-in-time (JIT). Такий дизайн значно прискорює виконання і мінімізує затримки, дозволяючи ефективно обробляти складні завдання з даними.
Дивлячись у майбутнє, можна очікувати, що Native Execution Engine принесе ще більше покращень. Він долає обмеження традиційного виконання Spark, забезпечуючи швидше виконання запитів і суттєву економію коштів. За результатами бенчмарків, прискорення досягає до шести разів, а зниження витрат становить приблизно 83%, тож цей рушій є масштабованим і ефективним рішенням для сучасної аналітики даних. Щоб глибше розібратися, як ці концепції працюють для звітності та продуктивності OneLake, обов’язково послухайте наш пов’язаний подкаст Speed Power BI with OneLake and Direct Lake!
⚡ Порада: Використовуйте Native Execution Engine, щоб розкрити весь потенціал ваших робочих процесів аналітики та залишатися попереду в середовищі, яке дедалі більше спирається на дані.
Поширені запитання
Що таке нативний рушій виконання в Microsoft Fabric?
Native Execution Engine — це високопродуктивний шар у Microsoft Fabric, який прискорює обробку даних завдяки нативному коду на C++. Він покращує виконання запитів і знижує витрати без змін у наявних застосунках.
Як Native Execution Engine покращує продуктивність?
Він використовує векторизоване виконання та обробку даних у колонковому форматі, щоб швидше опрацьовувати великі набори даних. Такий підхід зменшує навантаження на ЦП і прискорює складні запити, забезпечуючи швидший доступ до результатів.
Чи можна використовувати Native Execution Engine з наявними навантаженнями Spark?
Так, можна. Рушій безшовно інтегрується зі Spark і замінює частину операцій JVM нативним кодом. Щоб отримати переваги у продуктивності, не потрібно переписувати код.
Які формати даних підтримує Native Execution Engine?
Рушій підтримує поширені формати, як-от Parquet і Delta. Ця сумісність дозволяє виконувати ефективні запити безпосередньо до даних у вашому lakehouse у Microsoft Fabric.
Як Native Execution Engine впливає на управління витратами?
Прискорюючи запити та зменшуючи використання ресурсів, рушій знижує витрати на обчислення. Ви економите кошти і водночас швидше отримуєте доступ до аналітичних висновків.
Чи підходить Native Execution Engine для аналітики в реальному часі?
Безумовно. Він підтримує запити з низькою затримкою та високопродуктивне приймання даних, що дозволяє отримувати аналітику в реальному часі й ухвалювати своєчасні рішення.
Які галузі найбільше виграють від Native Execution Engine?
Такі галузі, як фінанси, охорона здоров’я, роздрібна торгівля та телекомунікації, отримують переваги від швидшої обробки даних і покращеної аналітики, що допомагає швидко реагувати на результати аналізу.
Як стежити за продуктивністю Native Execution Engine?
Microsoft Fabric надає інструменти, які показують, коли виконання відбувається нативно, а коли відбувається повернення до JVM. Ця видимість допомагає ефективно оптимізувати робочі процеси з даними.