Share via


Jupyter Notebook és kqlmagic bővítménnyel elemezheti az adatokat az Azure Data Explorer

Jupyter Notebook egy nyílt forráskódú webalkalmazás, amellyel élő kódot, egyenleteket, vizualizációkat és elbeszélési szöveget tartalmazó dokumentumokat hozhat létre és oszthat meg. Számos feladathoz hasznos, például adattisztításhoz és átalakításhoz, numerikus szimulációhoz, statisztikai modellezéshez, adatvizualizációhoz és gépi tanuláshoz.

A Kqlmagic kibővíti a Python-kernel képességeit Jupyter Notebook, így natív módon futtathat Kusto lekérdezésnyelv (KQL) lekérdezéseket. A Pythont és a KQL-t kombinálva adatokat kérdezhet le és jeleníthet meg a renderelő operátorral integrált gazdag Plot.ly kódtár használatával. A kqlmagic bővítmény kompatibilis a Jupyter Lab, a Visual Studio Code Jupyter-bővítmény és az Azure Data Studio alkalmazással, és a támogatott adatforrások közé tartozik az Azure Data Explorer, az Azure Monitor-naplók és az Application Insights.

Ebből a cikkből megtudhatja, hogyan használhatja a kqlmagicot egy Jupyter Notebook az Azure Data Explorer tárolt adatokhoz való csatlakozáshoz és lekérdezéshez.

Előfeltételek

  • Microsoft-fiók vagy Microsoft Entra felhasználói identitás. Nincs szükség Azure-előfizetésre.
  • Jupyter Notebook telepítve van a helyi gépen. Ellenkező esetben használja az Azure Data Studiót.
  • Python 3.6. Ha a Jupyter Notebook kernelverziót Python 3.6-ra szeretné módosítani, válassza a Kernel>módosítása Python>3.6 lehetőséget.

A kqlmagic telepítése

A kqlmagic bővítmény telepítése és betöltése után KQL-lekérdezéseket írhat a jegyzetfüzetbe. Ha a kernel leáll, vagy az eredmények nem a várt módon jelennek meg, töltse be újra a kqlmagic bővítményt.

  1. A kqlmagic telepítéséhez futtassa a következő parancsot:

    !pip install Kqlmagic --no-cache-dir  --upgrade
    
  2. A kqlmagic bővítmény betöltéséhez futtassa a következő parancsot:

    %reload_ext Kqlmagic
    

Csatlakozás fürthöz

Válassza ki az előnyben részesített metódus lapját a fürthöz való csatlakozáshoz.

A Microsoft Entra kódmetódus MSAL interaktív bejelentkezést kér. A hitelesítéshez meg kell adnia egy kódot.

%kql AzureDataExplorer://code;cluster='<cluster-name>';database='<database-name>'

Tipp

Példa fürtkapcsolatra

A következő parancs a Microsoft Entra kódmetódus használatával hitelesíti a Samples fürtön üzemeltetett adatbázisthelp. Nem Microsoft Entra felhasználók esetén cserélje le a bérlő nevét Microsoft.com a Microsoft Entra bérlőre.

%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'

Kapcsolati beállítások

A hitelesítő adatok lekérésének egyszerűsítése érdekében a kapcsolati karakterlánc után az alábbi beállításjelölők egyikét veheti fel.

Beállítás Leírás Példaszintaxis
try_azcli_login Próbálja meg lekérni a hitelesítési hitelesítő adatokat az Azure CLI-ből. -try_azcli_login
try_azcli_login_subscription Próbálja meg lekérni a hitelesítési hitelesítő adatokat az Azure CLI-ből a megadott előfizetés alapján. -try_azcli_login_subscription=<subscription_id>
try_vscode_login Próbálja meg lekérni a hitelesítési hitelesítő adatokat a Visual Studio Code Azure-fiók bejelentkezéséből. -try_vscode_login
try_msi Próbálja meg lekérni a hitelesítési hitelesítő adatokat az MSI helyi végpontjáról. A következő opcionális MSI-paraméterekkel rendelkező szótárat vár: resource, client_id/object_idmis_res_id/, , . timeoutcloud_environment -try_msi={"client_id":<id>}
try_token Hitelesítés egy megadott jogkivonattal. Olyan szótárat vár, amely Azure AD v1 vagy v2 tokentulajdonságokkal rendelkezik. -try_token={"tokenType":"bearer","accessToken":"<token>"}

Példa kapcsolati beállításra

Az előző táblázatban leírt lehetőségek bármelyike hozzáadható egy kapcsolati karakterlánc után. Az alábbi példa az Azure CLI bejelentkezési lehetőségét használja:

%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login

Kapcsolati adatok megjelenítése

Az összes meglévő kapcsolat megtekintéséhez futtassa a következő parancsot:

%kql --conn

Egy adott kapcsolat részleteinek ellenőrzéséhez futtassa a következő parancsot:

%kql --conn <database-name>@<cluster-name>

Lekérdezés és vizualizáció

Adatokat kérdezhet le a renderelési operátor használatával, és megjelenítheti az adatokat a ploy.ly kódtár használatával. Ez a lekérdezés és vizualizáció olyan integrált felületet biztosít, amely natív KQL-t használ. A Kqlmagic a legtöbb diagramot támogatja, kivéve timepivota , pivotchartés laddercharta diagramokat. A renderelés az összes attribútummal támogatott, kivéve kinda , ysplités accumulatea .

Piechart lekérdezése és renderelése

%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount 
| take10
| render piechart title="My Pie Chart by State"

Lekérdezési és megjelenítési idődiagram

%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart

Megjegyzés

Ezek a diagramok interaktívak. Válasszon ki egy időtartományt egy adott időpont nagyításához.

A diagramszínek testreszabása

Ha nem tetszik az alapértelmezett színpaletta, szabja testre a diagramokat palettabeállítások használatával. A rendelkezésre álló paletta itt található: Válassza ki a kqlmagic lekérdezési diagram eredményének színpalettáját

  1. Palettalista esetén:

    %kql --palettes -popup_window
    
  2. Válassza ki a cool színpalettát, és renderelje újra a lekérdezést:

    %%kql -palette_name "cool"
    StormEvents
    | summarize statecount=count() by State
    | sort by statecount
    | take10
    | render piechart title="My Pie Chart by State"
    

Lekérdezés paraméterezése Pythonnal

A Kqlmagic lehetővé teszi a Kusto lekérdezésnyelv és a Python közötti egyszerű váltást. További információ: Kqlmagic-lekérdezés paraméterezése Pythonnal

Python-változó használata a KQL-lekérdezésben

A lekérdezésben egy Python-változó értékével szűrheti az adatokat:

statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents 
| where State in (_state) 
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"

Lekérdezési eredmények konvertálása Pandas DataFrame-be

A KQL-lekérdezések eredményeit a Pandas DataFrame-ben érheti el. Az utolsó végrehajtott lekérdezési eredményeket változó _kql_raw_result_ alapján érheti el, és egyszerűen konvertálhatja az eredményeket Pandas DataFrame-mé az alábbiak szerint:

df = _kql_raw_result_.to_dataframe()
df.head(10)

Példa

Számos elemzési forgatókönyv esetén érdemes lehet olyan újrafelhasználható jegyzetfüzeteket létrehozni, amelyek sok lekérdezést tartalmaznak, és egy lekérdezés eredményeit a későbbi lekérdezésekbe adhatja. Az alábbi példa a Python-változót statefilter használja az adatok szűréséhez.

  1. Futtasson egy lekérdezést az első 10 állapot megtekintéséhez a maximális értékekkel DamageProperty:

    %%kql
    StormEvents
    | summarize max(DamageProperty) by State
    | order by max_DamageProperty desc
    | take10
    
  2. Futtasson egy lekérdezést a legfelső állapot kinyeréséhez, és állítsa be egy Python-változóba:

    df = _kql_raw_result_.to_dataframe()
    statefilter =df.loc[0].State
    statefilter
    
  3. Futtasson egy lekérdezést az let utasítással és a Python-változóval:

    %%kql
    let _state = statefilter;
    StormEvents 
    | where State in (_state)
    | summarize statecount=count() by bin(StartTime,1d), State
    | render timechart title = "Trend"
    
  4. Futtassa a súgóparancsot:

    %kql --help "help"
    

Tipp

Az összes elérhető konfigurációval kapcsolatos információk fogadásához használja a következőt %config Kqlmagic: . A Kusto-hibák, például a csatlakozási problémák és a helytelen lekérdezések elhárításához és rögzítéséhez használja a %config Kqlmagic.short_errors=False

Mintanotebookok