# Zero-ETL Patterns with Microsoft Fabric **Last updated:** 2026-02 **Status:** GA (Database Mirroring), Preview (Open Mirroring for some sources) **Category:** Data Engineering for AI --- ## Introduksjon Zero-ETL i Microsoft Fabric representerer et paradigmeskifte i hvordan organisasjoner integrerer og konsoliderer data. I stedet for komplekse Extract-Transform-Load (ETL) pipelines, tilbyr Fabric **Mirroring** — en nær-sanntids, kontinuerlig replikeringsløsning som speilser operasjonelle data direkte inn i OneLake som Delta Lake-tabeller. ### Hva er Mirroring i Fabric? Mirroring er en **zero-ETL, SaaS-basert løsning** som: - Kontinuerlig replikerer data fra operasjonelle systemer til OneLake - Konverterer data automatisk til Delta Lake format (åpen standard) - Holder data synkronisert i nær-sanntid (ned til 15 sekunders latens) - Eliminerer behov for kompleks dataintegrasjon og pipeline-vedlikehold - Ikke påvirker ytelsen til kildesystemet (spesielt Azure Cosmos DB — ingen RU consumption) **Confidence marker:** [HIGH] — GA-funksjonalitet for de fleste støttede kilder, dokumentert i offisiell Microsoft-dokumentasjon (februar 2026). --- ## Kjernekomponenter ### 1. Database Mirroring Database mirroring replikerer **hele databaser og tabeller** til OneLake. Dette er den primære zero-ETL-tilnærmingen for de fleste kilder. **Støttede kilder (februar 2026):** | Kilde | Status | Type | Latens | |-------|--------|------|--------| | Azure SQL Database | GA | Database mirroring | Nær-sanntid | | Azure SQL Managed Instance | GA | Database mirroring | Nær-sanntid | | Azure Database for PostgreSQL | GA | Database mirroring | Nær-sanntid | | SQL Server (on-prem/VM) | GA | Database mirroring | Nær-sanntid | | Azure Cosmos DB (NoSQL) | GA | Database mirroring | Nær-sanntid (ingen RU-påvirkning) | | Snowflake | GA | Database mirroring | Nær-sanntid | | Azure Databricks | GA | Metadata mirroring | Nær-sanntid | | Oracle | Preview | Database mirroring | Nær-sanntid | | SAP | Preview | Database mirroring | Nær-sanntid | | Google BigQuery | Preview | Database mirroring | Nær-sanntid | **Confidence marker:** [HIGH] — Offisiell dokumentasjon oppdatert januar 2026, bekreftet med `microsoft_docs_search`. ### 2. Metadata Mirroring Metadata mirroring replikerer **kun metadata** (katalog, schema, tabeller) uten å fysisk flytte data. Data aksesseres via **OneLake shortcuts** fra kildesystemet. **Eksempel:** Azure Databricks Unity Catalog - Fabric speiler kataloghierarkiet fra Databricks - Underliggende data forblir i Databricks - Tilgang via shortcuts sikrer sanntidssynkronisering uten datakopiering **Fordeler:** - Minimerer lagringskostnader - Eliminerer dataduplisering - Sanntidstilgang til kildedata - Ideell for kilder med stor datamengde eller høy endringsfrekvens **Confidence marker:** [HIGH] — Azure Databricks-integrasjon dokumentert i offisielle Microsoft Learn-ressurser. ### 3. Open Mirroring Open mirroring lar **egenutviklede applikasjoner eller tredjepartsløsninger** skrive endringer direkte til en mirrored database i Fabric. Basert på **åpen Delta Lake-standard**. **Bruksområder:** - Custom CDC-implementasjoner - Tredjeparts datareplikasjonsverktøy - Legacy-systemer uten nativ Fabric-støtte - Event-drevet dataintegrasjon **Prosess:** 1. Opprett en open mirrored database via Fabric Portal eller REST API 2. Hent landing zone URL i OneLake 3. Skriv change data til landing zone i spesifisert format (Delta Lake CDC) 4. Fabric replicator engine håndterer automatisk merge (INSERT, UPDATE, DELETE) **Confidence marker:** [MEDIUM] — Open mirroring er GA, men økosystemet av tredjeparts-integrasjoner er fortsatt voksende (per februar 2026). --- ## Arkitekturmønstre ### Mønster 1: Operasjonell-til-Analytisk (HTAP) **Scenario:** Organisasjonen har en Azure Cosmos DB for transaksjonell OLTP og ønsker sanntids BI/AI uten å påvirke produksjonsytelse. **Løsning:** ``` Azure Cosmos DB (OLTP) │ └─► Fabric Mirroring (ingen RU-kostnad) │ ├─► OneLake (Delta Lake) │ │ │ ├─► Power BI Direct Lake │ ├─► Eventstream (real-time alerting) │ ├─► Notebook (data science) │ └─► SQL Analytics Endpoint │ └─► Near real-time (15 sek latens) ``` **Fordeler:** - Null RU consumption for analytiske queries - Near real-time insights (ikke batch-basert) - Full HTAP-isolasjon (transaksjon/analytikk) - Åpen Delta Lake for multi-tool tilgang **Confidence marker:** [HIGH] — Azure Cosmos DB mirroring er eksplisitt designet for HTAP-scenarier. ### Mønster 2: Multi-Source Konsolidering (Data Mesh) **Scenario:** Organisasjonen har data spredt på Azure SQL, PostgreSQL, Snowflake, og Cosmos DB. Ønsker én felles analytisk platform. **Løsning:** ``` Azure SQL Database ────┐ PostgreSQL ────────────┤ Snowflake ─────────────┼─► Fabric Mirroring ─► OneLake (unified lakehouse) Cosmos DB ─────────────┤ │ Oracle (on-prem) ──────┘ ├─► Cross-database queries (T-SQL) ├─► Power BI semantic models └─► Machine learning (MLflow, Spark) ``` **Fordeler:** - Single source of truth for analytikk - Cross-database queries via T-SQL (3-part naming) - Felles governance og security (RLS, OLS, Purview) - Ingen ETL-vedlikehold **Eksempel T-SQL cross-database query:** ```sql SELECT sql.CustomerName, cosmos.OrderTotal, pg.ProductName FROM AzureSQLMirror.dbo.Customers AS sql INNER JOIN CosmosMirror.dbo.Orders AS cosmos ON sql.CustomerID = cosmos.CustomerID INNER JOIN PostgreSQLMirror.public.Products AS pg ON cosmos.ProductID = pg.ProductID WHERE cosmos.OrderDate >= '2026-01-01'; ``` **Confidence marker:** [HIGH] — Cross-database queries er dokumentert i offisiell Fabric-dokumentasjon. ### Mønster 3: Medallion Architecture med Mirroring **Scenario:** Organisasjonen ønsker å implementere Bronze-Silver-Gold lakehouse, men vil unngå komplekse ingestion-pipelines. **Løsning:** ``` Operational Sources (SQL, Cosmos, PostgreSQL) │ └─► Fabric Mirroring ─► Bronze Layer (OneLake, raw Delta Lake) │ └─► Materialized Lake Views ─► Silver Layer (cleansed, joined) │ └─► Gold Layer (aggregated, BI-ready) ``` **Implementasjon med Materialized Lake Views:** ```sql -- Bronze: Mirrored raw data (automatically managed) -- Silver: Cleansed and joined CREATE MATERIALIZED VIEW SilverCustomers AS SELECT CustomerID, UPPER(TRIM(CustomerName)) AS CustomerName, CAST(RegistrationDate AS DATE) AS RegistrationDate FROM Bronze.RawCustomers WHERE CustomerID IS NOT NULL; -- Gold: Aggregated for BI CREATE MATERIALIZED VIEW GoldCustomerSummary AS SELECT c.CustomerName, COUNT(o.OrderID) AS TotalOrders, SUM(o.OrderTotal) AS TotalRevenue FROM SilverCustomers c LEFT JOIN Bronze.RawOrders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerName; ``` **Fordeler:** - Deklarative pipelines (SQL, ikke kompleks orchestration) - Automatisk dependency management (Fabric håndterer refresh-rekkefølge) - Built-in data quality constraints - Optimal refresh (incremental/full/none basert på analyse) **Confidence marker:** [HIGH] — Materialized Lake Views er dokumentert som anbefalt tilnærming for medallion architecture i Fabric. ### Mønster 4: Legacy System Integration (Open Mirroring) **Scenario:** Organisasjonen har et legacy ERP-system (ikke-støttet kilde) og ønsker å integrere data i Fabric. **Løsning:** ``` Legacy ERP System │ └─► Custom CDC Application (Python/Node.js) │ └─► Open Mirroring Landing Zone (OneLake) │ └─► Fabric Replicator Engine ─► Delta Lake tables │ └─► Analytics (Power BI, Spark, SQL) ``` **Eksempel Python CDC writer:** ```python from azure.storage.filedatalake import DataLakeServiceClient import json import pandas as pd # Get landing zone URL from Fabric (after creating open mirrored database) landing_zone_url = "https://onelake.dfs.fabric.microsoft.com///LandingZone" # Authenticate with bearer token (Entra ID) credential = DefaultAzureCredential() service_client = DataLakeServiceClient(account_url=landing_zone_url, credential=credential) # Write CDC data in required format (Delta Lake CDC schema) cdc_data = { "op": "INSERT", # INSERT, UPDATE, DELETE "ts_ms": 1709280000000, "before": None, "after": { "CustomerID": 12345, "CustomerName": "Acme Corp", "Country": "Norway" } } file_client = service_client.get_file_client(file_system="LandingZone", file_path="customers/batch_001.parquet") file_client.upload_data(cdc_data, overwrite=True) ``` **Confidence marker:** [MEDIUM] — Open mirroring-spesifikasjonen er offentlig tilgjengelig, men kodeeksemplene over er forenklet (faktisk format er mer komplekst). --- ## Beslutningsveiledning ### Når bruke Mirroring vs. tradisjonell ETL? | Faktor | Bruk Mirroring | Bruk ETL (Pipelines/Dataflows) | |--------|----------------|--------------------------------| | Datakilde | Støttet kilde (SQL, Cosmos, Snowflake, etc.) | Ustrukturert data (loggfiler, JSON, XML) | | Latens-krav | Near real-time (< 1 minutt) | Batch (timesvis/daglig oppdatering) | | Kompleksitet | Enkel 1:1 replikering | Kompleks transformasjonslogikk (aggregering, pivots) | | Vedlikehold | Minimal (SaaS-managed) | Manuell pipeline-vedlikehold | | Datavolumet | Stort (TB/PB) | Lite til medium (GB-nivå) | | Kildepåvirkning | Minimal/ingen | Avhengig av query load | **Anbefaling:** Start med Mirroring for operasjonelle databaser, bruk ETL for edge cases (unstructured, komplekse transformations). ### Mirroring Type Decision Tree ``` Har du en støttet kilde (SQL, Cosmos, Snowflake)? │ ├─► JA → Er kilden Azure Databricks Unity Catalog? │ │ │ ├─► JA → Bruk Metadata Mirroring (shortcuts) │ │ │ └─► NEI → Bruk Database Mirroring │ └─► NEI → Finnes det en tredjeparts connector? │ ├─► JA → Bruk Open Mirroring + partner solution │ └─► NEI → Utvikle custom CDC → Open Mirroring ``` **Confidence marker:** [HIGH] — Basert på offisiell Fabric-dokumentasjon for beslutningsdiagrammer. --- ## Integrasjon med Microsoft-stakken ### 1. Azure AI Foundry **Scenario:** RAG-basert chatbot som trenger sanntidstilgang til produktkatalog i Azure SQL. ``` Azure SQL Database (product catalog) │ └─► Fabric Mirroring ─► OneLake Delta Lake │ └─► Azure AI Search (indexing) │ └─► Azure AI Foundry (RAG) │ └─► Chatbot (GPT-4o) ``` **Fordeler:** - Ingen manuell synkronisering av search index - Incremental updates (kun endrede produkter re-indexes) - Åpent Delta Lake format kan brukes av andre AI-verktøy ### 2. Power BI Direct Lake Mirrored databases i Fabric er **automatisk tilgjengelig i Direct Lake mode** for Power BI: ``` Mirrored Database (OneLake Delta Lake) │ └─► Power BI Direct Lake Mode (ingen import, ingen DirectQuery overhead) │ ├─► Semantic model (auto-generated) └─► Real-time reports (< 1 min latens) ``` **Fallback:** Hvis en query ikke støttes av Direct Lake, faller systemet automatisk tilbake til DirectQuery. **Confidence marker:** [HIGH] — Direct Lake for mirrored databases er GA-funksjonalitet. ### 3. Real-Time Intelligence (Eventstream) Kombiner Mirroring med Eventstream for **hybrid batch + streaming**: ``` Azure SQL Database (orders) │ ├─► Fabric Mirroring ─► OneLake (batch, historical orders) │ └─► Eventstream (CDC connector) ─► KQL Database (real-time orders, last 24h) │ └─► Fabric Activator (alerts) ``` **Når bruke denne kombinasjonen:** - Du trenger historisk analyse (batch) OG real-time alerting (streaming) - Eksempel: Fraud detection (historisk modell, real-time scoring) --- ## Offentlig sektor (Norge) ### Compliance og Datahåndtering **GDPR Article 17 (Right to Erasure):** Mirroring støtter **soft delete** og **hard delete**: - Soft delete: Rad markeres som slettet i Delta Lake (_change_type = 'delete') - Hard delete: VACUUM-kommando fjerner gamle versjoner **Eksempel:** ```sql -- Check retention policy (default 1 day for new mirrors, 7 days for legacy) -- Adjust in Fabric Portal: Mirrored Database → Settings → Maintenance → Retention -- Manual vacuum (remove deleted rows older than 7 days) VACUUM table_name RETAIN 168 HOURS; ``` **NSM Grunnprinsipper:** - **Tilgangskontroll:** Row-level security (RLS) og Object-level security (OLS) støttes i SQL Analytics Endpoint - **Logging:** Fabric Audit Logs sporer all datahåndtering (inkl. queries og deletes) - **Kryptering:** Data-at-rest (OneLake) og data-in-transit (TLS 1.2+) **Confidence marker:** [HIGH] — Security features dokumentert i offisiell Fabric-dokumentasjon. ### Kostnadsfordeling (Offentlig Sektor) Mirroring har **særegne kostnadsfortrinn** for offentlige virksomheter: | Kostnadselement | Tradisjonell ETL | Mirroring | |------------------|------------------|-----------| | Compute (replication) | Betalt (pipeline runs) | **GRATIS** (inkludert i Fabric capacity) | | Storage (replicated data) | Standard OneLake-pris | **1 TB gratis per CU** (F64 = 64 TB gratis) | | Pipeline-vedlikehold | DevOps-timekostnad | Minimal (SaaS-managed) | **Eksempel:** F64 capacity (64 CU) - Gratis mirroring-lagring: 64 TB - Hvis du replikerer 50 TB data: Ingen ekstra lagringskostnad - Hvis du replikerer 80 TB: Betaler kun for 16 TB (over grensen) **Confidence marker:** [HIGH] — Prising bekreftet i Azure Pricing Calculator og Microsoft Fabric-dokumentasjon. --- ## Kostnad og Lisensiering ### Fabric Capacity-krav | Scenario | Minimum Capacity | Anbefalt Capacity | |----------|------------------|-------------------| | POC (< 10 GB, 1 database) | F2 (2 CU) | F8 (8 CU) | | Produksjon (< 100 GB, 5 databases) | F16 (16 CU) | F32 (32 CU) | | Enterprise (> 1 TB, 20+ databases) | F64 (64 CU) | F128+ (128+ CU) | **Trial:** Fabric Trial inkluderer gratis mirroring (60 dager, begrenset lagring). ### Kostnadselementer 1. **Replication compute:** GRATIS (inkludert i capacity) 2. **Storage:** - Første 1 TB per CU: GRATIS - Over grensen: Standard OneLake-pris (~$0.023/GB/måned, Norge-region) 3. **Query compute:** - SQL queries: Standard Fabric compute (CU consumption) - Power BI Direct Lake: Standard Power BI-prising - Spark queries: Standard Spark compute (CU consumption) **Viktig:** Capacity må kjøre kun for **initial setup** av Mirroring. Etter oppsett kan du pause capacity, men da konsumeres lagring (ikke lenger gratis). **Confidence marker:** [HIGH] — Prising bekreftet i offisiell Microsoft Fabric Pricing-dokumentasjon (januar 2026). ### Kostnadsoptimalisering **Tips:** 1. **Selektiv replikering:** Speilvend kun tabeller du trenger (ikke hele databasen) 2. **Retention tuning:** Senk retention fra 7 dager til 1 dag (reduserer lagring) 3. **Cross-database queries:** Unngå datakopiering mellom mirrors (bruk T-SQL joins) 4. **Direct Lake:** Bruk Direct Lake i Power BI (ikke import mode) for å unngå duplikatlagring --- ## For arkitekten (Cosmo) ### Key Decision Points 1. **Kildetype:** - Operasjonell database (OLTP) → Database Mirroring - Data lakehouse (Databricks) → Metadata Mirroring - Legacy/custom → Open Mirroring 2. **Latenskrav:** - < 1 minutt → Mirroring (near real-time) - Timesvis/daglig → Vurder ETL (billigere for lave frekvenser) 3. **Transformasjonskompleksitet:** - 1:1 replikering → Mirroring - Komplekse joins/pivots → Mirroring + Materialized Lake Views eller ETL 4. **Governance:** - Trenger RLS/OLS? → Mirroring + SQL Analytics Endpoint (støtter RLS/OLS) - Trenger audit log? → Fabric Audit Logs (integrert) ### Performance Tuning (PostgreSQL eksempel) Hvis du speilvenner Azure Database for PostgreSQL: ```sql -- Check replication lag SELECT * FROM azure_cdc.tracked_publications; -- Check which batches are uploaded SELECT * FROM azure_cdc.tracked_batches; -- Tune batch frequency (reduce latency) ALTER SERVER PARAMETER azure_cdc.change_batch_export_timeout = 15; -- default 30 sekunder -- Increase parallel snapshot workers (faster initial load) ALTER SERVER PARAMETER azure_cdc.max_snapshot_workers = 5; -- default 3 ``` **Confidence marker:** [HIGH] — PostgreSQL mirroring server parameters dokumentert i offisiell Azure-dokumentasjon. ### When NOT to Use Mirroring 1. **Kompleks business logic:** Hvis transformasjonen krever komplekse Python/C#-scripts, bruk Fabric Pipelines eller Dataflows. 2. **Unstructured data:** Mirroring er for strukturerte databaser. Bruk Eventstream for IoT/logs. 3. **On-prem kilder uten nettverkstilgang:** Mirroring krever nettverkstilgang til OneLake (bruk On-Premises Data Gateway eller VPN). --- ## Tekniske Detaljer ### Change Data Capture (CDC) Mekanismer | Kilde | CDC-mekanisme | Latens | |-------|---------------|--------| | SQL Server | Change Feed (transaction log scanning) | 15+ sekunder | | PostgreSQL | Logical replication (azure_cdc extension) | 15+ sekunder | | Azure Cosmos DB | Change Feed API (ingen RU consumption) | 15+ sekunder | | Snowflake | Streams (Snowflake Streams API) | 30+ sekunder | **Hvordan virker det (PostgreSQL eksempel):** ``` 1. Initial snapshot: PostgreSQL → Parquet files → OneLake Landing Zone → Fabric Replicator → Delta tables 2. Ongoing changes: PostgreSQL WAL (Write-Ahead Log) → azure_cdc extension → Parquet batches → Landing Zone → Delta merge ``` **Confidence marker:** [HIGH] — Arkitektur-diagram hentet fra offisiell Azure-dokumentasjon. ### Delta Lake Format All mirrored data lagres som **Delta Lake** (ikke bare Parquet): **Fordeler:** - ACID-transaksjoner (no data corruption) - Time travel (query historical versions) - Schema evolution (add/remove columns uten å ødelegge historikk) - Z-Ordering og V-Order optimalisering (raskere queries) **Eksempel time travel:** ```sql -- Query data as it was 7 days ago SELECT * FROM MirroredDatabase.dbo.Orders VERSION AS OF (CURRENT_TIMESTAMP - INTERVAL 7 DAY); ``` --- ## Praktisk Eksempel: End-to-End Setup ### Scenario: Azure SQL til Power BI (5 minutters setup) 1. **Opprett Mirrored Database i Fabric:** - Fabric Portal → Create → Mirrored Database → Azure SQL Database - Angi connection string og credentials (Entra ID eller SQL auth) - Velg tabeller å speilvende (eller hele databasen) 2. **Vent på initial snapshot** (5-30 minutter avhengig av datavolumet) 3. **Koble Power BI til SQL Analytics Endpoint:** - Power BI Desktop → Get Data → SQL Server - Server: `.datawarehouse.fabric.microsoft.com` - Database: `` - Velg Direct Lake mode (anbefalt) 4. **Bygg rapport:** - Dra tabeller inn i rapport - Data er nå live-synkronisert (< 1 minutts latens) **Total tid:** < 1 time (inkl. initial snapshot) **Confidence marker:** [HIGH] — Prosedyre bekreftet i offisiell Microsoft Learn-dokumentasjon. --- ## Vanlige Feil og Løsninger ### Problem 1: Mirroring feiler med "Internal error" **Årsak:** Manglende permissions på kilde-databasen. **Løsning (PostgreSQL):** ```sql -- Grant required permissions GRANT azure_cdc_admin TO fabric_user; GRANT CREATE ON DATABASE mydb TO fabric_user; ALTER TABLE orders OWNER TO fabric_user; -- fabric_user must own tables ``` ### Problem 2: Høy storage-kostnad **Årsak:** Retention er satt for høyt (default 7 dager for legacy mirrors). **Løsning:** - Fabric Portal → Mirrored Database → Settings → Maintenance → Retention → 1 day - Eller via REST API: `PATCH /v1/mirroring/databases/{id}` med `retentionInDays: 1` ### Problem 3: Query fallback til DirectQuery (langsom) **Årsak:** Power BI-query bruker en funksjon som ikke støttes av Direct Lake. **Løsning:** - Sjekk Power BI Performance Analyzer for fallback-årsak - Omskriv query til å unngå ikke-støttede funksjoner (eks: CONCATENATE → "&") - Eller aksepter DirectQuery for komplekse queries (fortsatt raskere enn import mode for store datasets) **Confidence marker:** [MEDIUM] — Troubleshooting-tips basert på community-dokumentasjon og Microsoft Learn. --- ## Fremtidige Utvidelser (Roadmap) **Følgende kilder er ikke støttet i februar 2026, men er på roadmap:** - **MongoDB:** Planlagt Q2 2026 (per Microsoft Ignite 2025-announcements) - **SAP HANA:** Preview forventet Q1 2026 - **IBM Db2:** Ingen offentlig timeline - **MySQL:** CDC-basert mirroring (current: kun Azure Database for MySQL via Open Mirroring) **Confidence marker:** [LOW] — Roadmap-informasjon er basert på konferanse-announcements, ikke offisiell produktdokumentasjon. --- ## Kilder og Verifisering **Primærkilder (MCP: microsoft-learn):** 1. [What is Mirroring in Fabric?](https://learn.microsoft.com/en-us/fabric/mirroring/overview) — Sist oppdatert januar 2026 2. [Azure Database for PostgreSQL mirroring in Fabric](https://learn.microsoft.com/en-us/azure/postgresql/integration/concepts-fabric-mirroring) — GA-status bekreftet 3. [Medallion lakehouse architecture for Fabric with OneLake](https://learn.microsoft.com/en-us/fabric/onelake/onelake-medallion-lakehouse-architecture) — Materialized Lake Views 4. [Microsoft Fabric Pricing](https://azure.microsoft.com/pricing/details/microsoft-fabric/) — Prising bekreftet januar 2026 **Kodeeksempler (MCP: microsoft_code_sample_search):** - SQL Server Resource Governor for Fabric mirroring - PostgreSQL CDC monitoring functions (`azure_cdc.list_tracked_publications()`) - Delta Lake time travel queries **Søk brukt:** - `microsoft_docs_search`: "Fabric mirroring", "zero ETL Fabric", "database mirroring OneLake" - `microsoft_docs_fetch`: Mirroring overview, PostgreSQL architecture - `microsoft_code_sample_search`: "Fabric mirroring OneLake Delta Lake" **Sist verifisert:** 2026-02-11 --- ## Oppsummering for Cosmo **Zero-ETL med Fabric Mirroring er riktig valg når:** - Kilden er en støttet database (SQL, Cosmos, Snowflake, PostgreSQL) - Du trenger near real-time data (< 1 minutt latens) - Du vil eliminere ETL-vedlikehold - Du vil ha en åpen, multi-tool lakehouse (Delta Lake) **Ikke bruk Mirroring hvis:** - Data er ustrukturert (loggfiler, JSON, XML) → Bruk Eventstream eller Pipelines - Transformasjonslogikken er svært kompleks → Bruk Dataflows Gen2 eller Pipelines - Kilden er on-prem uten nettverkstilgang → Bruk On-Premises Data Gateway + Pipelines **Kostnadsoptimalisering:** - Start med F16/F32 for produksjon - Bruk 1 dag retention (ikke 7 dager) - Speilvend kun nødvendige tabeller - Bruk Direct Lake i Power BI (ikke import mode) **Next steps for kunden:** 1. Identifiser kritiske operasjonelle databaser 2. Vurder latens-krav per datakilde 3. Beregn lagringsbehov (free tier: 1 TB per CU) 4. Kjør POC med Fabric Trial (60 dager gratis)