Posouvání dotazů v nativních dotazech
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 v Power Query vyberte a podržte (nebo klikněte pravým tlačítkem) uzel databáze v okně navigátoru a vyberte 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 dotaz dostane v editoru Power Query, měl by se v podokně Použitý postup 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é vyžaduje povolení nativních dotazů ke spuštění 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.
Posouvání testovacích dotazů
Pokud chcete otestovat posouvání dotazů dotazu, můžete zkusit použít filtr u libovolného sloupce a zjistit, jestli indikátor posouvá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, že uzel s názvem Value.NativeQuery, který má 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.
Tip
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.