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
Azure-előfizetés. Nyissa meg az Ingyenes Azure-próbaverziót.
Egy szervezeti e-mail-fiók, amely a Microsoft Entra ID tagja. Ez a cikk ezt a fiókot használja az Azure Data Explorer súgófürtmintákhoz való csatlakozásához.
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:
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.
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
.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.
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?
A folytatáshoz kattintson az OK gombra .
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.
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.
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:
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.
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
.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
Szükség esetén válassza ki a helyszíni adatátjárót a Data Gatewayben.
Ha még nincs kapcsolata a fürthöz, válassza a Bejelentkezés lehetőséget. Jelentkezzen be egy szervezeti fiókkal.
Miután sikeresen bejelentkezett, válassza a Tovább gombot.
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.
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:
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ájtban
set 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.
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
Csatlakozás arra a fürtre, ahol a függvényt létrehozta.
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.
Adjon hozzá értékeket a paraméterekhez, majd válassza az Alkalmaz lehetőséget.
Az előnézet megjelenése után válassza az Adatok átalakítása lehetőséget.
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.
Térjen vissza a
LargeOrSmallSales
lekérdezéshez, és cserélje le az értékeket a képletsáv lekérdezési paramétereire.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.
Op
A táblában két szöveges érték<
és>
.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.
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.
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ő:
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", [])
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 100
lekérdezés.State
paraméter, és futásidőben a lekérdezés a következő lesz:StormEvents | where State == 'ALABAMA' | take 100
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
State
egy 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.