Del via


Koble til SAP HANA-datakilder ved hjelp av DirectQuery i Power BI

Du kan koble til SAP HANA-datakilder direkte ved hjelp av DirectQuery, som ofte kreves for store datasett som overskrider tilgjengelige ressurser for å støtte importmodeller. Det finnes to fremgangsmåter for å koble til SAP HANA i DirectQuery-modus, hver med forskjellige funksjoner:

  • Behandle SAP HANA som en flerdimensjonal kilde (standard): I dette tilfellet er virkemåten lik når Power BI kobler til andre flerdimensjonale kilder som SAP Business Warehouse eller Analysis Services. Når du kobler til SAP HANA som en flerdimensjonal kilde, velges en enkelt analytisk visning eller beregningsvisning, og alle mål, hierarkier og attributter for denne visningen er tilgjengelige i feltlisten. Du kan ikke legge til beregnede kolonner eller andre datatilpasninger i den semantiske modellen. Etter hvert som visualobjekter opprettes, hentes de samlede dataene direkte fra SAP HANA. Behandle SAP HANA som en flerdimensjonal kilde er standard for nye DirectQuery-rapporter over SAP HANA.

  • Behandle SAP HANA som en relasjonskilde: I dette tilfellet behandler Power BI SAP HANA som en relasjonsdatakilde. Denne tilnærmingen gir større fleksibilitet. Du kan blant annet legge til beregnede kolonner og inkludere data fra andre kilder, men det må tas hensyn til at mål aggregeres som forventet. Unngå ikke-additive mål. Pass også på at du bruker enkle visninger med få kolonner og koblinger for å unngå ytelsesproblemer. Vurder å gjenskape mål i den semantiske modellen, men husk at komplekse mål kanskje ikke brettes. SAP HANA-hierarkier er utilgjengelige når du bruker SAP HANA som relasjonskilde.

Tilkoblingsmetoden bestemmes av et globalt verktøyalternativ, som angis ved å velge Fil>Alternativer og innstillinger og deretter Alternativer>DirectQuery, og deretter velge alternativet Behandle SAP HANA som en relasjonskilde, som vist i bildet nedenfor.

Skjermbilde av dialogboksen Alternativer, som viser alternativene for DirectQuery.

Alternativet for å behandle SAP HANA som en relasjonskilde styrer tilkoblingsmetoden for alle nye rapporten ved hjelp av DirectQuery over SAP HANA. Det har ingen innvirkning på eksisterende SAP HANA-tilkoblinger i den gjeldende rapporten, og heller ikke på tilkoblinger i andre rapporter som åpnes. Så hvis alternativet for øyeblikket ikke er avmerket, behandler denne tilkoblingen SAP HANA som en flerdimensjonal kilde når du legger til en ny tilkobling til SAP HANA ved hjelp av Hent data. Men hvis en annen rapport åpnes som også kobler til SAP HANA, fortsetter rapporten å fungere i henhold til alternativet som ble angitt da den ble opprettet. Dette faktum betyr at alle rapporter som kobler til SAP HANA som en relasjonskilde, fortsetter å behandle SAP HANA som en relasjonskilde selv om alternativet nå ikke er avmerket.

De to SAP HANA-tilkoblingsmetodene utgjør forskjellig virkemåte, og det er ikke mulig å bytte en eksisterende rapport fra én tilkoblingsmetode til den andre.

Behandle SAP HANA som en flerdimensjonal kilde (standard)

Alle nye tilkoblinger til SAP HANA bruker denne tilkoblingsmetoden som standard, og behandler SAP HANA som en flerdimensjonal kilde. Når du kobler til SAP HANA som en flerdimensjonal kilde, gjelder følgende vurderinger:

  • I Hent datanavigatorkan du velge én enkelt SAP HANA-visning. Det er ikke mulig å velge individuelle mål eller attributter. Det er ingen spørring definert på tidspunktet for tilkobling, som er forskjellig fra å importere data eller når du bruker DirectQuery mens du behandler SAP HANA som en relasjonskilde. Denne vurderingen betyr også at det ikke er mulig å bruke en SAP HANA SQL-spørring direkte når du velger denne tilkoblingsmetoden.

  • Alle mål, hierarkier og attributter i den valgte visningen vises i feltlisten.

  • Når et mål brukes i et visualobjekt, blir SAP HANA spurt om å hente målverdien på aggregasjonsnivået som er nødvendig for visualobjektet. Når du arbeider med ikke-additive mål, for eksempel tellere og forhold, utføres alle aggregasjoner av SAP HANA, og ingen ytterligere aggregasjon utføres av Power BI.

  • For å sikre at de riktige mengdeverdiene alltid kan hentes fra SAP HANA, må visse begrensninger pålegges. Det er for eksempel ikke mulig å legge til beregnede kolonner eller kombinere data fra flere SAP HANA-visninger i samme rapport. Det er heller ikke mulig å slette kolonner eller endre datatypene.

Behandling av SAP HANA som en flerdimensjonal kilde gir mindre fleksibilitet enn den alternative relasjonelle tilnærmingen, men det er enklere. Denne tilkoblingsmetoden sikrer riktige mengdeverdier når du arbeider med mer komplekse SAP HANA-mål, og resulterer vanligvis i høyere ytelse.

Listen Felt inneholder alle mål, attributter og hierarkier fra SAP HANA-visningen. Vær oppmerksom på følgende virkemåter som gjelder når du bruker denne tilkoblingsmetoden:

  • Alle attributter som er inkludert i minst ett hierarki, er skjult som standard. De kan imidlertid ses om nødvendig ved å velge Vis skjulte fra hurtigmenyen i feltlisten. Fra samme hurtigmeny kan de gjøres synlige om nødvendig.

  • I SAP HANA kan et attributt defineres til å bruke et annet attributt som etikett. For eksempel kan Produkt, med verdier 1, 2, 3og så videre, bruke ProductName, med verdier Bike, Shirt, Glovesog så videre, som etikett. I dette tilfellet vises et enkelt felt produkt i feltlisten, der verdiene er etikettene Bike, Shirt, Glovesog så videre, men som er sortert etter, og med unikhet som bestemmes av nøkkelverdiene 1, 2, 3. En skjult kolonne Product.Key- opprettes også, noe som gir tilgang til de underliggende nøkkelverdiene om nødvendig.

Alle variabler som er definert i den underliggende SAP HANA-visningen, vises på tidspunktet for tilkoblingen, og de nødvendige verdiene kan angis. Disse verdiene kan senere endres ved å velge Transformer data fra båndet, og deretter Rediger parametere fra rullegardinmenyen som vises.

De tillatte modelleringsoperasjonene er mer restriktive enn i det generelle tilfellet når du bruker DirectQuery, gitt behovet for å sikre at riktige aggregerte data alltid kan hentes fra SAP HANA. Det er imidlertid fortsatt mulig å gjøre noen tillegg og endringer, inkludert å definere mål, gi nytt navn til og skjule felt og definere visningsformater. Alle slike endringer bevares ved oppdatering, og eventuelle ikke-motstridende endringer i SAP HANA-visningen brukes.

Flere modelleringsbegrensninger

I tillegg til de nevnte begrensningene må du være oppmerksom på følgende modelleringsbegrensninger når du kobler til SAP HANA som en flerdimensjonal kilde:

  • Ingen støtte for beregnede kolonner: Muligheten til å opprette beregnede kolonner er deaktivert. Dette faktum betyr også at gruppering og klynger, som er avhengige av beregnede kolonner, ikke er tilgjengelige.
  • Tilleggsbegrensninger for mål: Det er andre begrensninger på DAX-uttrykkene som kan brukes i mål, for å gjenspeile støttenivået som tilbys av SAP HANA. Det er for eksempel ikke mulig å bruke en mengdefunksjon over en tabell.
  • Ingen støtte for å definere relasjoner: Bare én enkelt visning kan spørres i en rapport, og derfor er det ingen støtte for å definere relasjoner.
  • Ingen tabellvisning: Tabellvisning viser vanligvis detaljnivådataene i tabellene. Gitt innholdet i flerdimensjonale kilder, er ikke denne visningen tilgjengelig når du bruker SAP HANA som en flerdimensjonal kilde.
  • Kolonne- og måldetaljer er løst: Kolonnene og målene i feltlisten bestemmes av den underliggende kilden og kan ikke endres. Det er for eksempel ikke mulig å slette en kolonne eller endre datatypen. Det kan imidlertid gis nytt navn.

Flere visualiseringsbegrensninger

Det finnes begrensninger i visualobjekter når du kobler til SAP HANA som en flerdimensjonal kilde:

  • Ingen aggregasjon av kolonner: Det er ikke mulig å endre aggregasjonen for en kolonne på et visualobjekt, og det er alltid Ikke oppsummer.

Behandle SAP HANA som en relasjonskilde

Hvis du vil koble til SAP HANA som en relasjonskilde, må du velge Fil>Alternativer og innstillinger og deretter Alternativer>DirectQuery, og deretter velge alternativet Behandle SAP HANA som en relasjonskilde.

Når du bruker SAP HANA som relasjonskilde, er noe ekstra fleksibilitet tilgjengelig. Du kan for eksempel opprette beregnede kolonner, inkludere data fra flere SAP HANA-visninger og opprette relasjoner mellom de resulterende tabellene. Det er imidlertid forskjeller fra virkemåten når du kobler til SAP HANA som en flerdimensjonal kilde, spesielt når SAP HANA-visningen inneholder ikke-additive mål, for eksempel distinkte antall eller gjennomsnitt, i stedet for enkle summer. Ikke-additive mål kan gi feil resultater. Målene kan også redusere effektiviteten av optimalisering av spørringsplan i SAP HANA og resultere i dårlig spørringsytelse og tidsavbrudd.

Forstå SAP HANA som en relasjonskilde

Det er nyttig å starte med å klargjøre virkemåten til en relasjonskilde, for eksempel SQL Server, når spørringen som er definert i Hent data eller Redigeringsprogrammet for Power Query utfører en aggregasjon. I eksemplet som følger, returnerer en spørring definert i Redigeringsprogrammet for Power Query gjennomsnittsprisen etter ProductID-.

diagram som viser en spørring definert i redigeringsprogrammet for Power Query som returnerer gjennomsnittsprisen etter produkt-ID.

Hvis dataene ble importert til Power BI i stedet for å bruke DirectQuery, ville følgende situasjon resultere:

  • Dataene importeres på aggregasjonsnivået som er definert av spørringen som er opprettet i redigeringsprogrammet for Power Query. For eksempel gjennomsnittspris etter produkt. Dette faktumet resulterer i en tabell med de to kolonnene ProductID- og AveragePrice- som kan brukes i visualobjekter.
  • I et visualobjekt utføres eventuelle etterfølgende aggregasjoner, for eksempel Sum, Average, Minog andre, over de importerte dataene. For eksempel, inkludert AveragePrice- på et visualobjekt, bruker sum aggregert som standard, og vil returnere summen over AveragePrice- for hver ProductID-, i dette eksemplet 13,67. Det samme gjelder for en alternativ mengdefunksjon, for eksempel Min eller Average, som brukes på visualobjektet. For eksempel returnerer gjennomsnittlig av AveragePrice gjennomsnittet på 6,66, 4 og 3, som tilsvarer 4,56, og ikke gjennomsnittet av Pris på de seks postene i den underliggende tabellen, som er 5,17.

Hvis DirectQuery over den samme relasjonskilden brukes i stedet for import, gjelder de samme semantikkene, og resultatene vil være nøyaktig de samme:

  • Gitt den samme spørringen presenteres logisk nøyaktig de samme dataene for rapporteringslaget – selv om dataene ikke faktisk er importert.

  • I et visualobjekt utføres alle etterfølgende aggregasjoner, for eksempel Sum, Averageog Min, på nytt over den logiske tabellen fra spørringen. Og igjen, et visualobjekt som inneholder Gjennomsnittlig av AveragePrice returnerer de samme 4,56.

Vurder SAP HANA når tilkoblingen behandles som en relasjonskilde. Power BI kan arbeide med både analytiske visninger og beregningsvisninger i SAP HANA, som begge kan inneholde mål. Men i dag følger fremgangsmåten for SAP HANA de samme prinsippene som beskrevet tidligere i denne delen: spørringen som er definert i Hent data eller Redigeringsprogrammet for Power Query bestemmer dataene som er tilgjengelige, og deretter er eventuelle etterfølgende aggregasjoner i et visualobjekt over disse dataene, og det samme gjelder for både Import og DirectQuery. Men med tanke på SAP HANAs natur, er spørringen som er definert i den første dialogboksen Hent data eller redigeringsprogrammet for Power Query alltid en aggregert spørring, og inkluderer vanligvis mål der de faktiske aggregasjonene som brukes, defineres av SAP HANA-visningen.

Tilsvarende for det forrige SQL Server-eksemplet er at det finnes en SAP HANA-visning som inneholder ID-, ProductID, DepotIDog mål, inkludert AveragePrice, definert i visningen som Gjennomsnitt av pris.

Hvis du Hent data opplevelse, var valgene for ProductID- og AveragePrice-målet, så definerer dette en spørring over visningen, og ber om at aggregerte data. I det tidligere eksemplet brukes pseudo-SQL for enkelhet som ikke samsvarer med den nøyaktige syntaksen for SAP HANA SQL. Deretter aggregerer eventuelle ytterligere aggregasjoner som er definert i et visualobjekt, ytterligere resultatene av en slik spørring. På nytt, som beskrevet tidligere for SQL Server, gjelder dette resultatet både for import- og DirectQuery-saken. I DirectQuery-tilfellet brukes spørringen fra Hent data eller Redigeringsprogram for Power Query i et undervalg i én enkelt spørring som sendes til SAP HANA, og dermed er det ikke slik at alle dataene vil bli lest i, før du aggregerer videre.

Alle disse hensynene og virkemåtene krever følgende viktige hensyn når du bruker DirectQuery over SAP HANA som relasjonskilde:

  • Det må legges vekt på ytterligere aggregasjon som utføres i visualobjekter, når målet i SAP HANA ikke er additivt, for eksempel ikke en enkel Sum, Mineller Max.

  • I Hent data eller Redigeringsprogram for Power Query bør bare de nødvendige kolonnene inkluderes for å hente de nødvendige dataene, noe som gjenspeiler at resultatet er en spørring som må være en rimelig spørring som kan sendes til SAP HANA. Hvis for eksempel dusinvis av kolonner ble valgt, med tanke på at de kan være nødvendige på etterfølgende visualobjekter, betyr selv for DirectQuery et enkelt visualobjekt at den samlede spørringen som brukes i undervalget, inneholder de dusinvis av kolonnene, som vanligvis yter dårlig og kan støte på tidsavbrudd.

I eksemplet nedenfor velger du fem kolonner (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) i dialogboksen Hent data, sammen med målet OrderQuantity, betyr det at senere oppretting av et enkelt visualobjekt som inneholder Min OrderQuantity resulterer i følgende SQL-spørring til SAP HANA. Den skyggelagte er undervalget, som inneholder spørringen fra Hent data / Redigeringsprogram for Power Query. Hvis dette undervalget gir et resultat med høy kardinalitet, vil den resulterende SAP HANA-ytelsen sannsynligvis være dårlig eller støte på tidsavbrudd. Ytelseseffekten skyldes ikke at Power BI ber om alle feltene i undervalget. de fleste av disse feltene vil bli projisert bort av den ytre spørringen. Virkningen skyldes heller at mål i undervalget tvinger det til å materialiseres i HANA-serveren.

Skjermbilde av et spørringseksempel, som viser SQL-spørringen til SAP HANA.

På grunn av denne virkemåten anbefaler vi at elementene som er valgt i Hent data eller Redigeringsprogrammet for Power Query, begrenses til de nødvendige elementene, samtidig som de resulterer i en rimelig spørring for SAP HANA. Hvis det er mulig, bør du vurdere å gjenskape alle nødvendige tiltak i den semantiske modellen og bruke SAP HANA mer som en tradisjonell relasjonskilde.

Anbefalte fremgangsmåter

For begge metodene for å koble til SAP HANA følger du de generelle anbefalingene for bruk av DirectQuery, spesielt anbefalinger knyttet til å sikre god spørringsytelse. Hvis du vil ha mer informasjon, kan du se ved hjelp av DirectQuery i Power BI.

Hensyn og begrensninger

Listen nedenfor beskriver alle SAP HANA-funksjoner som ikke støttes fullstendig, eller funksjoner som fungerer annerledes når du bruker Power BI.

  • overordnede underordnede hierarkier: overordnede underordnede hierarkier er ikke synlige i Power BI. Dette er fordi Power BI får tilgang til SAP HANA ved hjelp av SQL-grensesnittet, og overordnede underordnede hierarkier kan ikke nås fullt ut ved hjelp av SQL.
  • Andre hierarkimetadata: Den grunnleggende strukturen i hierarkier vises i Power BI, men noen hierarkimetadata, for eksempel kontroll av virkemåten til fillete hierarkier, har ingen effekt. Dette skyldes igjen begrensninger i SQL-grensesnittet.
  • Tilkobling ved hjelp av SSL: Du kan koble til ved hjelp av Import og flerdimensjonal med TLS, men kan ikke koble til SAP HANA-forekomster som er konfigurert til å bruke TLS for relasjonstilkoblingsmetoden.
  • støtte for attributtvisninger: Power BI kan koble til analyse- og beregningsvisninger, men kan ikke koble direkte til attributtvisninger.
  • støtte for katalogobjekter: Power BI kan ikke koble til katalogobjekter.
  • Endre til variabler etter publisering: Du kan ikke endre verdiene for noen SAP HANA-variabler direkte i Power BI-tjenesten, etter at rapporten er publisert.

Kjente problemer

Listen nedenfor beskriver alle kjente problemer når du kobler til SAP HANA (DirectQuery) ved hjelp av Power BI.

  • SAP HANA-problem når du spør etter tellere og andre mål: Feil data returneres fra SAP HANA hvis du kobler til en analytisk visning, og et motmål og et annet forholdsmål, er inkludert i samme visualobjekt. Dette problemet dekkes av SAP-2128928 (uventede resultater når du spør en beregnet kolonne og en teller). Forholdet er feil i dette tilfellet.

  • flere Power BI-kolonner fra én SAP HANA-kolonne: For enkelte beregningsvisninger, der en SAP HANA-kolonne brukes i mer enn ett hierarki, viser SAP HANA kolonnen som to separate attributter. Denne fremgangsmåten resulterer i at to kolonner opprettes i Power BI. Disse kolonnene er imidlertid skjult som standard, og alle spørringer som involverer hierarkiene, eller kolonnene direkte, fungerer som de skal.

Hvis du vil ha mer informasjon om DirectQuery, kan du se følgende ressurser: