Запрос данных с помощью библиотеки Python в Azure Data Explorer
В этой статье вы узнаете, как запросить данные с помощью Azure Data Explorer. Azure Data Explorer — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии.
Обозреватель данных Azure предоставляет клиентскую библиотеку данных для Python. Эта библиотека позволяет выполнять запросы данных из кода. В этом кратком руководстве вы подключитесь к таблице в справочном кластере, настроенном для упрощения обучения. Затем вы можете запросить таблицу в этом кластере и получить результаты.
Необходимые компоненты
- Python версии 3.7 или выше
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra для доступа к кластеру справки
Установка библиотеки данных
Установите библиотеку azure-kusto-data.
pip install azure-kusto-data
Добавление операторов и констант импорта
Импортируйте классы из библиотеки, а также 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
Для проверки подлинности приложения Azure Data Explorer использует идентификатор клиента Microsoft Entra. Чтобы найти идентификатор клиента, используйте следующий URL-адрес, заменив домен на имя_вашего_домена.
https://login.microsoftonline.com/<YourDomain>/.well-known/openid-configuration/
Например, если ваш домен называется contoso.com, URL-адрес будет следующим: https://login.microsoftonline.com/contoso.com/.well-known/openid-configuration/. Щелкните этот URL-адрес, чтобы просмотреть результаты. Первая строка выглядит следующим образом:
"authorization_endpoint":"https://login.microsoftonline.com/6babcaad-604b-40ac-a9d7-9fd97c0b779f/oauth2/authorize"
В данном случае идентификатор клиента — 6babcaad-604b-40ac-a9d7-9fd97c0b779f
. Перед выполнением этого кода задайте значение для AAD_TENANT_ID.
AAD_TENANT_ID = "<TenantId>"
KUSTO_CLUSTER = "https://help.kusto.windows.net/"
KUSTO_DATABASE = "Samples"
Создайте строку подключения. В этом примере используется проверка подлинности устройства для доступа к кластеру. Вы также можете использовать сертификат приложения Microsoft Entra, ключ приложения Microsoft Entra и пользователь Microsoft Entra и пароль.
KCSB = KustoConnectionStringBuilder.with_aad_device_authentication(
KUSTO_CLUSTER)
KCSB.authority_id = AAD_TENANT_ID
Подключение к обозревателю данных Azure и выполнение запроса
Выполните запрос к кластеру и сохраните выходные данных в кадр данных. При выполнении код возвращает примерно следующее сообщение: Чтобы войти, откройте страницу https://microsoft.com/devicelogin с помощью веб-браузера и введите код F3W4VWZDM для проверки подлинности. Следуйте инструкциям по входу, а затем выполните следующий блок кода.
KUSTO_CLIENT = KustoClient(KCSB)
KUSTO_QUERY = "StormEvents | sort by StartTime desc | take 10"
RESPONSE = KUSTO_CLIENT.execute(KUSTO_DATABASE, KUSTO_QUERY)
Изучение данных в кадре данных
После входа запрос возвращает результаты, которые сохраняются в кадре данных. С результатами можно работать так же, как с любыми кадрами данных.
df = dataframe_from_result_table(RESPONSE.primary_results[0])
df
Вы увидите десять самых первых результатов из таблицы StormEvents.