Direct Lake

De Direct Lake-modus is een semantische modelmogelijkheid voor het analyseren van zeer grote gegevensvolumes in Power BI. Direct Lake is gebaseerd op het rechtstreeks laden van bestanden met parquet-indeling vanuit een data lake zonder een query uit te voeren op een Lakehouse- of magazijneindpunt en zonder dat u gegevens hoeft te importeren of dupliceren in een Power BI-model. Direct Lake is een snel pad om de gegevens van het meer rechtstreeks in de Power BI-engine te laden, klaar voor analyse. In het volgende diagram ziet u hoe klassieke import- en DirectQuery-modi zich verhouden tot de Direct Lake-modus.

Diagram van Direct Lake-functies.

In de DirectQuery-modus voert de Power BI-engine query's uit op de gegevens in de bron, wat traag kan zijn, maar vermijdt dat u de gegevens zoals met de importmodus moet kopiëren. Wijzigingen in de gegevensbron worden onmiddellijk doorgevoerd in de queryresultaten.

Aan de andere kant, met de importmodus, kunnen de prestaties beter zijn omdat de gegevens in de cache worden opgeslagen en geoptimaliseerd voor DAX- en MDX-rapportquery's zonder SQL of andere typen query's te hoeven vertalen en door te geven aan de gegevensbron. De Power BI-engine moet echter eerst nieuwe gegevens naar het model kopiëren tijdens het vernieuwen. Wijzigingen in de bron worden alleen opgehaald bij het vernieuwen van het volgende model.

De Direct Lake-modus elimineert de importvereiste door de gegevens rechtstreeks vanuit OneLake te laden. In tegenstelling tot DirectQuery is er geen vertaling van DAX of MDX naar andere querytalen of het uitvoeren van query's op andere databasesystemen, wat resulteert in prestaties die vergelijkbaar zijn met de importmodus. Omdat er geen expliciet importproces is, is het mogelijk om eventuele wijzigingen in de gegevensbron op te halen terwijl deze zich voordoen, waarbij de voordelen van zowel DirectQuery- als importmodi worden gecombineerd en tegelijkertijd hun nadelen worden vermeden. De Direct Lake-modus kan de ideale keuze zijn voor het analyseren van zeer grote modellen en modellen met regelmatige updates in de gegevensbron.

Direct Lake biedt ook ondersteuning voor beveiliging op rijniveau en beveiliging op objectniveau , zodat gebruikers alleen de gegevens zien die ze mogen zien.

Vereisten

Direct Lake wordt alleen ondersteund in F-SKU's van Microsoft Fabric.

Lakehouse

Voordat u Direct Lake gebruikt, moet u een lakehouse (of een magazijn) inrichten met een of meer Delta-tabellen in een werkruimte die wordt gehost op een ondersteunde Microsoft Fabric-capaciteit. Het lakehouse is vereist omdat het de opslaglocatie biedt voor uw parquet-indelingsbestanden in OneLake. Het lakehouse biedt ook een toegangspunt voor het starten van de webmodelleringsfunctie om een Direct Lake-model te maken.

Zie Een lakehouse maken voor Direct Lake voor meer informatie over het inrichten van een Lakehouse, een Delta-tabel maken in het lakehouse en een basismodel voor het lakehouse maken.

SQL-eindpunt

Als onderdeel van het inrichten van een lakehouse worden een SQL-eindpunt voor SQL-query's en een standaardmodel voor rapportage gemaakt en bijgewerkt met alle tabellen die aan het lakehouse worden toegevoegd. Hoewel de Direct Lake-modus geen query's uitvoert op het SQL-eindpunt bij het rechtstreeks laden van gegevens uit OneLake, is het vereist wanneer een Direct Lake-model naadloos moet terugvallen op de DirectQuery-modus, bijvoorbeeld wanneer de gegevensbron specifieke functies gebruikt, zoals geavanceerde beveiliging of weergaven die niet kunnen worden gelezen via Direct Lake. In de Direct Lake-modus wordt ook een query uitgevoerd op het SQL-eindpunt voor schema- en beveiligingsgerelateerde informatie.

Datawarehouse

Als alternatief voor een Lakehouse met SQL-eindpunt kunt u ook een magazijn inrichten en tabellen toevoegen met behulp van SQL-instructies of gegevenspijplijnen. De procedure voor het inrichten van een zelfstandig datawarehouse is bijna identiek aan de procedure voor een lakehouse.

Ondersteuning voor modelschrijfbewerkingen met XMLA-eindpunt

Direct Lake-modellen ondersteunen schrijfbewerkingen via het XMLA-eindpunt met behulp van hulpprogramma's zoals SQL Server Management Studio (19.1 en hoger) en de nieuwste versies van externe BI-hulpprogramma's zoals Tabular Editor en DAX Studio. Modelschrijfbewerkingen via de ondersteuning voor XMLA-eindpunten:

  • Aanpassen, samenvoegen, scripten, foutopsporing en het testen van metagegevens van Het Direct Lake-model.

  • Bron- en versiebeheer, continue integratie en continue implementatie (CI/CD) met Azure DevOps en GitHub.

  • Automatiseringstaken zoals vernieuwen en wijzigingen toepassen op Direct Lake-modellen met behulp van PowerShell- en REST-API's.

Direct Lake-tabellen die zijn gemaakt met XMLA-toepassingen, hebben in eerste instantie een niet-verwerkte status totdat de toepassing een vernieuwingsopdracht uitgeeft. Niet-verwerkte tabellen vallen terug naar de DirectQuery-modus. Wanneer u een nieuw semantisch model maakt, moet u het semantische model vernieuwen om uw tabellen te verwerken.

XMLA lezen/schrijven inschakelen

Voordat u schrijfbewerkingen uitvoert op Direct Lake-modellen via het XMLA-eindpunt, moet LEZEN/schrijven van XMLA zijn ingeschakeld voor de capaciteit.

Voor fabric-proefcapaciteiten heeft de proefgebruiker de beheerdersbevoegdheden die nodig zijn om XMLA-lees-schrijven in te schakelen.

  1. Selecteer Capaciteitsinstellingen in de Beheer-portal.

  2. Klik op het tabblad Proefversie .

  3. Selecteer de capaciteit met de proefversie en uw gebruikersnaam in de naam van de capaciteit.

  4. Vouw Power BI-workloads uit en selecteer vervolgens in de instelling XMLA-eindpunt de optie Lezen schrijven.

    Schermopname van de lees-/schrijfinstelling voor het XMLA-eindpunt voor een fabric-evaluatiecapaciteit.

Houd er rekening mee dat de instelling XMLA-eindpunt van toepassing is op alle werkruimten en modellen die zijn toegewezen aan de capaciteit.

Metagegevens van Direct Lake-model

Wanneer u verbinding maakt met een zelfstandig Direct Lake-model via het XMLA-eindpunt, zien de metagegevens eruit als elk ander model. Direct Lake-modellen tonen echter de volgende verschillen:

  • De compatibilityLevel eigenschap van het databaseobject is 1604 of hoger.

  • De Mode eigenschap van Direct Lake-partities is ingesteld op directLake.

  • Direct Lake-partities maken gebruik van gedeelde expressies om gegevensbronnen te definiëren. De expressie verwijst naar het SQL-eindpunt van een lakehouse of warehouse. Direct Lake gebruikt het SQL-eindpunt om schema- en beveiligingsgegevens te detecteren, maar laadt de gegevens rechtstreeks vanuit de Delta-tabellen (tenzij Direct Lake om welke reden dan ook moet terugvallen naar de DirectQuery-modus).

Hier volgt een voorbeeld van een XMLA-query in SSMS:

Schermopname van een XMLA-query in SSMS.

Zie Semantische modelconnectiviteit met het XMLA-eindpunt voor meer informatie over hulpprogrammaondersteuning via het XMLA-eindpunt.

Terugval

Semantische Power BI-modellen in de Direct Lake-modus lezen Delta-tabellen rechtstreeks vanuit OneLake. Als een DAX-query op een Direct Lake-model echter de limieten overschrijdt voor de SKU of functies gebruikt die de Direct Lake-modus niet ondersteunen, zoals SQL-weergaven in een magazijn, kan de query terugvallen op de DirectQuery-modus. In de DirectQuery-modus gebruiken query's SQL om de resultaten op te halen van het SQL-eindpunt van het lakehouse of warehouse, wat invloed kan hebben op de queryprestaties. U kunt terugval naar de DirectQuery-modus uitschakelen als u ALLEEN DAX-query's wilt verwerken in de pure Direct Lake-modus. Het uitschakelen van terugval wordt aanbevolen als u geen terugval naar DirectQuery nodig hebt. Het kan ook handig zijn bij het analyseren van queryverwerking voor een Direct Lake-model om te bepalen of en hoe vaak terugval plaatsvindt. Zie Semantische modelmodi in Power BI voor meer informatie over de DirectQuery-modus.

Kaders definiëren resourcelimieten voor de Direct Lake-modus waarvoor een terugval naar de DirectQuery-modus nodig is om DAX-query's te verwerken. Raadpleeg de referentie voor eigenschappen van deltatabellen voor meer informatie over het bepalen van het aantal Parquet-bestanden en rijgroepen voor een Delta-tabel.

Voor semantische Direct Lake-modellen vertegenwoordigt Max Memory de maximale geheugenresourcelimiet voor het aantal gegevens waarop kan worden gepaginad. In feite is het geen kader omdat het overschrijden ervan geen terugval naar DirectQuery veroorzaakt; Het kan echter een invloed hebben op de prestaties als de hoeveelheid gegevens groot genoeg is om paging in en uit de modelgegevens van de OneLake-gegevens te veroorzaken.

De volgende tabel bevat zowel resourcebeveiligingen als maximaal geheugen:

Fabric-SKU's Parquet-bestanden per tabel Rijgroepen per tabel Rijen per tabel (miljoenen) Maximale modelgrootte op schijf/OneLake1 (GB) Maximaal geheugen (GB)
F2 1.000 1,000 300 10 3
F4 1.000 1,000 300 10 3
F8 1.000 1,000 300 10 3
F16 1.000 1,000 300 20 5
F32 1.000 1,000 300 40 10
F64/FT1/P1 5.000 5.000 1.500 Onbeperkt 25
F128/P2 5.000 5.000 3.000 Onbeperkt 50
F256/P3 5.000 5.000 6.000 Onbeperkt 100
F512/P4 10,000 10,000 12,000 Onbeperkt 200
F1024/P5 10,000 10,000 24,000 Onbeperkt 400
F2048 10,000 10,000 24,000 Onbeperkt 400

1 - Als de maximale modelgrootte op schijf/Onelake wordt overschreden, worden alle query's voor het model terugvallen op DirectQuery, in tegenstelling tot andere kaders die per query worden geëvalueerd.

Afhankelijk van uw Fabric-SKU zijn extra capaciteitseenheid en maximale geheugenlimieten per query ook van toepassing op Direct Lake-modellen. Zie Capaciteiten en SKU's voor meer informatie.

Terugvalgedrag

Direct Lake-modellen bevatten de eigenschap DirectLakeBehavior , die drie opties heeft:

Automatisch - (standaard) Geeft aan dat query's terugvallen op de DirectQuery-modus als gegevens niet efficiënt in het geheugen kunnen worden geladen.

DirectLakeOnly : hiermee geeft u alle query's op die alleen de Direct Lake-modus gebruiken. Terugval naar de DirectQuery-modus is uitgeschakeld. Als gegevens niet in het geheugen kunnen worden geladen, wordt er een fout geretourneerd. Gebruik deze instelling om te bepalen of DAX-query's geen gegevens in het geheugen laden, waardoor een fout wordt geretourneerd.

DirectQueryOnly : hiermee geeft u op dat alle query's alleen de DirectQuery-modus gebruiken. Gebruik deze instelling om de terugvalprestaties te testen.

De eigenschap DirectLakeBehavior kan worden geconfigureerd met behulp van Tabular Object Model (TOM) of Tabular Model Scripting Language (TMSL).

In het volgende voorbeeld worden alle query's alleen de Direct Lake-modus gebruikt:

// Disable fallback to DirectQuery mode.
//
database.Model.DirectLakeBehavior = DirectLakeBehavior.DirectLakeOnly = 1;
database.Model.SaveChanges();

Queryverwerking analyseren

Als u wilt bepalen of de DAX-query's van een rapportvisual naar de gegevensbron de beste prestaties bieden met behulp van de Direct Lake-modus of terugvallen op de DirectQuery-modus, kunt u Performance Analyzer gebruiken in Power BI Desktop, SQL Server Profiler of andere hulpprogramma's van derden om query's te analyseren. Zie Queryverwerking analyseren voor Direct Lake-modellen voor meer informatie.

Vernieuwen

Gegevenswijzigingen in OneLake worden standaard automatisch doorgevoerd in een Direct Lake-model. U kunt dit gedrag wijzigen door uw Direct Lake-gegevens up-to-date te houden in de instellingen van het model.

Schermopname van de optie Direct Lake-vernieuwing in modelinstellingen.

U kunt uitschakelen als u bijvoorbeeld het voltooien van gegevensvoorbereidingstaken moet toestaan voordat nieuwe gegevens worden weergegeven aan consumenten van het model. Wanneer deze functie is uitgeschakeld, kunt u vernieuwen handmatig aanroepen of met behulp van de vernieuwings-API's. Het aanroepen van een vernieuwing voor een Direct Lake-model is een voordelige bewerking waarbij het model de metagegevens van de nieuwste versie van de Delta Lake-tabel analyseert en wordt bijgewerkt om te verwijzen naar de meest recente bestanden in OneLake.

Power BI kan automatische updates van Direct Lake-tabellen onderbreken als er tijdens het vernieuwen een niet-herstelbare fout optreedt, dus zorg ervoor dat uw semantische model kan worden vernieuwd. In Power BI worden automatisch automatische updates hervat wanneer een volgende door de gebruiker aangeroepen vernieuwing zonder fouten wordt voltooid.

Beveiliging van gelaagde gegevenstoegang

Direct Lake-modellen die zijn gemaakt boven op lakehouses en magazijnen, voldoen aan het gelaagde beveiligingsmodel dat lakehouses en magazijnen ondersteunen door machtigingscontroles uit te voeren via het T-SQL-eindpunt om te bepalen of de identiteit die toegang probeert te krijgen tot de gegevens de vereiste machtigingen voor gegevenstoegang heeft. Direct Lake-modellen gebruiken standaard eenmalige aanmelding (SSO), zodat de effectieve machtigingen van de interactieve gebruiker bepalen of de gebruiker toegang tot de gegevens heeft toegestaan of geweigerd. Als het Direct Lake-model is geconfigureerd voor het gebruik van een vaste identiteit, bepaalt de effectieve machtiging van de vaste identiteit of gebruikers die interactie hebben met het semantische model toegang hebben tot de gegevens. Het T-SQL-eindpunt retourneert toegestaan of geweigerd aan het Direct Lake-model op basis van de combinatie van OneLake-beveiliging en SQL-machtigingen.

Een magazijnbeheerder kan bijvoorbeeld een gebruiker SELECT-machtigingen verlenen voor een tabel, zodat de gebruiker uit die tabel kan lezen, zelfs als de gebruiker geen OneLake-beveiligingsmachtigingen heeft. De gebruiker is geautoriseerd op lakehouse/magazijnniveau. Een magazijnbeheerder kan daarentegen ook de leestoegang van een gebruiker tot een tabel weigeren. De gebruiker kan deze tabel dan niet lezen, zelfs niet als de gebruiker over leesmachtigingen voor OneLake-beveiliging beschikt. De instructie DENY overschrijft alle verleende OneLake-beveiliging of SQL-machtigingen. Raadpleeg de volgende tabel voor de effectieve machtigingen die een gebruiker kan hebben gegeven elke combinatie van OneLake-beveiliging en SQL-machtigingen.

OneLake-beveiligingsmachtigingen SQL-machtigingen Effectieve machtigingen
Toestaan Geen Toestaan
Geen Toestaan Toestaan
Toestaan Weigeren Weigeren
Geen Weigeren Weigeren

Bekende problemen en beperkingen

  • Standaard ondersteunen alleen tabellen in het semantische model dat is afgeleid van tabellen in een Lakehouse of Warehouse Direct Lake-modus. Hoewel tabellen in het model kunnen worden afgeleid van SQL-weergaven in Lakehouse of Warehouse, vallen query's die deze tabellen gebruiken, terug naar de DirectQuery-modus.

  • Direct Lake-semantische modeltabellen kunnen alleen worden afgeleid van tabellen en weergaven van één Lakehouse of Warehouse.

  • Direct Lake-tabellen kunnen momenteel niet worden gecombineerd met andere tabeltypen, zoals Importeren, DirectQuery of Dual, in hetzelfde model. Samengestelde modellen worden momenteel niet ondersteund.

  • DateTime-relaties worden niet ondersteund in Direct Lake-modellen.

  • Berekende kolommen en berekende tabellen worden niet ondersteund.

  • Sommige gegevenstypen worden mogelijk niet ondersteund, zoals decimalen met hoge precisie en geldtypen.

  • Direct Lake-tabellen bieden geen ondersteuning voor complexe deltatabelkolomtypen. Binaire en guid-semantische typen worden ook niet ondersteund. U moet deze gegevenstypen converteren naar tekenreeksen of andere ondersteunde gegevenstypen.

  • Voor tabelrelaties moeten de gegevenstypen van hun sleutelkolommen overeenkomen. Kolommen met primaire sleutels moeten unieke waarden bevatten. DAX-query's mislukken als dubbele primaire-sleutelwaarden worden gedetecteerd.

  • De lengte van tekenreekskolomwaarden is beperkt tot 32.764 Unicode-tekens.

  • De drijvende-kommawaarde 'NaN' (geen getal) wordt niet ondersteund in Direct Lake-modellen.

  • Ingesloten scenario's die afhankelijk zijn van ingesloten entiteiten, worden nog niet ondersteund.

  • Validatie is beperkt voor Direct Lake-modellen. Gebruikersselecties worden ervan uitgegaan dat ze juist zijn en dat er geen query's kardinaliteit en kruisfilterselecties voor relaties of voor de geselecteerde datumkolom in een datumtabel valideren.

  • Op het tabblad Direct Lake in de vernieuwingsgeschiedenis worden alleen fouten met betrekking tot het vernieuwen van Direct Lake weergegeven. Geslaagde vernieuwingen worden momenteel weggelaten.

Aan de slag

De beste manier om aan de slag te gaan met een Direct Lake-oplossing in uw organisatie is door een Lakehouse-tabel te maken, er een Delta-tabel in te maken en vervolgens een eenvoudig semantisch model te maken voor het lakehouse in uw Microsoft Fabric-werkruimte. Zie Een lakehouse maken voor Direct Lake voor meer informatie.