Riešenie problémov s pripojením koncového bodu XMLA

Koncové body XMLA v službe Power BI sa spoliehajú na natívny komunikačný protokol analysis services pre prístup k množinám údajov služby Power BI. Z tohto dôvodu je riešenie problémov s koncovými bodmi XMLA približne rovnaké ako riešenie problémov s typickým pripojením služby Analysis Services. Existujú však určité rozdiely v závislostiach špecifických pre službu Power BI.

Skôr než začnete

Predtým než začnete so scenárom riešenia problémov s koncovým bodom XMLA, uistite sa, že ste sa oboznámili so základnými informáciami uvedenými v téme Prepojenie množiny údajov s koncovým bodom XMLA. Uvádzajú sa v nej najbežnejšie prípady použitia koncového bodu XMLA. Užitočné môžu byť aj ďalšie príručky na riešenie problémov v službe Power BI, napríklad Riešenie problémov s bránami – Power BI a Riešenie problémov s analyzovaním v Exceli.

Povolenie koncového bodu XMLA

Koncový bod XMLA je možné povoliť v Premium služby Power BI, Premium na používateľa a Power BI Embedded kapacitách. Pri menších kapacitách, ako je napríklad kapacita A1 s veľkosťou pamäte iba 2,5 GB, sa môžu vyskytnúť chyby v časti Nastavenia kapacity, keď sa budete pokúšať nastaviť koncový bod XMLA na čítanie a zápis a následne vyberiete položku Použiť. V chybe sa uvádza: „Vyskytol sa problém s nastavením vyťaženia. Skúste to znova o chvíľu.“

Môžete vyskúšať niektorý z týchto postupov:

  • Obmedzte spotrebu pamäte iných služieb v kapacite, ako napríklad Toky údajov, na hodnotu 40 % alebo menej, alebo niektorú nepotrebnú službu úplne zakážte.
  • Inovujte kapacitu na väčšiu skladovú jednotku SKU. Inovácia kapacity z A1 na A3 napríklad vyrieši tento problém s konfiguráciou bez potreby zakázať Toky údajov.

Nezabudnite, že tiež treba povoliť nastavenie Exportovať údaje na úrovni nájomníka na portáli na správu služby Power BI. Toto nastavenie sa vyžaduje aj pre funkciu Analyzovať v Exceli.

Vytvorenie spojenia s klientom

Po povolení koncového bodu XMLA je vhodné otestovať pripojiteľnosť k pracovnému priestoru v kapacite. Ak chcete získať ďalšie informácie, pozrite si tému Pripojenie k pracovnému priestoru Premium. Nezabudnite si tiež prečítať časť Požiadavky na pripojenie, kde získate užitočné tipy a informácie o aktuálnych obmedzeniach pripojiteľnosti XMLA.

Pripojenie k objektu služby

Ak ste už povolili v nastaveniach nájomníka, aby objekty služieb mohli používať rozhrania API služby Power BI, ako je to popísané v časti Povolenie objektov služby, môžete sa pripojiť pomocou objektu služby ku koncovému bodu XMLA. Nezabudnite, že objekt služby si vyžaduje tú istú úroveň povolení prístupu na úrovni pracovného priestoru alebo množiny údajov ako bežní používatelia.

Ak chcete použiť objekt služby, nezabudnite do reťazca pripojenia zadať informácie o identite aplikácie:

  • User ID=<app:appid@tenantid>
  • Password=<application secret>

Príklad:

Data Source=powerbi://api.powerbi.com/v1.0/myorg/Contoso;Initial Catalog=PowerBI_Dataset;User ID=app:91ab91bb-6b32-4f6d-8bbc-97a0f9f8906b@19373176-316e-4dc7-834c-328902628ad4;Password=6drX...;

Ak sa zobrazí nasledujúca chyba:

„Nie je možné pripojiť sa k množine údajov pre neúplné informácie o konte. Pri objektoch služby sa uistite, že ste zadali ID nájomníka spolu s ID aplikácie s použitím naformátovanej aplikácie: <appId>@<tenantId>, a skúste to znova.“

Uistite sa, že ste zadali ID nájomníka spolu s ID aplikácie a s použitím správneho formátu.

Vhodné je tiež zadať ID aplikácie bez ID nájomníka. V tomto prípade však musíte nahradiť alias myorg v URL adrese zdroja údajov skutočným ID nájomníka. Služba Power BI môže potom vyhľadať objekt služby v správnom nájomníkovi. Najvhodnejším postupom je použiť alias myorg a zadať ID nájomníka spolu s ID aplikácie v parametri ID používateľa.

Prepojenie s Azure Active Directory B2B

Vďaka podpore pre Azure Active Directory (Azure AD) Business-to-business (B2B) v službe Power BI, môžete externým hosťovským používateľom umožniť prístup k množinám údajov v koncovom bode XMLA. Uistite sa, že nastavenie Zdieľanie obsahu s externými používateľmi je na portáli na správu služby Power BI povolené. Ak chcete získať ďalšie informácie, pozrite si tému Distribúcia obsahu služby Power BI externým hosťom s Azure AD B2B.

Nasadenie množiny údajov

Projekt tabuľkového modelu v Visual Studio (SSDT) môžete nasadiť do pracovného priestoru priradeného k kapacite Premium, podobne ako k zdroju servera v službách Azure Analysis Services. Pri nasadzovaní však existujú ďalšie úvahy. Nezabudnite si prečítať časť Nasadenie projektov modelu z Visual Studia (SSDT) v článku Prepojenie množiny údajov s koncovým bodom XMLA.

Nasadenie nového modelu

V predvolenej konfigurácii sa Visual Studio pokúša spracovať model ako súčasť operácie nasadenia a načítať údaje zo zdrojov údajov do množiny údajov. Ako je to popísané v časti Nasadenie projektov modelu z Visual Studia (SSDT), táto operácia môže zlyhať, pretože prihlasovacie údaje zdroja údajov nie je možné zadať ako súčasť operácie nasadenia. Naopak, ak prihlasovacie údaje pre váš zdroj údajov ešte nie sú definované pre žiadnu z existujúcich množín údajov, musíte zadať prihlasovacie údaje zdroja údajov do nastavení množiny údajov pomocou používateľského rozhrania služby Power BI (Množiny údajov > Nastavenia > Poverenia zdroja údajov > Upraviť poverenia). Po definovaní prihlasovacích údajov zdroja údajov môže potom Power BI automaticky použiť tieto prihlasovacie údaje pre daný zdroj údajov pre akúkoľvek novú množinu údajov v prípade úspešného nasadenia metaúdajov a vytvorenia množiny údajov.

Ak služba Power BI nedokáže previazať vašu novú množinu údajov s prihlasovacími údajmi zdroja údajov, zobrazí sa chyba s informáciou: „Databázu nie je možné spracovať. Dôvod: Úpravy sa nepodarilo uložiť na serveri.“ s kódom chyby „DMTS_DatasourceHasNoCredentialError“ ako je zobrazené nižšie:

Chyba nasadenia modelu

Ak sa chcete vyhnúť zlyhaniu spracovania, nastavte Možnosti nasadenia > Možnosti spracovania na Nespracovať, ako je znázornené na nasledujúcom obrázku. Visual Studio potom nasadí iba metaúdaje. Následne môžete v používateľskom rozhraní služby Power BI nakonfigurovať prihlasovacie údaje zdroja údajov a kliknúť na položku Obnoviť pre množinu údajov.

Možnosť Nespracovať

Nový projekt z existujúcej množiny údajov

Vytvorenie nového tabuľkového projektu v Visual Studio importom metaúdajov z existujúcej množiny údajov nie je podporované. Môžete sa však pripojiť k množine údajov pomocou nástroja SQL Server Management Studio, skriptovať metaúdaje a znova ich použiť v iných tabuľkových projektoch.

Migrácia množiny údajov do služby Power BI

Pre tabuľkové modely sa odporúča zadať úroveň kompatibility 1 500 (alebo vyššiu). Táto úroveň kompatibility podporuje väčšinu funkcií a typov zdrojov údajov. Ďalšie úrovne kompatibility sú spätne kompatibilné s predchádzajúcimi úrovňami.

Podporovaní poskytovatelia údajov

Na úrovni kompatibility 1 500 podporuje služba Power BI nasledujúce typy zdrojov údajov:

  • Zdroje údajov poskytovateľa (staršia verzia s reťazcom pripojenia v metaúdajoch modelu).
  • Štruktúrované zdroje údajov (zavedené s úrovňou kompatibility 1 400).
  • Vnorené M deklarácie zdrojov údajov (ako ich deklaruje aplikácia Power BI Desktop).

Odporúča sa používať štruktúrované zdroje údajov, ktoré Visual Studio predvolene vytvorí pri prechode cez tok údajov importu. Ak však plánujete migrovať do služby Power BI existujúci model, ktorý používa zdroj údajov poskytovateľa, uistite sa, či zdroj údajov závisí od podporovaného poskytovateľa údajov. Konkrétne ide o ovládač Microsoft OLE DB pre server SQL Server a ostatné ovládače ODBC tretích strán. V prípade ovládača OLE DB pre server SQL Server musíte prepnúť definíciu zdroja údajov na poskytovateľa údajov rozhrania .Net Framework pre SQL Server. Naopak, v prípade ovládačov ODBC tretích strán, ktoré môžu byť v službe Power BI nedostupné, musíte prepnúť na definíciu štruktúrovaného zdroja údajov.

Rovnako sa odporúča v definíciách zdroja údajov servera SQL Server nahradiť zastaraný ovládač Microsoft OLE DB pre server SQL Server (SQLNCLI11) poskytovateľom údajov rozhrania .NET Framework pre SQL Server.

Nasledujúca tabuľka zobrazuje príklad toho, ako reťazec pripojenia poskytovateľa údajov rozhrania .NET Framework pre server SQL Server nahrádza zodpovedajúci reťazec pripojenia pre OLE DB pre server SQL Server.

Ovládač OLE DB pre server SQL Server Poskytovateľ údajov rozhrania .NET Framework pre server SQL Server
Provider=SQLNCLI11;Data Source=sqldb.database.windows.net;Initial Catalog=AdventureWorksDW;Trusted_Connection=yes; Data Source=sqldb.database.windows.net;Initial Catalog=AdventureWorksDW2016;Integrated Security=SSPI;Encrypt=true;TrustServerCertificate=false

Krížové odkazy na zdroje oblastí

Rovnako ako existuje viacero typov zdroja údajov, existuje tiež viacero typov zdrojov oblastí, ktoré dokáže tabuľkový model zahrnúť pri importovaní údajov do tabuľky. Konkrétne môže oblasť použiť zdroj oblasti dotazu alebo zdroj oblasti M. Tieto typy zdroja oblasti môžu zasa odkazovať na zdroje údajov poskytovateľa alebo štruktúrované zdroje údajov. Zatiaľ čo tabuľkové modely v službe Azure Analysis Services podporujú krížové odkazovanie na tieto rôzne zdroje údajov a typy oblastí, služba Power BI vynucuje prísnejší vzťah. Zdroje oblastí dotazu musia odkazovať na zdroje údajov poskytovateľa a zdroje oblastí M musia odkazovať na štruktúrované zdroje údajov. Iné kombinácie služba Power BI nepodporuje. Ak chcete migrovať množinu údajov s krížovým odkazovaním, nasledujúca tabuľka popisuje podporované konfigurácie:

Zdroj údajov Zdroj oblasti Komentáre Podporované s koncovým bodom XMLA
Zdroj údajov poskytovateľa Zdroj oblasti dotazu Nástroj AS používa na prístup k zdroju údajov zásobník na pripojenie vychádzajúci z kazety. Áno
Zdroj údajov poskytovateľa Zdroj oblasti M Nástroj AS preloží zdroj údajov poskytovateľa do všeobecného štruktúrovaného zdroja údajov a následne použije nástroj Mashup na importovanie údajov. Nie
Štruktúrovaný zdroj údajov Zdroj oblasti dotazu Nástroj AS zalomí natívny dotaz v zdroji oblasti do výrazu M a následne použije nástroj Mashup na importovanie údajov. Nie
Štruktúrovaný zdroj údajov Zdroj oblasti M Nástroj AS využíva nástroj Mashup na importovanie údajov. Áno

Zdroje údajov a zosobnenie

Nastavenia zosobnenia, ktoré môžete definovať pre zdroje údajov poskytovateľa, nie sú pre službu Power BI relevantné. Služba Power BI používa na spravovanie prihlasovacích údajov zdroja údajov mechanizmus, ktorý je založený na nastaveniach množiny údajov. Ak vytvárate Zdroj údajov poskytovateľa, mali by ste sa uistiť, že vyberiete možnosť Konto služby.

Zosobnenie konta služby

Podrobné spracovanie

Keď v službe Power BI spustíte plánované obnovenie alebo obnovenie na požiadanie, služba Power BI zvyčajne obnoví celú množinu údajov. V mnohých prípadoch je oveľa efektívnejšie obnovenia selektovať. V nástroji SQL Server Management Studio (SSMS) môžete vykonávať úlohy podrobného spracovania tak, ako je znázornené nižšie, alebo pomocou nástrojov či skriptov tretích strán.

Spracovanie tabuliek v nástroji SSMS

Prepísania v príkaze Obnoviť TMSL

Prepísania v príkaze Obnoviť (TMSL) umožňujú používateľom vybrať inú definíciu dotazu na oblasť alebo definíciu zdroja údajov pre operáciu obnovenia.

Chyby v SSMS – Premium Gen 2

Vykonanie dotazu

Pri pripojení k pracovnému priestoru v Premium Gen2 alebo v kapacite Embedded Gen2 sa SQL Server Management Studio môže zobraziť nasledujúca chyba:

Executing the query ...
Error -1052311437: We had to move the session with ID '<Session ID>' to another Power BI Premium node. Moving the session temporarily interrupted this trace - tracing will resume automatically as soon as the session has been fully moved to the new node.

Toto je informačné hlásenie, ktoré je možné ignorovať v SSMS 18,8 a vyššom, pretože klientske knižnice sa znova pripájajú automaticky. Všimnite si, že klientske knižnice nainštalované s podporou SSMS v18.7.1 alebo nižšou podporou sledovania relácie podporujú. Stiahnite si najnovšiu verziu nástroja SSMS.

Operácie obnovenia

Pri použití SSMS v18.7.1 alebo nižšej na vykonanie dlhotrvajúcej operácie (>1 min) v množine údajov v kapacite služby Premium Gen2 alebo vloženej gen2 môže SSMS zobraziť približne nasledujúcu chybu, aj keď je operácia obnovenia úspešná:

Executing the query ...
Error -1052311437:
The remote server returned an error: (400) Bad Request.

Technical Details:
RootActivityId: 3716c0f7-3d01-4595-8061-e6b2bd9f3428
Date (UTC): 11/13/2020 7:57:16 PM
Run complete

This is due to a known issue in the client libraries where the status of the refresh request is incorrectly tracked. Toto je vyriešené vo verzii nástroja SSMS 18.8 a novšej. Stiahnite si najnovšiu verziu nástroja SSMS.

Úprava členstiev rolí v nástroji SSMS

Ak použijete na úpravu členstva roly v množine údajov nástroj SQL Server Management Studio (SSMS) vo verzii 18.8, môže SSMS zobraziť nasledujúcu chybu:

Failed to save modifications to the server. 
Error returned: ‘Metadata change of current operation cannot be resolved, please check the command or try again later.’ 

Príčinou je známy problém v rozhraní REST API služieb aplikácií. Toto sa vyrieši v pripravovanom vydaní. Dovtedy môžete túto chybu obísť, keď v sekcii Vlastnosti roly kliknete na položku Skript a potom zadáte a spustíte nasledujúci príkaz TMSL:

{ 
  "createOrReplace": { 
    "object": { 
      "database": "AdventureWorks", 
      "role": "Role" 
    }, 
    "role": { 
      "name": "Role", 
      "modelPermission": "read", 
      "members": [ 
        { 
          "memberName": "xxxx", 
          "identityProvider": "AzureAD" 
        }, 
        { 
          "memberName": “xxxx” 
          "identityProvider": "AzureAD" 
        } 
      ] 
    } 
  } 
} 

Chyba publikovania – množina údajov s dynamickým pripojením

Pri opätovnom publikovaní množiny údajov s dynamickým pripojením pomocou konektora Analysis Services sa môže zobraziť nasledujúca chyba:

Chyba Nepodarilo sa publikovať do služby Power BI.

Ak chcete tento problém vyriešiť, odstráňte alebo premenujte existujúcu množinu údajov, ako je uvedené v chybovom hlásení. Nezabudnite tiež opätovne publikovať všetky aplikácie, ktoré sú od zostavy závislé. Ak je to potrebné, informujte nadväzujúcich používateľov, že si majú aktualizovať všetky záložky na novú adresu zostavy, aby nestratili prístup k najnovšej zostave.

Alias pracovného priestoru/servera

Na rozdiel Analysis Services služby Azure nie sú aliasy názvov servera podporované pre Premium priestory.

DISCOVER_M_EXPRESSIONS

Zobrazenie správy DISCOVER_M_EXPRESSIONS správy údajov (DMV) momentálne nie je v Power BI podporované pomocou koncového bodu XMLA. Aplikácie môžu používať tabuľkový objektový model (TOM) na získanie výrazov M používaných dátovým modelom.

Limit pamäte príkazov riadenia prostriedkov v Premium Gen2

Premium Kapacity Gen2 používajú zdroje určujúce zabezpečenie, aby žiadna operácia jednej množiny údajov neprekročila množstvo dostupných pamäťových prostriedkov pre kapacitu určené podľa SKU. Napríklad predplatné P1 má efektívny limit pamäte na artefakt 25 GB, pri predplatnom P2 je limit 50 GB a pri predplatnom P3 je limit 100 GB. Okrem veľkosti množiny údajov (databázy) sa efektívny limit pamäte vzťahuje aj na základné operácie príkazov množiny údajov, ako sú napríklad operácievytvorenie, zmenaa obnovenie.

Efektívny limit pamäte príkazu je založený na menšiemu limite pamäte kapacity (podľa SKU) alebo hodnote vlastnosti DbpropMsmdRequestMemoryLimit XMLA.

Pre kapacitu P1 napríklad ak:

  • DbpropMsmdRequestMemoryLimit = 0 (alebo neurčené) je efektívny limit pamäte pre príkaz 25 GB.

  • DbpropMsmdRequestMemoryLimit = 5 GB, efektívny limit pamäte pre príkaz je 5 GB.

  • DbpropMsmdRequestMemoryLimit = 50 GB, efektívny limit pamäte pre príkaz je 25 GB.

Efektívny limit pamäte pre príkaz sa zvyčajne vypočítava z pamäte povolenej pre množinu údajov kapacitou (25 GB, 50 GB, 100 GB) a veľkosť pamäte, ktorú množina údajov už používa pri spustení príkazu. Množina údajov s veľkosťou 12 GB pre kapacitu P1 napríklad umožňuje efektívne obmedzenie pamäte pre nový príkaz 13 GB. Efektívny limit pamäte však môže byť ďalej obmedzený vlastnosťou XMLA DbPropMsmdRequestMemoryLimit, ak je voliteľne zadaná aplikáciou. Ak v predchádzajúcom príklade je vo vlastnosti DbPropMsmdRequestMemoryLimit zadaná hodnota 10 GB, efektívny limit príkazu sa ďalej zníži na 10 GB.

Ak sa operácia príkazu pokúsi spotrebovať viac pamäte, než je povolená limitom, operácia môže zlyhať a vráti sa chyba. Nasledujúca chyba napríklad popisuje, že sa pri spustení príkazu prekročil efektívny limit pamäte 25 GB (kapacita P1), pretože množina údajov už spotrebúva 12 GB (12288 MB) pri spustení príkazu a pre operáciu príkazu sa použil efektívny limit 13 GB (13312 MB):

"Riadenie zdrojov: Táto operácia bola zrušená, pretože nebol k dispozícii dostatok pamäte na dokončenie spustenia. Zvýšte buď pamäť svojej Premium, v ktorej je táto množina údajov hosťovaná, alebo znížte nároky na pamäť svojej množiny údajov tak, že obmedzia množstvo importovaných údajov. Ďalšie podrobnosti: spotrebovanej pamäte 1 3312 MB, limit pamäte 13312 MB, veľkosť databázy pred spustením príkazu 12288 MB. Ďalšie informácie: https://go.microsoft.com/fwlink/?linkid=2159753 ."

V niektorých prípadoch, ako je to znázornené v nasledujúcej chybe, je "spotrebová pamäť" 0, ale veľkosť databázy pred spustením príkazu je väčšia ako efektívny limit pamäte. To znamená, že spustenie operácie zlyhalo, pretože množstvo pamäte, ktoré množina údajov už využíva, je väčšie ako limit pamäte pre kuku SKU.

"Riadenie zdrojov: Táto operácia bola zrušená, pretože nebol k dispozícii dostatok pamäte na dokončenie spustenia. Zvýšte buď pamäť svojej Premium, v ktorej je táto množina údajov hosťovaná, alebo znížte nároky na pamäť svojej množiny údajov tak, že obmedzia množstvo importovaných údajov. Ďalšie podrobnosti: spotrebová pamäť 0 MB, limit pamäte 25 600 MB, veľkosť databázy pred spustením príkazu 26000 MB. Ďalšie informácie: https://go.microsoft.com/fwlink/?linkid=2159753 ."

Potenciálne znížiť limit efektívnej pamäte:

  • Inovujte na väčšiu Premium kapacity (SKU) pre množinu údajov.
  • Znížte nároky na pamäť svojej množiny údajov obmedzením množstva údajov načítaných pri každom obnovení. Ak napríklad používate prírastkové obnovenie, zadajte kratší rozsah dátumov medzi parametrami RangeStart a RangeEnd.
  • V prípade operácií obnovenia cez koncový bod XMLA znížte počet paralelných oblastí, ktoré sa spracovávajú. Príliš veľa oblastí, ktoré sa spracovávajú paralelne s jedným príkazom, môže prekročiť efektívny limit pamäte.

Pozri tiež

Prepojenie množiny údajov s koncovým bodom XMLA
Automatizácia úloh pracovného priestoru a množiny údajov Premium pomocou objektov služby
Riešenie problémov s funkciou Analyzovať v Exceli
Nasadenie riešenia tabuľkového modelu