DataPartner365

Jouw partner voor datagedreven groei en inzichten

Microsoft Fabric: Complete Gids voor 2026

Gepubliceerd: 23 maart 2026
Leestijd: 12 minuten
Dataplatformen

Ontdek hoe Microsoft Fabric alle data-tools verenigt in één platform. Van OneLake tot Real-Time Intelligence: alles wat je moet weten.

Wat is Microsoft Fabric en waarom is het in 2026 onmisbaar?

De data-wereld beweegt razendsnel. Organisaties worstelen met silo's: een Azure Synapse-omgeving hier, Power BI daar, een Azure Data Factory-pipeline elders en een apart Azure Machine Learning-workspace bovenop. Microsoft heeft al deze puzzelstukjes in 2023 samengebracht in Microsoft Fabric — één geïntegreerd SaaS-analyticsplatform dat data-engineering, data warehousing, real-time analytics, data science én business intelligence onder één dak brengt.

In 2026 is Fabric niet langer een preview-product; het is de strategische kern van de Microsoft analytics-stack. Grote Nederlandse organisaties — van Schiphol tot Rabobank, van gemeenten tot zorgkoepels — evalueren of migreren actief naar Fabric. Of je nu een data engineer, architect of BI-developer bent: begrip van Fabric is in 2026 een basisvereiste op je cv.

Definitie: Microsoft Fabric

Microsoft Fabric is een unified SaaS analytics platform dat compute, opslag (OneLake), en workloads voor Data Engineering, Data Factory, Data Warehouse, Real-Time Intelligence, Data Science en Power BI integreert in één doorzoekbare, gouvernance-bewuste ervaring — aangedreven door Microsoft 365-identiteiten en gefactureerd via Fabric Capacity.

In dit artikel nemen we je mee door de architectuur, laten we concrete PySpark- en SQL-codevoorbeelden zien, vergelijken we Fabric met Databricks en Snowflake, en geven we production-grade best practices die je morgen al kunt toepassen.

Architectuur: hoe werkt Microsoft Fabric?

De kern van Fabric is OneLake — één logisch data lake per tenant, gebouwd op Azure Data Lake Storage Gen2. Alle Fabric-workloads lezen uit en schrijven naar OneLake. Dat elimineert data-kopiëren tussen services en zorgt voor één consistent beveiligings- en gouvernancemodel.

OneLake

Één multi-cloud, multi-regio data lake per tenant. Delta Parquet als open standaard. Shortcuts naar AWS S3 en GCS mogelijk.

Fabric Workloads

Data Engineering (Notebooks/Spark), Data Factory (pipelines), Data Warehouse, Real-Time Intelligence (Eventhouse), Data Science en Power BI.

Unified Governance

Microsoft Purview-integratie voor data-catalogus, lineage, sensitivity labels en toegangsbeheer via één controlevlak.

De Fabric Workspaces & Capaciteiten

Fabric werkt via Workspaces die aan een Capacity (F-SKU of P-SKU) zijn gekoppeld. Hieronder een overzicht van de meest gebruikte SKU's voor Nederlandse organisaties:

SKU CUs (Capacity Units) Typische use case Schatting prijs/maand (€)
F2 2 PoC / ontwikkeling ~€ 270
F8 8 Small teams, departmentaal ~€ 1.080
F32 32 Enterprise, meerdere teams ~€ 4.300
F64 64 Grote organisaties, productie ~€ 8.600
F128+ 128+ Dataplatform van de hele organisatie € 17.200+

Tip: Fabric Trial

Microsoft biedt een gratis 60-dagen Fabric Trial per tenant aan (F64-equivalent). Ideaal voor een serieuze PoC. Start via app.fabric.microsoft.com met je werk-tenant.

Stappenplan: Van ruwe data naar dashboard in Fabric

1

Workspace & Lakehouse aanmaken

Maak een Workspace aan, koppel een Fabric Capacity en voeg een Lakehouse item toe. OneLake-opslag wordt automatisch ingericht.

2

Data inladen via Data Factory of Notebook

Gebruik een Copy-activiteit in Data Factory om brondata naar de Files/-sectie van je Lakehouse te kopiëren, of laad direct via een PySpark Notebook.

3

Transformatie in de Bronze → Silver → Gold laag

Transformeer data met PySpark Notebooks of SQL. Sla resultaten op als Delta-tabellen in de Tables/-sectie voor automatische SQL-endpoint beschikbaarheid.

4

Semantic Model & Power BI rapport

Het Default Semantic Model van het Lakehouse is direct beschikbaar in Power BI. Bouw een rapport zonder data te kopiëren — DirectLake-modus zorgt voor snelle query's.

5

Governance via Purview

Koppel Microsoft Purview voor automatische data-lineage, sensitivity labels en toegangsbeheer op kolom- of rijniveau.

Praktische codevoorbeelden

3.1 PySpark Notebook: Bronze → Silver transformatie

Hieronder een realistisch voorbeeld van een medallion-architectuur transformatie in een Fabric Notebook. We laden ruwe CSV-bestanden, valideren data en slaan het resultaat op als een Delta-tabel.

# ─────────────────────────────────────────────────────────
# Fabric Notebook: Bronze → Silver transformatie
# Doel: Klantorders valideren en verrijken
# ─────────────────────────────────────────────────────────

from pyspark.sql import SparkSession
from pyspark.sql.functions import (
    col, to_date, upper, trim, when, current_timestamp, lit
)
from pyspark.sql.types import DoubleType
from delta.tables import DeltaTable

# In Fabric: spark session is al beschikbaar als 'spark'
# Lakehouse naam configureren
LAKEHOUSE_NAME = "lh_sales"

# ── BRONZE: Lees ruwe CSV uit Files/bronze/ ──────────────
df_raw = (
    spark.read
    .option("header", "true")
    .option("inferSchema", "true")
    .csv(f"abfss://[workspace-id]@onelake.dfs.fabric.microsoft.com/"
         f"{LAKEHOUSE_NAME}.Lakehouse/Files/bronze/orders/*.csv")
)

print(f"Geladen records: {df_raw.count()}")
df_raw.printSchema()

# ── VALIDATIE & TRANSFORMATIE ────────────────────────────
df_silver = (
    df_raw
    # Kolomnamen normaliseren
    .withColumnRenamed("order_id", "order_id")
    .withColumnRenamed("klant_naam", "customer_name")
    # Datatypes corrigeren
    .withColumn("order_date", to_date(col("order_date"), "dd-MM-yyyy"))
    .withColumn("order_amount", col("order_amount").cast(DoubleType()))
    # Strings opschonen
    .withColumn("customer_name", trim(upper(col("customer_name"))))
    .withColumn("country_code",  trim(upper(col("country_code"))))
    # Null-handling
    .filter(col("order_id").isNotNull())
    .filter(col("order_amount") > 0)
    # Audit kolommen toevoegen
    .withColumn("_ingested_at", current_timestamp())
    .withColumn("_source", lit("erp_export_csv"))
    # Alleen NL en BE orders voor deze pipeline
    .filter(col("country_code").isin("NL", "BE"))
)

print(f"Silver records na validatie: {df_silver.count()}")

# ── UPSERT naar Delta (merge on order_id) ────────────────
silver_table_path = (
    f"abfss://[workspace-id]@onelake.dfs.fabric.microsoft.com/"
    f"{LAKEHOUSE_NAME}.Lakehouse/Tables/silver_orders"
)

if DeltaTable.isDeltaTable(spark, silver_table_path):
    delta_tbl = DeltaTable.forPath(spark, silver_table_path)
    (
        delta_tbl.alias("target")
        .merge(
            df_silver.alias("source"),
            "target.order_id = source.order_id"
        )
        .whenMatchedUpdateAll()
        .whenNotMatchedInsertAll()
        .execute()
    )
    print("✅ Merge voltooid")
else:
    df_silver.write.format("delta").save(silver_table_path)
    print("✅ Initiële schrijfactie voltooid")

OneLake ABFS-pad

In productie-notebooks kun je de Lakehouse-shorthand gebruiken: Files/bronze/... en Tables/silver_orders — Fabric lost het volledige ABFS-pad automatisch op wanneer het Lakehouse aan het notebook is toegevoegd via "Add Lakehouse".

3.2 T-SQL in het Fabric Data Warehouse

Het Fabric Data Warehouse biedt een volwaardig T-SQL-endpoint. Hieronder een voorbeeld van een Gold-laag aggregatie met een incrementele load-strategie.

-- ─────────────────────────────────────────────────────────
-- Fabric Data Warehouse: Gold aggregatie - Dagelijkse omzet
-- ─────────────────────────────────────────────────────────

-- Stap 1: Maak de Gold-tabel aan (eenmalig)
CREATE TABLE IF NOT EXISTS gold.daily_revenue (
    report_date     DATE         NOT NULL,
    country_code    VARCHAR(2)   NOT NULL,
    product_category VARCHAR(100),
    total_orders    INT,
    total_revenue   DECIMAL(18,2),
    avg_order_value DECIMAL(10,2),
    _updated_at     DATETIME2    DEFAULT GETDATE()
);

-- Stap 2: Incrementele load (run dagelijks via Data Factory)
MERGE INTO gold.daily_revenue AS target
USING (
    SELECT
        CAST(o.order_date AS DATE)      AS report_date,
        o.country_code,
        p.category                       AS product_category,
        COUNT(DISTINCT o.order_id)       AS total_orders,
        SUM(o.order_amount)              AS total_revenue,
        AVG(o.order_amount)              AS avg_order_value
    FROM
        silver.orders o
        LEFT JOIN silver.products p
            ON o.product_id = p.product_id
    WHERE
        -- Alleen gisteren verwerken (incrementeel)
        CAST(o.order_date AS DATE) = CAST(DATEADD(DAY, -1, GETDATE()) AS DATE)
    GROUP BY
        CAST(o.order_date AS DATE),
        o.country_code,
        p.category
) AS source
ON  target.report_date    = source.report_date
AND target.country_code   = source.country_code
AND target.product_category = source.product_category

WHEN MATCHED THEN
    UPDATE SET
        total_orders    = source.total_orders,
        total_revenue   = source.total_revenue,
        avg_order_value = source.avg_order_value,
        _updated_at     = GETDATE()

WHEN NOT MATCHED THEN
    INSERT (report_date, country_code, product_category,
            total_orders, total_revenue, avg_order_value)
    VALUES (source.report_date, source.country_code,
            source.product_category, source.total_orders,
            source.total_revenue, source.avg_order_value);

-- Stap 3: Verificatie
SELECT
    report_date,
    country_code,
    SUM(total_revenue) AS dag_omzet_eur
FROM gold.daily_revenue
WHERE report_date >= DATEADD(DAY, -7, GETDATE())
GROUP BY report_date, country_code
ORDER BY report_date DESC, dag_omzet_eur DESC;

3.3 Real-Time Intelligence: KQL voor streaming data

Fabric's Eventhouse (voorheen Real-Time Analytics) gebruikt Kusto Query Language (KQL) voor sub-seconde queries op streaming data. Handig voor IoT, clickstreams of financiële transacties.

// ─────────────────────────────────────────────────────────
// KQL: Fraud-detectie op real-time betaaltransacties
// Eventhouse tabel: PaymentEvents
// ─────────────────────────────────────────────────────────

// Verdachte transacties: > 3 pogingen in 60 seconden, 
// wisselende locaties
PaymentEvents
| where ingestion_time() > ago(1h)
| where EventType == "payment_attempt"
| summarize
    AantalPogingen    = count(),
    UniekeLocaties    = dcount(GeoCity),
    TotaalBedrag      = sum(Amount),
    EerstePoging      = min(EventTime),
    LaatstePogingen   = max(EventTime)
  by CustomerId, bin(EventTime, 60s)
| where AantalPogingen > 3 and UniekeLocaties > 1
| project
    CustomerId,
    EventTime,
    AantalPogingen,
    UniekeLocaties,
    TotaalBedrag,
    DuurSeconden = datetime_diff('second', LaatstePogingen, EerstePoging)
| order by AantalPogingen desc

Fabric vs. Databricks vs. Snowflake

De vraag die elke Nederlandse data-architect in 2026 krijgt: "Moeten we naar Fabric of bij Databricks/Snowflake blijven?" Er is geen universeel antwoord, maar onderstaande tabel helpt je de juiste keuze te maken voor jouw context.

Criterium Microsoft Fabric Databricks Snowflake
Primaire sterkte End-to-end unified (BI t/m engineering) ML/AI, grote Spark-workloads Data sharing, SQL analytics
Opslag standaard Delta Parquet (OneLake) Delta Lake (open source) Proprietary (FDN)
BI-integratie ⭐⭐⭐⭐⭐ (Power BI native) ⭐⭐⭐ (via JDBC/partner) ⭐⭐⭐ (via partner connect)
ML / AI ⭐⭐⭐⭐ (MLflow + Copilot) ⭐⭐⭐⭐⭐ (MLflow native, Unity Catalog) ⭐⭐⭐ (Snowpark ML)
Real-time streaming ⭐⭐⭐⭐ (Eventhouse/KQL) ⭐⭐⭐⭐ (Structured Streaming) ⭐⭐ (Snowpipe Streaming)
Multi-cloud ⭐⭐⭐ (Shortcuts AWS S3/GCS) ⭐⭐⭐⭐⭐ (native AWS/Azure/GCP) ⭐⭐⭐⭐⭐ (native alle clouds)
Microsoft 365-integratie ⭐⭐⭐⭐⭐ (Teams, SharePoint, Entra) ⭐⭐ (via connectors) ⭐⭐ (via connectors)
Licentiemodel Capacity-based (F-SKU) DBU-based (variabel) Credit-based (variabel)
Ideaal voor Microsoft-shops, BI-heavy orgs ML-teams, Spark-engineers Data-sharing, SQL-first teams

Praktijkcase: Nederlandse Retailer

Een middelgrote Nederlandse retailer (250 medewerkers, al Microsoft 365 klant) had Power BI Premium P1, Azure Synapse Analytics en Azure Data Factory in gebruik — drie aparte contracten en drie beheer-teams. Na migratie naar Fabric F64 daalden de totale platform-kosten met ~35%, het aantal beheer-FTE's voor het dataplatform van 4 naar 2,5 — en het gemiddelde dashboard-refresh ging van 30 minuten naar DirectLake real-time.

Best practices voor Fabric in productie

Medallion Architectuur

Structureer je Lakehouse altijd in Bronze/Silver/Gold lagen. Gebruik aparte Delta-tabellen per laag, nooit overschrijven — altijd upsert via MERGE.

Git-integratie

Koppel je Workspace aan Azure DevOps of GitHub. Fabric items (Notebooks, Pipelines, Semantic Models) worden als JSON opgeslagen — volledig versie-beheerbaar.

Capacity Smoothing

Fabric gebruikt "bursting + smoothing" over 24 uur. Plan zware batch-jobs buiten kantoortijden om piekoverschrijding (throttling) te vermijden.

Concrete production-tips

Security: Workspace Rollen vs. Item Permissions

Gebruik Workspace Rollen (Admin, Member, Contributor, Viewer) voor teamtoegang. Gebruik Item Permissions voor fijnmazige toegang tot individuele Lakehouses of Warehouses. Combineer met Row-Level Security in Semantic Models voor business-user restricties. Activeer OneLake Data Access Control (DACL) voor kolom- en rijbeveiliging op Delta-laag.

Performance: DirectLake vs. Import vs. DirectQuery

  • DirectLake (aanbevolen): Leest rechtstreeks Delta-bestanden uit OneLake. Geen data-kopie, snelste refresh, tot ~300 GB per tabel ondersteund.
  • Import: Gebruik alleen voor kleine dimensietabellen (< 1 GB) of externe bronnen.
  • DirectQuery: Vermijd voor complexe rapporten; hoge latency op grote datasets.

Delta Table Onderhoud

Plan wekelijks een OPTIMIZE + VACUUM op grote Delta-tabellen:

-- In Fabric Notebook (SQL magic)
%%sql
OPTIMIZE silver.orders ZORDER BY (order_date, country_code);
VACUUM silver.orders RETAIN 168 HOURS;  -- 7 dagen history bewaren

Deployment Pipelines

Gebruik Fabric's ingebouwde Deployment Pipelines (Dev → Test → Prod) voor gecontroleerde uitrol van Notebooks, Pipelines en Semantic Models. Combineer met Azure DevOps CI/CD via de Fabric REST API voor volledige automatisering.

Conclusie: Wanneer wel of niet kiezen voor Fabric?

Microsoft Fabric is in 2026 een volwassen, enterprise-grade dataplatform geworden. De propositie is sterk als je organisatie al diep in het Microsoft-ecosysteem zit. Toch is het geen universeel antwoord voor élke situatie.

Scenario Advies Reden
Microsoft 365 + Power BI Premium klant ✅ Stap over naar Fabric Directe kostenreductie, één platform, P-SKU → F-SKU migratie is eenvoudig
Azure Synapse + ADF gebruiker ✅ Migreer naar Fabric Synapse Analytics wordt afgebouwd; Fabric is de successor
Zwaar ML/AI-team met Databricks Unity Catalog ⚠️ Hybride overwegen Databricks MLflow-ecosysteem is volwassener; Shortcuts naar OneLake wel mogelijk
Multi-cloud strategie (AWS primary) ⚠️ Voorzichtig evalueren OneLake draait op Azure; Shortcuts bieden beperkte multi-cloud flexibiliteit
Kleine organisatie (< 50 medewerkers) ✅ F2/F4 als start Lage instapdrempel, alles-in-één, schaalt mee met de organisatie
Compliance-gevoelige sector (zorg, overheid) ✅ Met aandacht voor regio OneLake is beschikbaar in West-Europe (Nederland); AVG-compliance goed invulbaar

De bottom line: voor de meeste Nederlandse organisaties die al met Microsoft-technologie werken, is Fabric de logische volgende stap. Het platform rijpt snel, de roadmap is ambitieus (Copilot-integratie, AI Skills, Fabric Databases) en de community groeit hard. Wacht niet te lang — wie nu een PoC

Abdullah Özisik - AI Data Engineer

👨‍💻 Over de auteur

Abdullah Özisik — Data Engineer met specialisatie in AI-integratie en MLOps. Expert in het bouwen van intelligente data pipelines die gebruik maken van machine learning en generative AI voor geautomatiseerde data processing en optimalisatie.