Pripojenie k zdrojom údajov SAP HANA pomocou režimu DirectQuery v službe Power BI

K zdrojom údajov SAP HANA sa môžete pripojiť priamo pomocou režimu DirectQuery. Pri pripájaní k databáze SAP HANA existujú dve možnosti:

  • Považovať databázu SAP HANA za multidimenzionálny zdroj (predvolené): V tomto prípade bude správanie podobné, ako keď sa služba Power BI pripojí k iným multidimenzionálnym zdrojom, napríklad k zdroju SAP Business Warehouse alebo Analysis Services. Pri pripojení k databáze SAP HANA pomocou tohto nastavenia je vybraté jedno zobrazenie analýzy alebo výpočtu a všetky mierky, hierarchie a atribúty tohto zobrazenia budú k dispozícii v zozname polí. Pri vytváraní vizuálov sa agregované údaje vždy načítajú z databázy SAP HANA. Toto je odporúčaný postup a je predvolený pre nové zostavy DirectQuery vytvorené prostredníctvom databázy SAP HANA.

  • Považovať databázu SAP HANA za relačný zdroj: V tomto prípade služba Power BI považuje databázu SAP HANA za relačný zdroj. Táto možnosť ponúka väčšiu flexibilitu. Pri tomto prístupe treba zabezpečiť, aby boli miery agregované podľa očakávania a aby sa zabránilo problémom s výkonom.

Prístup pripojenia určuje možnosť globálneho nástroja, ktorú je možné nastaviť výberom položiek Súbor > Možnosti a nastavenia, potom Možnosti > DirectQuery a výberom položky Považovať SAP HANA za relačný zdroj, ako je znázornené na nasledujúcom obrázku.

Snímka obrazovky dialógového okna Možnosti zobrazujúca možnosti režimu DirectQuery.

Možnosť považovať databázu SAP HANA za relačný zdroj ovláda prístup používaný pre každú novú zostavu využívajúcu režim DirectQuery prostredníctvom databázy SAP HANA. Nemá žiadny vplyv na existujúce pripojenia databázy SAP HANA v aktuálnej zostave, ani na pripojenia v žiadnych ďalších otvorených zostavách. Ak táto možnosť v súčasnosti nie je začiarknutá, po pridaní nového pripojenia k databáze SAP HANA pomocou funkcie Získať údaje sa pri tomto pripojení bude databáza SAP HANA považovať za multidimenzionálny zdroj. Ak je však otvorená iná zostava, ktorá sa tiež pripája k databáze SAP HANA, táto zostava sa bude aj naďalej správať podľa možnosti, ktorá bola nastavená v čase vytvorenia, čo znamená, že všetky zostavy, ktoré sa pripájajú k databáze SAP HANA, ktoré boli vytvorené pred februárom 2018, budú aj naďalej považovať databázu SAP HANA za relačný zdroj.

Tieto dva prístupy predstavujú odlišné správanie a nie je možné prepnúť existujúcu zostavu z jedného prístupu do druhého.

Poďme sa postupne pozrieť na tieto dva prístupy podrobnejšie.

Považovať databázu SAP HANA za multidimenzionálny zdroj (predvolené)

Všetky nové pripojenia k databáze SAP HANA predvolene používajú tento spôsob, pri ktorom považujú databázu SAP HANA za multidimenzionálny zdroj. Ak chcete pripojenie k databáze SAP HANA považovať za relačný zdroj, musíte vybrať položky Súbor > Možnosti a nastavenia > Možnosti a potom začiarknuť políčko v časti DirectQuery > Považovať SAP HANA za relačný zdroj. Kým je táto funkcia vo verzii Preview, zostavy vytvorené pomocou multidimenzionálneho prístupu nie je možné publikovať v službe Power BI. Ak to urobíte, vzniknú chyby pri otvorení zostavy v rámci služby Power BI.

Pri pripájaní k databáze SAP HANA ako multidimenzionálnemu zdroju platia tieto informácie:

  • V navigátore funkcie Získať údaje je možné vybrať jedno zobrazenie databázy SAP HANA. Nie je možné vybrať jednotlivé mierky alebo atribúty. V čase pripojenia nie je definovaný žiadny dotaz, čo je rozdielom oproti importovaniu údajov alebo použitiu režimu DirectQuery, keď sa SAP HANA považuje za relačný zdroj. To tiež znamená, že pri výbere tohto spôsobu pripojenia nie je možné priamo použiť dotaz SQL databázy SAP HANA.

  • Všetky mierky, hierarchie a atribúty vybratého zobrazenia sa zobrazia v zozname polí.

  • Keď je mierka použitá vo vizuáli, databáza SAP HANA bude dotazovaná s cieľom načítať hodnotu mierky na úrovni agregácie, ktorá je potrebná pre vizuál. Takže pri spracovaní mierok bez pripočítania (počítadlá, pomery atď.) vykonáva databáza SAP HANA všetky agregácie a služba Power BI nevykonáva žiadnu ďalšiu agregáciu.

  • Ak chcete zabezpečiť, aby bolo vždy možné získať z databázy SAP HANA správne agregované hodnoty, je potrebné stanoviť určité obmedzenia. Nie je napríklad možné pridať vypočítané stĺpce alebo kombinovať údaje z viacerých zobrazení databázy SAP HANA v rámci tej istej zostavy.

Považovanie databázy SAP HANA za multidimenzionálny zdroj neponúka väčšiu flexibilitu, ako poskytuje alternatívny relačný prístup, ale je jednoduchšie, zaručuje správne agregované hodnoty pri spracovaní zložitejších mierok databázy SAP HANA a vo všeobecnosti poskytuje vyšší výkon.

Zoznam polí bude obsahovať všetky mierky, atribúty a hierarchie zo zobrazenia databázy SAP HANA. Majte na pamäti nasledujúce správanie, ktoré sa uplatňuje pri použití tohto spôsobu pripojenia:

  • Každý atribút zahrnutý aspoň v jednej hierarchii bude predvolene skrytý. V prípade potreby je však možné ich zobraziť výberom možnosti Zobraziť skryté z kontextovej ponuky v zozname polí. Pomocou tej istej kontextovej ponuky je možné zmeniť ich na viditeľné, ak je to potrebné.

  • V databáze SAP HANA je možné definovať atribút tak, že ako svoje označenie bude používať iný atribút. Atribút Produkt (s hodnotami 1, 2, 3 atď.) môže napríklad použiť ako svoje označenie atribút NázovProduktu (s hodnotami Bicykel, Tričko, Rukavice). V tomto prípade bude v zozname polí uvedené jedno pole Produkt, ktorého hodnotami budú označenia Bicykel, Tričko, Rukavice atď. Tieto označenia však budú mať kľúčové hodnoty 1, 2, 3, podľa ktorých budú zoradené a ktoré budú určovať ich jedinečnosť. Vytvorí sa tiež skrytý stĺpec Product.Key, ktorý umožní v prípade potreby prístup k príslušným hodnotám kľúčov.

Všetky premenné definované v základnom zobrazení databázy SAP HANA sa zobrazia v čase pripojenia a bude možné zadať potrebné hodnoty. Tieto hodnoty je možné neskôr zmeniť tak, že na páse s nástrojmi vyberiete položku Transformovať údaje a potom v zobrazenej rozbaľovacej ponuke vyberiete položku Upraviť parametre.

Povolené operácie modelovania sú prísnejšie ako vo všeobecnom prípade použitia režimu DirectQuery, pretože je potrebné zabezpečiť, aby sa dali z databázy SAP HANA vždy získať správne agregované údaje. Stále je však možné robiť veľa doplnení a zmien vrátanie definovania mierok, premenovania a skrytia polí a definovania formátov zobrazenia. Všetky takéto zmeny sa pri obnovení zachovajú a všetky nekonfliktné zmeny zobrazenia databázy SAP HANA sa použijú.

Ďalšie obmedzenia modelovania

Nižšie sú uvedené ďalšie primárne obmedzenia modelovania pri pripojení k databáze SAP HANA (ako multidimenzionálnemu zdroju) pomocou režimu DirectQuery:

  • Žiadna podpora pre vypočítané stĺpce: Funkcia vytvárania vypočítaných stĺpcov je zakázaná. Znamená to tiež, že nie je dostupné ani zoskupovanie a klastrovanie, ktoré vytvára vypočítané stĺpce.
  • Ďalšie obmedzenia pre mierky: Existujú ďalšie obmedzenia vynútené pre výrazy jazyka DAX, ktoré možno použiť v mierkach, aby odrážali úroveň podpory, ktorú ponúka databáza SAP HANA.
  • Žiadna podpora pre definovanie vzťahov: V rámci zostavy je možné dotazovať iba jedno zobrazenie, a preto neexistuje žiadna podpora pre definovanie vzťahov.
  • Žiadne zobrazenie údajov: Zobrazenie údajov zvyčajne zobrazuje údaje na úrovni podrobností v tabuľkách. Vzhľadom na povahu zdrojov OLAP, ako je napríklad databáza SAP HANA, nie je toto zobrazenie dostupné v rámci databázy SAP HANA.
  • Podrobnosti stĺpcov a mierok sú pevne dané: Stĺpce a mierky zobrazené v zozname polí sú pevne dané v základnom zdroji a nemožno ich upravovať. Nie je napríklad možné odstrániť stĺpec ani zmeniť jeho typ údajov (dá sa však premenovať).
  • Ďalšie obmedzenia v jazyku DAX: Existujú ďalšie obmedzenia jazyka DAX, ktorý je možné použiť v definíciách mierok, aby odrážali obmedzenia v zdroji. Nie je napríklad možné použiť v rámci tabuľky agregačnú funkciu.

Ďalšie obmedzenia vizualizácií

Existujú obmedzenia vizuálov pri pripojení k databáze SAP HANA (ako multidimenzionálnemu zdroju) pomocou režimu DirectQuery:

  • Žiadne agregácie stĺpcov: Nie je možné zmeniť agregáciu pre stĺpec vo vizuáli. Ten je vždy nastavený na možnosť Nezhrnúť.

Považovať databázu SAP HANA za relačný zdroj

Ak sa rozhodnete pripojiť k databáze SAP HANA ako k relačnému zdroju, budete mať k dispozícii väčšiu flexibilitu. Môžete napríklad vytvoriť vypočítané stĺpce, zahrnúť údaje z viacerých zobrazení databázy SAP HANA a vytvárať vzťahy medzi výslednými tabuľkami. Správanie pri považovaní služby SAP Hana za multidimenzionálny zdroj, a to najmä v prípade, že zobrazenie služby SAP Hana obsahuje miera bez pripočítaní (napríklad jedinečné počty alebo priemery namiesto jednoduchých sčítaní) a súvisí s efektivitou dotazov spúšťaných aplikáciou SAP Hana.

Je vhodné začať objasnením správania relačného zdroja, napríklad SQL Server, keď dotaz definovaný vo výraze Získať údaje alebo v Editore Power Query vykoná agregáciu. V príklade, ktorý nasleduje, dotaz definovaný v editore Power Query vráti priemernú cenu podľa hodnoty ProductID (ID Produktu).

Diagram znázorňujúci dotaz definovaný v Editore Power Query, ktorý vráti priemernú cenu podľa produktu I D.

Ak sa údaje importujú do služby Power BI (namiesto použitia režimu DirectQuery), stane sa toto:

  • Údaje sa importuje na úrovni agregácie definovanej dotazom vytvoreným v editore dotazov Power Query Editor. Napríklad priemerná cena podľa produktu. Výsledkom je tabuľka s dvomi stĺpcami ProductID (IDProduktu) a AveragePrice (PriemernáCena), ktorú možno použiť vo vizuáloch.
  • Vo vizuáli sa každá ďalšia agregácia (napríklad Sum (Súčet), Average (Priemer), Min a ďalšie) uskutoční v rámci týchto importovaných údajov. Napríklad zahrnutie stĺpca AveragePrice (PriemernáCena) do vizuálu spôsobí predvolené použitie agregačnej funkcie Sum (Súčet) a vráti hodnotu súčtu stĺpca AveragePrice (PriemernáCena) pre každú položku ProductID (IDProduktu) – čo by v tomto príklade bolo 13,67. To isté platí pre všetky ďalšie agregačné funkcie (ako je napríklad Min, Average (Priemer) atď.) použité vo vizuáli. Napríklad funkcia Average (Priemer) stĺpca AveragePrice (PriemernáCena) vráti priemer hodnôt 6,66, 4 a 3, ktorý sa rovná 4,56, a nie priemer stĺpca Price (Cena) zo šiestich záznamov v základnej tabuľke, čo je 5,17.

Ak sa použije režim DirectQuery (v rámci toho istého relačného zdroja) namiesto funkcie Importovať, aplikuje sa rovnaká sémantika a výsledky budú presne rovnaké:

  • Keďže dotaz je rovnaký, logicky sa vrstve zostavy odovzdajú presne tie isté údaje – aj keď sa tieto údaje v skutočnosti neimportujú.

  • Vo vizuáli sa každá ďalšia agregácia (napríklad Sum (Súčet), Average (Priemer), Min a ďalšie) znova uskutoční v rámci tejto logickej tabuľky z dotazu. A znova, vizuál obsahujúci priemer stĺpca AveragePrice (PriemernáCena) vráti rovnaký výsledok 4,56.

Teraz zoberme do úvahy databázu SAP HANA, keď sa pripojenie považuje za relačný zdroj. Služba Power BI môže fungovať v databáze SAP HANA so zobrazeniami analýzy aj zobrazeniami výpočtov, ktoré môžu obsahovať mierky. Napriek tomu sa dnešný prístup k programu SAP Hana riadi rovnakými zásadami, ako je popísané vyššie v tejto časti: dotaz definovaný vo vizuáli Získať údaje alebo v Editore programu Power Query Bude určovať dostupné údaje a potom všetky následné agregácie vo vizuáli sa budú týkať týchto údajov. To isté platí pre import aj directquery.
Ale vzhľadom na charakter služby SAP Hana je dotaz definovaný v pôvodnom dialógovom okne Získať údaje alebo v Editore Power Query vždy agregačný dotaz a vo všeobecnosti bude obsahovať opatrenia, v ktorých je skutočná použitá agregácia definovaná zobrazením SAP Hana.

Ekvivalentom príkladu s SQL Serverom, ktorý je uvedený vyššie, je zobrazenie databázy SAP HANA obsahujúce položky ID, ProductID (IDProduktu), DepotID (IDSkladu) a mierky zahŕňajúce stĺpec AveragePrice (PriemernáCena), ktorý je v zobrazení definovaný ako priemerná hodnota stĺpca Price (Cena) .

Ak bola v rámci použitia funkcie Získať údaje vybratá položka ProductID (IDProduktu) a mierka AveragePrice (PriemernáCena), v rámci zobrazenia sa definuje dotaz, ktorý požaduje tieto agregované údaje (v predchádzajúcom príklade je z dôvodu zjednodušenia použitý jazyk pseudo-SQL, ktorý nezodpovedá presnej syntaxi jazyka SQL databázy SAP HANA). Všetky ďalšie agregácie definované vo vizuáli potom ďalej agregujú výsledky takéhoto dotazu. Opäť, ako je popísané vyššie pre SQL Server, to platí aj pre funkciu Importovať a režim DirectQuery. V prípade režimu DirectQuery sa dotaz z funkcie Získať údaje alebo z Editora Power Query použije v podvýbere v rámci jedného dotazu odoslaného do aplikácie SAP Hana, a teda v skutočnosti sa nedá načítať všetky údaje pred ďalšou agregácii.

Všetky tieto informácie a druhy správania vyžadujú nasledujúce informácie, ktoré je potrebné zvážiť pri použití režimu DirectQuery s databázou SAP HANA:

  • Treba venovať pozornosť každej ďalšej agregácii vykonávanej vo vizuáloch vždy, keď je mierka v databáze SAP HANA bez pripočítania (napríklad nie je to jednoduchá funkcia Sum (Súčet), Min alebo Max).

  • Vo výraze Získať údaje alebo v Editore Power Query by sa na získanie potrebných údajov mali zahrnúť iba požadované stĺpce vzhľadom na skutočnosť, že výsledkom bude dotaz, ktorý musí byť primeraný na SAP Hana. Ak by napríklad boli vybraté desiatky stĺpcov, pretože možno budú potrebné v ďalších vizuáloch, potom by aj pre režim DirectQuery jednoduchý vizuál znamenal, že agregovaný dotaz použitý v podvýbere bude obsahovať tieto desiatky stĺpcov, ktoré budú vo všeobecnosti významne znižovať výkon.

Pozrime sa na príklad. V nasledujúcom príklade bude výber piatich stĺpcov [CalendarQuarter (KalendárnyŠtvrťrok), Color (Farba), LastName (Priezvisko), ProductLine (RadProduktov), SalesOrderNumber (ČísloPredajnejObjednávky)] v dialógovom okne Získať údaje, spolu s mierkou OrderQuantity (ObjednanéMnožstvo) znamenať, že neskoršie vytvorenie jednoduchého vizuálu obsahujúceho funkciu Min položky OrderQuantity (ObjednanéMnožstvo) vráti ako nasledujúci dotaz SQL pre databázu SAP HANA. Podfarbená je podvýber obsahujúci dotaz z okna Získať údaje / Power Query Editore. Ak je po tomto podvýbere vysoká kardinalita, výsledný výkon databázy SAP HANA bude pravdepodobne veľmi slabý.

Snímka obrazovky príkladu dotazu zobrazujúca dotaz S Q L na S A P HANA.

Vzhľadom na toto správanie odporúčame, aby boli položky vybraté vo položkách Získať údaje alebo v Editore Power Query obmedzené iba na tie položky, ktoré sú potrebné na to, aby viedlo k primeranému dotazu na SAP Hana.

Najvhodnejšie postupy

V prípade oboch prístupov k pripojeniu k databáze SAP HANA sa odporúčania na používanie režimu DirectQuery vzťahujú aj na databázu SAP HANA, a to najmä tie, ktoré súvisia so zabezpečením dobrého výkonu. Tieto odporúčania sú podrobne popísané v článku Používanie režimu DirectQuery v službe Power BI.

Obmedzenia

V nasledujúcom zozname sú popísané všetky funkcie SAP HANA, ktoré nie sú úplne podporované, alebo funkcie, ktoré sa správajú inak pri používaní služby Power BI.

  • Hierarchie typu nadradený-podriadený – hierarchie typu nadradený-podriadený sa nezobrazia v službe Power BI. Je to preto, lebo služba Power BI pristupuje k databáze SAP HANA pomocou rozhrania SQL a hierarchie typu nadradený-podriadený nie sú plne prístupné prostredníctvom SQL.
  • Ďalšie metaúdaje hierarchie – základná štruktúra hierarchií sa zobrazuje v službe Power BI, ale niektoré metaúdaje hierarchie (napríklad kontrola správania nepravidelných hierarchií) nebudú mať žiadny vplyv. Opäť je to z dôvodu obmedzení stanovených rozhraním SQL.
  • Pripojenie pomocou protokolu SSL – môžete sa pripojiť pomocou importu a multidimenzionálne s protokolom SSL, ale nemôžete sa pripojiť k inštanciám SAP HANA nakonfigurovaným na používanie protokolu SSL pre relačný konektor.
  • Podpora zobrazenia atribútov – služba Power BI sa môže pripojiť k zobrazeniam analýzy a výpočtu, ale nemôže sa pripojiť priamo k zobrazeniam atribútov.
  • Podpora pre objekty katalógu – Power BI sa nemôže pripojiť k objektom katalógu.
  • Zmena premenných po publikovaní – po publikovaní zostavy nie je možné zmeniť hodnoty premenných SAP HANA priamo v službe Power BI.

Známe problémy

V nasledujúcom zozname sa popisujú všetky známe problémy pri pripájaní k databáze SAP HANA (DirectQuery) pomocou služby Power BI.

  • Problém databázy SAP HANA pri dotaze na počítadlá a ďalšie mierky – z databázy SAP HANA sa vrátia nesprávne údaje, ak je pripojenie smerované na analytické zobrazenie a ten istý vizuál obsahuje mierku počítadla a ďalšiu mierku pomeru. Tohto problému sa týka poznámka 2128928 v systéme SAP (Neočakávané výsledky pri dotaze na vypočítaný stĺpec a počítadlo). Mierka pomeru bude v tomto prípade nesprávna.

  • Viac stĺpcov v službe Power BI z jedného stĺpca databázy SAP HANA – v prípade niektorých zobrazení výpočtu, kde sa jeden stĺpec databázy SAP HANA používa vo viacerých hierarchiách, sa daný stĺpec v databáze SAP HANA zobrazuje ako dva samostatné atribúty. To má za následok vytvorenie dvoch stĺpcov v službe Power BI. Tieto stĺpce sú však predvolene skryté a všetky dotazy týkajúce sa hierarchií alebo priamo stĺpcov sa správajú správne.

Ďalší postup

Ďalšie informácie o režime DirectQuery získate v nasledujúcich zdrojoch: