Azure Data Explorer (Kusto)
Shrnutí
Položka | Popis |
---|---|
Stav vydání | Všeobecná dostupnost |
Produkty | Excel Power BI (sémantické modely) Power BI (toky dat) Prostředky infrastruktury (Tok dat Gen2) Power Apps (toky dat) Dynamics 365 Customer Insights |
Podporované typy ověřování | Účet organizace |
Referenční dokumentace k funkcím | — |
Poznámka:
Některé funkce můžou být přítomné v jednom produktu, ale ne jiné kvůli plánům nasazení a možnostem specifickým pro hostitele.
Požadavky
Předplatné Azure. Přejděte na Získat bezplatnou zkušební verzi Azure.
E-mailový účet organizace, který je členem Microsoft Entra ID. Tento článek používá tento účet pro připojení k ukázkovým clusterům nápovědy k Azure Data Exploreru .
Podporované funkce
- Import
- DirectQuery (sémantické modely Power BI)
- Upřesnit možnosti
- Omezení čísla záznamu výsledku dotazu
- Omezení velikosti dat výsledků dotazu v bajtech
- Zakázání zkrácení sady výsledků
- Další příkazy set
Připojení do Azure Data Exploreru z Power Query Desktopu
Připojení k Azure Data Exploreru z Power Query Desktopu:
V prostředí získat data vyberte Azure Data Explorer (Kusto ). Možnosti získání dat v Power Query Desktopu se mezi aplikacemi liší. Další informace o tom, jak Power Query Desktop získat data pro vaši aplikaci, najdete v části Kde získat data.
V Azure Data Exploreru (Kusto) zadejte název clusteru Azure Data Exploreru. V tomto příkladu použijte
https://help.kusto.windows.net
přístup ke clusteru ukázkové nápovědy. U jiných clusterů je adresa URL ve formátu https://< ClusterName.<>Region.kusto.windows.net>.Můžete také vybrat databázi hostované v clusteru, ke kterému se připojujete, a jednu z tabulek v databázi nebo dotaz, jako
StormEvents | take 1000
je .Pokud chcete použít jakékoli pokročilé možnosti, vyberte tuto možnost a zadejte data, která chcete s danou možností použít. Další informace: Připojení pomocí rozšířených možností
Poznámka:
Možná se budete muset posunout dolů, abyste zobrazili všechny pokročilé možnosti a výběr připojení k datům.
Vyberte režim připojení k datům Import nebo DirectQuery (jenom Power BI Desktop). Další informace: Kdy použít režim importu nebo přímého dotazu
Pokračujte výběrem tlačítka OK.
Pokud ještě nemáte připojení ke clusteru, vyberte Přihlásit se. Přihlaste se pomocí účtu organizace a pak vyberte Připojení.
V Navigátoru vyberte požadované informace o databázi a pak buď výběrem možnosti Načíst načtěte data, nebo transformujte data a pokračujte v transformaci dat v editoru Power Query. V tomto příkladu byly v databázi Ukázek vybrány StormEvents.
Připojení do Azure Data Exploreru z Power Query Online
Připojení k Azure Data Exploreru z Power Query Online:
V prostředí získat data vyberte možnost Azure Data Exploreru (Kusto). Různé aplikace mají různé způsoby, jak získat prostředí dat v Power Query Online. Další informace o tom, jak získat data z aplikace do Power Query Online, najdete v části Kde získat data.
Do Připojení ke zdroji dat zadejte název clusteru Azure Data Exploreru. V tomto příkladu použijte
https://help.kusto.windows.net
přístup ke clusteru ukázkové nápovědy. U jiných clusterů je adresa URL ve formátu https://< ClusterName.<>Region.kusto.windows.net>.Můžete také vybrat databázi hostované v clusteru, ke kterému se připojujete, a jednu z tabulek v databázi nebo dotaz, jako
StormEvents | take 1000
je .Pokud chcete použít jakékoli pokročilé možnosti, vyberte tuto možnost a zadejte data, která chcete s danou možností použít. Další informace: Připojení pomocí rozšířených možností
V případě potřeby vyberte místní bránu dat v bráně dat.
Pokud ještě nemáte připojení ke clusteru, vyberte Přihlásit se. Přihlaste se pomocí účtu organizace.
Po úspěšném přihlášení vyberte Další.
Na stránce Zvolit data vyberte požadované informace o databázi a pak buď vyberte Transformovat data, nebo Další a pokračujte v transformaci dat v editoru Power Query. V tomto příkladu byly v databázi Ukázek vybrány StormEvents.
Připojení pomocí rozšířených možností
Power Query Desktop i Power Query Online poskytují sadu rozšířených možností, které můžete v případě potřeby přidat do dotazu.
Následující tabulka uvádí všechny pokročilé možnosti, které můžete nastavit v Power Query Desktopu a Power Query Online.
Upřesnit možnosti | Popis |
---|---|
Omezení čísla záznamu výsledku dotazu | Maximální počet záznamů, které se mají vrátit ve výsledku. |
Omezení velikosti dat výsledků dotazu v bajtech | Maximální velikost dat vbajch |
Zakázání zkrácení sady výsledků | Povolte nebo zakažte zkrácení výsledků pomocí notruncation možnosti požadavku. |
Další příkazy set | Nastaví možnosti dotazu pro dobu trvání dotazu. Možnosti dotazu určují, jak se dotaz spouští a vrací výsledky. Více příkazů Set je možné oddělit středníky. |
Informace o dalších rozšířených možnostech, které nejsou k dispozici v uživatelském rozhraní Power Query, najdete v tématu Konfigurace možností konektoru Azure Data Exploreru v dotazu M.
Kdy použít režim importu nebo přímého dotazu
V režimu importu se data přesunou do Power BI. V režimu DirectQuery se data dotazují přímo z vašeho clusteru.
Režim importu použijte, když:
- Vaše datová sada je malá.
- Data v reálném čase nepotřebujete.
- Data jsou už agregovaná nebo provádíte agregaci v Kusto.
Režim DirectQuery použijte, když:
- Vaše datová sada je velmi velká.
- Potřebujete data téměř v reálném čase.
Další informace o používání DirectQuery najdete v tématu O používání DirectQuery v Power BI.
Tipy k dotazování dat s využitím konektoru Azure Data Exploreru
Následující části obsahují tipy a triky pro používání dotazovacího jazyka Kusto s Power Query.
Složité dotazy v Power BI
Složité dotazy se snadněji vyjadřují v Kusto než v Power Query. Měly by se implementovat jako funkce Kusto a vyvolat je v Power BI. Tato metoda se vyžaduje při použití DirectQuery s let
příkazy v dotazu Kusto. Vzhledem k tomu, že Power BI spojuje dva dotazy a let
příkazy se s operátorem join
nedají použít, můžou dojít k chybám syntaxe. Proto uložte každou část spojení jako funkci Kusto a umožněte Power BI spojit tyto dvě funkce dohromady.
Simulace relativního operátoru data a času
Power Query neobsahuje relativní operátor data a času, například ago()
.
K simulaci ago()
použijte kombinaci funkcí DateTime.FixedLocalNow a #duration Power Query M.
Místo tohoto dotazu použijte ago()
operátor:
StormEvents | where StartTime > (now()-5d)
StormEvents | where StartTime > ago(5d)
Použijte následující ekvivalentní dotaz:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
#"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
#"Filtered Rows"
Konfigurace možností konektoru Azure Data Exploreru v dotazu M
Možnosti konektoru Azure Data Exploreru můžete nakonfigurovat v rozšířeném editoru Power Query v dotazovacím jazyce M. Pomocí těchto možností můžete řídit vygenerovaný dotaz, který se odesílá do clusteru Azure Data Exploreru.
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
Source
V dotazu M můžete použít některou z následujících možností:
Možnost | Vzorek | Popis |
---|---|---|
MaxRows | [MaxRows=300000] |
Přidá do truncationmaxrecords dotazu příkaz set. Přepíše výchozí maximální počet záznamů, které se dotaz může vrátit volajícímu (zkrácení). |
MaxSize | [MaxSize=4194304] |
Přidá do truncationmaxsize dotazu příkaz set. Přepíše výchozí maximální velikost dat, která dotaz může vrátit do volajícího (zkrácení). |
NoTruncate | [NoTruncate=true] |
Přidá do notruncation dotazu příkaz set. Umožňuje potlačení zkrácení výsledků dotazu vrácených volajícímu. |
AdditionalSetStatements | [AdditionalSetStatements="set query_datascope=hotcache"] |
Přidá do dotazu zadané příkazy set. Tyto příkazy slouží k nastavení možností dotazu po dobu trvání dotazu. Možnosti dotazu určují, jak se dotaz spouští a vrací výsledky. |
Nerozlišující velká a malá písmena | [CaseInsensitive=true] |
Konektor generuje dotazy, které nerozlišují malá a velká písmena – dotazy při porovnávání hodnot používají =~ operátor místo operátoru == . |
ForceUseContains | [ForceUseContains=true] |
Konektor generuje dotazy, které se při práci s textovými poli nepoužívají contains jako výchozí has . I když has je mnohem výkonnější, nezpracuje podřetěžce. Další informace o rozdílu mezi těmito dvěma operátory najdete v řetězcových operátorech. |
Timeout | [Timeout=#duration(0,10,0,0)] |
Konfiguruje časový limit klienta i serveru dotazu na zadanou dobu trvání. |
ClientRequestIdPrefix | [ClientRequestIdPrefix="MyReport"] |
Nakonfiguruje předponu ClientRequestId pro všechny dotazy odeslané konektorem. To umožňuje, aby dotazy byly v clusteru identifikovatelné jako pocházející z konkrétní sestavy nebo zdroje dat. |
Poznámka:
Pokud chcete dosáhnout požadovaného chování, můžete zkombinovat několik možností: [NoTruncate=true, CaseInsensitive=true]
Dosažení limitů dotazů Kusto
Dotazy Kusto ve výchozím nastavení vrací až 500 000 řádků nebo 64 MB, jak je popsáno v omezeních dotazů. Tato výchozí nastavení můžete přepsat pomocí rozšířených možností v okně připojení Azure Data Exploreru (Kusto ):
Tyto možnosti vydávají příkazy sady příkazů s dotazem za účelem změny výchozích limitů dotazů:
- Omezení počtu záznamů výsledků dotazu vygeneruje
set truncationmaxrecords
- Omezení velikosti dat výsledků dotazu v bajtech vygeneruje
set truncationmaxsize
- Zakázání zkrácení sady výsledků vygeneruje
set notruncation
Rozlišování malých a velkých písmen
Ve výchozím nastavení konektor generuje dotazy, které při porovnávání řetězcových hodnot používají operátor rozlišující malá a velká ==
písmena. Pokud data nerozlišují malá a velká písmena, nejedná se o požadované chování. Pokud chcete vygenerovaný dotaz změnit, použijte možnost konektoru CaseInsensitive
:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
#"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
#"Filtered Rows"
Použití parametrů dotazu
Parametry dotazu můžete použít k dynamické úpravě dotazu.
Použití parametru dotazu v krocích dotazu
Parametr dotazu můžete použít v libovolném kroku dotazu, který ho podporuje. Například vyfiltrujte výsledky na základě hodnoty parametru. V tomto příkladu vyberte rozevírací nabídku na pravé straně State
sloupce v editoru Power Query, vyberte Textové filtry> rovná se a pak vyberte ALABAMA v části Zachovat řádky, kde Je stav.
Zadání parametrů do funkce Azure Data Exploreru
Funkce Kusto představují skvělý způsob, jak udržovat složité dotazy dotazovací jazyk Kusto (KQL). Místo vkládání KQL do Power Query doporučujeme používat funkce. Hlavní výhodou použití funkce je, že logika se udržuje jednou v prostředí, které se snadno vytváří a testuje.
Funkce můžou také přijímat parametry, takže uživateli Power BI přidají spoustu flexibility. Power BI nabízí spoustu způsobů, jak data rozdělit. Všechny filtry a průřezy se ale přidají za původní KQL a v mnoha případech budete chtít použít filtrování v rané fázi dotazu. Použití funkcí a dynamických parametrů je velmi efektivní způsob přizpůsobení konečného dotazu.
Vytvoření funkce
Následující funkci můžete vytvořit v jakémkoli clusteru Azure Data Exploreru, ke kterému máte přístup, včetně bezplatného clusteru. Funkce vrátí tabulku SalesTable
z clusteru nápovědy filtrované pro prodejní transakce větší nebo menší než číslo poskytnuté uživatelem sestavy.
.create-or-alter function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
cluster("help").database("ContosoSales").SalesTable
| where (Op==">" and SalesAmount >= Cutoff) or (Op=="<" and SalesAmount <= Cutoff)
}
Po vytvoření funkce ji můžete otestovat pomocí:
LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Můžete ho také otestovat pomocí:
LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Použití funkce v Power BI
Připojení do clusteru, ve kterém jste funkci vytvořili.
V navigátoru Power Query vyberte funkci ze seznamu objektů. Konektor analyzuje parametry a prezentuje je nad daty na pravé straně navigátoru.
Přidejte do parametrů hodnoty a pak vyberte Použít.
Po zobrazení náhledu vyberte Transformovat data.
Jakmile v editoru Power Query vytvoříte dva parametry, jeden pro odříznutou hodnotu a druhý pro operátor.
Vraťte se k
LargeOrSmallSales
dotazu a nahraďte hodnoty parametry dotazu v řádku vzorců.V editoru vytvořte dvě statické tabulky (Enter Data), které poskytují možnosti pro dva parametry. V případě omezení můžete vytvořit tabulku s hodnotami jako 10, 50, 100, 200, 500, 1000, 2000.
Op
Pro tabulku se dvěma textovými hodnotami<
a>
.Dva sloupce v tabulkách musí být svázány s parametry dotazu pomocí možnosti Bind to parameter selection.
Konečná sestava bude obsahovat průřezy pro dvě statické tabulky a všechny vizuály ze souhrnného prodeje.
Základní tabulka se nejprve vyfiltruje a pak agreguje.
Použití parametru dotazu v podrobnostech o připojení
Pomocí parametru dotazu můžete filtrovat informace v dotazu a optimalizovat výkon dotazů.
V Rozšířený editor:
Vyhledejte následující část dotazu:
Source = AzureDataExplorer.Contents("<Cluster>"; "<Database>"; "<Query>"; [])
Příklad:
Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
Do dotazu dotazovací jazyk Kusto (KQL) vložte parametr dotazu.
Pokud vložíte dotaz KQL přímo v dialogovém okně připojení, bude dotaz součástí zdrojového kroku v Power Query. Parametry můžete vložit jako součást dotazu pomocí rozšířeného editoru nebo při úpravách zdrojového příkazu v řádku vzorců. Příkladem dotazu může být
StormEvents | where State == ' " & State & " ' | take 100
.State
je parametr a za běhu bude dotaz:StormEvents | where State == 'ALABAMA' | take 100
Pokud dotaz obsahuje uvozovky, zakódujte je správně. Například následující dotaz v KQL:
"StormEvents | where State == "ALABAMA" | take 100"
zobrazí se v Rozšířený editor následujícím způsobem se dvěma uvozovkami:
"StormEvents | where State == ""ALABAMA"" | take 100"
Pokud používáte parametr, například
State
, měl by být nahrazen následujícím dotazem, který obsahuje tři uvozovky:"StormEvents | where State == """ & State & """ | take 100"
Použití Value.NativeQuery pro funkce Azure Data Exploreru
Pokud chcete použít funkci Azure Data Exploreru, která není v Power Query podporovaná, použijte metodu Value.NativeQuery v Power Query M. Tato metoda vloží do vygenerovaného dotazu fragment dotazovací jazyk Kusto a dá se také použít k získání větší kontroly nad spuštěným dotazem.
Následující příklad ukazuje, jak používat funkci v Azure Data Exploreru percentiles
:
let
StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
Percentiles
Nepoužívejte plánovač aktualizace dat Power BI k vydávání řídicích příkazů kusto.
Power BI obsahuje plánovač aktualizace dat, který může pravidelně vydávat dotazy na zdroj dat. Tento mechanismus by se neměl používat k plánování řídicích příkazů do Kusto, protože Power BI předpokládá, že všechny dotazy jsou jen pro čtení.