Analizowanie danych w usłudze Azure Data Explorer przy użyciu notesu Jupyter Notebook i rozszerzenia kqlmagic
Jupyter Notebook to aplikacja internetowa typu open source, która umożliwia tworzenie i udostępnianie dokumentów zawierających kod na żywo, równania, wizualizacje i tekst narracji. Jest to przydatne w wielu zadaniach, takich jak czyszczenie i przekształcanie danych, symulacja liczbowa, modelowanie statystyczne, wizualizacja danych i uczenie maszynowe.
Język Kqlmagic rozszerza możliwości jądra języka Python w notesie Jupyter Notebook, dzięki czemu można uruchamiać zapytania język zapytań Kusto (KQL) natywnie. Język Python i język KQL można połączyć w celu wykonywania zapytań i wizualizowania danych przy użyciu bogatej biblioteki Plot.ly zintegrowanej z operatorem renderowania. Rozszerzenie kqlmagic jest zgodne z narzędziem Jupyter Lab, rozszerzeniem Jupyter programu Visual Studio Code i narzędziem Azure Data Studio oraz obsługiwanymi źródłami danych obejmują usługę Azure Data Explorer, dzienniki usługi Azure Monitor i usługę Application Insights.
W tym artykule dowiesz się, jak używać biblioteki kqlmagic w notesie Jupyter Notebook do nawiązywania połączenia z danymi przechowywanymi w usłudze Azure Data Explorer i wykonywania zapytań o nie.
Wymagania wstępne
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra. Subskrypcja platformy Azure nie jest wymagana.
- Notes Jupyter Notebook zainstalowany na komputerze lokalnym. W przeciwnym razie użyj narzędzia Azure Data Studio.
- Python 3.6. Aby zmienić wersję jądra notesu Jupyter Notebook na python 3.6, wybierz pozycję Jądra zmień jądro>>Python 3.6.
Instalowanie biblioteki kqlmagic
Po zainstalowaniu i załadowaniu rozszerzenia kqlmagic możesz napisać zapytania KQL w notesie. Jeśli jądro zatrzymuje się lub wyniki nie są zgodnie z oczekiwaniami, załaduj ponownie rozszerzenie kqlmagic.
Aby zainstalować plik kqlmagic, uruchom następujące polecenie:
!pip install Kqlmagic --no-cache-dir --upgrade
Aby załadować rozszerzenie kqlmagic, uruchom następujące polecenie:
%reload_ext Kqlmagic
Łączenie z klastrem
Wybierz kartę preferowanej metody, aby nawiązać połączenie z klastrem.
Uwaga
Jeśli to możliwe, zalecamy użycie metody uwierzytelniania certyfikatu.
Certyfikat Microsoft Entra powinien być przechowywany w pliku dostępnym z notesu. Do tego pliku można się odwołać w parametry połączenia.
%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'
Napiwek
- Aby sparametryzować parametry połączenia, użyj wartości bez cudzysłów, ponieważ są interpretowane jako wyrażenia języka Python.
- Aby uprościć proces pobierania poświadczeń, zobacz Opcje połączenia.
Przykład połączenia klastra
Następujące polecenie używa metody kodu Entra firmy Microsoft do uwierzytelniania w Samples
bazie danych hostowanej w klastrze help
. W przypadku użytkowników innych niż Microsoft Entra zastąp nazwę Microsoft.com
dzierżawy dzierżawą firmy Microsoft Entra.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Opcje połączenia
Aby uprościć proces pobierania poświadczeń, możesz dodać jedną z następujących flag opcji po parametry połączenia.
Opcja | Opis | Przykładowa składnia |
---|---|---|
try_azcli_login | Spróbuj uzyskać poświadczenia uwierzytelniania z poziomu interfejsu wiersza polecenia platformy Azure. | -try_azcli_login |
try_azcli_login_subscription | Spróbuj uzyskać poświadczenia uwierzytelniania z interfejsu wiersza polecenia platformy Azure na podstawie określonej subskrypcji. | -try_azcli_login_subscription=<subscription_id> |
try_vscode_login | Spróbuj pobrać poświadczenia uwierzytelniania z logowania do konta platformy Azure programu Visual Studio Code. | -try_vscode_login |
try_msi | Spróbuj uzyskać poświadczenia uwierzytelniania z lokalnego punktu końcowego msi. Oczekuje słownika z opcjonalnymi parametrami MSI: resource , , cloud_environment object_id //client_id mis_res_id , . timeout |
-try_msi={"client_id":<id>} |
try_token | Uwierzytelnianie przy użyciu określonego tokenu. Oczekuje słownika z właściwościami tokenu usługi Azure AD w wersji 1 lub 2. | -try_token={"tokenType":"bearer","accessToken":"<token>"} |
Przykład opcji połączenia
Każdą z opcji opisanych w poprzedniej tabeli można dodać po parametry połączenia. W poniższym przykładzie użyto opcji logowania interfejsu wiersza polecenia platformy Azure:
%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login
Wyświetlanie informacji o połączeniu
Aby wyświetlić wszystkie istniejące połączenia, uruchom następujące polecenie:
%kql --conn
Aby sprawdzić szczegóły określonego połączenia, uruchom następujące polecenie:
%kql --conn <database-name>@<cluster-name>
Wykonywanie zapytań i wizualizowanie
Wykonywanie zapytań dotyczących danych przy użyciu operatora renderowania i wizualizowanie danych przy użyciu biblioteki ploy.ly. To zapytanie i wizualizacja udostępnia zintegrowane środowisko korzystające z natywnego języka KQL. Język Kqlmagic obsługuje większość wykresów z wyjątkiem timepivot
, pivotchart
i ladderchart
. Renderowanie jest obsługiwane we wszystkich atrybutach z wyjątkiem kind
, ysplit
i accumulate
.
Wykonywanie zapytań i renderowanie piechart
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take 10
| render piechart title="My Pie Chart by State"
Tworzenie zapytań i renderowanie schematu czasowego
%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart
Uwaga
Te wykresy są interaktywne. Wybierz zakres czasu, aby powiększyć określony czas.
Dostosowywanie kolorów wykresu
Jeśli nie podoba Ci się domyślna paleta kolorów, dostosuj wykresy przy użyciu opcji palety. Dostępne palety można znaleźć tutaj: Wybierz paletę kolorów dla wyniku wykresu zapytania kqlmagic
Lista palet:
%kql --palettes -popup_window
Wybierz paletę
cool
kolorów i ponownie renderuj zapytanie:%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take 10 | render piechart title="My Pie Chart by State"
Parametryzowanie zapytania przy użyciu języka Python
Język Kqlmagic umożliwia prostą wymianę między język zapytań Kusto a językiem Python. Aby dowiedzieć się więcej: Parametryzowanie zapytania kqlmagic przy użyciu języka Python
Używanie zmiennej języka Python w zapytaniu języka KQL
Możesz użyć wartości zmiennej języka Python w zapytaniu, aby filtrować dane:
statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents
| where State in (_state)
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"
Konwertowanie wyników zapytania na ramkę danych biblioteki Pandas
Dostęp do wyników zapytania KQL można uzyskać w ramce danych biblioteki Pandas. Uzyskaj dostęp do wyników ostatniego wykonanego zapytania według zmiennej i łatwo przekonwertuj wyniki na ramkę _kql_raw_result_
danych biblioteki Pandas w następujący sposób:
df = _kql_raw_result_.to_dataframe()
df.head(10)
Przykład
W wielu scenariuszach analitycznych możesz utworzyć notesy wielokrotnego użytku zawierające wiele zapytań i przekazać wyniki z jednego zapytania do kolejnych zapytań. W poniższym przykładzie użyto zmiennej statefilter
języka Python do filtrowania danych.
Uruchom zapytanie, aby wyświetlić 10 pierwszych stanów z maksymalną wartością
DamageProperty
:%%kql StormEvents | summarize max(DamageProperty) by State | order by max_DamageProperty desc | take 10
Uruchom zapytanie, aby wyodrębnić górny stan i ustawić go w zmiennej języka Python:
df = _kql_raw_result_.to_dataframe() statefilter =df.loc[0].State statefilter
Uruchom zapytanie przy użyciu instrukcji
let
i zmiennej języka Python:%%kql let _state = statefilter; StormEvents | where State in (_state) | summarize statecount=count() by bin(StartTime,1d), State | render timechart title = "Trend"
Uruchom polecenie pomocy:
%kql --help "help"
Napiwek
Aby uzyskać informacje o wszystkich dostępnych konfiguracjach, użyj polecenia %config Kqlmagic
. Aby rozwiązać problemy i przechwycić błędy usługi Kusto, takie jak problemy z połączeniem i nieprawidłowe zapytania, użyj polecenia %config Kqlmagic.short_errors=False
Przykładowe notesy
- Rozpoczynanie pracy z narzędziem kqlmagic dla usługi Azure Data Explorer
- Wprowadzenie do usługi kqlmagic dla usługi Application Insights
- Wprowadzenie do usługi kqlmagic dla dzienników usługi Azure Monitor
- Parametryzowanie zapytania kqlmagic przy użyciu języka Python
- Wybieranie palety kolorów dla wyniku wykresu zapytania kqlmagic