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

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:

  1. 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.

  2. 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 1000je .

  3. 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.

  4. 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

  5. Pokračujte výběrem tlačítka OK.

    Snímek obrazovky s dialogovým oknem Azure Data Explorer (Kusto) s adresou URL pro zadaný cluster

  6. 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í.

    Snímek obrazovky s dialogovým oknem pro přihlášení pro Azure Data Explorer s účtem organizace připraveným k přihlášení

  7. 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.

    Snímek obrazovky s otevřenou a obsahující data z StormEvents v databázi Samples

Připojení do Azure Data Exploreru z Power Query Online

Připojení k Azure Data Exploreru z Power Query Online:

  1. 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.

    Snímek obrazovky s oknem získat data se zvýrazněným Průzkumníkem dat Azure

  2. 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 1000je .

    Snímek obrazovky se stránkou Zvolit zdroj dat pro Azure Data Explorer (Kusto) s adresou URL pro zadaný cluster

  3. 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í

  4. V případě potřeby vyberte místní bránu dat v bráně dat.

  5. Pokud ještě nemáte připojení ke clusteru, vyberte Přihlásit se. Přihlaste se pomocí účtu organizace.

  6. Po úspěšném přihlášení vyberte Další.

  7. 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.

    Snímek obrazovky se stránkou Zvolit data obsahující data z StormEvents v databázi Ukázky

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 ):

upřesňující možnosti

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.

Výsledky můžete filtrovat pomocí parametru.

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
  1. Připojení do clusteru, ve kterém jste funkci vytvořili.

  2. V navigátoru Power Query vyberte funkci ze seznamu objektů. Konektor analyzuje parametry a prezentuje je nad daty na pravé straně navigátoru.

    Snímek obrazovky s parametry Cutoff a Op zobrazenými nad daty v navigátoru

  3. Přidejte do parametrů hodnoty a pak vyberte Použít.

  4. Po zobrazení náhledu vyberte Transformovat data.

  5. Jakmile v editoru Power Query vytvoříte dva parametry, jeden pro odříznutou hodnotu a druhý pro operátor.

  6. Vraťte se k LargeOrSmallSales dotazu a nahraďte hodnoty parametry dotazu v řádku vzorců.

    Snímek obrazovky s funkcí LargeOrSmallSales s důrazem na Cutoff_Param a Op_Param parametry v řádku vzorců

  7. 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. OpPro tabulku se dvěma textovými hodnotami < a >.

  8. Dva sloupce v tabulkách musí být svázány s parametry dotazu pomocí možnosti Bind to parameter selection.

    Snímek obrazovky s ohraničeným parametrem Op_Param

Konečná sestava bude obsahovat průřezy pro dvě statické tabulky a všechny vizuály ze souhrnného prodeje.

Snímek obrazovky v Power BI s výběry hodnot Prostou a Op zobrazenou vedle tabulky

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:

  1. 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", [])
    
  2. 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

  3. 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í.