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

U kunt rechtstreeks verbinding maken met SAP HANA-gegevensbronnen via DirectQuery. Er zijn twee opties wanneer u verbinding maakt met SAP HANA:

  • 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 met deze instelling verbinding maakt met SAP HANA, wordt er één analytische of berekeningsweergave geselecteerd en zijn alle metingen, hiërarchieën en kenmerken van die weergave beschikbaar in de lijst met velden. Wanneer visuals worden gemaakt, worden de geaggregeerde gegevens altijd opgehaald uit SAP HANA. Deze techniek is de aanbevolen methode en 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 bron. Deze aanpak biedt meer flexibiliteit. Zorg ervoor dat metingen worden samengevoegd zoals verwacht en om prestatieproblemen te voorkomen.

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

Screenshot of the Options dialog, showing the DirectQuery options.

De optie om SAP HANA als relationele bron te behandelen, bepaalt de benadering die wordt gebruikt 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 niet is ingeschakeld, wordt deze verbinding gemaakt als een multidimensionale bron bij het toevoegen van een nieuwe verbinding met SAP HANA met behulp van Get Data. 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 werd gemaakt. Dit betekent dat alle rapporten die verbinding maken met SAP HANA die vóór februari 2018 zijn gemaakt, SAP HANA blijven behandelen als een relationele bron.

De twee benaderingen vormen verschillend gedrag en het is niet mogelijk om een bestaand rapport van de ene benadering 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. Als u een verbinding met SAP HANA wilt behandelen als een relationele bron, moet u Opties voor bestand>en instellingen> selecteren en vervolgens het selectievakje onder Direct Query>Behandelen SAP HANA als relationele bron inschakelen.

Wanneer u verbinding maakt met SAP HANA als een multidimensionale bron, zijn de volgende overwegingen van toepassing:

  • In de Get Data Navigator kan éé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.

Sap HANA behandelen als een multidimensionale bron biedt niet de grotere flexibiliteit die wordt geboden door de alternatieve relationele benadering, maar het is eenvoudiger. De aanpak zorgt er ook voor dat de juiste geaggregeerde waarden worden gebruikt bij complexere SAP HANA-metingen en over het algemeen resulteert in hogere prestaties.

De lijst Velden 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 worden weergegeven als dat nodig is door Weergave te selecteren die verborgen is in het contextmenu in de lijst met velden. 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. Bijvoorbeeld: Product, met waarden1, 32enzovoort, kan ProductName, met waardenBikeShirt, Glovesenzovoort, gebruiken als label. In dit geval wordt één veld Product weergegeven in de lijst met velden, waarvan de waarden de labels BikeShirtzijn, Glovesenzovoort, 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 in de vervolgkeuzelijst die 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 veel 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

De andere primaire modelleringsbeperkingen bij het maken van verbinding met SAP HANA met behulp van DirectQuery (behandelen als multidimensionale bron) zijn de volgende beperkingen:

  • Geen ondersteuning voor berekende kolommen: de mogelijkheid om berekende kolommen te maken, is uitgeschakeld. Dit betekent ook dat groepering en clustering, die berekende kolommen maken, 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.
  • Er is geen ondersteuning voor het definiëren van relaties: er kan slechts één weergave worden opgevraagd in een rapport en daarom is er geen ondersteuning voor het definiëren van relaties.
  • Geen gegevensweergave: in de gegevensweergave worden normaal gesproken de gegevens op detailniveau in de tabellen weergegeven. Gezien de aard van OLAP-bronnen zoals SAP HANA, is deze weergave niet beschikbaar via SAP HANA.
  • Kolom- en metingdetails zijn vast: de lijst met kolommen en metingen die in de lijst met velden worden weergegeven, worden vastgezet 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 beperkingen in DAX: er zijn andere beperkingen voor de DAX die kunnen worden gebruikt in metingsdefinities om beperkingen in de bron weer te geven. Het is bijvoorbeeld niet mogelijk om een statistische functie te gebruiken voor een tabel.

Aanvullende visualisatiebeperkingen

Er zijn beperkingen in visuals bij het maken van verbinding met SAP HANA met behulp van DirectQuery (behandelen als multidimensionale bron):

  • Geen aggregatie van kolommen: het is niet mogelijk om de aggregatie voor een kolom in een visual te wijzigen en is altijd Niet samenvatten.

SAP HANA behandelen als een relationele bron

Wanneer u ervoor kiest om verbinding te maken met SAP HANA als relationele bron, 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 bij het behandelen van SAP HANA als multidimensionale bron, met name wanneer de SAP HANA-weergave niet-additieve metingen bevat, bijvoorbeeld afzonderlijke aantallen of gemiddelden, in plaats van eenvoudige sommen, en gerelateerd aan de efficiëntie van de query's die worden uitgevoerd op SAP HANA.

Het is handig om te beginnen 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 Power Query-editor de gemiddelde prijs per product-id.

Diagram showing a query defined in Power Query Editor that returns the average price by Product ID.

Als de gegevens worden geïmporteerd in Power BI versus het gebruik van DirectQuery, 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 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 Som, Gemiddelde, Min en andere, uitgevoerd op die geïmporteerde gegevens. Als u bijvoorbeeld AveragePrice op een visual opneemt, wordt standaard destatistische som gebruikt en wordt de som voor elke Product-id geretourneerd, in dit voorbeeld 13,67. Hetzelfde geldt voor elke alternatieve statistische functie, zoals Min of Gemiddelde, die in de visual wordt gebruikt. Het gemiddelde van gemiddelde prijs retourneert bijvoorbeeld het gemiddelde van 6,66, 4 en 3, dat gelijk is aan 4,56, en niet het gemiddelde van Prijs op de zes records in de onderliggende tabel, namelijk 5,17.

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 Som, Gemiddelde en Min, opnieuw uitgevoerd op die logische tabel uit de query. En nogmaals, een visual met gemiddelde vanAveragePrice retourneert 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. Vandaag de dag 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 en vervolgens is elke volgende aggregatie in een visual over die gegevens. 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 is, en bevat over het algemeen metingen waarbij de werkelijke aggregatie die wordt gebruikt, wordt gedefinieerd door de SAP HANA-weergave.

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

Als in de ervaring Gegevens ophalen de selecties zijn gemaakt voor ProductID en de meting AveragePrice , dan definieert dat een query in de weergave, waarbij die geaggregeerde gegevens worden aangevraagd. In het eerdere voorbeeld wordt pseudo-SQL gebruikt die niet overeenkomt met de exacte syntaxis van SAP HANA SQL. Vervolgens worden eventuele verdere aggregaties die in een visual zijn gedefinieerd, verder samengevoegd met de resultaten van een dergelijke query. Zoals eerder beschreven voor SQL Server, is dit resultaat zowel van toepassing op de aanvraag Import als DirectQuery. In het geval van DirectQuery wordt de query uit Gegevens ophalen of Power Query-editor gebruikt in een subselectie binnen één query die naar SAP HANA wordt verzonden, en is het dus niet in feite het geval dat alle gegevens worden gelezen, voordat ze verder worden samengevoegd.

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

  • Er moet aandacht worden besteed aan verdere aggregatie die wordt uitgevoerd in visuals, wanneer de meting in SAP HANA niet-additief is, bijvoorbeeld geen eenvoudige som, min of 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 er bijvoorbeeld tientallen kolommen zijn geselecteerd, met de gedachte dat ze 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.

In het volgende voorbeeld betekent het selecteren van vijf kolommen (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) in het dialoogvenster Gegevens ophalen, samen met de meting OrderQuantity, dat het later maken van een eenvoudige visual met de Min OrderQuantity resulteert in de volgende SQL-query naar SAP HANA. De gearceerde 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.

Screenshot of a query example, showing the SQL query to SAP HANA.

Vanwege dit gedrag raden we de items aan die zijn geselecteerd in Gegevens ophalen of Power Query-editor worden beperkt tot de items die nodig zijn, terwijl het nog steeds resulteert in een redelijke query voor SAP HANA.

Aanbevolen procedures

Voor beide benaderingen om verbinding te maken met SAP HANA, zijn aanbevelingen voor het gebruik van DirectQuery ook van toepassing op SAP HANA, met name aanbevelingen met betrekking tot het garanderen van goede prestaties. Zie Het gebruik van DirectQuery in Power BI voor 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 onderliggende hiërarchieën: bovenliggende onderliggende hiërarchieën zijn niet zichtbaar in Power BI. Dit komt doordat Power BI SAP HANA opent met behulp van de SQL-interface en bovenliggende onderliggende hiërarchieën niet volledig kunnen worden geopend met behulp van SQL.
  • Andere metagegevens van hiërarchie: de basisstructuur van hiërarchieën wordt weergegeven in Power BI, maar sommige metagegevens van de hiërarchie, zoals het beheren van het gedrag van onregelmatige hiërarchieën, hebben geen effect. Nogmaals, dit is het gevolg van de beperkingen die worden opgelegd door de SQL-interface.
  • Verbinding maken ion 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 connector.
  • 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 als er verbinding wordt gemaakt met een analytische weergave, en een metermaatregel en een andere verhoudingsmeting, worden opgenomen in dezelfde visual. Dit probleem wordt behandeld door SAP Note 2128928 (onverwachte resultaten bij het uitvoeren van een query op een berekende kolom en een teller). De verhoudingsmeting is in dit geval onjuist.

  • Meerdere Power BI-kolommen van één SAP HANA-kolom: Voor sommige berekeningsweergaven, waarbij een SAP HANA-kolom wordt gebruikt in meer dan één hiërarchie, 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: