ms-ai-architect/skills/ms-ai-engineering/references/data-engineering/onelake-data-strategy.md
Kjell Tore Guttormsen 3a73eeafdc refactor(ms-ai-architect): R13 del 1 — nøytraliser Cosmo-personaen i ref-korpusets headinger, etter å ha rettet en gate som var målt usann to ganger
Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:

1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
   produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
   substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
   `Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
   tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
   kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
   formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
   132 bokføres til R13b/R14.

Tre korreksjoner av premisser som sto i ordren og STATE:
  «ca 320 produkt»   -> 451 (case-sensitivt nett manglet 327 lowercase
                        TOC-ankre + 99 identifikatorer; sann nevner 1 638)
  «169 headinger»    -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
                        internt inkonsistent med sin egen topp-variant (204)
  «417 matcher ingen
   populasjon»       -> 417 er cosmo-headinger utenfor kodefences; briefens
                        nevner var reell hele tiden

Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.

TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.

Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.

Verifisering (alle 7 kriterier fra ordren):
  G1 persona på heading-linjer   401 -> 0
  G2 døde fragmentlenker         1 -> 1 (pre-eksisterende, unntatt)
  G3 produkt-forekomster         451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
  de 3 kun-produkt-filene        byte-identiske
  nettet validert begge veier    injisert persona feller G1; genitiv feller G1;
                                 produkt-heading og de 3 filene passerer
  hele diffen                    802 heading-linjer + 654 TOC-linjer, ANNET = 0
  linjeantall                    728 lagt til = 728 slettet
  suite                          1120/1120 (1097 + 23 nye)
  validate-plugin                250 PASS / 0 FAIL
  stikkprøve                     10 filer, alle 5 skills, inkl. de 3 mest
                                 produkt-tunge (26/20/19) — kun heading+TOC

Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 22:12:28 +02:00

34 KiB
Raw Blame History

OneLake Data Strategy and Shortcuts

Last updated: 2026-06-24 Status: GA (Shortcuts, OneLake Security for kjerne-engines, Shortcut Transformations for CSV/Parquet/JSON), Preview (OneLake Security på Eventhouse/3.-parts-engines, Shortcut Transformations for Excel + AI-powered) Category: Data Engineering for AI Type: reference Source: https://learn.microsoft.com/fabric/real-time-intelligence/query-acceleration-overview


Innhold

Introduksjon

OneLake er Microsofts unified data lake for hele Microsoft Fabric-plattformen — "OneDrive for data". Hver Fabric-tenant får automatisk provisjonert én enkelt, logisk data lake som binder sammen alle analytiske workloads. Shortcuts er en av OneLakes mest kraftfulle mekanismer: de fungerer som symbolske lenker (symbolic links) som lar deg unifisere data på tvers av domener, skyer og kontoer uten å flytte eller duplisere data.

For AI-arkitekter og data engineers er dette en game-changer: du kan bygge RAG-systemer, træne modeller og levere analytics på data som fysisk ligger i Azure Data Lake Storage Gen2, Amazon S3, Google Cloud Storage eller andre Fabric-items — alt via ett konsistent namespace og ett sikkerhetsparadigme.

Key capabilities:

  • Zero-copy data unification — shortcuts peker til data, ikke kopierer dem
  • Multi-cloud support — Azure, AWS, GCP, on-premises (via OPDG)
  • Transparent access — alle Fabric-engines (Spark, SQL, KQL, Analysis Services) ser shortcuts som native folders
  • Unified security — OneLake security (RLS/CLS — GA for kjerne-engines: Lakehouse, Spark, SQL analytics endpoint i user-identity mode, Direct Lake semantic models) gir granulær tilgangskontroll på tvers av alle shortcuts
  • API compatibility — ADLS Gen2 og Blob Storage APIs fungerer nativt mot OneLake

Confidence: High — basert på 11 offisielle Microsoft Learn-kilder, inkludert REST API-dokumentasjon og Python/TypeScript code samples (2026-01-2026-02).


Kjernekomponenter

1. OneLake Namespace

OneLake organiserer data hierarkisk:

https://onelake.dfs.fabric.microsoft.com/<workspace>/<item>.<itemtype>/<path>/<fileName>

Eksempler:

  • HTTPS URI: https://onelake.dfs.fabric.microsoft.com/MyWorkspace/MyLakehouse.Lakehouse/Files/data.csv
  • ABFS URI: abfs://MyWorkspace@onelake.dfs.fabric.microsoft.com/MyLakehouse.Lakehouse/Files/
  • GUID-based URI: https://onelake.dfs.fabric.microsoft.com/<workspaceGUID>/<itemGUID>/<path>/<fileName> (immutable, anbefales for scripting)

Item types som støtter shortcuts:

  • Lakehouse — Tables/ og Files/ folders
  • KQL Database — Shortcuts/ folder (behandles som external tables)
  • Warehouse — via SQL analytics endpoint (read-only for shortcuts)
  • Mirrored Databases — Azure Databricks Mirrored Catalog, Mirrored Databases

Constraint: Item types må være eksplisitt med .lakehouse, .warehouse etc. i URIen når du bruker navnebaserte paths (ikke GUID).


2. Shortcut-typer

2.1 Internal OneLake Shortcuts

Peker til data innenfor Fabric-tenant:

  • Target: KQL databases, Lakehouses, Mirrored Catalogs, Warehouses, Semantic models, SQL databases
  • Auth model: Passthrough (SSO) — brukerens identitet sendes til target, krever OneLake security-permissions i target location
  • Use case: Deling av curated data mellom teams, cross-workspace analytics, medallion architecture (bronze → silver → gold)

Viktig: Når du bruker Power BI DirectLake over SQL eller T-SQL i "Delegated identity mode", passeres item owner's identity, ikke brukerens. Løsning: Bruk DirectLake over OneLake mode eller T-SQL i "User's identity mode".

2.2 External Shortcuts

Peker til data utenfor Fabric:

  • Supported sources: Amazon S3, S3-compatible, Azure Data Lake Storage Gen2, Azure Blob Storage, Dataverse, Google Cloud Storage, OneDrive, SharePoint, on-premises/network-restricted (via OPDG)
  • Auth model: Delegated — shortcut bruker en fixed credential (cloud connection), og brukerens OneLake security-rolle evalueres før target-tilgang sjekkes
  • Caching: GCS, S3, S3-compatible, og OPDG shortcuts støtter caching (1-28 dager, filer < 1 GB)

Decision logic for external shortcuts:

S3 connection authorizes user1? OneLake security authorizes user2? Result
Yes Yes ✅ Access
Yes No ❌ Denied
No Yes ❌ Denied
No No ❌ Denied

Constraints:

  • External shortcuts krever Fabric Read permission på item (ikke bare OneLake security)
  • Maks 100,000 shortcuts per Fabric item
  • Maks 10 shortcuts per OneLake path
  • Maks 5 direkte shortcut-til-shortcut links
  • Shortcuts støtter ikke non-Latin characters
  • Synkronisering skjer nesten instantly, men propagation kan variere (cache, network)

3. Lakehouse Folder Structure og Shortcut Placement

Lakehouse har to top-level folders:

MyLakehouse.Lakehouse/
├── Tables/          # Strukturerte datasets (Delta format)
│   ├── shortcut1   # Kun top-level shortcuts tillatt
│   └── shortcut2   # Auto-syncs metadata hvis target er Delta
└── Files/           # Ustrukturert/semi-strukturert data
    ├── folder1/     # Shortcuts på alle nivåer
    │   └── shortcut3
    └── shortcut4

Regler for Tables/ folder:

  • ✅ Shortcuts kun på top-level (ikke subdirectories)
  • ✅ Hvis target er Delta Parquet → automatic table discovery
  • ✅ Kan peke til enkelt tabell eller schema (parent folder med flere tabeller)
  • ❌ Tabellnavn med mellomrom støttes ikke (Delta-constraint)

Regler for Files/ folder:

  • ✅ Ingen restriksjoner — shortcuts på hvilket som helst nivå
  • ❌ Ingen automatic table discovery

KQL Database:

  • Shortcuts vises i Shortcuts/ folder
  • Behandles som external tables: external_table('MyShortcut') | take 100

4. Shortcut Transformations (GA for CSV/Parquet/JSON, Preview for Excel + AI-powered)

Automatisk konvertering av raw files (CSV, Parquet, JSON) til Delta tables:

How it works:

  1. Opprett shortcut i /Tables (via "New Table Shortcut" i Lakehouse UI)
  2. Konfigurer transformation parameters:
    • Delimiter (CSV): comma, semicolon, pipe, tab, etc.
    • First row as headers (CSV)
    • Table Shortcut name
  3. Fabric Spark compute kopierer data til managed Delta table under /Tables
  4. Synkronisering hvert 2. minutt — detekterer nye/modifiserte/slettede filer

Benefits:

  • ❌ Ingen manuelle ETL-pipelines
  • ✅ Frequent refresh (2 min polling)
  • ✅ Output er Delta Lake (åpent format)
  • ✅ Unified governance (OneLake lineage, Purview)

Constraint: Kun for Lakehouse items, output alltid til /Tables.


5. OneLake Security (GA for kjerne-engines)

OneLake bruker RBAC (Role-Based Access Control) med deny-by-default:

Role-komponenter:

  1. Type: GRANT (DENY ikke støttet ennå)
  2. Permission: Read, ReadWrite
  3. Scope: Tables, folders, schemas (+ row/column level constraints)
  4. Members: Microsoft Entra identities (users, groups, non-user identities)

Workspace roles vs. OneLake security:

Workspace Role View OneLake files? Write OneLake files? Edit security roles?
Admin Always Yes* Always Yes* Always Yes*
Member Always Yes* Always Yes* Always Yes*
Contributor Always Yes* Always Yes* No
Viewer No (use OneLake security) No No

*Admin/Member/Contributor override OneLake security Read permissions via automatic Write permission.

Default roles:

  • Lakehouse DefaultReader: Read on all folders under Tables/ og Files/ → assigned to users with ReadAll permission
  • Lakehouse DefaultReadWriter: Read on all folders → assigned to users with Write permission

Permissions:

Permission Capabilities SQL Equivalent Constraints
Read Read data, view table/column metadata VIEW_DEFINITION + SELECT Can include RLS/CLS
ReadWrite Read + write data (create/delete/rename folders, upload files, manage shortcuts) ALTER + DROP + UPDATE + INSERT Cannot include RLS/CLS; only via Spark/OneLake APIs (not Lakehouse UI)

Row-Level Security (RLS):

  • SQL predicates for filtering rows: WHERE city = 'Redmond'
  • Combines across roles via OR operator: WHERE city = 'Redmond' OR city = 'New York'
  • Case-insensitive (collation: Latin1_General_100_CI_AS_KS_WS_SC_UTF8)

Column-Level Security (CLS):

  • Hides columns from users
  • Combines across roles via INTERSECTION (deny semantic in SQL Endpoint)
  • ❌ Metadata kan fortsatt lekke i error messages

Engine support for RLS/CLS:

Engine RLS/CLS Filtering Status
Lakehouse ✅ Yes GA
Spark notebooks ✅ Yes GA
SQL Analytics Endpoint (user's identity mode) ✅ Yes GA
Semantic models (DirectLake on OneLake) ✅ Yes GA
Eventhouse ❌ No Planned
Data warehouse external tables ❌ No Planned

Shortcuts og OneLake security:

  • Passthrough shortcuts (internal): User's identity sendes til target — krever OneLake security i target location
  • Delegated shortcuts (external): OneLake security evalueres før delegated credential, krever Fabric Read permission på item

Role evaluation:

  • Multiple roles kombineres via UNION (least-restrictive)
  • Formula: ( (R1ols ∩ R1cls ∩ R1rls) ∪ (R2ols ∩ R2cls ∩ R2rls) )
  • Hvis kolonner/rader ikke aligner på tvers av roller → access blocked (data leak prevention)

Limits:

Scenario Limit
Max roles per Lakehouse 250
Max members per role 500
Max permissions per role 500
Latency: role changes ~5 min
Latency: group membership ~1 hour (OneLake) + ~1 hour (Fabric engines)

Constraints:

  • ❌ B2B guest users: must configure Microsoft Entra External ID with "Guest users have same access as members"
  • ❌ Cross-region shortcuts ikke støttet
  • ❌ Distribution lists i SQL Endpoint: ikke resolved
  • ❌ Mixed-mode queries (OneLake security + non-OneLake security data) fails
  • ❌ Private link protection ikke støttet
  • ❌ External data sharing (preview) inkompatibel med OneLake security

Arkitekturmønstre

1. Medallion Architecture med Shortcuts

Bruk shortcuts til Bronze layer for å unngå data duplication:

Bronze/ (Shortcuts til sources)
├── ShortcutToADLS       → Azure Data Lake (raw logs)
├── ShortcutToS3         → AWS S3 (sensor data)
└── ShortcutToDataverse  → Dataverse (CRM data)

Silver/ (Delta tables)
├── CleanedLogs.delta
├── EnrichedSensor.delta
└── CuratedCRM.delta

Gold/ (Delta tables)
├── AggregatedMetrics.delta
└── CustomerInsights.delta

Benefits:

  • ❌ Ingen datakopiering i Bronze
  • ✅ Single source of truth
  • ✅ Cost-effective (kun transformation i Silver/Gold)

2. Cross-Workspace Data Sharing

Scenario: Team A eier curated data i TeamA_Workspace/GoldLakehouse, Team B trenger tilgang.

Løsning:

  1. Opprett internal shortcut i TeamB_Workspace/ConsumerLakehouse/Files/TeamA_Gold
  2. Peker til TeamA_Workspace/GoldLakehouse/Tables/CustomerInsights
  3. Team B-brukere må ha OneLake security Read permission i TeamA_Workspace/GoldLakehouse

Benefits:

  • ✅ Zero-copy data sharing
  • ✅ Team A kontrollerer access via OneLake security
  • ✅ Lineage tracking (workspace lineage view)

3. Multi-Cloud RAG Architecture

Scenario: RAG-system som trenger data fra Azure (structured) + AWS S3 (documents) + OneDrive (SharePoint reports).

Architecture:

Lakehouse: RAG_Data
├── Files/
│   ├── Azure_ADLS_Shortcut/      → Structured product catalog
│   ├── AWS_S3_Shortcut/          → PDF manuals (chunking target)
│   └── OneDrive_Shortcut/        → Weekly reports
└── Tables/
    └── EmbeddingsTable.delta     → Vector embeddings (Azure AI Search)

Workflow:

  1. Ingest: Shortcuts gi transparent tilgang til sources
  2. Chunk: Spark notebook leser fra shortcuts, chunker documents
  3. Embed: Azure OpenAI Embeddings API (via Semantic Kernel)
  4. Store: Delta table med embeddings + metadata
  5. Query: Azure AI Search over OneLake shortcut til EmbeddingsTable.delta

Benefits:

  • ✅ Unified namespace for multi-cloud data
  • ✅ OneLake security på tvers av alle sources
  • ✅ Cost optimization (S3 caching for 28 days → redusert egress)

4. External Shortcut med Delegated Access

Scenario: Partner-organisasjon deler data via S3, kun nøkkelbrukere skal ha tilgang.

Setup:

  1. Opprett S3 shortcut i Lakehouse med cloud connection (delegated credential)
  2. Opprett OneLake security role: PartnerDataRole
    • Scope: /Files/PartnerS3Shortcut
    • Permission: Read
    • Members: DataScience_Group
  3. Result: Kun DataScience_Group kan lese fra shortcut (even if S3 connection authorizes broader access)

Constraint: Users må ha Fabric Read permission på Lakehouse (ikke bare OneLake security).


Beslutningsveiledning

Når bruke shortcuts vs. data kopiering?

Scenario Bruk Shortcuts Bruk Kopiering (Copy/ETL)
Source er allerede i optimal format (Delta) ✅ ❌
Source er read-only (partner data) ✅ ❌
Trenger granular transformations (complex business logic) ❌ ✅
Lav latency critical (< 1 sec query response) ❌ (consider caching) ✅
Multi-cloud data with high egress cost ✅ (enable caching) ❌
Bronze layer i medallion ✅ ❌
Silver/Gold layer ❌ ✅ (transform to Delta)
Compliance: data må være i-region ❌ (shortcuts cross-region ikke støttet) ✅

Internal vs. External Shortcuts?

Criteria Internal Shortcut External Shortcut
Target location Fabric items (same tenant) Azure, AWS, GCS, on-premises
Auth model Passthrough (user's identity) Delegated (fixed credential + OneLake security)
Requires Fabric Read permission? No (only OneLake security) Yes
Caching supported? No Yes (GCS, S3, OPDG)
Cross-region? No (OneLake security constraint) No (ADLS Gen2 parity)
Use case Cross-team data sharing, workspace federation Multi-cloud unification, partner data

Shortcut Transformations vs. Manual ETL?

Criteria Shortcut Transformation Manual ETL (Data Factory, Spark)
Complexity Low (no-code, UI-driven) High (coding, orchestration)
Supported formats CSV, Parquet, JSON → Delta All formats
Refresh frequency 2 min (automatic) Custom (scheduled/event-driven)
Transformation logic None (1:1 copy + format conversion) Complex (joins, aggregations, business rules)
Use case Simple file ingestion from external sources Complex data pipelines with business logic

Integrasjon med Microsoft-stakken

Microsoft Foundry + OneLake

Scenario: Microsoft Foundry project trenger tilgang til Lakehouse data.

Integration points:

  1. OneLake Datastore (Azure ML SDK):
    from azure.ai.ml.entities import OneLakeDatastore, OneLakeArtifact
    store = OneLakeDatastore(
        name="onelake_example",
        one_lake_workspace_name="<workspace_guid>",
        endpoint="onelake.dfs.fabric.microsoft.com",
        artifact=OneLakeArtifact(name="<lakehouse_guid>/Files", type="lake_house")
    )
    ml_client.create_or_update(store)
    
  2. Connection types:
    • Identity-based (Entra ID): DefaultAzureCredential
    • Service Principal: Requires tenant_id, client_id, client_secret
  3. Use case: Fine-tuning models on Lakehouse Delta tables, model training with OneLake shortcuts

Constraint: OneLake Datastore targets artifact GUID, ikke workspace/item names.


Copilot Studio + OneLake

Scenario: Copilot Studio Generative Answers som indekserer Lakehouse data.

Architecture:

  1. OneLake Lakehouse → contains Delta tables med product catalog
  2. Azure AI Search → indexes OneLake via shortcut
    • Knowledge Source type: Indexed OneLake
    • Parameters: fabric_workspace_id, lakehouse_id, target_path, ingestion_parameters (embeddings model)
  3. Copilot Studio → Generative Answers connected to AI Search index

Benefits:

  • ✅ Single source of truth (data i OneLake)
  • ✅ Automatic refresh (OneLake changes → AI Search re-indexes)
  • ✅ Unified security (OneLake RBAC → AI Search access)

Power BI + OneLake Shortcuts

DirectLake over OneLake mode:

  • ✅ Passthrough auth (user's identity sendes til shortcut target)
  • ✅ Støtter RLS/CLS i OneLake security
  • ❌ DirectLake over SQL: bruker item owner's identity (ikke anbefalt for granular security)

Use case: Power BI semantic models over shortcuts til cross-workspace Lakehouses.


Synapse Analytics + OneLake

Apache Spark access:

oneLakePath = 'abfss://WorkspaceName@onelake.dfs.fabric.microsoft.com/LakehouseName.Lakehouse/Tables'
df = spark.read.format('delta').load(oneLakePath + '/Taxi/')
display(df.limit(10))

Constraint: Synapse external tables over OneLake shortcuts må bruke ABFS URI format.


Azure Databricks + OneLake

Integration:

  1. Premium Databricks workspace (supports Entra ID passthrough)
  2. Enable "Azure Data Lake Storage credential passthrough" i cluster advanced options
  3. Read OneLake shortcuts direkte:
    df = spark.read.format("delta").load("abfss://workspace@onelake.dfs.fabric.microsoft.com/lakehouse.Lakehouse/Tables/MyShortcut")
    

Use case: Databricks notebooks som leser curated data fra Fabric Lakehouse uten data duplication.


Offentlig sektor (Norge)

Utredningsinstruksen og OneLake Shortcuts

§ 13: Teknologiske faktorer og leverandørstrategi

Vurderingskriterier for shortcuts:

Kriterium OneLake Shortcuts Tradisjonell datakopiering
Leverandørlås Middels — OneLake er Microsoft-proprietært namespace, men ADLS Gen2 API kompatibilitet gir exit strategy Lav — standard ETL-verktøy
Teknisk gjeld Lav — shortcuts eliminerer staging-lag og ETL-pipelines Høy — mange kopierings-pipelines å vedlikeholde
TCO Lavere — ingen storage duplication, redusert compute for kopiering Høyere — storage + compute for staging
Interoperabilitet Høy — ADLS Gen2/Blob API, Spark, SQL, KQL Høy — standard formats (Parquet, Delta)

Anbefaling: Bruk shortcuts for Bronze layer (raw data unification), men vurder data sovereignty constraints (se nedenfor).


GDPR og Data Residency

Constraint: OneLake security støtter ikke cross-region shortcuts (preview limitation).

Implikasjon for Norge:

  • Hvis capacity er i West Europe eller North Europe (Norge-nært), kan du bruke shortcuts til ADLS Gen2 i samme region
  • ❌ Shortcuts til S3 (US) eller GCS (US) kan trigger GDPR-risiko hvis persondata
  • ✅ Løsning: Bruk on-premises data gateway shortcuts til Norge-lokalisert storage

Kontraktsklausul (Digdir-guide):

"Shortcuts til eksterne skylagringstjenester (AWS S3, GCS) skal kun brukes for ikke-personidentifiserbar data. Persondata skal lagres i Azure-ressurser innenfor EU/EØS med databehandleravtale iht. GDPR Art. 28."


Forvaltningsloven § 11a: Automatisert saksbehandling

Relevans: Hvis shortcuts brukes til å hente data for AI-basert vedtak (eks. Copilot Studio-agent).

Tiltak:

  1. Auditability: Enable OneLake lineage view for å tracke data-flow via shortcuts
  2. Data quality: Bruk Shortcut Transformations med DQ-sjekker (eks. schema validation)
  3. Tilgangskontroll: OneLake security RLS for å sikre at kun relevante data brukes i vedtak

Eksempel:

  • NAV-case: Shortcut fra Dataverse (søknadsdata) → Lakehouse → AI-modell for søknadsklassifisering
  • Audit trail: OneLake lineage viser at data kom fra Dataverse shortcut, ikke kopiert/transformert ukontrollert

NSM Grunnprinsipper (Sikkerhet i Skyen)

Prinsipp 2: Bruk skyløsningens sikkerhetsfunksjoner

OneLake security RBAC er en native Fabric-funksjon som bør foretrekkes over custom access layers:

Sammenligning:

Tilnærming Fordeler Ulemper
OneLake security (anbefalt) Unified security across all engines, RLS/CLS support, Entra ID integration Preview (latency constraints, B2B guest user issues)
Workspace roles only Enkel, GA-stable Coarse-grained (Admin/Member/Contributor/Viewer), ingen row/column filtering
Custom API gateway Full kontroll Teknisk gjeld, ikke Fabric-native, brudd med unified namespace

NSM-anbefaling: Bruk OneLake security (selv i preview) for granular access control, men dokumenter workarounds for known limitations (B2B guests, cross-region).


Kostnad og lisensiering

Licensing Requirements

Komponent Krever Lisenstype
OneLake storage Fabric Capacity (F/P SKU) Billed per GB/month (HOT tier: ~$0.023/GB, COLD tier: TBD)
Shortcuts (internal/external) Same capacity as Lakehouse item No additional license
Shortcut caching Workspace-level setting Included in capacity
OneLake security (preview) Fabric Write/Reshare permission (Admin/Member) Included in capacity
Shortcut Transformations Fabric Spark compute Billed per CU-hour (part of capacity)

Viktig: Shortcuts selv koster ikke ekstra, men:

  • Storage: Kun data i OneLake (ikke shortcut targets) er billed
  • Egress: External shortcuts (S3, GCS) kan trigger egress costs fra source provider → enable caching for cost optimization
  • Compute: Spark/SQL queries over shortcuts bruker Fabric Capacity Units (CU)

Cost Optimization Strategies

1. Shortcut Caching (External Shortcuts)

Scenario: 10 data scientists kjører daglige queries mot AWS S3 shortcut (1 TB data).

Without caching:

  • AWS S3 egress: 1 TB/day × 10 users × $0.09/GB = $900/day ($27k/month)

With caching (28-day retention):

  • First read: 1 TB egress = $90
  • Subsequent reads: cached in OneLake (HOT tier): 1 TB × $0.023/GB = $23.55/month
  • Total: ~$113.55/month (96% cost reduction)

Configuration:

  1. Workspace settings → OneLake tab → Enable cache → 28-day retention
  2. Reset cache manually hvis source data oppdateres frequently

Constraint: Filer > 1 GB caches ikke.


2. Delta vs. Parquet for Shortcuts

Scenario: Shortcut til ADLS Gen2 med 10 TB Parquet files.

Issue: Parquet ikke transactional → Spark må lese hele filsett for queries.

Solution: Convert to Delta in Silver layer (ikke via shortcut):

  1. Bronze: Shortcut til ADLS Gen2 (Parquet)
  2. Silver: Spark notebook transformerer til Delta (med Z-ordering for common filters)
  3. Gold: Aggregated Delta tables

Cost impact:

  • Delta log overhead: ~1% storage increase
  • Query performance: 10-100× faster (predicate pushdown) → lower CU usage

ROI: Hvis 100 queries/day × 5 CU-hours → Delta reduserer til 0.5 CU-hours → ~90% CU cost reduction.


3. OneLake Security vs. Compute-level Security

Scenario: 50 Power BI reports med RLS i semantic model (DirectLake over SQL).

Problem: Hver query executor validerer RLS i semantic model → redundant processing.

Solution: Migrere RLS til OneLake security (DirectLake over OneLake mode):

  • RLS enforcement på OneLake-nivå (én gang)
  • All engines (Power BI, Spark, SQL) gjenbruker samme RLS rules
  • Result: 20-30% lavere CU usage for Power BI queries

Constraint: OneLake security RLS støtter kun simple predicates (ikke DAX expressions).


Estimert Kostnad (Norsk Offentlig Sektor — Typical Setup)

Scenario: Regional direktorat med 200 brukere, 50 TB data.

Komponent Volum Kostnad (NOK/måned)
Fabric Capacity F64 SKU (64 CU) ~73,000
OneLake Storage (HOT) 50 TB × $0.023/GB × 11.5 (USD→NOK) ~13,225
External shortcuts 5 TB (S3 cache) Egress: $450 → 5,175 NOK (first month), then ~1,150 NOK (cache)
Shortcut Transformations 10 tables × 2h Spark/month Included in F64 capacity
OneLake security 100 roles Included
Total (first month) ~91,400 NOK
Total (steady state) ~87,375 NOK

TCO over 3 år: ~3.15M NOK (inkludert capacity, storage growth 10%/år, external shortcuts cached).

Sammenligning med tradisjonell arkitektur (ADLS Gen2 + Synapse + ADF):

  • TCO over 3 år: ~4.2M NOK (separate storage accounts, ETL-pipelines, ingen unified security)
  • Besparelse: ~25% (hovedsakelig fra eliminert ETL-kostnad og unified namespace)

Anbefaling for utredning (§ 8: Økonomiske rammer):

"OneLake shortcuts reduserer TCO for data engineering med 20-30% sammenlignet med tradisjonelle ETL-pipelines, primært gjennom eliminering av staging-lag og redusert compute for datakopiering. Kostnadsdrivere er Fabric Capacity Units (CU) og storage (HOT tier). Anbefales å starte med F32/F64 SKU og skalere basert på faktisk forbruk."


For arkitekten

Når skal du anbefale shortcuts?

Use shortcuts when:

  1. Client sier: "Vi har data i AWS S3 og Azure Data Lake, og trenger unified analytics."

    • Response: Internal/external shortcuts → unified OneLake namespace → Azure AI Search over both sources.
  2. Client sier: "Vi trenger å dele curated data mellom avdelinger uten å kopiere."

    • Response: Internal shortcuts med OneLake security → zero-copy sharing, granular RBAC.
  3. Client sier: "Vi har high egress costs fra AWS S3."

    • Response: External shortcut med caching (28 days) → 90%+ cost reduction.
  4. Client sier: "Vi vil bygge RAG over multi-cloud data."

    • Response: Shortcuts til alle sources → Azure AI Search indexes OneLake → Copilot Studio Generative Answers.

Avoid shortcuts when:

  1. Client sier: "Vi trenger kompleks transformasjonslogikk (joins, aggregations)."

    • Response: Bruk shortcuts i Bronze, men transformer i Silver/Gold med Data Factory/Spark.
  2. Client sier: "Latency kritisk (< 500ms query response)."

    • Response: Copy data til OneLake (ikke shortcut), enable Delta caching.
  3. Client sier: "Compliance krever data in-region (Norge), og source er i US."

    • Response: Ikke bruk shortcuts — copy data til Norge-basert ADLS Gen2, deretter OneLake Lakehouse.

Decision Tree for Shortcut Strategy

START: "Trenger vi unified data access?"
│
├─ YES → "Er source allerede i optimal format (Delta/Parquet)?"
│   ├─ YES → "Er source read-only (partner/external)?"
│   │   ├─ YES → ✅ External shortcut med caching
│   │   └─ NO → ✅ Internal shortcut (hvis same tenant)
│   └─ NO → "Trenger vi transformasjonslogikk?"
│       ├─ SIMPLE (format conversion) → ✅ Shortcut Transformations
│       └─ COMPLEX (business logic) → ❌ ETL → Silver/Gold Delta
│
└─ NO → "Trenger vi data isolasjon (compliance)?"
    ├─ YES → ❌ Copy data til separate Lakehouse
    └─ NO → ✅ Internal shortcut (hvis multi-workspace sharing)

Common Pitfalls og Mitigations

Pitfall Symptom Mitigation
Shortcut til non-Delta files i Tables/ folder Lakehouse doesn't recognize as table Use Files/ folder or convert to Delta first
Space characters i shortcut name (Delta target) Table discovery fails Rename shortcut without spaces
DirectLake over SQL med internal shortcuts RLS ikke enforced (owner's identity used) Switch to DirectLake over OneLake mode
Cross-region shortcuts med OneLake security 404 errors Copy data in-region or use workspace-level access (ikke OneLake security)
B2B guest users i OneLake security roles Access denied (distribution list ikke resolved) Configure Entra External ID: "Guest users same access as members"
Shortcut caching ikke enabled High S3 egress costs Workspace settings → OneLake → Enable cache (28 days)
Shortcut til files > 1 GB med caching Caching doesn't work Split files into < 1 GB chunks or disable caching (rely on source SLA)

Shortcut Design Patterns

Pattern 1: Federated Data Mesh

Scenario: 5 domains (HR, Finance, Marketing, Sales, Operations) — hver har egen Lakehouse.

Architecture:

Domain Lakehouses (per team)
├── HR_Lakehouse
│   └── Tables/Employees.delta
├── Finance_Lakehouse
│   └── Tables/Transactions.delta
└── Marketing_Lakehouse
    └── Tables/Campaigns.delta

Central Analytics Lakehouse
├── Files/
│   ├── HR_Shortcut → HR_Lakehouse/Tables/Employees
│   ├── Finance_Shortcut → Finance_Lakehouse/Tables/Transactions
│   └── Marketing_Shortcut → Marketing_Lakehouse/Tables/Campaigns
└── Tables/
    └── UnifiedCustomerView.delta (joins via Spark)

Governance:

  • Domain teams kontrollerer OneLake security på egne Lakehouses
  • Central team har Read-only shortcuts
  • Lineage tracked via workspace lineage view

Pattern 2: Multi-Cloud Data Lake

Scenario: Legacy data i AWS S3, new data i Azure Data Lake, reports i SharePoint.

Architecture:

Unified_Lakehouse
├── Files/
│   ├── AWS_S3_Shortcut/ (external, cached 28 days)
│   ├── Azure_ADLS_Shortcut/ (external, delegated)
│   └── SharePoint_Shortcut/ (external, OneDrive connector)
└── Tables/
    └── ConsolidatedView.delta (Shortcut Transformation from S3 CSVs)

Cost optimization:

  • S3 caching → 95% egress reduction
  • ADLS in same region (West Europe) → no egress
  • SharePoint: low volume (<10 GB) → minimal cost

Pattern 3: RAG-Optimized Data Lake

Scenario: Copilot Studio Generative Answers over product manuals (PDF), support tickets (SQL), chat transcripts (Dataverse).

Architecture:

RAG_Lakehouse
├── Files/
│   ├── Manuals_S3_Shortcut/ (PDFs, external)
│   ├── Tickets_SQL_Shortcut/ (internal, Warehouse)
│   └── Chats_Dataverse_Shortcut/ (external, delegated)
└── Tables/
    ├── ChunkedDocuments.delta (Spark: chunk PDFs → 512 tokens)
    ├── Embeddings.delta (Azure OpenAI text-embedding-3-large)
    └── Metadata.delta (source tracking for citation)

Azure AI Search:

  • OneLake shortcut til Embeddings.delta
  • Indexed OneLake Knowledge Source
  • Copilot Studio → Generative Answers → AI Search

Benefits:

  • Single source of truth (no data duplication)
  • OneLake security → AI Search access control
  • Automatic refresh (OneLake changes → AI Search re-indexes)

Kilder og verifisering

Microsoft Learn (offisiell dokumentasjon)

  1. OneLake shortcuts — https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcuts (fetched 2026-02-11)
  2. OneLake security access control model — https://learn.microsoft.com/en-us/fabric/onelake/security/data-access-control-model (fetched 2026-02-11)
  3. OneLake shortcut security — https://learn.microsoft.com/en-us/fabric/onelake/onelake-shortcut-security
  4. Shortcut Transformations (File) — https://learn.microsoft.com/en-us/fabric/onelake/shortcuts/transformations
  5. Get started with OneLake security (preview) — https://learn.microsoft.com/en-us/fabric/onelake/security/get-started-onelake-security
  6. OneLake access with APIs — https://learn.microsoft.com/en-us/fabric/onelake/onelake-access-api
  7. Azure AI Search: OneLake knowledge source — https://learn.microsoft.com/en-us/azure/search/agentic-knowledge-source-how-to-onelake
  8. Azure Machine Learning: OneLake Datastore — https://learn.microsoft.com/en-us/azure/machine-learning/how-to-datastore?view=azureml-api-2#create-a-onelake-datastore
  9. Integrate Direct Lake security — https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-security-integration
  10. Medallion lakehouse architecture — https://learn.microsoft.com/en-us/fabric/onelake/onelake-medallion-lakehouse-architecture
  11. Query acceleration for OneLake shortcuts — https://learn.microsoft.com/en-us/fabric/real-time-intelligence/query-acceleration-overview

Code Samples (verified)

  • Python: OneLakeDatastore creation (azure-ai-ml SDK)
  • TypeScript: OneLakeShortcutClient usage (Fabric extensibility toolkit)
  • Python: DuckDB Iceberg REST catalog over OneLake
  • KQL: external_table function for shortcut queries

Confidence Markers

  • Storage tier pricing ($0.023/GB HOT): High confidence (based on Azure Storage pricing, OneLake parity)
  • Shortcut limits (100k per item): High confidence (Microsoft Learn documentation)
  • OneLake security latency (5 min role changes, 1 hour group membership): High confidence (official docs)
  • Cross-region shortcuts not supported: Medium confidence (preview limitation, may change in GA)
  • Caching cost reduction (90%+): High confidence (based on S3 egress pricing calculator)

Sist verifisert

  • 2026-02-11 (11 Microsoft Learn-kilder, 15 code samples)
  • Neste review anbefales: 2026-05 (etter Build 2026 for OneLake security GA announcements)