Запрос данных с помощью библиотеки Python в Azure Data Explorer

В этой статье вы узнаете, как запросить данные с помощью Azure Data Explorer. Обозреватель данных Azure — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии.

Обозреватель данных Azure предоставляет клиентскую библиотеку данных для Python. Эта библиотека позволяет выполнять запросы данных из кода. В этом кратком руководстве вы подключитесь к таблице в справочном кластере, настроенном для упрощения обучения. Затем вы можете запросить таблицу в этом кластере и получить результаты.

Предварительные условия

  • Python версии 3.4+.
  • Учетная запись с электронной почтой организации, которая входит в Azure Active Directory (AAD).

Установка библиотеки данных

Установите библиотеку 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 использует идентификатор клиента AAD. Чтобы найти идентификатор клиента, используйте следующий URL-адрес, заменив домен на имя_вашего_домена.

https://login.windows.net/<YourDomain>/.well-known/openid-configuration/

Например, если ваш домен называется contoso.com, URL-адрес будет следующим: https://login.windows.net/contoso.com/.well-known/openid-configuration/. Щелкните этот URL-адрес, чтобы просмотреть результаты. Первая строка выглядит следующим образом:

"authorization_endpoint":"https://login.windows.net/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"

Создайте строку подключения. В этом примере используется проверка подлинности устройства для доступа к кластеру. Можно также использовать сертификат приложения AAD, ключ приложения AAD и имя пользователя и пароль AAD.

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.

Дальнейшие действия