Analizowanie danych na platformie Azure Data Explorer przy użyciu rozszerzenia Jupyter Notebook i 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 przypadku szerokiego zakresu zadań, takich jak czyszczenie i przekształcanie danych, symulacja liczbowa, modelowanie statystyczne, wizualizacja danych i uczenie maszynowe.
Program Kqlmagic rozszerza możliwości jądra języka Python w Jupyter Notebook, dzięki czemu można uruchamiać zapytania język zapytań Kusto (KQL) natywnie. Możesz połączyć język Python i KQL w celu wykonywania zapytań i wizualizowania danych przy użyciu bogatej biblioteki Plot.ly zintegrowanej z operatorem renderowania . Rozszerzenie kqlmagic jest zgodne z laboratorium Jupyter Lab, Visual Studio Code rozszerzenia Jupyter oraz usługą Azure Data Studio oraz obsługiwane źródła 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 Jupyter Notebook do nawiązywania połączenia z danymi przechowywanymi w usłudze Azure Data Explorer i wykonywania zapytań o dane.
Wymagania wstępne
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra. Subskrypcja platformy Azure nie jest wymagana.
- Jupyter Notebook zainstalowane na komputerze lokalnym. W przeciwnym razie użyj usługi Azure Data Studio.
- Python 3.6. Aby zmienić wersję jądra Jupyter Notebook na Python 3.6, wybierz pozycję Zmień jądro>>języka Python 3.6.
Instalowanie biblioteki kqlmagic
Po zainstalowaniu i załadowaniu rozszerzenia kqlmagic możesz napisać zapytania KQL w notesie. Jeśli jądro zatrzyma 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.
Metoda kodu Microsoft Entra monituje logowanie interakcyjne biblioteki MSAL. Otrzymasz kod do wprowadzenia w celu uwierzytelnienia.
%kql AzureDataExplorer://code;cluster='<cluster-name>';database='<database-name>'
Porada
- Aby sparametryzować parametry połączenia, użyj wartości niekwestionowanych, 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 Microsoft Entra do uwierzytelniania w bazie danych hostowanej Samples
w klastrzehelp
. W przypadku użytkowników innych niż Microsoft Entra zastąp nazwę Microsoft.com
dzierżawy dzierżawą Microsoft Entra.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Opcje połączenia
Aby uprościć proces pobierania poświadczeń, można 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 poziomu interfejsu wiersza polecenia platformy Azure na podstawie określonej subskrypcji. | -try_azcli_login_subscription=<subscription_id> |
try_vscode_login | Spróbuj uzyskać poświadczenia uwierzytelniania z logowania Visual Studio Code konta platformy Azure. | -try_vscode_login |
try_msi | Spróbuj pobrać poświadczenia uwierzytelniania z lokalnego punktu końcowego msi. Oczekuje słownika z opcjonalnymi parametrami MSI: resource , client_id /object_id mis_res_id /, cloud_environment , . timeout |
-try_msi={"client_id":<id>} |
try_token | Uwierzytelnianie przy użyciu określonego tokenu. Oczekuje słownika z właściwościami tokenu Azure AD v1 lub v2. | -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ń o dane przy użyciu operatora renderowania i wizualizowanie danych przy użyciu biblioteki ploy.ly. To zapytanie i wizualizacja udostępnia zintegrowane środowisko, które korzysta 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 przy użyciu wszystkich atrybutów z wyjątkiem kind
, ysplit
i accumulate
.
Wykonywanie zapytań i renderowanie piechart
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take10
| render piechart title="My Pie Chart by State"
Wykonywanie 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 lubisz domyślnej palety 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ę kolorów i ponownie renderuj
cool
zapytanie:%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take10 | render piechart title="My Pie Chart by State"
Parametryzacja 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: Parametryzacja zapytania kqlmagic przy użyciu języka Python
Używanie zmiennej języka Python w zapytaniu 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
Możesz uzyskać dostęp do wyników zapytania KQL w ramce danych Biblioteki Pandas. Uzyskaj dostęp do wyników ostatniego wykonanego zapytania według zmiennej _kql_raw_result_
i łatwo przekonwertuj wyniki na ramkę 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 | take10
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"
Porada
Aby otrzymywać 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
- Wprowadzenie do biblioteki kqlmagic dla usługi Azure Data Explorer
- Wprowadzenie do narzędzia kqlmagic dla usługi Application Insights
- Wprowadzenie do biblioteki 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
Zawartość pokrewna
- Poznaj język zapytań Kusto (KQL)
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla