Utvikle semantiske modeller i Direct Lake

Denne artikkelen beskriver utformingsemner som er relevante for utvikling av semantiske modeller i Direct Lake.

Velg riktig lagringsmodus

Direkte innsjølagringsmodus har to former. Bruk følgende veiledning for å velge den Direct Lake-typen som passer best til din situasjon. For mer informasjon, se full sammenligning av lagringsmoduser.

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

  • Du forventer vanligvis raskere spørringsytelse.
  • Du bruker ett eller flere Fabric-gjenstander hvis OneLake-lagring løses til gyldige Delta-tabeller, enten native eller via snarveier.
  • Du trenger komposittmodellering med Import- eller DirectQuery-tabeller.
  • Du bør bruke OneLake sikkerhet.
  • Du trenger modelleringsfunksjoner som beregnede kolonner eller beregnede tabeller som refererer til Direct Lake-tabeller (forhåndsvisning).
  • Du vil ha konsistent Direct Lake-oppførsel uten DirectQuery-fallback (DirectLakeOnly modus).

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

Opprett modellen

Du kan opprette en semantisk Direct Lake-modell i Power BI Desktop eller fra mange Fabric-elementer i nettleseren. Fra et åpent Lakehouse kan du for eksempel velge Ny semantisk modell for å opprette en ny semantisk modell i Direct Lake-lagringsmodus.

Tabellen nedenfor viser de vanligste opprettelsesmetodene for hver type Direct Lake-semantisk modell.

Støtter Direct Lake på OneLake Støtter Direct Lake på SQL
Opprettelse fra Power BI-tjenesten. For eksempel, velg Create fra venstre navigasjonsfelt, og velg deretter OneLake-katalogen. Ja Nei
Opprettelse fra Power BI Desktop. Ja Nei
Opprettelse fra SQL-analyse-endepunktsiden . For eksempel, åpne SQL-analyse-endepunktet for et lakehouse, og velg deretter Ny semantisk modell. Ja Ja

Når du lager en Direct Lake-semantisk modell fra SQL-analyse-endepunktet, kan du velge mellom de to Direct Lake-typene, som vist i bildet nedenfor:

Skjermbilde som viser Direct Lake-typevalgdialogen når man oppretter en semantisk modell fra SQL-analyse-endepunktsiden.

Denne dialogen har som standard Direct Lake på OneLake hvis SQL-analyseendepunktet er i brukeridentitetsmodus, eller Direct Lake på SQL hvis SQL-analyseendepunktet er i delegert modus. For mer informasjon, se Access-moduser i SQL analytics-endepunktet.

Alternativt, som med alle semantiske Power BI-modeller, kan du fortsette utviklingen av modellen ved hjelp av et XMLA-kompatibelt verktøy, for eksempel SQL Server Management Studio (SSMS) (versjon 19.1 eller nyere) eller fellesskapsverktøy med åpen kildekode. Fabric-notatbøker kan også programmatisk opprette og redigere semantiske modeller med semantisk lenke og semantiske lenkelaboratorier.

Power Query-kontakter

En enkel måte å finne ut om en eksisterende Direct Lake-semantisk modell er på OneLake eller SQL, er å sjekke koblingen i TMDL-visningen. Fra fanen Modell , dra Uttrykksnoden for å se M uttrykksdefinisjonen.

Direct Lake på OneLake bruker Azure Data Lake Storage connector.

Skjermbilde som viser Azure Data Lake Storage Gen2-kontakten i TMDL-visning for en Direct Lake på OneLake-modell.

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

Skjermbilde som viser SQL Server-koblingen i TMDL-visning for en Direct Lake på SQL-modell.

Direct Lake-komposittmodeller

Direct Lake på OneLake muliggjør opprettelse av multi-kilde, sammensatte modeller som kombinerer tabeller i Direct Lake-modus med andre tabeller i Import/DirectQuery-modus, noe som gir verdifull fleksibilitet for dimensjonstabeller samtidig som Direct Lake utnyttes for svært store faktatabeller for å unngå kostbare oppdateringer og administrasjonskostnader. For mer informasjon, se avsnittet Composite semantic models with Direct Lake og Import storage mode tables .

Modelltabeller

Modelltabeller er normalt basert på tabellen i kilden til Fabric-dataelementet. Direct Lake på SQL tillater også valg av en SQL-visning. Spørringer til en modelltabell basert på en SQL-visning faller tilbake til DirectQuery-modus, noe som kan føre til lavere spørringsytelse.

Note

Med Direct Lake på OneLake kan tabeller basert på SQL-visninger legges til ved hjelp av andre lagringsmoduser som Import og/eller DirectQuery, fordi Direct Lake på OneLake støtter sammensatte modeller.

Tabeller bør inneholde kolonner for filtrering, gruppering, sortering og oppsummering, i tillegg til kolonner som støtter modellrelasjoner.

Hvis du vil ha mer informasjon om kolonner som skal inkluderes i semantiske modelltabeller, kan du se Forstå direkte lake-spørringsytelse.

For informasjon om håndheving av dataaksessregler med objektnivåsikkerhet (OLS) og radnivåsikkerhet (RLS), se Integrer Direct Lake-sikkerhet.

Metadata for Direct Lake-modell

Når du kobler til en semantisk Direct Lake-modell med XMLA-endepunktet, ser metadataene ut som en hvilken som helst annen modell. Direct Lake-modeller viser imidlertid følgende forskjeller:

  • Egenskapen compatibilityLevel for databaseobjektet er 1604 (eller høyere).
  • Modusegenskapen for Direct Lake-partisjoner er satt til directLake.
  • Direct Lake-partisjoner bruker delte uttrykk til å definere datakilder.
    • Direct Lake på SQL — Uttrykket peker på SQL-analyse-endepunktet til lakehouse eller lageret. Direct Lake bruker SQL Analytics-endepunktet til å oppdage skjema- og sikkerhetsinformasjon, men det laster inn dataene direkte fra OneLake (med mindre det faller tilbake til DirectQuery-modus av en eller annen grunn).
    • Direct Lake på OneLake — Uttrykket peker direkte til OneLake-lagringsstedet til Fabric-datakilden. Direct Lake bruker OneLake-API-ene for skjemaoppdagelse, sikkerhetssjekker og datainnlasting. Direct Lake på OneLake faller ikke tilbake til DirectQuery-modus.

Bruk M-parametere med distribusjonspipelines

For Direct Lake på OneLake gir ikke distribusjonspipelines datakilderegler. Bruk i stedet tekst M-parametere for å endre OneLake-kildelokasjonen mellom utrullingsfaser i pipelinen.

Følgende eksempel på Tabular Model Definition Language (TMDL) definerer tekstparametere for arbeidsområdets og lakehouse-ID-ene og refererer til dem i tilkoblingsuttrykket:

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 å parameterisere hele URL-en i stedet, erstatt de to ID-parameterne med dette uttrykket:

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

I Direct Lake-forbindelsesuttrykket, bruk AzureStorage.DataLake(OneLakeSourceUrl, [HierarchicalNavigation = true]). Bytt ut plassholderne med arbeidsplass- og innsjøhus- eller lager-ID-er. Når parameteren legges til det foregående skriptet, innrykk deklarasjonen på samme nivå som tilkoblingsuttrykket. Konfigurer én parameterregel for distribusjon i OneLakeSourceUrl stedet for separate regler for ID-ene.

For å tilpasse dette eksempelet til modellen din:

  1. I webmodellering, gå til TMDL-visning og åpne det delte uttrykket som inneholder tilkoblingen AzureStorage.DataLake .

  2. Legg til tekstparameteruttrykkene og oppdater forbindelsesuttrykket som vist i eksempelet. Behold navnet på det eksisterende tilkoblingsuttrykket, merknader og eventuelle ekstra tilkoblingsvalg uendret slik at eksisterende partisjoner fortsetter å referere til det. Bytt <workspace-id> ut og <lakehouse-id> med kilde-arbeidsområdet og lakehouse-IDene, ikke fullstendige URL-er. For en warehouse-kilde, bruk en WarehouseId parameter som inneholder warehouse-ID-en og referer til den i stedet for LakehouseId. Ikke bruk SQL Analytics endpoint ID. Alle expression deklarasjoner må være på samme innrykksnivå.

  3. Bruk skriptet. Parametere må ha type Text for å bruke dem til rebinding gjennom parameterregler. Flere tilkoblinger kan dele en arbeidsområdeparameter samtidig som de bruker separate item-ID-parametere.

  4. I mål-pipeline-fasen, konfigurer du en distribusjonsparameterregel for hver verdi som endres. For eksempel, sett WorkspaceId til mål-arbeidsområdets ID og LakehouseId til mål-Lakehouse-ID-en. Hvis modellen ikke er i målfasen ennå, deploy den der først slik at du kan konfigurere reglene.

  5. Distribuer den semantiske modellen fra kildestadiet til målstadiet for å anvende reglene.

  6. Oppdater målmodellen, verifiser slektskapet, og sørg for at den spør den tiltenkte kilden.

Målkilden må inneholde tabellene og kolonnene som modellen refererer til. Å endre parameterne oppretter ikke disse tabellene eller gir tilgang til dem. Sørg for at målmodellens tilkobling og tillatelser gir tilgang til måldataene.

For sammensatte modeller kan du lage tekstparametrene i Power Query i stedet for TMDL. Direct Lake-tilkoblingsuttrykket er ikke tilgjengelig i Power Query. Etter å ha opprettet parameterne, oppdater uttrykket i TMDL-visning, som i de foregående stegene.

Oppgaver etter publisering

Når du har publisert en semantisk Direct Lake-modell, bør du fullføre noen konfigurasjonsoppgaver. Hvis du vil ha mer informasjon, kan du se Behandle semantiske modeller i Direct Lake.