Udvikl semantiske Direct Lake-modeller

I denne artikel beskrives designemner, der er relevante for udvikling af semantiske Direct Lake-modeller.

Vælg den rigtige lagertilstand

Direkte sø-lagringstilstand har to former. Brug følgende vejledning til at vælge den Direct Lake-type, der passer bedst til din situation. For mere information, se fuld sammenligning af lagringstilstande.

Brug Direct Lake på OneLake når...

  • Du forventer generelt hurtigere forespørgselsydelse.
  • Du bruger et eller flere Fabric-items, hvis OneLake-lagring bliver til gyldige Delta-tabeller, enten native eller via genveje.
  • Du har brug for sammensat modellering med Import- eller DirectQuery-tabeller.
  • Du vil bruge OneLake sikkerhed.
  • Du har brug for modelleringsfunktioner som beregnede kolonner eller beregnede tabeller, der refererer til Direct Lake-tabeller (forhåndsvisning).
  • Du ønsker konsistent Direct Lake-adfærd uden DirectQuery-fallback (DirectLakeOnly tilstand).

Brug Direct Lake på SQL når...

Opret modellen

Du kan oprette en semantisk Direct Lake-model i Power BI Desktop eller fra mange Fabric-elementer i browseren. Fra et åbent søhus kan du f.eks. vælge Ny semantisk model for at oprette en ny semantisk model i Direct Lake-lagringstilstand.

Følgende tabel viser de mest almindelige oprettelsesmetoder for hver type Direct Lake-semantisk model.

Støtter Direct Lake på OneLake Understøtter Direct Lake på SQL
Oprettelse fra Power BI-tjenesten. For eksempel vælg Opret fra venstre navigationsbjælke, og vælg derefter OneLake-kataloget. Ja Nej
Oprettelse fra Power BI Desktop. Ja Nej
Oprettelse fra SQL analytics endpoint-siden . For eksempel åbn SQL-analyse-endpointet for et lakehouse, og vælg derefter Ny semantisk model. Ja Ja

Når du opretter en Direct Lake semantisk model fra SQL-analyse-endpointet, kan du vælge mellem de to Direct Lake-typer, som vist på følgende billede:

Skærmbillede, der viser dialogen for Direct Lake-typeudvælgelse, når man opretter en semantisk model fra SQL analytics endpoint-siden.

Denne dialog starter som standard til Direct Lake på OneLake, hvis SQL-analyse-endpointet er i brugeridentitetstilstand, eller Direct Lake på SQL, hvis SQL-analyse-endpointet er i delegeret tilstand. For mere information, se Access-tilstande i SQL analytics endpoint.

Alternativt kan du, som med enhver semantisk Power BI-model, fortsætte udviklingen af din model ved hjælp af et XMLA-kompatibelt værktøj, f.eks. SQL Server Management Studio (SSMS) (version 19.1 eller nyere) eller communityværktøjer med åben kildekode. Fabric notebooks kan også programmatisk oprette og redigere semantiske modeller med semantisk link og semantisk link labs.

Power Query-stik

En nem måde at afgøre, om en eksisterende Direct Lake-semantisk model er på OneLake eller SQL, er at tjekke connectoren i TMDL-visningen. Fra fanen Model , træk Expressions-noden for at se M-udtrykkets definition.

Direct Lake på OneLake bruger Azure Data Lake Storage connectoren.

Skærmbillede, der viser Azure Data Lake Storage Gen2-connectoren i TMDL-visning for en Direct Lake på OneLake-model.

Direct Lake på SQL bruger SQL Server-connectoren , eller connectoren OneLake.SqlAnalytics() .

Skærmbillede, der viser SQL Server-connectoren i TMDL-visning for en Direct Lake på SQL-model.

Direct Lake sammensatte modeller

Direct Lake på OneLake muliggør oprettelse af multi-kilde, sammensatte modeller, der kombinerer tabeller i Direct Lake-tilstand med andre tabeller i Import/DirectQuery-tilstand, hvilket giver værdifuld fleksibilitet for dimensionstabeller, samtidig med at Direct Lake udnyttes til meget store faktatabeller for at undgå dyre opdateringer og administrationsomkostninger. For mere information, se afsnittet Composite semantic models with Direct Lake og Import storage mode tables .

Modeltabeller

Modeltabeller er normalt baseret på tabellen i kilde-Fabric-dataelementet. Direct Lake på SQL tillader også valg af en SQL-visning. Forespørgsler til en modeltabel baseret på en SQL-visning falder tilbage i DirectQuery-tilstand, hvilket kan resultere i langsommere forespørgselsydelse.

Note

Med Direct Lake på OneLake kan tabeller baseret på SQL-visninger tilføjes ved hjælp af andre lagringstilstande som Import og/eller DirectQuery, fordi Direct Lake på OneLake understøtter sammensatte modeller.

Tabeller skal indeholde kolonner til filtrering, gruppering, sortering og opsummering ud over kolonner, der understøtter modelrelationer.

Du kan få flere oplysninger om kolonner, der skal medtages i dine semantiske modeltabeller, under Forstå ydeevnen af Direct Lake-forespørgsler.

For information om håndhævelse af dataadgangsregler med objektniveausikkerhed (OLS) og rækkeniveausikkerhed (RLS), se Integrér Direct Lake sikkerhed.

Direct Lake-modelmetadata

Når du opretter forbindelse til en semantisk Direct Lake-model med XMLA-slutpunktet, ligner metadataene en hvilken som helst anden model. Direct Lake-modeller viser dog følgende forskelle:

  • Egenskaben compatibilityLevel for databaseobjektet er 1604 (eller højere).
  • Tilstandsegenskaben for Direct Lake-partitioner er angivet til directLake.
  • Direct Lake-partitioner bruger delte udtryk til at definere datakilder.
    • Direct Lake på SQL — Udtrykket peger på SQL-analyse-endpointet i lakehouse eller lageret. Direct Lake bruger SQL Analytics-slutpunktet til at finde skema- og sikkerhedsoplysninger, men de indlæses direkte fra OneLake (medmindre de af en eller anden grund går tilbage til DirectQuery-tilstand ).
    • Direct Lake på OneLake — Udtrykket peger direkte på OneLake-lagringsstedet for Fabric-datakilden. Direct Lake bruger OneLake API'erne til skemaopdagelse, sikkerhedstjek og dataindlæsning. Direct Lake på OneLake går ikke tilbage til DirectQuery-tilstand.

Brug M-parametre med deployment-pipelines

For Direct Lake på OneLake giver deployment-pipelines ikke datakilderegler. Brug i stedet tekst M-parametre til at ændre OneLake-kildens placering mellem deployeringspipeline-faserne.

Følgende eksempel på Tabular Model Definition Language (TMDL) definerer tekstparametre for arbejdsområdets og lakehouse-ID'erne og refererer til dem i forbindelsesudtrykket:

createOrReplace
	expression 'DirectLake - Sales' =
			let
			    Source = AzureStorage.DataLake("https://onelake.dfs.fabric.microsoft.com/" & WorkspaceId & "/" & LakehouseId, [HierarchicalNavigation = true])
			in
			    Source

	expression WorkspaceId = "<workspace-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

	expression LakehouseId = "<lakehouse-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

For at parameterisere den fulde URL i stedet, erstatter du de to ID-parametre med dette udtryk:

expression OneLakeSourceUrl = "https://onelake.dfs.fabric.microsoft.com/<workspace-id>/<item-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

I Direct Lake-forbindelsesudtrykket bruges AzureStorage.DataLake(OneLakeSourceUrl, [HierarchicalNavigation = true]). Erstat pladsholderne med arbejdsområde- og lakehouse- eller lager-ID'er. Når parameteren tilføjes til det foregående script, indent dens deklaration på samme niveau som forbindelsesudtrykket. Konfigurer én deployment parameter rule i OneLakeSourceUrl stedet for separate regler for ID'erne.

For at tilpasse dette eksempel til din model:

  1. I webmodellering skal du gå til TMDL-visning og åbne det delte udtryk, der indeholder forbindelsen AzureStorage.DataLake .

  2. Tilføj tekstparameterudtrykkene og opdater forbindelsesudtrykket som vist i eksemplet. Behold det eksisterende forbindelsesudtryks navn, annoteringer og eventuelle yderligere forbindelsesmuligheder uændrede, så eksisterende partitioner fortsat refererer til det. Erstat <workspace-id> og <lakehouse-id> med kildearbejdsområdet og lakehouse ID'erne, ikke fulde URL'er. For en warehouse-kilde skal du bruge en WarehouseId parameter, der indeholder warehouse-ID'et, og referere til den i stedet for LakehouseId. Brug ikke SQL analytics endpoint ID. Alle expression deklarationer skal være på samme indrykningsniveau.

  3. Påfør manuskriptet. Parametre skal have type Text for at kunne bruge dem til genbinding gennem parameterregler. Flere forbindelser kan dele en workspace-parameter, mens de bruger separate item ID-parametre.

  4. I mål-pipeline-fasen konfigureres en deploymentsparameterregel for hver værdi, der ændres. For eksempel kan du sætte WorkspaceId til målarbejdsområdets ID og LakehouseId til mål-lakehouse-ID'et. Hvis modellen endnu ikke er i målstadiet, så deploy den der først, så du kan konfigurere reglerne.

  5. Udrul den semantiske model fra kildestadiet til målstadiet for at anvende reglerne.

  6. Opdater målmodellen, verificér slægten, og sørg for, at den forespørger den tiltænkte kilde.

Målkilden skal indeholde de tabeller og kolonner, som modellen refererer til. At ændre parametrene skaber ikke disse tabeller eller giver adgang til dem. Sørg for, at målmodellens forbindelse og tilladelser giver adgang til måldataene.

For sammensatte modeller kan du oprette tekstparametrene i Power Query i stedet for TMDL. Direct Lake-forbindelsesudtrykket er ikke tilgængeligt i Power Query. Efter at have oprettet parametrene, opdateres udtrykket i TMDL-visningen, som i de foregående trin.

Opgaver efter udgivelsen

Når du har publiceret en semantisk Direct Lake-model, skal du udføre nogle konfigurationsopgaver. Du kan få flere oplysninger under Administrer semantiske Direct Lake-modeller .