Share via


Azure Data Explorer (Kusto)

Összegzés

Elem Leírás
Kiadási állapot Általános rendelkezésre állás
Termékek Excel
Power BI (Szemantikai modellek)
Power BI (Adatfolyamok)
Háló (Adatfolyam Gen2)
Power Apps (Adatfolyamok)
Dynamics 365 Customer Insights
Támogatott hitelesítési típusok Szervezeti fiók
Függvényreferenciák dokumentációja

Feljegyzés

Egyes képességek egy termékben lehetnek jelen, másokat azonban az üzembehelyezési ütemezések és a gazdagépspecifikus képességek miatt.

Előfeltételek

Támogatott képességek

  • Importálás
  • DirectQuery (Power BI szemantikai modellek)
  • Speciális beállítások
    • A lekérdezés eredményrekordszámának korlátozása
    • A lekérdezés eredményének adatméretének korlátozása bájtban
    • Eredményhalmaz csonkolásának letiltása
    • További beállítási utasítások

Csatlakozás az Azure Data Explorerbe a Power Query Desktopból

Az Azure Data Explorerhez való csatlakozás a Power Query Desktopból:

  1. Válassza az Azure Data Explorer (Kusto) lehetőséget az adatbeolvasási felületen. A Power Query Desktop adatbeolvasási felülete alkalmazásonként eltérő. Ha többet szeretne tudni arról, hogy a Power Query Desktop hogyan szerezhet be adatokat az alkalmazáshoz, lépjen a Hol lehet adatokat lekérni.

  2. Az Azure Data Explorerben (Kusto) adja meg az Azure Data Explorer-fürt nevét. Ebben a példában a minta súgófürthöz való hozzáférésre használható https://help.kusto.windows.net . Más fürtök esetén az URL-cím https://< ClusterName> formátumban található.<Region.kusto.windows.net>.

    Kiválaszthat egy adatbázist is, amely azon a fürtön található, amelyhez csatlakozik, valamint az adatbázis egyik tábláját vagy egy lekérdezést is StormEvents | take 1000.

  3. Ha bármilyen előzetes beállítást szeretne használni, válassza ki a lehetőséget, és adja meg az ezzel a beállítással használni kívánt adatokat. További információ: Csatlakozás speciális beállítások használata

    Feljegyzés

    Előfordulhat, hogy lefelé kell görgetnie az összes speciális beállítás és az adatkapcsolat kiválasztásának megjelenítéséhez.

  4. Válassza az Importálás vagy a DirectQuery adatkapcsolati módot (csak a Power BI Desktopban). További információ: Mikor érdemes importálási vagy közvetlen lekérdezési módot használni?

  5. A folytatáshoz kattintson az OK gombra .

    Képernyőkép az Azure Data Explorer (Kusto) párbeszédpanelről, amelyen meg van adva a fürt URL-címe.

  6. Ha még nincs kapcsolata a fürthöz, válassza a Bejelentkezés lehetőséget. Jelentkezzen be egy szervezeti fiókkal, majd válassza a Csatlakozás.

    Képernyőkép az Azure Data Explorer bejelentkezési párbeszédpaneljéről, amelyen a szervezeti fiók készen áll a bejelentkezésre.

  7. A Kezelőben válassza ki a kívánt adatbázis-adatokat, majd válassza a Betöltés lehetőséget az adatok betöltéséhez, vagy az Adatok átalakítása lehetőséget az adatok Power Query-szerkesztőben való átalakításához. Ebben a példában a StormEvents lett kiválasztva a Minták adatbázisban.

    Képernyőkép a Navigátor megnyitásáról, amely a StormEvents adatait tartalmazza a Minták adatbázisban.

Csatlakozás az Azure Data Explorerbe a Power Query Online-ból

Az Azure Data Explorerhez való csatlakozás a Power Query Online-ból:

  1. Válassza az Azure Data Explorer (Kusto) lehetőséget az adatbeolvasási felületen. A különböző alkalmazások különböző módokon érhetik el a Power Query Online-t az adatélmény eléréséhez. Ha többet szeretne tudni arról, hogyan juthat el a Power Query Online-hoz, hogyan szerezhet be adatokat az alkalmazásból, lépjen a Hol kérhet le adatokat.

    Képernyőkép az Adatok lekérése ablakról az Azure Data Explorer kiemelésével.

  2. Az adatforráshoz Csatlakozás adja meg az Azure Data Explorer-fürt nevét. Ebben a példában a minta súgófürthöz való hozzáférésre használható https://help.kusto.windows.net . Más fürtök esetén az URL-cím https://< ClusterName> formátumban található.<Region.kusto.windows.net>.

    Kiválaszthat egy adatbázist is, amely azon a fürtön található, amelyhez csatlakozik, valamint az adatbázis egyik tábláját vagy egy lekérdezést is StormEvents | take 1000.

    Képernyőkép az Azure Data Explorer (Kusto) Adatforrás kiválasztása lapjáról, amelyen be van írva a fürt URL-címe.

  3. Ha bármilyen előzetes beállítást szeretne használni, válassza ki a lehetőséget, és adja meg az ezzel a beállítással használni kívánt adatokat. További információ: Csatlakozás speciális beállítások használata

  4. Szükség esetén válassza ki a helyszíni adatátjárót a Data Gatewayben.

  5. Ha még nincs kapcsolata a fürthöz, válassza a Bejelentkezés lehetőséget. Jelentkezzen be egy szervezeti fiókkal.

  6. Miután sikeresen bejelentkezett, válassza a Tovább gombot.

  7. Az Adatok kiválasztása lapon válassza ki a kívánt adatbázisadatokat, majd válassza az Adatok átalakítása vagy a Tovább lehetőséget az adatok Power Query-szerkesztőben való átalakításának folytatásához. Ebben a példában a StormEvents lett kiválasztva a Minták adatbázisban.

    Képernyőkép az Adatok kiválasztása lapról, amely a StormEventsből származó adatokat tartalmazza a Minták adatbázisban.

Csatlakozás speciális beállítások használata

A Power Query Desktop és a Power Query Online is biztosít speciális beállításokat, amelyeket szükség esetén hozzáadhat a lekérdezéshez.

Az alábbi táblázat felsorolja a Power Query Desktopban és a Power Query Online-ban megadható összes speciális beállítást.

Speciális beállítás Leírás
A lekérdezés eredményrekordszámának korlátozása Az eredményben visszaadandó rekordok maximális száma.
A lekérdezés eredményének adatméretének korlátozása bájtban Az eredményben visszaadandó maximális adatméret bájtban.
Eredményhalmaz csonkolásának letiltása Engedélyezze vagy tiltsa le az eredmény csonkítását a notruncation kérelem beállításával.
További beállítási utasítások A lekérdezés időtartamára vonatkozó lekérdezési beállításokat állít be. A lekérdezési beállítások szabályozzák, hogy a lekérdezés hogyan hajtja végre és adja vissza az eredményeket. A többhalmazos utasítás pontosvesszővel elválasztható.

A Power Query felhasználói felületén nem elérhető további speciális lehetőségekről az Azure Data Explorer-összekötők beállításainak konfigurálása az M-lekérdezésben című témakörben talál további információt.

Mikor érdemes importálási vagy közvetlen lekérdezési módot használni?

Importálási módban az adatok a Power BI-ba kerülnek. DirectQuery módban az adatok lekérdezése közvetlenül a fürtből történik.

Importálási mód használata a következő esetekben:

  • Az adatkészlet kicsi.
  • Nincs szükség közel valós idejű adatokra.
  • Az adatok már összesítve lesznek, vagy összesítést hajt végre a Kusto-ban.

Használja a DirectQuery módot a következő esetekben:

  • Az adatkészlet nagyon nagy.
  • Közel valós idejű adatokra van szüksége.

Ha többet szeretne megtudni a DirectQuery használatáról, olvassa el a DirectQuery power BI-beli használatáról szóló témakört.

Tippek az Azure Data Explorer-összekötővel történő adatlekérdezésre vonatkozóan

Az alábbi szakaszok tippeket és trükköket tartalmaznak a Kusto lekérdezési nyelv power queryvel való használatához.

Összetett lekérdezések a Power BI-ban

Az összetett lekérdezések egyszerűbben fejezhetők ki a Kusto-ban, mint a Power Queryben. Ezeket Kusto-függvényként kell implementálni, és a Power BI-ban kell meghívni őket. Erre a módszerre akkor van szükség, ha a DirectQueryt a Kusto-lekérdezésben lévő utasításokkal let használja. Mivel a Power BI két lekérdezést csatlakoztat, és let az operátorral join nem használhatók utasítások, szintaxishibák léphetnek fel. Ezért mentse az illesztés minden részét Kusto-függvényként, és engedélyezze, hogy a Power BI összekapcsolja ezt a két függvényt.

Relatív dátum-idő operátor szimulálása

A Power Query nem tartalmaz relatív dátum-idő operátort, például ago(). A szimuláláshoz ago()használja a DateTime.FixedLocalNow és #duration Power Query M függvények kombinációját.

A lekérdezés helyett az operátort ago() használja:

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Használja a következő egyenértékű lekérdezést:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Az Azure Data Explorer-összekötő beállításainak konfigurálása egy M-lekérdezésben

Az Azure Data Explorer-összekötő beállításait a Power Query speciális szerkesztőjében konfigurálhatja az M lekérdezési nyelven. Ezekkel a beállításokkal szabályozhatja az Azure Data Explorer-fürtnek küldött generált lekérdezést.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

Az M-lekérdezésben az alábbi lehetőségek bármelyikét használhatja:

Lehetőség Minta Leírás
MaxRows [MaxRows=300000] Hozzáadja a truncationmaxrecords beállított utasítást a lekérdezéshez. Felülbírálja a lekérdezés által a hívóhoz visszatérhető rekordok alapértelmezett maximális számát (csonkolás).
Maxméret [MaxSize=4194304] Hozzáadja a truncationmaxsize beállított utasítást a lekérdezéshez. Felülbírálja az alapértelmezett maximális adatméretet, amelyet a lekérdezés vissza tud adni a hívónak (csonkolás).
NoTruncate [NoTruncate=true] Hozzáadja a notruncation beállított utasítást a lekérdezéshez. Engedélyezi a hívónak visszaadott lekérdezési eredmények csonkolásának letiltását.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Hozzáadja a megadott beállítási utasításokat a lekérdezéshez. Ezek az utasítások a lekérdezés időtartamára vonatkozó lekérdezési beállítások beállítására szolgálnak. A lekérdezési beállítások szabályozzák, hogy a lekérdezés hogyan hajtja végre és adja vissza az eredményeket.
CaseInsensitive [CaseInsensitive=true] Az összekötő olyan lekérdezéseket hoz létre, amelyek kis- és nagybetűket nem érzékenek – a lekérdezések az =~ operátort használják az operátor helyett az == értékek összehasonlításakor.
ForceUseContains [ForceUseContains=true] Az összekötő olyan lekérdezéseket hoz létre, amelyek az alapértelmezett has helyett a szövegmezők használatakor használatosakcontains. Bár has sokkal teljesítményesebb, nem kezeli a részszűkítéseket. A két operátor közötti különbségről további információt a sztring operátorok között talál.
Időkorlát [Timeout=#duration(0,10,0,0)] A lekérdezés ügyfél- és kiszolgáló-időtúllépését is a megadott időtartamra konfigurálja.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] A ClientRequestId előtagot konfigurálja az összekötő által küldött összes lekérdezéshez. Ez lehetővé teszi, hogy a lekérdezések azonosíthatók legyenek a fürtben egy adott jelentés és/vagy adatforrás alapján.

Feljegyzés

A szükséges viselkedés eléréséhez több lehetőséget is kombinálhat: [NoTruncate=true, CaseInsensitive=true]

A Kusto lekérdezési korlátainak elérése

A Kusto-lekérdezések alapértelmezés szerint legfeljebb 500 000 sort vagy 64 MB-ot adnak vissza a lekérdezési korlátokban leírtak szerint. Ezeket az alapértelmezett beállításokat felülbírálhatja az Azure Data Explorer (Kusto) kapcsolati ablakának Speciális beállításaival:

speciális beállításokat.

Ezek a beállítási problémák az alapértelmezett lekérdezési korlátok módosításához állítják be a lekérdezésre vonatkozó utasításokat :

  • A lekérdezés eredményrekordszámának korlátozása set truncationmaxrecords
  • A lekérdezés eredményének adatméretének korlátozása bájtbanset truncationmaxsize
  • Az eredményhalmaz csonkolásának letiltása egy set notruncation

Kis- és nagybetűk érzékenysége

Alapértelmezés szerint az összekötő olyan lekérdezéseket hoz létre, amelyek a kis- és nagybetűket megkülönböztető == operátort használják a sztringértékek összehasonlításakor. Ha az adatok nem érzékenyek a kis- és nagybetűkre, akkor nem ez a kívánt viselkedés. A létrehozott lekérdezés módosításához használja az CaseInsensitive összekötőt:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Lekérdezési paraméterek használata

A lekérdezési paraméterekkel dinamikusan módosíthatja a lekérdezést.

Lekérdezési paraméter használata a lekérdezési lépésekben

A lekérdezési paramétert bármely olyan lekérdezési lépésben használhatja, amely támogatja azt. Szűrje például az eredményeket egy paraméter értéke alapján. Ebben a példában válassza a Power Query-szerkesztőben az oszlop jobb oldalán State található legördülő menüt, válassza a Szövegszűrők>egyenlők lehetőséget, majd válassza az ALABAMA lehetőséget az Állapotot tartalmazó sorok megtartása csoportban.

Az eredmények szűrése paraméterrel.

Paraméterek megadása egy Azure Data Explorer-függvényhez

A Kusto-függvények kiválóan alkalmasak az összetett Kusto lekérdezésnyelv (KQL) lekérdezések karbantartására. Azt javasoljuk, hogy a KQL power querybe való beágyazása helyett függvényeket használjunk. A függvény használatának fő előnye, hogy a logika egyszer megmarad egy könnyen létrehozható és tesztelhető környezetben.

A függvények paramétereket is fogadhatnak, így nagy rugalmasságot adhatnak a Power BI-felhasználónak. A Power BI számos módon szeletelheti az adatokat. Az eredeti KQL után azonban minden szűrőt és szeletelőt hozzáadunk, és sok esetben a lekérdezés korai szakaszában érdemes szűrőt használni. A függvények és a dinamikus paraméterek használata nagyon hatékony módszer a végső lekérdezés testreszabására.

Függvény létrehozása

Az alábbi függvényt bármely olyan Azure Data Explorer-fürtben létrehozhatja, amelyhez hozzáférése van, beleértve az ingyenes fürtöt is. A függvény a súgófürt tábláját SalesTable adja vissza, szűrve a jelentésfelhasználó által megadott számnál nagyobb vagy kisebb értékesítési tranzakciókra.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

A függvény létrehozása után tesztelheti a következővel:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Az alábbiak használatával is tesztelheti:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
A függvény használata a Power BI-ban
  1. Csatlakozás arra a fürtre, ahol a függvényt létrehozta.

  2. A Power Query kezelőjében válassza ki a függvényt az objektumok listájából. Az összekötő elemzi a paramétereket, és megjeleníti őket a kezelő jobb oldalán lévő adatok felett.

    Képernyőkép a kivágás és az op paraméterekről az adatok felett a kezelőben.

  3. Adjon hozzá értékeket a paraméterekhez, majd válassza az Alkalmaz lehetőséget.

  4. Az előnézet megjelenése után válassza az Adatok átalakítása lehetőséget.

  5. A Power Query-szerkesztőben hozzon létre két paramétert, egyet a leépítési értékhez, egyet pedig az operátorhoz.

  6. Térjen vissza a LargeOrSmallSales lekérdezéshez, és cserélje le az értékeket a képletsáv lekérdezési paramétereire.

    Képernyőkép a LargeOrSmallSales függvénnyel, a szerkesztőléc Cutoff_Param és Op_Param paramétereinek kiemelésével.

  7. A szerkesztőben hozzon létre két statikus táblát (Enter Data) a két paraméter beállításainak megadásához. A leépítéshez létrehozhat olyan táblázatokat, mint a 10, 50, 100, 200, 500, 1000, 2000. OpA táblában két szöveges érték < és >.

  8. A táblák két oszlopát a lekérdezési paraméterekhez kell kötni a Bind to parameter selection használatával.

    Képernyőkép arról, hogy az Op a Op_Param paraméterhez van kötve.

A végső jelentés a két statikus tábla szeletelőit és az összesítő értékesítésből származó vizualizációkat tartalmazza.

Képernyőkép a Power BI-ban a kivágás és az op értékének kiválasztásával a táblázat mellett.

A rendszer először szűri az alaptáblát, majd összesíti.

Lekérdezési paraméter használata a kapcsolat részleteiben

Lekérdezési paraméterrel szűrheti a lekérdezés adatait, és optimalizálhatja a lekérdezés teljesítményét.

A Speciális szerkesztő:

  1. Keresse meg a lekérdezés következő szakaszát:

    Source = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])

    Példa:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Szúrjon be egy lekérdezési paramétert a Kusto lekérdezésnyelv (KQL) lekérdezésbe.

    Ha közvetlenül a kapcsolati párbeszédpanelen illeszt be KQL-lekérdezést, a lekérdezés a Power Query forráslépésének része lesz. Paramétereket beágyazhat a lekérdezés részeként a speciális szerkesztővel vagy a forrásutasítás szerkesztőlécen történő szerkesztésekor. Ilyen lehet például a StormEvents | where State == ' " & State & " ' | take 100lekérdezés. State paraméter, és futásidőben a lekérdezés a következő lesz:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Ha a lekérdezés idézőjeleket tartalmaz, megfelelően kódolja őket. Például a következő lekérdezés a KQL-ben:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    két idézőjellel jelenik meg a Speciális szerkesztő:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Ha például Stateegy paramétert használ, azt a következő lekérdezésre kell cserélni, amely három idézőjelet tartalmaz:

    "StormEvents | where State == """ & State & """ | take 100"
    

A Value.NativeQuery használata az Azure Data Explorer funkcióihoz

A Power Queryben nem támogatott Azure Data Explorer-funkció használatához használja a Value.NativeQuery metódust a Power Query M-ben. Ez a metódus beszúr egy Kusto lekérdezésnyelv töredékét a létrehozott lekérdezésbe, és a végrehajtott lekérdezés feletti nagyobb vezérlésre is használható.

Az alábbi példa bemutatja, hogyan használhatja a függvényt az percentiles Azure Data Explorerben:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Ne használja a Power BI adatfrissítés-ütemezőjét a Kusto vezérlési parancsainak kiadásához

A Power BI tartalmaz egy adatfrissítés-ütemezőt, amely rendszeres időközönként lekérdezéseket tud kiadni egy adatforráson. Ez a mechanizmus nem használható a vezérlőparancsok Kusto-ra való ütemezéséhez, mert a Power BI feltételezi, hogy minden lekérdezés írásvédett.