Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V Power Query můžete definovat nativní dotaz a spustit ho pro zdroj dat. Článek importu dat z databáze pomocí nativního databázového dotazu vysvětluje, jak tento proces provést s více zdroji dat. Při použití procesu popsaného v tomto článku ale váš dotaz nevyužívá žádné posouvání dotazů z následných kroků dotazu.
Tento článek představuje alternativní metodu pro vytváření nativních dotazů ve zdroji dat pomocí funkce Value.NativeQuery a udržování mechanismu posouvání dotazů aktivní pro následné kroky dotazu.
Poznámka:
Doporučujeme, abyste si přečetli dokumentaci k posouvání dotazů a indikátorech posouvání dotazů , abyste lépe porozuměli konceptům používaným v tomto článku.
Podporované datové konektory
Metoda popsaná v dalších částech se vztahuje na následující datové konektory:
- Amazon Redshift
- Dataverse(při použití rozšířeného výpočetního prostředí)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snowflake
- SQL Server
Připojení k cíli ze zdroje dat
Poznámka:
K prezentaci tohoto procesu tento článek používá konektor SQL Serveru a ukázkovou databázi AdventureWorks2019. Prostředí se může lišit od konektoru po konektor, ale tento článek ukazuje základy toho, jak povolit možnosti posouvání dotazů oproti nativním dotazům pro podporované konektory.
Při připojování ke zdroji dat je důležité, abyste se připojili k uzlu nebo úrovni, kde chcete spustit nativní dotaz. V příkladu v tomto článku je tento uzel úrovní databáze uvnitř serveru.
Po definování nastavení připojení a zadání přihlašovacích údajů pro připojení se otevře navigační dialogové okno pro váš zdroj dat. Navigační dialogové okno obsahuje všechny dostupné objekty, ke kterým se můžete připojit.
V tomto seznamu je potřeba vybrat objekt, ve kterém je spuštěn nativní dotaz (označovaný také jako cíl). V tomto příkladu je tento objekt úrovní databáze.
V okně navigátoru Power Query stiskněte a podržte (nebo klikněte pravým tlačítkem) uzel databáze a poté zvolte možnost Transformovat data. Výběrem této možnosti vytvoříte nový dotaz celkového zobrazení databáze, což je cíl, který potřebujete ke spuštění nativního dotazu.
Jakmile se dotaz zobrazí v editoru Power Query, měl by se v podokně Aplikované kroky zobrazit pouze krok Zdroj. Tento krok obsahuje tabulku se všemi dostupnými objekty v databázi, podobně jako v okně Navigátor.
Použití funkce Value.NativeQuery
Cílem tohoto procesu je spustit následující kód SQL a použít další transformace pomocí Power Query, které je možné přeložit zpět do zdroje.
SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'
Prvním krokem bylo definování správného cíle, což je v tomto případě databáze, ve které se spouští kód SQL.
Jakmile má krok správný cíl, můžete tento krok vybrat – v tomto případě Source in Applied Steps ( Zdroj v použitých krocích) a pak výběrem tlačítka fx na řádku vzorců přidat vlastní krok. V tomto příkladu Source nahraďte vzorec následujícím vzorcem:
Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development' ", null, [EnableFolding = true])
Nejdůležitější součástí tohoto vzorce je použití volitelného záznamu pro čtvrtý parametr funkce, který má pole záznamu EnableFolding nastavené na hodnotu true.
Poznámka:
Další informace o funkci Value.NativeQuery najdete v oficiálním článku dokumentace.
Po zadání vzorce se zobrazí upozornění, které vás vyzývá k povolení spuštění nativních dotazů pro konkrétní krok. Vyberte pokračovat, aby se tento krok vyhodnotil.
Tento příkaz SQL poskytuje tabulku pouze se třemi řádky a dvěma sloupci.
Skládání testovacích dotazů
Chcete-li otestovat překládání dotazu, můžete zkusit použít filtr na libovolném sloupci a zjistit, zda indikátor překládání dotazu v části použitých kroků ukazuje krok jako přeložen. V tomto případě můžete sloupec DepartmentID filtrovat tak, aby měly hodnoty, které se nerovnají dvěma.
Po přidání tohoto filtru můžete zkontrolovat, jestli indikátory posouvání dotazů v tomto novém kroku stále zobrazují posouvání dotazů.
Pokud chcete dále ověřit, jaký dotaz se odesílá do zdroje dat, můžete vybrat a podržet krok Filtrované řádky (nebo na něj kliknout pravým tlačítkem) a vybrat možnost Zobrazit plán dotazu a zkontrolovat plán dotazu pro tento krok.
V zobrazení plánu dotazu uvidíte uzel s názvem Value.NativeQuery, který obsahuje hypertextový odkaz Zobrazit podrobnosti. Výběrem tohoto hypertextového odkazu můžete zobrazit přesný dotaz, který se odesílá do databáze SQL Serveru.
Nativní dotaz je zabalený kolem jiného příkazu SELECT, který vytvoří poddotaz původního dotazu. Power Query nejlépe vytvoří nejoptimálnější dotaz vzhledem k použitým transformacím a poskytnutému nativnímu dotazu.
Návod
V situacích, kdy dochází k chybám, protože posouvání dotazů nebylo možné, doporučujeme zkusit ověřit kroky jako poddotaz původního nativního dotazu a zkontrolovat, jestli nedochází ke konfliktům syntaxe nebo kontextu.