Použití DirectQuery pro datové sady Power BI a Analysis Services (Preview)

S DirectQuery pro datové sady Power BI a Analysis Services se můžete pomocí DirectQuery připojit k datovým sadám Power BI, Azure Analysis Services (AAS) a SQL Server 2022 (CTP) Analysis Services – a můžete je dokonce kombinovat s dalšími DirectQuery a importovanými daty. Tato funkce je zvlášť užitečná pro autory sestav, kteří chtějí kombinovat data ze svého sémantického modelu organizace s dalšími daty, která vlastní, jako je excelová tabulka, nebo chtějí přizpůsobit nebo rozšířit metadata ze svého sémantického modelu organizace.

Povolení funkce Preview

Vzhledem k tomu, že je funkce momentálně ve verzi Preview, musíte ji nejdřív povolit. Uděláte to tak, že v Power BI Desktop přejdete na Možnosti a nastavení > souboru > Možnosti a v části Funkce ve verzi Preview zaškrtnete políčko DirectQuery pro datové sady Power BI a Analysis Services, abyste tuto funkci Preview povolili. Aby se změna projevila, budete možná muset Power BI Desktop restartovat.

Správa této funkce

Správci tenanta můžou povolit nebo zakázat připojení DirectQuery k datovým sadám Power BI na portálu pro správu. I když je tato možnost ve výchozím nastavení povolená, zabráníte uživatelům v publikování nových složených modelů v datových sadách Power BI do služby.

Správa nastavení pro povolení nebo zakázání připojení DirectQuery k datovým sadám Power BI.

Existující sestavy, které využívají složený model v datové sadě Power BI, budou dál fungovat a uživatelé budou moct složený model vytvořit v Desktopu, ale nebudou moct publikovat do služby. Když vytvoříte připojení DirectQuery k datové sadě Power BI výběrem možnosti Provést změny v tomto modelu , zobrazí se následující zpráva upozornění:

Zpráva upozornění informující uživatele, že publikování složeného modelu, který používá datovou sadu Power BI, není povolené, protože správce nepovoluje připojení DirectQuery. Uživatel stále může vytvořit model pomocí Desktopu.

Tímto způsobem můžete datovou sadu stále zkoumat v místním prostředí Power BI Desktop a vytvořit složený model. Nebudete ale moct publikovat sestavu do služby. Při publikování sestavy a modelu se zobrazí následující chybová zpráva a publikování bude zablokováno:

Chybová zpráva, která blokuje publikování složeného modelu, který používá datovou sadu Power BI, protože správce nepovoluje připojení DirectQuery.

Všimněte si, že živá připojení k datovým sadám Power BI nejsou přepínačem ovlivněná ani živá připojení nebo připojení DirectQuery ke službě Analysis Services. Tyto možnosti budou dál fungovat bez ohledu na to, jestli je přepínač vypnutý. Všechny publikované sestavy, které využívají složený model v datové sadě Power BI, budou fungovat i v případě, že po publikování dojde k vypnutí přepínače.

Použití DirectQuery pro živá připojení

Použití DirectQuery pro datové sady Power BI a Službu Analysis Services vyžaduje, aby vaše sestava měla místní model. Můžete začít z živého připojení a přidat nebo upgradovat na místní model nebo začít s připojením DirectQuery nebo importovanými daty, které automaticky vytvoří místní model v sestavě.

Pokud chcete zjistit, která připojení se ve vašem modelu používají, zkontrolujte stavový řádek v pravém dolním rohu Power BI Desktopu. Pokud jste připojení jenom ke zdroji Analysis Services, zobrazí se zpráva podobná následující na obrázku:

Pouze připojení služby Analysis Services

Pokud jste připojení k datové sadě Power BI, zobrazí se zpráva s informací o tom, ke které datové sadě Power BI jste připojení:

Připojení k datové sadě Power BI

Pokud chcete přizpůsobit metadata polí v živě připojené datové sadě, na stavovém řádku vyberte Provést změny v tomto modelu. Případně můžete na pásu karet vybrat tlačítko Provést změny v tomto modelu , jak je znázorněno na následujícím obrázku. V Zobrazení sestavy tlačítko Provést změny v tomto modelu na kartě Modelování V Zobrazení modelu je tlačítko na kartě Domů.

Tlačítko Provést změny v tomto modelu

Při použití tlačítka se zobrazí dialogové okno s potvrzením přidání místního modelu. Vyberte Přidat místní model a povolte vytváření nových sloupců nebo úpravu metadat pro pole z datových sad Power BI nebo Analysis Services. Následující obrázek znázorňuje zobrazené dialogové okno.

Dialogové okno Vytvořit místní model

Když jste živě připojení ke zdroji Analysis Services, neexistuje žádný místní model. Pokud chcete DirectQuery používat pro živě připojené zdroje, jako jsou datové sady Power BI a Analysis Services, musíte do sestavy přidat místní model. Když publikujete sestavu s místním modelem do služby Power BI, publikuje se i datová sada pro tento místní model.

Řetězení

Datové sady a datové sady a modely, na kterých jsou založeny, tvoří řetězec. Tento proces, označovaný jako řetězení, umožňuje publikovat sestavu a datovou sadu založenou na jiných datových sadách Power BI, což byla funkce, která dříve nebyla možná.

Představte si například, že váš kolega publikuje datovou sadu Power BI s názvem Prodej a rozpočet , která je založená na modelu Analysis Services s názvem Prodej, a zkombinuje ji s excelovým listem s názvem Rozpočet.

Když publikujete novou sestavu (a datovou sadu) nazvanou Prodej a rozpočet Evropa , která je založená na datové sadě Power BI Sales and Budget publikované vaším kolegou, a provedete během ní další úpravy nebo rozšíření, přidáváte sestavu a datovou sadu do řetězce o délce tři, který začal modelem Sales Analysis Services. a končí datovou sadou Power BI Sales and Budget Europe . Tento proces zřetězení je vizualizovaný na následujícím obrázku.

Proces zřetězení datových sad

Řetězec na předchozím obrázku má délku tři, což je v tomto období Preview maximální délka. Rozšíření nad rámec délky řetězce tři se nepodporuje a vede k chybám.

Upozornění zabezpečení

Použití Funkce DirectQuery pro datové sady Power BI a Analysis Services zobrazí dialogové okno upozornění zabezpečení, které je znázorněno na následujícím obrázku.

Upozornění zabezpečení

Data můžou být vložena z jednoho zdroje dat do jiného, což představuje stejné upozornění zabezpečení jako při kombinování DirectQuery a zdrojů importu v datovém modelu. Další informace o tomto chování najdete v článku Použití složených modelů v Power BI Desktopu.

Funkce a scénáře k vyzkoušení

Následující seznam obsahuje návrhy, jak můžete DirectQuery pro datové sady Power BI a Analysis Services prozkoumat sami:

  • Připojování k datům z různých zdrojů: import (například souborů), datové sady Power BI, Azure Analysis Services
  • Vytváření vztahů mezi různými zdroji dat
  • Psaní měr, které používají pole z různých zdrojů dat
  • Vytváření nových sloupců pro tabulky z datových sad Power BI nebo Azure Analysis Services
  • Vytváření vizuálů, které používají sloupce z různých zdrojů dat

Od verze Power BI Desktop z dubna 2021 se můžete k perspektivě připojit také při vytváření připojení DirectQuery k modelu Analysis Services, pokud je perspektiva dostupná.

Od verze Power BI Desktop z října 2021 máte větší kontrolu nad připojeními:

  • Tabulku můžete z modelu odebrat pomocí seznamu polí, aby byly modely co nejsmyslulejší a nejsmyslulejší (pokud se připojíte k perspektivě, nemůžete z modelu odebrat tabulky).
  • Můžete určit, které tabulky se mají načíst, a nemusíte načítat všechny tabulky, když chcete jenom určitou podmnožinu tabulek.
  • Můžete určit, jestli se mají přidat nějaké tabulky, které se následně přidají do datové sady po vytvoření připojení v modelu.
  • Ve verzi z října 2021 došlo k vylepšení výkonu díky paralelnímu spouštění dotazů na model a inteligentnímu ukládání do mezipaměti.

Důležité informace a omezení

Při použití DirectQuery pro datové sady Power BI a Analysis Services je potřeba mít na paměti několik aspektů:

  • Pokud aktualizujete zdroje dat a dojde k chybám s konfliktními názvy polí nebo tabulek, Power BI vyřeší chyby za vás.

  • Ve stejné datové sadě Power BI nebo zdroji Analysis Services nemůžete upravovat, odstraňovat ani vytvářet nové relace. Pokud máte k těmto zdrojům přístup pro úpravy, můžete místo toho provést změny přímo ve zdroji dat.

  • Pokud chcete vytvořit sestavy ve službě Power BI ve složeném modelu, který je založený na jiné datové sadě, musí být nastavené všechny přihlašovací údaje. Na stránce nastavení aktualizace přihlašovacích údajů se u zdrojů Analysis Services zobrazí následující chyba, i když jsou přihlašovací údaje nastavené:

    Upozornění na nepravdivé přihlašovací údaje Vzhledem k tomu, že je to matoucí a nesprávné, brzy se o to postaráme.

  • Oprávnění k sestavení se vyžadují k zobrazení sestav vytvořených pomocí této funkce, pokud je jedna nebo více datových sad v řetězci v pracovních prostorech Pro. Pokud tvůrce sestavy opustil společnost nebo jeho oprávnění k sestavení byla od vytvoření sestavy odvolaná, budou se oprávnění k sestavení vyžadovat také pro všechny datové sady v řetězci.

  • Aby bylo možné vytvořit připojení DirectQuery k datové sadě Power BI, musí mít váš tenant povolenou možnost Povolit koncové body XMLA a analýzu v aplikaci Excel s místními datovými sadami .

  • Připojení k místnímu serveru služby Analysis Services SQL Server 2022 nebo novějšímu nebo KAAS vyžadují místní bránu dat (režim Standard).

  • Všechna připojení ke vzdáleným modelům datových sad Power BI se vytváří pomocí jednotného přihlašování. Ověřování pomocí instančního objektu se v současné době nepodporuje.

  • U kapacit Premium by měl být koncový bod XMLA nastavený na hodnotu Jen pro čtení nebo pro čtení/zápis.

  • Pravidla zabezpečení na úrovni řádků se použijí na zdroj, na kterém jsou definovaná, ale nepoužijí se na žádné jiné datové sady v modelu. Zabezpečení na úrovni řádků definované v sestavě se nepoužije na vzdálené zdroje a zabezpečení na úrovni řádků nastavené u vzdálených zdrojů se nepoužije na jiné zdroje dat. Navíc nemůžete definovat zabezpečení na úrovni řádků v tabulce z jiné zdrojové skupiny, ani nemůžete definovat zabezpečení na úrovni řádků v místní tabulce, která má relaci s jinou zdrojovou skupinou.

  • Klíčové ukazatele výkonu, zabezpečení na úrovni řádků a překlady nebudou importovány ze zdroje v této verzi Preview.

  • Při použití hierarchie dat může dojít k neočekávanému chování. Pokud chcete tento problém vyřešit, použijte místo toho sloupec dat. Po přidání hierarchie dat do vizuálu můžete přepnout na sloupec dat kliknutím na šipku dolů v názvu pole a následným kliknutím na název tohoto pole namísto použití Hierarchie dat:

    Neočekávané chování hierarchie dat

    Další informace o použití sloupců kalendářních dat a hierarchií kalendářních dat najdete v tomto článku.

  • Při používání funkcí AI s modelem, který má připojení DirectQuery ke službě Analysis Services, se můžou zobrazit nepoužité chybové zprávy.

  • Použití ALLSELECTED se zdrojem DirectQuery vede k neúplným výsledkům.

  • Filtry a relace:

    • Filtr použitý ze zdroje dat na tabulku z jiného zdroje DirectQuery se dá nastavit jenom v jednom sloupci.

    • Křížové filtrování dvou tabulek ve zdroji DirectQuery filtrováním pomocí tabulky mimo zdroj není doporučený návrh a nepodporuje se.

    • Filtr může tabulku upravit jenom jednou. Použití stejného filtru na tabulku dvakrát prostřednictvím jedné z více tabulek mimo zdroj DirectQuery se nepodporuje.

  • Během období Preview je maximální délka řetězce modelů tři. Rozšíření nad délku řetězu tři není podporováno a vede k chybám.

  • U modelu je možné nastavit příznak odradit od řetězení , aby se zabránilo vytvoření nebo rozšíření řetězu. Další informace najdete v tématu Správa připojení DirectQuery k publikované datové sadě .

  • Připojení k datové sadě Power BI se v Power Query nezobrazí.

V potaz je potřeba brát také několik omezení:

  • Parametry pro názvy databází a serverů jsou v současnosti zakázané.

  • Definování zabezpečení na úrovni řádků u tabulek ze vzdáleného zdroje se nepodporuje.

  • Použití některého z následujících zdrojů jako zdroje DirectQuery se nepodporuje:

  • Použití DirectQuery u datových sad z mého pracovního prostoru se v současné době nepodporuje.

  • Použití Power BI Embedded s datovými sadami, které zahrnují připojení DirectQuery k modelu Azure Analysis Services, se v současné době nepodporuje.

  • Publikování sestavy na web pomocí funkce publikovat na webu se nepodporuje.

  • Skupiny výpočtů ve vzdálených zdrojích se nepodporují s nedefinovanými výsledky dotazu.

  • Tato funkce ve službě nepodporuje počítané tabulky. Při pokusu o aktualizaci datové sady s počítanou tabulkou nebo počítaným sloupcem, který odkazuje na zdroj dat DirectQuery, se zobrazí chybová zpráva s informacemi o tom, že přihlašovací údaje jednotného přihlašování nejsou zadané.

  • Pokud pracovní prostor po nastavení připojení DirectQuery přejmenujete, budete muset aktualizovat zdroj dat v Power BI Desktop, aby sestava dál fungovala.

  • Automatická aktualizace stránky je podporovaná jenom pro některé scénáře v závislosti na typu zdroje dat. Další informace najdete v článku Automatická aktualizace stránky v Power BI.

  • Převzetí datové sady, která používá funkci DirectQuery na jiné datové sady , se v současné době nepodporuje.

  • Stejně jako u jakéhokoli zdroje dat DirectQuery se hierarchie definované v modelu analysis services nebo datové sadě Power BI nezobrazí při připojování k modelu nebo datové sadě v režimu DirectQuery pomocí Excelu.

  • Použití sloupců s nízkou kardinalitou v relacích mezi zdrojovými skupinami: Když vytvoříte relaci mezi dvěma různými zdrojovými skupinami, měly by mít sloupce zapojené do relace (označované také jako sloupce spojení ) nízkou kardinalitu, ideálně 50 000 nebo méně. Tato úvaha se vztahuje na sloupce bez řetězcového klíče; Pro sloupce s řetězcovým klíčem si projděte následující informace.

  • Nepoužívejte velké řetězce klíčové sloupce v relacích mezi zdrojovými skupinami: Při vytváření relace mezi zdrojovými skupinami nepoužívejte jako sloupce relace velké sloupce řetězců, zejména u sloupců s větší kardinalitou. Pokud jako sloupec relace musíte použít sloupce řetězců, vypočítejte očekávanou délku řetězce filtru vynásobením kardinality (C) průměrnou délkou sloupce řetězce (A). Ujistěte se, že očekávaná délka řetězce je nižší než 250 000, například ∗ C < 250 000.

Důležité informace o tenantovi

Každý model s připojením DirectQuery k datové sadě Power BI nebo službě Analysis Services se musí publikovat ve stejném tenantovi, což je obzvláště důležité při přístupu k datové sadě Power BI nebo modelu Analysis Services pomocí identit hostů B2B, jak je znázorněno na následujícím diagramu. Adresu URL tenanta pro publikování najdete v tématu Uživatelé typu host, kteří můžou upravovat a spravovat obsah .

Podívejte se na následující diagram. Číslování kroků v diagramu je popsáno v následujících odstavcích.

Diagram nepřipojování mezi tenanty

V diagramu Ash spolupracuje se společností Contoso a přistupuje k datům poskytovaným společností Fabrikam. Pomocí Power BI Desktop vytvoří Ash připojení DirectQuery k modelu Analysis Services, který je hostovaný v tenantovi společnosti Fabrikam.

K ověření používá Ash identitu uživatele typu host B2B (krok 1 v diagramu).

Pokud je sestava publikovaná do služba Power BI společnosti Contoso (krok 2), datová sada publikovaná v tenantovi Contoso se nemůže úspěšně ověřit podle modelu analysis services společnosti Fabrikam (krok 3). V důsledku toho sestava nebude fungovat.

V tomto scénáři je vzhledem k tomu, že použitý model služby Analysis Services je hostovaný v tenantovi společnosti Fabrikam, musí být sestava také publikována v tenantovi společnosti Fabrikam. Po úspěšném publikování v tenantovi společnosti Fabrikam (krok 4) může datová sada úspěšně přistupovat k modelu Analysis Services (krok 5) a sestava bude fungovat správně.

Složené modely s připojením DirectQuery ke zdrojovým modelům chráněným zabezpečením na úrovni objektů

Když složený model získá data z datové sady Power BI nebo služby Analysis Services prostřednictvím DirectQuery a tento zdrojový model je zabezpečený zabezpečením na úrovni objektů, můžou si uživatelé složeného modelu všimnout neočekávaných výsledků. Následující část vysvětluje, jak se tyto výsledky můžou zobrazit.

Zabezpečení na úrovni objektů (OLS) umožňuje autorům modelů skrýt objekty, které tvoří schéma modelu (tj. tabulky, sloupce, metadata atd.) před uživateli modelu (například tvůrce sestav nebo autor složeného modelu). Při konfiguraci OLS pro objekt autor modelu vytvoří roli a pak odebere přístup k objektu uživatelům, kteří jsou k této roli přiřazeni. Z pohledu těchto uživatelů skrytý objekt jednoduše neexistuje.

OLS se definuje pro zdrojový model a použije se na ho. Nelze ji definovat pro složený model postavený na zdrojovém modelu.

Pokud je složený model postaven na datové sadě Power BI chráněné OLS nebo modelu Analysis Services prostřednictvím připojení DirectQuery, schéma modelu ze zdrojového modelu se ve skutečnosti zkopíruje do složeného modelu. Co se zkopíruje, závisí na tom, co je autor složeného modelu povolený ve zdrojovém modelu podle pravidel OLS, která se tam vztahují. Samotná data se do složeného modelu nezkopírují , ale vždy se v případě potřeby načtou prostřednictvím DirectQuery ze zdrojového modelu. Jinými slovy, načítání dat se vždy vrátí zpět do zdrojového modelu, kde platí pravidla OLS.

Vzhledem k tomu, že složený model není zabezpečený pravidly OLS, jsou objekty, které uživatelé složeného modelu vidí, ty, které by autor složeného modelu mohl vidět ve zdrojovém modelu, a ne to, k čemu by mohli mít přístup oni sami. To může vést k následujícím situacím

  • Někdo, kdo se dívá na složený model, může vidět objekty, které jsou před nimi skryté ve zdrojovém modelu OLS.
  • Naopak nemusí vidět objekt ve složeného modelu, který vidí ve zdrojovém modelu, protože tento objekt byl skryt autorovi složeného modelu pravidly OLS, která řídí přístup ke zdrojovému modelu.

Důležitým bodem je, že navzdory případu popsanému v první odrážce spotřebitelé složeného modelu nikdy neuvidí skutečná data, která by neměli vidět, protože data se ve složeného modelu ve skutečnosti nenacházejí. Kvůli DirectQuery se podle potřeby načítá ze zdrojové datové sady, kde OLS blokuje neoprávněný přístup.

S ohledem na tuto situaci zvažte následující scénář.

Diagram znázorňující, co se stane, když se složený model připojí ke zdrojovému modelu chráněnému zabezpečením na úrovni objektů prostřednictvím přímého dotazu

  1. Admin_user publikoval podnikový sémantický model pomocí datové sady Power BI nebo modelu Analysis Services s tabulkou Customer a Territory. Admin_user publikuje datovou sadu do služba Power BI a nastaví pravidla OLS, která mají následující účinek:

    • Finanční uživatelé nevidí tabulku Customer
    • Marketingoví uživatelé nevidí tabulku Territory
  2. Finance_user publikuje datovou sadu s názvem "Finanční datová sada" a sestavu s názvem "Finanční sestava", která se připojuje prostřednictvím DirectQuery k podnikovému sémantickému modelu publikovanému v kroku 1. Finanční sestava obsahuje vizuál, který používá sloupec z tabulky Territory.

  3. Marketing_user otevřete sestavu Finance. Vizuál, který používá tabulku Territory, se zobrazí, ale vrátí chybu, protože při otevření sestavy se DirectQuery pokusí načíst data ze zdrojového modelu pomocí přihlašovacích údajů Marketing_user, který má zablokované zobrazení tabulky Territory podle pravidel OLS nastavených v podnikovém sémantickém modelu.

  4. Marketing_user vytvoří novou sestavu s názvem "Marketing Report", která jako zdroj používá datovou sadu Finance. Seznam polí zobrazuje tabulky a sloupce, ke kterým Finance_user přístup. Tabulka Territory se proto zobrazuje v seznamu polí, ale tabulka Customer není. Když se ale Marketing_user pokusí vytvořit vizuál, který využívá sloupec z tabulky Territory, vrátí se chyba, protože v tomto okamžiku se DirectQuery pokusí načíst data ze zdrojového modelu pomocí přihlašovacích údajů Marketing_user a pravidla OLS znovu zakopnou a zablokují přístup. Totéž se stane, když Marketing_user vytvoří novou datovou sadu a sestavu, která se připojí k datové sadě Finance pomocí připojení DirectQuery – uvidí v seznamu polí tabulku Territory, protože to Finance_user může vidět, ale když se pokusí vytvořit vizuál, který tuto tabulku využívá, zablokují je pravidla OLS v podnikovém sémantickém modelu.

  5. Teď řekněme, že Admin_user aktualizuje pravidla OLS v podnikovém sémantickém modelu, aby finance nemohly zobrazit tabulku Territory.

  6. Aktualizovaná pravidla OLS se v ní projeví až při aktualizaci datové sady Finance. Proto když Finance_user aktualizuje datovou sadu Finance, tabulka Territory se už v seznamu polí nezobrazí a vizuál v sestavě Finance, který používá sloupec z tabulky Territory, vrátí chybu pro Finance_user, protože teď nemá přístup k tabulce Territory.

Shrnutí:

  • Příjemci složeného modelu vidí výsledky pravidel OLS, která byla při vytváření modelu použitelná pro autora složeného modelu. Když se tedy vytvoří nová sestava založená na složeného modelu, zobrazí se v seznamu polí tabulky, ke kterým měl autor složeného modelu přístup při vytváření modelu, bez ohledu na to, k čemu má aktuální uživatel ve zdrojovém modelu přístup.
  • Pravidla OLS není možné definovat u samotného složeného modelu.
  • Uživatel složeného modelu nikdy neuvidí skutečná data, která by neměl vidět, protože příslušná pravidla OLS ve zdrojovém modelu je zablokují, když se DirectQuery pokusí načíst data pomocí svých přihlašovacích údajů.
  • Pokud zdrojový model aktualizuje pravidla OLS, ovlivní tyto změny složený model pouze při jeho aktualizaci.

Načtení podmnožině tabulek z datové sady Power BI nebo modelu Analysis Services

Při připojování k datové sadě Power BI nebo modelu Analysis Services pomocí připojení DirectQuery se můžete rozhodnout, ke kterým tabulkám se chcete připojit. Můžete se také rozhodnout automaticky přidat libovolnou tabulku, která by se mohla přidat do datové sady nebo modelu po vytvoření připojení k modelu. Když se připojíte k perspektivě, bude model obsahovat všechny tabulky v datové sadě nebo modelu a všechny tabulky, které nejsou zahrnuté v perspektivě, budou skryté. Kromě toho se automaticky přidají všechny tabulky, které by se mohly přidat do perspektivy. Toto dialogové okno se nezobrazí pro živá připojení.

Poznámka

Toto dialogové okno se zobrazí jenom v případě, že do existujícího modelu přidáte připojení DirectQuery k datové sadě Power BI nebo k modelu Analysis Services. Toto dialogové okno můžete také otevřít změnou připojení DirectQuery k datové sadě Power BI nebo modelu Analysis Services v nastavení zdroje dat po vytvoření.

Dialogové okno, které umožňuje určit, které tabulky se mají načíst z datové sady Power BI nebo z modelu Analysis Services.

Další kroky

Další informace o DirectQuery získáte z následujících prostředků: