DirectQuery gebruiken voor Power BI-gegevenssets en Azure Analysis Services (preview-versie)
Met DirectQuery voor Power BI-gegevenssets en AAS (Azure Analysis Services) kunt u DirectQuery gebruiken om verbinding te maken met AAS of Power BI-gegevenssets. Als u wilt, kunt u het ook combineren met andere DirectQuery-gegevens en geïmporteerde gegevens. Deze functie is met name handig voor rapportauteurs die de gegevens uit hun zakelijke semantische model willen combineren met andere gegevens waarvan ze de eigenaar zijn, zoals een Excel-spreadsheet, of die de metagegevens uit hun zakelijke semantische model persoonlijker willen maken of willen verrijken.
De preview-functie inschakelen
Omdat de functionaliteit momenteel beschikbaar is in de preview-versie, moet u deze eerst inschakelen. Ga hiervoor in Power BI Desktop naar Bestand > Opties en instellingen > Opties, en schakel in de sectie Preview-functies het selectievakje DirectQuery voor Power BI-gegevenssets en Analysis Services in om deze preview-functie in te schakelen. U moet Power BI Desktop mogelijk opnieuw opstarten om de wijziging door te voeren.
DirectQuery gebruiken voor liveverbindingen
Voor het gebruik van DirectQuery Power BI gegevenssets en Azure Analysis Services vereist dat uw rapport een lokaal model heeft. U kunt beginnen met een liveverbinding en toevoegen of upgraden naar een lokaal model, of beginnen met een DirectQuery-verbinding of geïmporteerde gegevens, waarmee automatisch een lokaal model in uw rapport wordt gemaakt.
Als u wilt zien welke verbindingen worden gebruikt in uw model, controleert u de statusbalk in de rechterbenedenhoek van Power BI Desktop. Als u alleen met een Azure Analysis Services-bron bent verbonden, ziet u een bericht zoals in de volgende afbeelding:

Als u bent verbonden met een Power BI-gegevensset, ziet u een bericht waarin staat met welke Power BI-gegevensset u bent verbonden:

Als u de metagegevens van velden in uw live verbonden gegevensset wilt aanpassen, selecteert u in de statusbalk de optie Wijzigingen aanbrengen in dit model. U kunt op de knop Wijzigingen aanbrengen in dit model van het lint klikken, zoals weergegeven in de volgende afbeelding. De knop Wijzigingen aanbrengen in dit model in Rapportweergave op het tabblad Modellen. In Modelweergave bevindt de knop zich op het tabblad Start.

Als u de knop selecteert, wordt een dialoogvenster weergegeven waarin de toevoeging van een lokaal model wordt bevestigd. Selecteer Een lokaal model toevoegen om het maken van nieuwe kolommen in te schakelen of de metagegevens te wijzigen voor velden uit Power BI-gegevenssets of Azure Analysis Services. In de volgende afbeelding wordt het dialoogvenster weergegeven.

Als u live bent verbonden met een Azure Analysis Services-bron, is er geen lokaal model. U moet een lokaal model toevoegen aan uw rapport om DirectQuery te gebruiken voor live verbonden bronnen, zoals Power BI-gegevenssets en Azure Analysis Services. Wanneer u een rapport met een lokaal model publiceert in de Power BI-service, wordt er ook een gegevensset voor dit lokale model gepubliceerd.
Koppelen
Gegevenssets vormen samen met de gegevenssets en modellen waarop ze zijn gebaseerd, een keten. Met dit proces, ketenen genoemd, kunt u een rapport en gegevensset publiceren op basis van andere Power BI gegevenssets, een functie die voorheen niet mogelijk was.
Stel bijvoorbeeld dat uw collega een Power BI-gegevensset publiceert met de naam Verkoop en budget die is gebaseerd op een Azure Analysis Services-model met de naam Verkoop. En dat uw collega deze gegevensset combineert met een Excel-sheet met de naam Budget.
Wanneer u een nieuw rapport (en een nieuwe gegevensset) publiceert met de naam Verkoop en budget - Europa, gebaseerd op de Power BI-gegevensset Verkoop en budget die is gepubliceerd door uw collega, waarbij u wat verdere wijzigingen of extensies aanbrengt, voegt u eigenlijk een rapport of gegevensset toe aan een keten van drie. Deze keten begint met het Azure Analysis Services-model Verkoop, en eindigt met uw Power BI-gegevensset Verkoop en budget - Europa. In de volgende afbeelding wordt dit ketenvormingsproces geïllustreerd.

De keten in de vorige afbeelding heeft een lengte van drie. Dit is de maximale lengte tijdens deze preview-periode. Uitbreiden buiten een ketenlengte van drie wordt niet ondersteund en resulteert in fouten.
Beveiligingswaarschuwing
Als u de functie DirectQuery voor Power BI-gegevenssets en AAS (Azure Analysis Services) gebruikt, krijgt u een dialoogvenster met een beveiligingswaarschuwing te zien, zoals weergegeven in de volgende afbeelding.

Gegevens worden mogelijk van de ene gegevensbron naar een andere worden gepusht, wat dezelfde beveiligingswaarschuwing is voor het combineren van DirectQuery-bronnen en importbronnen in een gegevensmodel. Raadpleeg Samengestelde modellen gebruiken in Power BI Desktop voor meer informatie over dit gedrag.
Functies en scenario's om uit te proberen
De volgende lijst biedt suggesties voor hoe u zelf DirectQuery voor Power BI-gegevenssets en AAS (Azure Analysis Services) kunt verkennen:
- Verbinding met gegevens maken met behulp van verschillende bronnen: Importeren (zoals bestanden), Power BI-gegevenssets, Azure Analysis Services
- Relaties maken tussen verschillende gegevensbronnen
- Metingen schrijven die gebruikmaken van velden uit verschillende gegevensbronnen
- Nieuwe kolommen maken voor tabellen uit Power BI-gegevenssets of Azure Analysis Services
- Visuals maken die gebruikmaken van kolommen uit verschillende gegevensbronnen
Vanaf de versie van april 2021 van Power BI Desktop kunt u ook verbinding maken met een perspectief wanneer u een DirectQuery-verbinding maakt met een Azure Analysis Services-model, als er een perspectief beschikbaar is.
Vanaf de versie van oktober 2021 van Power BI Desktop hebt u meer controle over uw verbindingen:
- U kunt een tabel uit uw model verwijderen met behulp van de lijst met velden om modellen zo beknopt en lean mogelijk te houden (als u verbinding maakt met een perspectief, kunt u tabellen niet uit het model verwijderen)
- U kunt opgeven welke tabellen u wilt laden, in plaats van dat u alle tabellen moet laden wanneer u alleen een specifieke subset van tabellen wilt
- U kunt opgeven of u tabellen wilt toevoegen die vervolgens worden toegevoegd aan de gegevensset nadat u verbinding hebt gemaakt in uw model
- Met de release van oktober 2021 zijn prestatieverbeteringen aangebracht met parallelle uitvoering van modelquery's en slimme caching
Overwegingen en beperkingen
Er zijn enkele overwegingen om rekening mee te houden bij het gebruik van DirectQuery voor Power BI-gegevenssets en AAS (Azure Analysis Services) :
Als u uw gegevensbronnen vernieuwt, en er fouten optreden met conflicterende veld- of tabelnamen, worden deze problemen in Power BI voor u opgelost.
Gebruikers hebben 'Build'-machtigingen nodig voor alle gegevenssets in de keten voor toegang tot een rapport dat gebruik maakt van deze functie.
Als u rapporten in de Power BI-service wilt bouwen in een samengesteld model dat is gebaseerd op een andere gegevensset, moeten alle referenties zijn ingesteld. Op de instellingenpagina voor het vernieuwen van referenties, voor Azure Analysis Services-bronnen, verschijnt de volgende fout, ook al zijn de referenties juist ingesteld:

Omdat dit verwarrend en onjuist is, is dit iets wat we binnenkort zullen afhandelen.
Als u een DirectQuery-verbinding wilt maken met een Power BI-gegevensset, moet 'XMLA-eindpunten toestaan en analyseren in Excel met on-premises gegevenssets' zijn ingeschakeld voor uw tenant.
Voor Premium-capaciteiten moet het XMLA-eindpunt worden ingesteld op Alleen-lezen of Lezen/schrijven.
Als u een klassieke werkruimte in combinatie met deze functie gebruikt, is het niet voldoende om machtigingen in te stellen voor de gegevensset zelf. Voor klassieke werkruimten moeten alle gebruikers die rapporten openen die gebruikmaken van deze functie lid zijn van de werkruimte. U kunt klassieke werkruimten upgraden naar nieuwe werkruimten om deze situatie te voorkomen.
RLS-regels worden toegepast op de bron waarvoor ze zijn gedefinieerd, maar worden niet toegepast op andere gegevenssets in het model. RLS die is gedefinieerd in het rapport, is niet van toepassing op externe bronnen. RLS die is ingesteld voor externe bronnen, wordt niet toegepast op andere gegevensbronnen.
KPI's, beveiliging op rijniveau en vertalingen worden in deze preview-versie niet geïmporteerd uit de bron.
Mogelijk ziet u onverwacht gedrag bij het gebruik van een datumhiërarchie. Gebruik in plaats hiervan een datumkolom om dit probleem op te lossen. Nadat u een datumhiërarchie hebt toegevoegd aan een visual, kunt u overschakelen naar een datumkolom door op de pijl-omlaag in de veldnaam te klikken. Klik vervolgens op de naam van dit veld, in plaats van Datumhiërarchie te gebruiken:

Ga naar dit artikel voor meer informatie over het gebruik van datumkolommen versus datumhiërarchieën.
Mogelijk ziet u onhandige foutberichten wanneer u AI-functies gebruikt met een model dat een DirectQuery-verbinding heeft met Azure Analysis Services.
Het gebruik van ALLSELECTED voor een DirectQuery-bron resulteert in onvolledige resultaten.
Filters en relaties:
Een filter dat vanuit een gegevensbron is toegepast op een tabel uit een andere DirectQuery-bron, kan slechts worden ingesteld voor één kolom
Het kruislings filteren van twee tabellen in een DirectQuery-bron door deze te filteren met een tabel buiten de bron is geen aanbevolen ontwerp, en wordt niet ondersteund.
Een filter kan maar één keer worden toegepast op een tabel. Twee keer hetzelfde filter toepassen op een tabel, via een of meer tabellen buiten de DirectQuery-bron, wordt niet ondersteund.
Gedurende de preview-periode is drie de maximumlengte van een modelketen. Uitbreiden van de ketenlengte naar meer dan drie wordt niet ondersteund, en resulteert in fouten.
Een markering voor het ontraden van ketens kan worden ingesteld op een model om te voorkomen dat een keten wordt gemaakt of uitgebreid. Zie DirectQuery-verbindingen met een gepubliceerde gegevensset beheren voor meer informatie.
De verbinding met een Power BI gegevensset wordt niet weergegeven in Power Query.
Er zijn ook enkele beperkingen waar u rekening mee moet houden:
Parameters voor database- en servernamen zijn momenteel uitgeschakeld.
Het definiëren van RLS voor tabellen uit een externe bron wordt niet ondersteund.
Het gebruik van een van de volgende bronnen als een DirectQuery-bron wordt niet ondersteund:
- SQL Server Analysis Services (SSAS)
- SAP HANA
- SAP Business Warehouse
- Realtime gegevenssets
Het gebruik van DirectQuery in gegevenssets uit Mijn werkruimte wordt momenteel niet ondersteund.
Het gebruik van Power BI Embedded met gegevenssets die een DirectQuery-verbinding met een Power BI-gegevensset of Azure Analysis Services-model bevatten, wordt momenteel niet ondersteund.
Berekeningsgroepen in externe bronnen worden niet ondersteund, met niet-gedefinieerde queryresultaten.
Berekende tabellen worden niet ondersteund in de service met behulp van deze functie. Als u probeert een gegevensset te vernieuwen met een berekende tabel of een berekende kolom die verwijst naar een Direct Query-gegevensbron, wordt het foutbericht 'Eenmalige aanmelding (SSO)-referentie is niet opgegeven'.
Pagina automatisch vernieuwen (APR) wordt alleen ondersteund voor sommige scenario's, afhankelijk van het type gegevensbron. Raadpleeg het artikel Pagina automatisch vernieuwen in Power BI voor meer informatie.
Het overnemen van een gegevensset die de functie DirectQuery naar andere gegevenssets gebruikt, wordt momenteel niet ondersteund.
Net als bij elke DirectQuery-gegevensbronworden hiërarchieën die zijn gedefinieerd in een Azure Analysis Services-model of Power BI-gegevensset, niet weergegeven wanneer u verbinding maakt met het model of de gegevensset in de DirectQuery-modus met behulp van Excel.
Overwegingen voor tenants
Elk model met een DirectQuery-verbinding met een Power BI-gegevensset of naar Azure Analysis Services moet worden gepubliceerd in dezelfde tenant. Dit is met name belangrijk bij het openen van een Power BI-gegevensset of een Azure Analysis Services-model met behulp van B2B-gastidentiteiten, zoals wordt weergegeven in het volgende diagram. Zie Gastgebruikers die inhoud kunnen bewerken en beheren om de tenant-URL voor publicatie te vinden.
Kijk eens naar het volgende diagram. De genummerde stappen in het diagram worden beschreven in de volgende alinea's.
In het diagram werkt Zij met Contoso en gebruikt ze gegevens van Fabrikam. Met Power BI Desktop maakt Door een DirectQuery-verbinding met een Azure Analysis Services-model dat wordt gehost in de tenant van Fabrikam.
Voor de verificatie gebruikt Ter verificatie een B2B-gastgebruikersidentiteit (stap 1 in het diagram).
Als het rapport wordt gepubliceerd naar de Power BI-service van Contoso (stap 2), kan de gegevensset die is gepubliceerd in de Contoso-tenant, niet worden geverifieerd op basis van het Azure Analysis Services-model van Fabrikam (stap 3). Als gevolg hiervan werkt het rapport niet.
Omdat in dit scenario Azure Analysis Services model wordt gehost in de tenant van Fabrikam, moet het rapport ook worden gepubliceerd in de tenant van Fabrikam. Na een geslaagde publicatie in de tenant van Fabrikam (stap 4) heeft de gegevensset toegang tot het Azure Analysis Services-model (stap 5) en werkt het rapport goed.
Samengestelde modellen met DirectQuery-verbinding met bronmodellen die worden beveiligd door beveiliging op objectniveau
Wanneer een samengesteld model gegevens op haalt uit een Power BI-gegevensset of Azure Analysis Services via DirectQuery en dat bronmodel wordt beveiligd door beveiliging op objectniveau, kunnen consumenten van het samengestelde model onverwachte resultaten zien. In de volgende sectie wordt uitgelegd hoe deze resultaten tot gevolg kunnen hebben.
Met beveiliging op objectniveau (OLS) kunnen modelauteurs objecten die samen het modelschema (dat wil zeggen tabellen, kolommen, metagegevens, enzovoort) verbergen voor modelverbruikers (bijvoorbeeld een maker van een rapport of een auteur van een samengesteld model). Bij het configureren van OLS voor een object maakt de modelauteur een rol en verwijdert deze vervolgens de toegang tot het object voor gebruikers die aan die rol zijn toegewezen. Vanuit het oogpunt van deze gebruikers bestaat het verborgen object niet.
OLS wordt gedefinieerd voor en toegepast op het bronmodel. Het kan niet worden gedefinieerd voor een samengesteld model dat is gebouwd op basis van het bronmodel.
Wanneer een samengesteld model wordt gebouwd op een met OLS beveiligde Power BI-gegevensset of Azure Analysis Services-model via een DirectQuery-verbinding, wordt het modelschema van het bronmodel daadwerkelijk gekopieerd naar het samengestelde model. Wat er wordt gekopieerd, is afhankelijk van wat de auteur van het samengestelde model mag zien in het bronmodel volgens de OLS-regels die daar van toepassing zijn. De gegevens zelf worden niet gekopieerd naar het samengestelde model, maar worden altijd opgehaald via DirectQuery uit het bronmodel wanneer dat nodig is. Met andere woorden, het ophalen van gegevens gaat altijd terug naar het bronmodel, waar OLS-regels van toepassing zijn.
Omdat het samengestelde model niet wordt beveiligd door OLS-regels, zijn de objecten die gebruikers van het samengestelde model zien, de objecten die de auteur van het samengestelde model in het bronmodel kan zien in plaats van waar ze zelf toegang toe hebben. Dit kan leiden tot de volgende situaties
- Iemand die het samengestelde model bekijkt, ziet mogelijk objecten die verborgen zijn in het bronmodel door OLS.
- Omgekeerd zien ze mogelijk GEEN object in het samengestelde model dat ze kunnen zien in het bronmodel, omdat dat object is verborgen voor de auteur van het samengestelde model door de OLS-regels die de toegang tot het bronmodel beheren.
Een belangrijk punt is dat gebruikers van het samengestelde model, ondanks het geval dat in het eerste opsommingsteken wordt beschreven, nooit werkelijke gegevens zien die ze niet zouden moeten zien, omdat de gegevens zich niet daadwerkelijk in het samengestelde model bevinden. Vanwege DirectQuery wordt deze waar nodig opgehaald uit de bronset, waarbij OLS onbevoegde toegang blokkeert.
Houd rekening met deze achtergrond met het volgende scenario.

Admin_user heeft een semantisch bedrijfsmodel gepubliceerd met behulp van een Power BI-gegevensset of een Azure Analysis Services-model met een tabel Customer en een Territory-tabel. Admin_user publiceert de gegevensset naar Power BI service en stelt OLS-regels in die het volgende effect hebben:
- Financiële gebruikers kunnen de tabel Klant niet zien
- Marketinggebruikers kunnen de tabel Gebied niet zien
Finance_user publiceert een gegevensset met de naam 'Financiële gegevensset' en een rapport met de naam 'Financieel rapport' dat via DirectQuery verbinding maakt met het semantische bedrijfsmodel dat in stap 1 is gepubliceerd. Het rapport Financiën bevat een visual die gebruikmaakt van een kolom uit de tabel Territory.
Marketing_user wordt het rapport Financiën geopend. De visual die gebruikmaakt van de tabel Territory wordt weergegeven, maar retourneert een fout. Wanneer het rapport wordt geopend, probeert DirectQuery de gegevens op te halen uit het bronmodel met behulp van de referenties van de Marketing_user, die de tabel Gebied niet kan zien volgens de OLS-regels die zijn ingesteld op het semantische bedrijfsmodel.
Marketing_user maakt een nieuw rapport met de naam Marketingrapport dat gebruikmaakt van de gegevensset Financiën als bron. De lijst met velden bevat de tabellen en kolommen Finance_user toegang hebben. Daarom wordt de tabel Gebied weergegeven in de lijst met velden, maar de tabel Customer niet. Wanneer de Marketing_user echter probeert een visual te maken die gebruik maakt van een kolom uit de tabel Territory, wordt er een fout geretourneerd. Op dat moment probeert DirectQuery gegevens op te halen uit het bronmodel met behulp van de referenties van Marketing_user en worden DE OLS-regels opnieuw in- en geblokkeerd. Hetzelfde gebeurt wanneer Marketing_user een nieuwe gegevensset en een nieuw rapport maakt die verbinding maken met de gegevensset Financiën met een DirectQuery-verbinding. Ze zien de tabel Gebied in de lijst met velden. Dit is wat Finance_user zou kunnen zien, maar wanneer ze een visual proberen te maken die gebruik maakt van die tabel, worden ze geblokkeerd door de OLS-regels voor het semantische bedrijfsmodel.
Stel nu dat Admin_user OLS-regels voor het semantische bedrijfsmodel bij te werkt om te voorkomen dat Finance de tabel Territory ziet.
Alleen wanneer de gegevensset Financiën wordt vernieuwd, worden de bijgewerkte OLS-regels in de gegevensset weergegeven. Dus wanneer de Finance_user de gegevensset Financiën vernieuwt, wordt de tabel Gebied niet meer weergegeven in de lijst met velden. De visual in het rapport Financiën die gebruikmaakt van een kolom uit de tabel Gebied retourneert dus een fout voor Finance_user, omdat ze nu geen toegang meer hebben tot de tabel Gebied.
Om het volgende op te sommen:
- Consumenten van een samengesteld model zien de resultaten van de OLS-regels die van toepassing waren op de auteur van het samengestelde model toen ze het model maakten. Wanneer er dus een nieuw rapport wordt gemaakt op basis van het samengestelde model, toont de lijst met velden de tabellen waarvoor de auteur van het samengestelde model toegang had toen ze het model maakten, ongeacht tot wat de huidige gebruiker toegang heeft in het bronmodel.
- OLS-regels kunnen niet worden gedefinieerd voor het samengestelde model zelf.
- Een consument van een samengesteld model ziet nooit de werkelijke gegevens die ze niet mogen zien, omdat relevante OLS-regels in het bronmodel deze blokkeren wanneer DirectQuery de gegevens probeert op te halen met behulp van hun referenties.
- Als het bronmodel de OLS-regels bij werkt, zijn deze wijzigingen alleen van invloed op het samengestelde model wanneer het wordt vernieuwd.
Een subset van tabellen laden vanuit een Power BI-gegevensset of Azure Analysis Services model
Wanneer u verbinding maakt met Power BI gegevensset of Azure Analysis Services model met behulp van een DirectQuery-verbinding, kunt u bepalen met welke tabellen verbinding moet worden gemaakt. U kunt er ook voor kiezen om automatisch een tabel toe te voegen die kan worden toegevoegd aan de gegevensset of het model nadat u verbinding hebt gemaakt met uw model. Houd er rekening mee dat wanneer u verbinding maakt met een perspectief, uw model alle tabellen in de gegevensset of het model bevat en dat tabellen die niet in het perspectief zijn opgenomen, verborgen zijn. Bovendien wordt elke tabel die aan het perspectief kan worden toegevoegd, automatisch toegevoegd. Dit dialoogvenster wordt niet weergegeven voor liveverbindingen.
Notitie
Dit dialoogvenster wordt alleen weergegeven als u een DirectQuery-verbinding toevoegt aan een Power BI gegevensset of Azure Analysis Services model aan een bestaand model. U kunt dit dialoogvenster ook openen door de DirectQuery-verbinding met de Power BI-gegevensset of Azure Analysis Services model te wijzigen in de instellingen voor gegevensbron nadat u deze hebt gemaakt.
[!div class="mx-imgBorder"]

Volgende stappen
Bekijk de volgende bronnen voor meer informatie over DirectQuery: