Delen via


Verbinding maken met SAP HANA-gegevensbronnen met behulp van DirectQuery in Power BI

U kunt rechtstreeks verbinding maken met SAP HANA-gegevensbronnen met DirectQuery. Dit is vaak vereist voor grote gegevenssets die de beschikbare resources overschrijden om importmodellen te ondersteunen. Er zijn twee benaderingen voor het maken van verbinding met SAP HANA in de DirectQuery-modus, elk met verschillende mogelijkheden:

  • SAP HANA behandelen als een multidimensionale bron (standaard): In dit geval is het gedrag vergelijkbaar met wanneer Power BI verbinding maakt met andere multidimensionale bronnen, zoals SAP Business Warehouse of Analysis Services. Wanneer u verbinding maakt met SAP HANA als een multidimensionale bron, wordt één analytische of berekeningsweergave geselecteerd en zijn alle metingen, hiërarchieën en kenmerken van die weergave beschikbaar in de lijst met velden. U kunt geen berekende kolommen of andere gegevensaanpassingen toevoegen in het semantische model. Wanneer visuals worden gemaakt, worden de geaggregeerde gegevens rechtstreeks opgehaald uit SAP HANA. SAP HANA behandelen als een multidimensionale bron is de standaardinstelling voor nieuwe DirectQuery-rapporten via SAP HANA.

  • SAP HANA behandelen als een relationele bron: In dit geval behandelt Power BI SAP HANA als een relationele gegevensbron. Deze aanpak biedt meer flexibiliteit. U kunt onder andere berekende kolommen toevoegen en gegevens uit andere bronnen opnemen, maar zorg ervoor dat metingen worden samengevoegd zoals verwacht. Vermijd niet-additieve metingen. Zorg er ook voor dat u eenvoudige weergaven met enkele kolommen en joins gebruikt om prestatieproblemen te voorkomen. Overweeg om metingen opnieuw te maken in het semantische model, maar houd er rekening mee dat complexe metingen mogelijk niet worden gevouwen. SAP HANA-hiërarchieën zijn niet beschikbaar wanneer u SAP HANA als relationele bron gebruikt.

De verbindingsmethode wordt bepaald door een algemene hulpprogrammaoptie, die wordt ingesteld door Bestand>opties en instellingen te selecteren en vervolgens Opties>DirectQuery-te selecteren en vervolgens de optie te selecteren SAP HANA behandelen als een relationele bron, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van het dialoogvenster Opties, met de DirectQuery-opties.

De optie om SAP HANA als relationele bron te behandelen, bepaalt de verbindingsmethode voor elk nieuw rapport met Behulp van DirectQuery via SAP HANA. Het heeft geen effect op bestaande SAP HANA-verbindingen in het huidige rapport, noch op verbindingen in andere rapporten die worden geopend. Dus als de optie momenteel is uitgeschakeld, wordt SAP HANA als een multidimensionale bron behandeld wanneer er een nieuwe verbinding met SAP HANA wordt toegevoegd met gegevens ophalen. Als echter een ander rapport wordt geopend dat ook verbinding maakt met SAP HANA, blijft dat rapport zich gedragen volgens de optie die is ingesteld op het moment dat het is gemaakt. Dit betekent dat rapporten die verbinding maken met SAP HANA als relationele bron SAP HANA blijven behandelen als een relationele bron, zelfs als de optie nu niet is ingeschakeld.

De twee SAP HANA-verbindingsmethoden vormen een ander gedrag en het is niet mogelijk om een bestaand rapport van de ene verbindingsmethode naar de andere over te schakelen.

SAP HANA behandelen als een multidimensionale bron (standaard)

Alle nieuwe verbindingen met SAP HANA gebruiken deze verbindingsmethode standaard en behandelen SAP HANA als een multidimensionale bron. Wanneer u verbinding maakt met SAP HANA als een multidimensionale bron, zijn de volgende overwegingen van toepassing:

  • In de Gegevensnavigatorkan één SAP HANA-weergave worden geselecteerd. Het is niet mogelijk om afzonderlijke metingen of kenmerken te selecteren. Er is geen query gedefinieerd op het moment dat er verbinding wordt gemaakt. Dit verschilt van het importeren van gegevens of bij het gebruik van DirectQuery tijdens het behandelen van SAP HANA als relationele bron. Deze overweging betekent ook dat het niet mogelijk is om rechtstreeks een SAP HANA SQL-query te gebruiken bij het selecteren van deze verbindingsmethode.

  • Alle metingen, hiërarchieën en kenmerken van de geselecteerde weergave worden weergegeven in de lijst met velden.

  • Omdat een meting wordt gebruikt in een visual, wordt SAP HANA opgevraagd om de meetwaarde op te halen op het aggregatieniveau dat nodig is voor de visual. Bij het verwerken van niet-additieve metingen, zoals tellers en verhoudingen, worden alle aggregaties uitgevoerd door SAP HANA en wordt er geen verdere aggregatie uitgevoerd door Power BI.

  • Om ervoor te zorgen dat de juiste geaggregeerde waarden altijd kunnen worden verkregen van SAP HANA, moeten bepaalde beperkingen worden opgelegd. Het is bijvoorbeeld niet mogelijk om berekende kolommen toe te voegen of om gegevens uit meerdere SAP HANA-weergaven in hetzelfde rapport te combineren. Het is ook niet mogelijk om kolommen te verwijderen of hun gegevenstypen te wijzigen.

Sap HANA behandelen als een multidimensionale bron biedt minder flexibiliteit dan de alternatieve relationele benadering, maar het is eenvoudiger. Deze verbindingsmethode zorgt ervoor dat de juiste geaggregeerde waarden worden gebruikt bij het verwerken van complexere SAP HANA-metingen en over het algemeen resulteert in hogere prestaties.

De lijst Veld bevat alle metingen, kenmerken en hiërarchieën uit de SAP HANA-weergave. Let op het volgende gedrag dat van toepassing is bij het gebruik van deze verbindingsmethode:

  • Elk kenmerk dat is opgenomen in ten minste één hiërarchie, is standaard verborgen. Ze kunnen echter, indien nodig, worden weergegeven door in het contextmenu van de veldlijst Verborgen te selecteren. Vanuit hetzelfde contextmenu kunnen ze indien nodig zichtbaar worden gemaakt.

  • In SAP HANA kan een kenmerk worden gedefinieerd om een ander kenmerk als label te gebruiken. Product, met waarden 1, 2, 3enzovoort, kan bijvoorbeeld ProductNamegebruiken, met waarden Bike, Shirt, Glovesenzovoort, als label. In dit geval wordt één veld Product weergegeven in de lijst met velden, waarvan de waarden de labels zijn Bike, Shirt, Gloves, enzovoort, maar die is gesorteerd op, en met uniekheid bepaald door, de sleutelwaarden 1, 2, 3. Er wordt ook een verborgen kolom Product.Key gemaakt, zodat u indien nodig toegang hebt tot de onderliggende sleutelwaarden.

Variabelen die zijn gedefinieerd in de onderliggende SAP HANA-weergave, worden weergegeven op het moment van verbinding en de benodigde waarden kunnen worden ingevoerd. Deze waarden kunnen later worden gewijzigd door Gegevens transformeren te selecteren op het lint en vervolgens Parameters bewerken te kiezen in het dropdownmenu dat wordt weergegeven.

De toegestane modelleringsbewerkingen zijn meer beperkend dan in het algemene geval bij het gebruik van DirectQuery, gezien de noodzaak om ervoor te zorgen dat de juiste geaggregeerde gegevens altijd kunnen worden verkregen van SAP HANA. Het is echter nog steeds mogelijk om enkele toevoegingen en wijzigingen aan te brengen, waaronder het definiëren van metingen, het wijzigen en verbergen van velden en het definiëren van weergave-indelingen. Al deze wijzigingen blijven behouden bij het vernieuwen en eventuele niet-conflicterende wijzigingen in de SAP HANA-weergave worden toegepast.

Aanvullende modelleringsbeperkingen

Naast de bovengenoemde beperkingen moet u rekening houden met de volgende modelleringsbeperkingen wanneer u verbinding maakt met SAP HANA als een multidimensionale bron:

  • Geen ondersteuning voor berekende kolommen: De mogelijkheid om berekende kolommen te maken is uitgeschakeld. Dit betekent ook dat groepering en clustering, die afhankelijk zijn van berekende kolommen, niet beschikbaar zijn.
  • Aanvullende beperkingen voor metingen: Er zijn andere beperkingen opgelegd aan de DAX-expressies die kunnen worden gebruikt in metingen, om het ondersteuningsniveau van SAP HANA weer te geven. Het is bijvoorbeeld niet mogelijk om een statistische functie te gebruiken voor een tabel.
  • Geen ondersteuning voor het definiëren van relaties: Er kan slechts één weergave worden opgevraagd in een rapport. Als zodanig is er geen ondersteuning voor het definiëren van relaties.
  • Geen tabelweergave: De tabelweergave geeft normaal gesproken de gegevens op detailniveau in de tabellen weer. Gezien de aard van multidimensionale bronnen is deze weergave niet beschikbaar bij het gebruik van SAP HANA als een multidimensionale bron.
  • Kolom- en waardedetails zijn vastgelegd: De kolommen en waarden in de lijst met velden worden bepaald door de onderliggende bron en kunnen niet worden gewijzigd. Het is bijvoorbeeld niet mogelijk om een kolom te verwijderen en het gegevenstype ervan te wijzigen. De naam kan echter worden gewijzigd.

Aanvullende visualisatiebeperkingen

Er zijn beperkingen in visuals wanneer u verbinding maakt met SAP HANA als een multidimensionale bron:

  • Geen aggregatie van kolommen: Het is niet mogelijk de aggregatie voor een kolom in een visual aan te passen, deze staat altijd op Niet samenvatten.

SAP HANA behandelen als een relationele bron

Als u verbinding wilt maken met SAP HANA als relationele bron, moet u Bestand>Opties en instellingen selecteren en vervolgens Opties>DirectQuery-en vervolgens de optie SAP HANA behandelen als een relationele bron.

Wanneer u SAP HANA als relationele bron gebruikt, is er extra flexibiliteit beschikbaar. U kunt bijvoorbeeld berekende kolommen maken, gegevens uit meerdere SAP HANA-weergaven opnemen en relaties tussen de resulterende tabellen maken. Er zijn echter verschillen van het gedrag wanneer u verbinding maakt met SAP HANA als een multidimensionale bron, met name wanneer de SAP HANA-weergave niet-additieve metingen bevat, bijvoorbeeld afzonderlijke aantallen of gemiddelden, in plaats van eenvoudige sommen. Niet-additieve metingen kunnen verkeerde resultaten opleveren. De metingen kunnen ook de efficiëntie van optimalisatie van queryplannen in SAP HANA verminderen en leiden tot slechte queryprestaties en time-outs.

Sap HANA begrijpen als een relationele bron

Het is handig om eerst het gedrag van een relationele bron, zoals SQL Server, te verduidelijken wanneer de query die is gedefinieerd in Gegevens ophalen of Power Query-editor een aggregatie uitvoert. In het volgende voorbeeld retourneert een query die is gedefinieerd in de Power Query-editor de gemiddelde prijs per ProductID-.

diagram met een query die is gedefinieerd in de Power Query-editor die de gemiddelde prijs per product-id retourneert.

Als de gegevens in Power BI zijn geïmporteerd in plaats van DirectQuery te gebruiken, zou de volgende situatie het gevolg zijn:

  • De gegevens worden geïmporteerd op het aggregatieniveau dat is gedefinieerd door de query die is gemaakt in de Power Query-editor. Bijvoorbeeld de gemiddelde prijs per product. Dit resulteert in een tabel met de twee kolommen ProductID en AveragePrice die in visuals kunnen worden gebruikt.
  • In een visual wordt elke volgende aggregatie, zoals Sum, Average, Minen andere, uitgevoerd op die geïmporteerde gegevens. Als je bijvoorbeeld AveragePrice op een visualisatie opneemt, gebruik je standaard de aggregatie Som en wordt standaard de totale som van de AveragePrice geretourneerd voor elke ProductID, in dit voorbeeld is dat 13,67. Hetzelfde geldt voor elke alternatieve aggregatiefunctie, zoals Min of Gemiddelde, gebruikt op de visuele weergave. Bijvoorbeeld, Gemiddelde van AveragePrice geeft als resultaat het gemiddelde van 6,66, 4 en 3, dat gelijk is aan 4,56, en niet het gemiddelde van Price van de zes records in de onderliggende tabel, dat 5,17 is.

Als DirectQuery via dezelfde relationele bron wordt gebruikt in plaats van Importeren, zijn dezelfde semantiek van toepassing en zijn de resultaten precies hetzelfde:

  • Gezien dezelfde query worden logisch precies dezelfde gegevens gepresenteerd aan de rapportagelaag, ook al worden de gegevens niet daadwerkelijk geïmporteerd.

  • In een visual wordt elke volgende aggregatie, zoals Sum, Averageen Min, opnieuw uitgevoerd op die logische tabel uit de query. Opnieuw geeft een visual met Gemiddelde van AveragePrice dezelfde 4,56.

Overweeg SAP HANA wanneer de verbinding wordt behandeld als een relationele bron. Power BI kan werken met zowel analytische weergaven als berekeningsweergaven in SAP HANA, die beide metingen kunnen bevatten. Maar vandaag volgt de benadering voor SAP HANA dezelfde principes als eerder beschreven in deze sectie: de query die is gedefinieerd in Gegevens ophalen of Power Query-editor bepaalt welke gegevens beschikbaar zijn, waarna elke volgende aggregatie in een visual over die gegevens heen gaat en hetzelfde geldt voor zowel Importeren als DirectQuery. Gezien de aard van SAP HANA is de query die is gedefinieerd in het eerste dialoogvenster Gegevens ophalen of Power Query-editor altijd een statistische query en bevat over het algemeen metingen waarbij de werkelijke aggregaties die worden gebruikt, worden gedefinieerd door de SAP HANA-weergave.

Het equivalent van het vorige SQL Server-voorbeeld is dat er een SAP HANA-weergave is met -id, ProductID, DepotIDen metingen, waaronder AveragePrice-, gedefinieerd in de weergave als Gemiddelde van prijs.

Als in de interface Gegevens ophalen de selecties zijn gemaakt voor ProductID en de maatstaf AveragePrice, dan definieert dat een query over de weergave die geaggregeerde gegevens aanvraagt. In het eerdere voorbeeld wordt pseudo-SQL gebruikt die niet overeenkomt met de exacte syntaxis van SAP HANA SQL. Vervolgens aggregeren eventuele verdere aggregaties die in een visual zijn gedefinieerd, de resultaten van een dergelijke query verder. Zoals eerder beschreven voor SQL Server, is dit resultaat zowel van toepassing op de Import- als DirectQuery-geval. In het geval van DirectQuery wordt de query uit Gegevens ophalen of Power Query Editor gebruikt in een subselect binnen één enkele query die naar SAP HANA wordt verzonden, en dus is het niet zo dat alle gegevens worden gelezen voordat er verder wordt geaggregeerd.

Al deze overwegingen en gedrag vereisen de volgende belangrijke overwegingen bij het gebruik van DirectQuery via SAP HANA als relationele bron:

  • Er moet aandacht worden besteed aan verdere aggregatie die in visuals wordt uitgevoerd, wanneer de maatstaf in SAP HANA niet-additief is, bijvoorbeeld geen eenvoudige Som, Minof Max.

  • In Gegevens ophalen of Power Query-editor, moeten alleen de vereiste kolommen worden opgenomen om de benodigde gegevens op te halen. Dit geeft aan dat het resultaat een query is die een redelijke query moet zijn die naar SAP HANA kan worden verzonden. Als bijvoorbeeld tientallen kolommen zijn geselecteerd, met de gedachte dat deze nodig zijn voor volgende visuals, betekent zelfs voor DirectQuery een eenvoudige visual dat de statistische query die in de subselectie wordt gebruikt, tientallen kolommen bevat, die over het algemeen slecht presteren en time-outs kunnen tegenkomen.

Selecteer in het volgende voorbeeld vijf kolommen (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) in het dialoogvenster Gegevens ophalen, samen met de meting OrderQuantitybetekent dat het later maken van een eenvoudige visual met de Min OrderQuantity resulteert in de volgende SQL-query naar SAP HANA. De gearceerde sectie is de subselectie, met de query uit Gegevens ophalen / Power Query-editor. Als deze subselectie een hoog kardinaliteitsresultaat geeft, zijn de resulterende SAP HANA-prestaties waarschijnlijk slecht of ondervindt u time-outs. De invloed op de prestaties is niet het gevolg van het aanvragen van alle velden in de subselectie door Power BI; de meeste van deze velden worden weggeprojecteerd door de buitenste query. In plaats daarvan wordt de impact veroorzaakt door metingen in de subselectie, waardoor deze wordt gerealiseerd op de HANA-server.

schermopname van een queryvoorbeeld met de SQL-query naar SAP HANA.

Vanwege dit gedrag raden we aan de items die zijn geselecteerd in Gegevens ophalen of Power Query-editor te beperken tot de items die nodig zijn, terwijl het nog steeds resulteert in een redelijke query voor SAP HANA. Overweeg indien mogelijk alle vereiste metingen in het semantische model opnieuw te maken en SAP HANA meer te gebruiken als een traditionele relationele bron.

Beste praktijken

Voor beide methoden om verbinding te maken met SAP HANA, volgt u de algemene aanbevelingen voor het gebruik van DirectQuery, met name aanbevelingen met betrekking tot het garanderen van goede queryprestaties. Zie DirectQuery gebruiken in Power BIvoor meer informatie.

Overwegingen en beperkingen

In de volgende lijst worden alle SAP HANA-functies beschreven die niet volledig worden ondersteund of functies die zich anders gedragen wanneer u Power BI gebruikt.

  • Bovenliggende en Onderliggende Hiërarchieën: Bovenliggende en Onderliggende Hiërarchieën zijn niet zichtbaar in Power BI. Dit komt doordat Power BI toegang krijgt tot SAP HANA met behulp van de SQL-interface en bovenliggende onderliggende hiërarchieën niet volledig kunnen worden geopend met behulp van SQL.
  • Metagegevens van andere hiërarchieën: De basisstructuur van hiërarchieën wordt weergegeven in Power BI, maar sommige metagegevens van hiërarchieën, zoals het beheren van het gedrag van onregelmatige hiërarchieën, hebben geen effect. Nogmaals, dit is het gevolg van beperkingen die worden opgelegd door de SQL-interface.
  • verbinding met SSL: U kunt verbinding maken met behulp van Import en multidimensionaal met TLS, maar kan geen verbinding maken met SAP HANA-exemplaren die zijn geconfigureerd voor het gebruik van TLS voor de relationele verbindingsmethode.
  • Ondersteuning voor kenmerkweergaven: Power BI kan verbinding maken met analytische en berekeningsweergaven, maar kan niet rechtstreeks verbinding maken met kenmerkweergaven.
  • Ondersteuning voor catalogusobjecten: Power BI kan geen verbinding maken met Catalogusobjecten.
  • Wijzigen in variabelen na publicatie: U kunt de waarden voor SAP HANA-variabelen niet rechtstreeks in de Power BI-service wijzigen nadat het rapport is gepubliceerd.

Bekende problemen

In de volgende lijst worden alle bekende problemen beschreven bij het maken van verbinding met SAP HANA (DirectQuery) met behulp van Power BI.

  • SAP HANA-probleem bij het uitvoeren van query's op tellers en andere metingen: Onjuiste gegevens worden geretourneerd vanuit SAP HANA wanneer er verbinding is met een analytische weergave en zowel een meetwaarde als een andere ratio-meting in dezelfde visual zijn opgenomen. Dit probleem wordt gedekt door SAP Note-2128928 (onverwachte resultaten bij het opvragen van een berekende kolom en een teller). De verhoudingsmeting is in dit geval onjuist.

  • Meerdere Power BI-kolommen uit één SAP HANA-kolom: Voor sommige berekeningsweergaven, waarbij een SAP HANA-kolom in meer dan één hiërarchie wordt gebruikt, wordt de kolom als twee afzonderlijke kenmerken weergegeven. Deze benadering resulteert in twee kolommen die worden gemaakt in Power BI. Deze kolommen zijn echter standaard verborgen en alle query's met betrekking tot de hiërarchieën, of de kolommen rechtstreeks, werken correct.

Raadpleeg de volgende bronnen voor meer informatie over DirectQuery: