wykonywanie zapytań o dane przy użyciu biblioteki języka Python w usłudze Azure Data Explorer
W tym artykule wykonasz zapytanie dotyczące danych przy użyciu usługi Azure Data Explorer. Azure Data Explorer to szybka i wysoce skalowalna usługa eksploracji danych na potrzeby danych dziennika i telemetrycznych.
Usługa Azure Data Explorer udostępnia bibliotekę danych klienta dla języka Python. Ta biblioteka umożliwia wykonywanie zapytań o dane z poziomu kodu. Połącz się z tabelą w klastrze pomocy, który skonfigurowaliśmy w celu ułatwienia nauki. Możesz wysłać zapytanie do tabeli w tym klastrze i zwrócić wyniki.
Wymagania wstępne
- Środowisko Python w wersji 3.7 lub nowszej
- Konto Microsoft lub tożsamość użytkownika Microsoft Entra w celu uzyskania dostępu do klastra pomocy
Instalowanie biblioteki danych
Zainstaluj programazure-kusto-data.
pip install azure-kusto-data
Dodawanie instrukcji importu i stałych
Zaimportuj klasy z biblioteki oraz bibliotekę analizy danych pandas.
from azure.kusto.data import KustoClient, KustoConnectionStringBuilder
from azure.kusto.data.exceptions import KustoServiceError
from azure.kusto.data.helpers import dataframe_from_result_table
import pandas as pd
Aby uwierzytelnić aplikację, usługa Azure Data Explorer używa identyfikatora dzierżawy firmy Microsoft Entra. Aby odnaleźć identyfikator dzierżawy, użyj następującego adresu URL, zastępując ciąg YourDomain nazwą domeny.
https://login.microsoftonline.com/<YourDomain>/.well-known/openid-configuration/
Jeśli na przykład Twoja domena to contoso.com, adres URL to https://login.microsoftonline.com/contoso.com/.well-known/openid-configuration/. Kliknij ten adres URL, aby wyświetlić wyniki. Pierwszy wiersz wygląda w następujący sposób.
"authorization_endpoint":"https://login.microsoftonline.com/6babcaad-604b-40ac-a9d7-9fd97c0b779f/oauth2/authorize"
Identyfikator dzierżawy w tym przypadku to 6babcaad-604b-40ac-a9d7-9fd97c0b779f
. Przed uruchomieniem kodu ustaw wartość dla elementu AAD_TENANT_ID.
AAD_TENANT_ID = "<TenantId>"
KUSTO_CLUSTER = "https://help.kusto.windows.net/"
KUSTO_DATABASE = "Samples"
Teraz możesz utworzyć parametry połączenia. W tym przykładzie w celu uzyskania dostępu do klastra używane jest uwierzytelnianie urządzenia. Możesz również użyć certyfikatu aplikacji Entra firmy Microsoft, klucza aplikacji Microsoft Entra oraz użytkownika i hasła firmy Microsoft Entra.
KCSB = KustoConnectionStringBuilder.with_aad_device_authentication(
KUSTO_CLUSTER)
KCSB.authority_id = AAD_TENANT_ID
Nawiązywanie połączenia z usługą Azure Data Explorer i wykonywanie zapytania
Wykonaj zapytanie do klastra i zapisz dane wyjściowe w ramce danych. Uruchomiony kod zwraca komunikat podobny do następującego: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code F3W4VWZDM to authenticate (Aby się zalogować, użyj przeglądarki internetowej, aby otworzyć stronę https://microsoft.com/devicelogin, i wprowadź kod F3W4VWZDM w celu uwierzytelnienia). Postępuj zgodnie z instrukcjami, aby się zalogować, a następnie wróć, aby uruchomić kolejny blok kodu.
KUSTO_CLIENT = KustoClient(KCSB)
KUSTO_QUERY = "StormEvents | sort by StartTime desc | take 10"
RESPONSE = KUSTO_CLIENT.execute(KUSTO_DATABASE, KUSTO_QUERY)
Eksplorowanie danych w elemencie DataFrame
Po zalogowaniu zapytanie zwraca wyniki, które są zapisywane w ramce danych. Możesz pracować z tymi wynikami tak samo, jak w przypadku każdej innej ramki danych.
df = dataframe_from_result_table(RESPONSE.primary_results[0])
df
Powinno zostać wyświetlonych dziesięć najlepszych wyników z tabeli StormEvents.