Коротко: OneLake — це централізоване хмарне сховище даних, вбудоване в Microsoft Fabric, яке автоматично об’єднує всі аналітичні артефакти організації в одному просторі. Побудоване на Azure Data Lake Storage Gen2, воно зберігає дані у відкритому форматі Delta Lake / Parquet і підтримує підключення зовнішніх джерел через Shortcuts. Стаття для дата-інженерів і аналітиків, які хочуть зрозуміти, як OneLake влаштований зсередини і де його реальні межі.

Вступ

Більшість data-команд рано чи пізно стикаються з однією і тією ж проблемою: дані розкидані між десятками сховищ. S3 для одного продукту, ADLS для іншого, окремий DWH, окремий data lake, ще й кілька баз у різних хмарах. Управляти цим — окрема повноцінна робота.

Microsoft Fabric OneLake намагається вирішити цю проблему структурно: один тенант — одне логічне сховище для всієї організації. Усі Fabric-сервіси пишуть туди автоматично, зовнішні джерела підключаються через Shortcuts, а формат зберігання — відкритий Delta Lake / Parquet.

У цій статті розберемо, як OneLake влаштований фізично і логічно, як працюють Shortcuts, як організувати medallion-архітектуру і яких помилок варто уникати з самого початку.


Що таке OneLake і чому це інший підхід до зберігання даних?

Від роздробленості до єдиного сховища: контекст проблеми

Класичний сценарій у середній компанії: аналітична команда має доступ до п’яти різних сховищ, кожне з власними правилами доступу, форматами і пайплайнами синхронізації. Щоб зрозуміти, де “правильна” версія даних, потрібно спочатку розібратися, яке сховище є джерелом правди.

OneLake вирішує це концептуально. Аналогія проста: як OneDrive — єдине місце для файлів користувача, OneLake — єдине місце для даних організації. Один тенант Microsoft Fabric отримує один OneLake. Усі workspace-и і всі артефакти всередині них автоматично пишуть у це сховище.

OneLake є storage-фундаментом для lakehouse-підходу у Fabric. Сам підхід lakehouse реалізується через Lakehouse items: вони поєднують структуровані таблиці з ACID-транзакціями та зберігання файлів різних форматів в одному просторі.

OneLake як фундамент Microsoft Fabric

Усуваючи data silos, OneLake спрощує governance і знижує операційні витрати на переміщення даних між системами. Але важливо розуміти: OneLake — це фундамент платформи, а не окремий продукт. Він існує тільки в контексті Microsoft Fabric.


Як влаштована OneLake архітектура зсередини?

Фізичний рівень: ADLS Gen2 як основа

OneLake фізично базується на Azure Data Lake Storage Gen2. Це означає, що під капотом ви отримуєте перевірену інфраструктуру: ієрархічний простір імен, підтримку великих обсягів даних і нативну інтеграцію з Azure-екосистемою.

Але OneLake — це не просто ADLS Gen2 з іншою назвою. Поверх фізичного рівня Microsoft додав логічний шар: уніфіковане управління, автоматичну інтеграцію з усіма Fabric-сервісами і єдину модель безпеки.

Логічна організація: тенант → workspace → item

Ієрархія OneLake виглядає так:

  • Тенант — весь OneLake організації. Один тенант Fabric = один OneLake.
  • Workspace — логічний контейнер для проєктів або команд. Аналог папки верхнього рівня.
  • Item — конкретний артефакт: Lakehouse, Warehouse, Eventhouse тощо. Кожен item автоматично отримує власний розділ у OneLake без ручного налаштування.

Ця ієрархія важлива для розуміння того, як налаштовувати доступ і як організовувати дані між командами.

Delta Lake і Parquet: чому відкритий формат — це стратегічне рішення

У Fabric Lakehouse структуровані таблиці зазвичай зберігаються як Delta/Parquet, а Files/ можуть містити довільні формати. OneLake загалом розвивається як логічний data lake для відкритих форматів, зокрема Delta Lake і Iceberg, тому важливо розрізняти OneLake як storage layer і Lakehouse/Warehouse як аналітичні items поверх нього.

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

Delta Lake додає до Parquet transaction log — директорію _delta_log, де зберігається вся історія змін. Це дає ACID-транзакції, schema evolution і можливість time travel: запит даних станом на будь-який момент у минулому.

Стратегічна перевага: формат Delta / Parquet читається зовнішніми інструментами напряму. Якщо завтра ви захочете підключити Databricks або Apache Spark поза Fabric — дані залишаться доступними без конвертації.

Як різні Fabric-артефакти пишуть у OneLake

АртефактТип данихФормат у OneLakeОсновний use case
LakehouseСтруктуровані + неструктурованіDelta (Tables/) + будь-який (Files/)Data engineering, ML-підготовка
WarehouseСтруктурованіDelta ParquetSQL-аналітика, звітність
Eventhouse / KQL DatabaseЧасові ряди, логиВласний формат (Kusto) + Delta exportReal-time аналітика
Power BI semantic model (Direct Lake)СтруктурованіЧитає з Delta напрямуBI та дашборди

Структура папок у Lakehouse виглядає так:

MyLakehouse.Lakehouse/
├── Tables/
   ├── sales/
      ├── _delta_log/
         └── 00000000000000000000.json
      ├── part-00000-abc123.snappy.parquet
      └── part-00001-def456.snappy.parquet
   └── customers/
       ├── _delta_log/
       └── part-00000-xyz789.snappy.parquet
└── Files/
    ├── raw/
       └── orders_2024_01.csv
    └── exports/
        └── report.json

Tables/ — зона для таблиць, насамперед Delta-таблиць у типових lakehouse-сценаріях. Саме Delta-таблиці дають transaction log, time travel і ACID-переваги. Files/ — зона для довільних файлів.


Що таке OneLake Shortcuts і як вони працюють?

Shortcuts як ‘портали’ до зовнішніх даних

Shortcuts — одна з найпотужніших і водночас найменш зрозумілих фіч OneLake архітектури. Суть проста: ви бачите дані у OneLake, але фізично вони залишаються у зовнішньому сховищі.

Жодного переміщення або копіювання. Shortcut — це логічне посилання з делегованою авторизацією. Fabric виступає проксі: отримує запит від користувача, авторизується у зовнішньому сховищі через service principal або managed identity і повертає дані.

Підтримувані джерела: AWS S3, GCS, ADLS Gen2, Dataverse та інші

OneLake підтримує shortcuts до наступних джерел:

  • Azure Data Lake Storage Gen2 — GA
  • AWS S3 — GA
  • S3-compatible storage, зокрема Cloudflare R2 або MinIO — GA
  • Google Cloud Storage — GA
  • Microsoft Dataverse — доступний через Dataverse integration; Dataverse shortcuts є read-only
  • OneDrive та SharePoint Folder — preview як джерела shortcuts у lakehouse, з актуальними покращеннями автентифікації
  • On-premises і network-restricted джерела — через Fabric on-premises data gateway, GA для підтримуваних типів shortcut
  • OneLake-to-OneLake — для cross-workspace sharing без копіювання

Типова ситуація в командах: компанія роками накопичувала дані в AWS S3 і хоче почати використовувати Microsoft Fabric для аналітики. Shortcuts дозволяють підключити S3-бакети до OneLake і одразу почати роботу — без міграції даних і без подвійних витрат на зберігання.

Shortcuts vs копіювання: коли що обирати

Shortcuts — розумний компроміс між гнучкістю та продуктивністю. Але є нюанси.

Коли shortcuts — правильний вибір:
– Поступова міграція: читаєте з S3, поступово переносите дані в OneLake
– Федеративний доступ: дані мають залишатися у першоджерелі за вимогами compliance
– Cross-workspace sharing: одні й ті самі дані потрібні кільком командам без дублювання
– Мультиклаудна аналітика: дані в різних хмарах, аналітика в одному місці

Коли краще скопіювати дані:
– Критичні аналітичні навантаження, де latency shortcuts недопустима
– Дані часто трансформуються — нативні Delta-таблиці дають більше можливостей оптимізації
– Потрібен повний контроль над форматом і партиціонуванням

Деякі Spark-операції на shortcuts працюють повільніше, ніж на нативних даних у OneLake. Це не критично для більшості сценаріїв, але варто враховувати при проєктуванні продуктивних пайплайнів.


Medallion-архітектура у OneLake: Bronze, Silver, Gold на практиці

Чому medallion — це не просто модний термін

Medallion-архітектура — рекомендований Microsoft патерн для організації даних у OneLake. Три шари з чіткими обов’язками:

  • Bronze — сирі дані як є. Мінімальна обробка, максимальне збереження. Append-only: нічого не видаляємо, нічого не змінюємо.
  • Silver — очищені, нормалізовані дані. Тут відбуваються joins, дедуплікація, базові трансформації. Дані вже придатні для аналізу.
  • Gold — агрегати і бізнес-метрики, готові для споживання Power BI, ML-моделями або кінцевими API.

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

Як організувати шари у OneLake: workspace vs Lakehouse

Два підходи, кожен зі своїми компромісами.

Варіант 1: окремий Lakehouse для кожного шару

Workspace: DataPlatform
├── Bronze_Lakehouse
   └── Tables/
       ├── raw_orders/
       └── raw_customers/
├── Silver_Lakehouse
   └── Tables/
       ├── orders_cleaned/
       └── customers_deduplicated/
└── Gold_Lakehouse
    └── Tables/
        ├── sales_summary/
        └── customer_ltv/

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

Варіант 2: один Lakehouse з папками-шарами

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

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

Пайплайни для просування даних між шарами

Основні інструменти для переміщення даних між шарами:

# Приклад: просування даних з Bronze до Silver через PySpark у Fabric Notebook

from pyspark.sql import functions as F
from delta.tables import DeltaTable

# Шляхи до Bronze та Silver Lakehouse у OneLake
# Замініть workspace_name, Bronze_Lakehouse і Silver_Lakehouse на ваші реальні назви

bronze_path = (
    "abfss://workspace_name@onelake.dfs.fabric.microsoft.com/"
    "Bronze_Lakehouse.Lakehouse/Tables/raw_orders"
)

silver_path = (
    "abfss://workspace_name@onelake.dfs.fabric.microsoft.com/"
    "Silver_Lakehouse.Lakehouse/Tables/orders_cleaned"
)

# 1. Читаємо сирі дані з Bronze-шару
bronze_df = spark.read.format("delta").load(bronze_path)

# 2. Виконуємо базові трансформації для Silver-шару
silver_df = (
    bronze_df
    .dropDuplicates(["order_id"])
    .filter(F.col("order_status").isNotNull())
    .withColumn("order_date", F.to_date(F.col("order_date_str"), "yyyy-MM-dd"))
    .drop("order_date_str", "_ingestion_timestamp")
)

# 3. Якщо Silver Delta-таблиця вже існує — виконуємо upsert через MERGE.
# Якщо таблиці ще немає — створюємо її першим записом.

if DeltaTable.isDeltaTable(spark, silver_path):
    silver_table = DeltaTable.forPath(spark, silver_path)

    (
        silver_table.alias("target")
        .merge(
            silver_df.alias("source"),
            "target.order_id = source.order_id"
        )
        .whenMatchedUpdateAll()
        .whenNotMatchedInsertAll()
        .execute()
    )

else:
    (
        silver_df.write
        .format("delta")
        .mode("overwrite")
        .save(silver_path)
    )

print("Дані успішно просунуті з Bronze до Silver.")

Fabric Data Factory і Spark Notebooks — два основні інструменти для побудови таких пайплайнів. А якщо ви хочете навчитись будувати повноцінну інфраструктуру даних з нуля, спеціалізація Analytics & Data Engineer охоплює саме цей стек: від проєктування архітектури до написання продуктивних пайплайнів.


Як OneLake керує безпекою та доступом до даних?

OneLake security: один периметр безпеки для всіх даних

Аутентифікація у Microsoft Fabric OneLake відбувається через Microsoft Entra ID (колишній Azure AD). Один identity provider для всього: користувачі, сервісні акаунти, managed identities.

Це спрощує управління, але водночас підвищує ставки: компрометація облікового запису Entra ID дає доступ до всього, що цей акаунт може бачити у Fabric.

Рівні доступу: workspace, item, row-level і column-level security

Система доступу в OneLake багаторівнева:

  • Workspace roles — Admin, Member, Contributor, Viewer. Базовий рівень: визначає, що користувач може робити з усіма артефактами у workspace.
  • Item-level permissions — доступ до конкретного Lakehouse або Warehouse без доступу до всього workspace. Корисно, коли різні команди мають різні потреби.
  • Row-level security (RLS) і column-level security (CLS) — можуть реалізовуватись через Power BI semantic models, Warehouse/SQL security або через OneLake Security preview залежно від item і сценарію доступу. Важливо тестувати enforcement окремо для Spark, SQL Endpoint, Power BI Direct Lake та зовнішніх engines, бо модель доступу залежить від ролей workspace, item permissions і підтримки конкретного engine.
  • OneLake Data Access Control — OneLake Security, раніше відома в матеріалах як OneSecurity, — це напрям розвитку granular access control у OneLake. Станом на 2026 частина можливостей, зокрема OneLake security roles для tables/folders, RLS і CLS, перебуває у preview, тому перед продакшен-впровадженням потрібно перевіряти актуальний статус у документації Microsoft.

Типова помилка: давати широкі workspace-права замість гранульованих item-permissions. Результат — або надлишковий доступ до чутливих даних, або заблоковані колеги, яким потрібен доступ лише до одного Lakehouse.

Чому централізоване сховище потребує зрілого Data Governance

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

Без чітких правил governance централізоване сховище може перетворитися на “data swamp” — місце, де дані є, але ніхто не розуміє, що де лежить і кому належить.

Практичні рекомендації для старту:
– Принцип least privilege: давайте мінімально необхідний доступ
– Регулярний аудит прав доступу — хто і до чого має доступ
– Data classification: позначайте чутливі дані через Microsoft Purview


Типові помилки та реальні обмеження OneLake, про які мовчать у маркетингових матеріалах

Обмеження, які важливо знати до початку проєкту

OneLake — аналітичне сховище, а не транзакційне. Якщо потрібна OLTP-база з мілісекундними відповідями на точкові запити — OneLake для цього не підходить. Для real-time сценаріїв із sub-second latency у Fabric є Eventhouse / KQL Database.

Delta Lake small files problem. Потоковий запис із частими мікробатчами може генерувати тисячі дрібних Parquet-файлів. Це уповільнює читання і збільшує навантаження на transaction log. Вирішення — регулярні операції OPTIMIZE і VACUUM.

Shortcuts мають обмеження продуктивності. Деякі Spark-операції на shortcuts можуть бути повільнішими, ніж на нативних даних у OneLake. Для критичних аналітичних навантажень варто оцінювати продуктивність окремо.

Vendor tie-in на рівні платформи. Формат Delta / Parquet відкритий, але екосистема Fabric прив’язує до Microsoft-інструментів. Перехід на іншу платформу — це не просто перенесення файлів, а переналаштування всіх пайплайнів, ролей і інтеграцій.

Помилки у проєктуванні, які коштують дорого

Помилка #1: зберігати все у Files/ замість Tables/. Ви втрачаєте версіонування, time travel і оптимізацію запитів Delta Lake. Якщо дані структуровані — використовуйте Tables/.

Помилка #2: ігнорувати партиціонування. Великі таблиці без партиціонування за датою або іншим ключем фільтрації — це повне сканування таблиці на кожен запит.

Помилка #3: не запускати VACUUM і OPTIMIZE. Transaction log і дрібні файли накопичуються. Через кілька місяців активної роботи це помітно впливає на продуктивність.

-- Виконувати у Fabric Notebook / Spark SQL, а не в SQL Analytics Endpoint
OPTIMIZE sales_summary
WHERE order_date >= '2025-01-01'
VORDER;

-- Очищення старих версій Delta-файлів
VACUUM sales_summary RETAIN 168 HOURS;

Помилка #4: плутати workspace roles з item permissions. Workspace roles — широкий доступ до всього workspace. Item permissions — точковий доступ до конкретного артефакту. Для більшості сценаріїв правильна комбінація — мінімальні workspace roles плюс точні item permissions.


FAQ: питання про OneLake та Microsoft Fabric

Питання: Що таке OneLake у Microsoft Fabric?
Відповідь: OneLake — це єдине централізоване хмарне сховище даних, вбудоване в платформу Microsoft Fabric, яке автоматично доступне для всіх сервісів екосистеми. Воно побудоване на базі Azure Data Lake Storage Gen2 і зберігає структуровані дані у відкритому форматі Delta Parquet. Завдяки цьому організація має одне джерело правди замість розрізнених сховищ. Усі Fabric-артефакти — Lakehouse, Warehouse, Eventhouse — автоматично пишуть у OneLake без додаткового налаштування.

Питання: Як почати роботу з OneLake у Microsoft Fabric?
Відповідь: Щоб почати роботу з OneLake, достатньо створити Workspace у Microsoft Fabric — OneLake активується автоматично. Далі підключайте Lakehouse, Warehouse або Dataflow, і всі дані зберігатимуться в єдиному просторі. Для доступу до файлів можна використовувати OneLake Explorer, Azure Storage Explorer або ABFS API. Перший практичний крок — створити Lakehouse, завантажити тестові дані у Files/ і перетворити їх на Delta-таблицю через Spark Notebook.

Питання: OneLake vs Azure Data Lake Storage — у чому різниця?
Відповідь: ADLS Gen2 — інфраструктурний сервіс зберігання, який потребує ручного налаштування доступу, безпеки та інтеграцій з кожним інструментом окремо. OneLake побудований поверх ADLS Gen2, але додає рівень абстракції: автоматичну інтеграцію з усіма сервісами Fabric, Shortcuts для посилань на зовнішні дані та єдину модель управління доступом. Простіше кажучи, OneLake — це ADLS Gen2 з керованою надбудовою для аналітичних команд, де більшість інфраструктурних завдань вирішені за замовчуванням.

Питання: Скільки коштує використання OneLake у Microsoft Fabric?
Відповідь: OneLake не є окремим продуктом із власною підпискою, але зберігання даних у OneLake тарифікується окремо від Fabric compute capacity. Орієнтовна ціна для OneLake storage — близько $0.023 за GB/month у US West 2, але фінальну суму потрібно перевіряти в Azure Pricing Calculator з урахуванням регіону, BCDR, cache, retention і можливого data transfer.

Питання: Які помилки роблять при роботі з OneLake?
Відповідь: Найпоширеніша помилка — дублювання даних замість використання Shortcuts, що призводить до зайвих витрат на зберігання і проблем із консистентністю. Команди також часто ігнорують medallion-архітектуру і зберігають усе в одному шарі, ускладнюючи управління якістю даних. Ще одна типова проблема — зберігати структуровані дані у Files/ замість Tables/, втрачаючи переваги Delta Lake. І майже завжди недооцінюють важливість регулярного OPTIMIZE та VACUUM для підтримки продуктивності.


Висновок: OneLake як ключовий інструмент сучасного дата-інженера

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

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