Použití poznámkového bloku Jupyter a rozšíření kqlmagic k analýze dat v Azure Data Exploreru
Jupyter Notebook je opensourcová webová aplikace, která umožňuje vytvářet a sdílet dokumenty obsahující živý kód, rovnice, vizualizace a text vyprávění. Je užitečné pro celou řadu úloh, jako je čištění a transformace dat, číselná simulace, statistické modelování, vizualizace dat a strojové učení.
Kqlmagic rozšiřuje možnosti jádra Pythonu v Jupyter Notebook, abyste mohli nativně spouštět dotazy dotazovací jazyk Kusto (KQL). Python a KQL můžete kombinovat k dotazování a vizualizaci dat pomocí bohaté knihovny Plot.ly integrované s operátorem vykreslování . Rozšíření kqlmagic je kompatibilní s Jupyter Lab, rozšířením Jupyter v editoru Visual Studio Code a azure Data Studio a podporovanými zdroji dat patří Azure Data Explorer, protokoly Azure Monitoru a Application Insights.
V tomto článku se dozvíte, jak pomocí kqlmagic v poznámkovém bloku Jupyter připojit se k datům uloženým v Azure Data Exploreru a dotazovat se na data uložená v Azure Data Exploreru.
Požadavky
- Účet Microsoft nebo identita uživatele Microsoft Entra. Předplatné Azure není povinné.
- Jupyter Notebook nainstalovaný na místním počítači. V opačném případě použijte Azure Data Studio.
- Python 3.6 Pokud chcete změnit verzi jádra Jupyter Notebook na Python 3.6, vyberte Jádro>Změnit jádro>Python 3.6.
Instalace kqlmagic
Po instalaci a načtení rozšíření kqlmagic můžete do poznámkového bloku psát dotazy KQL. Pokud se jádro zastaví nebo výsledky nebudou očekávané, znovu načtěte rozšíření kqlmagic.
Pokud chcete nainstalovat kqlmagic, spusťte následující příkaz:
!pip install Kqlmagic --no-cache-dir --upgrade
Pokud chcete načíst rozšíření kqlmagic, spusťte následující příkaz:
%reload_ext Kqlmagic
Připojení ke clusteru
Vyberte kartu pro upřednostňovanou metodu pro připojení ke clusteru.
Poznámka:
Pokud je to možné, doporučujeme použít metodu ověřování certifikátem.
Certifikát Microsoft Entra by měl být uložen v souboru přístupném z poznámkového bloku. Na tento soubor lze odkazovat v připojovací řetězec.
%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'
Tip
- Pokud chcete parametrizovat připojovací řetězec, použijte necitované hodnoty, protože jsou interpretovány jako výrazy Pythonu.
- Pokud chcete zjednodušit proces získávání přihlašovacích údajů, podívejte se na možnosti připojení.
Příklad připojení clusteru
Následující příkaz používá metodu kódu Microsoft Entra k ověření v Samples
databázi hostované v clusteru help
. Pro uživatele, kteří nejsou microsoft Entra, nahraďte název Microsoft.com
tenanta vaším tenantem Microsoft Entra.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Možnosti připojení
Pokud chcete zjednodušit proces získávání přihlašovacích údajů, můžete za připojovací řetězec přidat jeden z následujících příznaků možností.
Možnost | Popis | Příklad syntaxe |
---|---|---|
try_azcli_login | Pokus o získání přihlašovacích údajů pro ověřování z Azure CLI | -try_azcli_login |
try_azcli_login_subscription | Pokus o získání přihlašovacích údajů pro ověřování z Azure CLI na základě zadaného předplatného. | -try_azcli_login_subscription=<subscription_id> |
try_vscode_login | Pokus o získání přihlašovacích údajů pro ověřování z přihlášení k účtu Azure v editoru Visual Studio Code | -try_vscode_login |
try_msi | Pokus o získání přihlašovacích údajů pro ověření z místního koncového bodu MSI Očekává slovník s volitelnými parametry MSI: resource ,/client_id object_id mis_res_id /cloud_environment , , . timeout |
-try_msi={"client_id":<id>} |
try_token | Ověřte se pomocí zadaného tokenu. Očekává slovník s vlastnostmi tokenu Azure AD v1 nebo v2. | -try_token={"tokenType":"bearer","accessToken":"<token>"} |
Příklad možnosti připojení
Za připojovací řetězec lze přidat některou z možností popsaných v předchozí tabulce. Následující příklad používá možnost přihlášení k Azure CLI:
%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login
Zobrazení informací o připojení
Pokud chcete zobrazit všechna existující připojení, spusťte následující příkaz:
%kql --conn
Pokud chcete zkontrolovat podrobnosti o konkrétním připojení, spusťte následující příkaz:
%kql --conn <database-name>@<cluster-name>
Dotazování a vizualizace
Dotazování dat pomocí operátoru vykreslování a vizualizace dat pomocí knihovny ploy.ly Tento dotaz a vizualizace poskytuje integrované prostředí, které používá nativní jazyk KQL. Kqlmagic podporuje většinu grafů kromě timepivot
, pivotchart
a ladderchart
. Vykreslení je podporováno se všemi atributy kromě kind
, ysplit
a accumulate
.
Dotazování a vykreslení výsečového grafu
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take 10
| render piechart title="My Pie Chart by State"
Dotazování a vykreslení časového diagramu
%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart
Poznámka:
Tyto grafy jsou interaktivní. Vyberte časový rozsah, který chcete přiblížit k určitému času.
Přizpůsobení barev grafu
Pokud se vám výchozí paleta barev nelíbí, přizpůsobte grafy pomocí možností palety. Dostupné palety najdete tady: Zvolte paletu barev pro výsledek grafu dotazu kqlmagic.
Seznam palet:
%kql --palettes -popup_window
Vyberte barevnou paletu
cool
a znovu vykreslíte dotaz:%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take 10 | render piechart title="My Pie Chart by State"
Parametrizace dotazu pomocí Pythonu
Kqlmagic umožňuje jednoduchou výměnu mezi dotazovací jazyk Kusto a Pythonem. Další informace: Parametrizace dotazu kqlmagic pomocí Pythonu
Použití proměnné Pythonu v dotazu KQL
K filtrování dat můžete použít hodnotu proměnné Pythonu v dotazu:
statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents
| where State in (_state)
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"
Převod výsledků dotazu na datový rámec Pandas
K výsledkům dotazu KQL se dostanete v datovém rámci Pandas. Získejte přístup k posledním spuštěným výsledkům dotazu podle proměnné _kql_raw_result_
a výsledky můžete snadno převést na datový rámec Pandas následujícím způsobem:
df = _kql_raw_result_.to_dataframe()
df.head(10)
Příklad
V mnoha analytických scénářích můžete chtít vytvořit opakovaně použitelné poznámkové bloky, které obsahují mnoho dotazů, a výsledky z jednoho dotazu do následných dotazů. Následující příklad používá proměnnou statefilter
Pythonu k filtrování dat.
Spuštěním dotazu zobrazte prvních 10 stavů s maximálním
DamageProperty
počtem:%%kql StormEvents | summarize max(DamageProperty) by State | order by max_DamageProperty desc | take 10
Spuštěním dotazu extrahujte nejvyšší stav a nastavte ho do proměnné Pythonu:
df = _kql_raw_result_.to_dataframe() statefilter =df.loc[0].State statefilter
Spusťte dotaz pomocí
let
příkazu a proměnné Pythonu:%%kql let _state = statefilter; StormEvents | where State in (_state) | summarize statecount=count() by bin(StartTime,1d), State | render timechart title = "Trend"
Spusťte příkaz nápovědy:
%kql --help "help"
Tip
Chcete-li získat informace o všech dostupných konfiguracích, použijte %config Kqlmagic
. Při řešení a zachycení chyb Kusto, jako jsou problémy s připojením a nesprávné dotazy, použijte %config Kqlmagic.short_errors=False
Ukázkové poznámkové bloky
- Začínáme s kqlmagic pro Azure Data Explorer
- Začínáme s kqlmagic pro Application Insights
- Začínáme s kqlmagic pro protokoly služby Azure Monitor
- Parametrizace dotazu kqlmagic pomocí Pythonu
- Volba palety barev pro výsledek grafu dotazu kqlmagic