使用 Azure 数据资源管理器 Python 库查询数据

在本文中,将使用 Azure 数据资源管理器查询数据。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。

Azure 数据资源管理器提供 用于 Python 的数据客户端库。 通过此库,可以从代码查询数据。 请连接到我们为协助学习过程而设置的 帮助群集 上的表。 可以在该群集上查询表并返回结果。

先决条件

安装数据库

安装 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 数据资源管理器使用 Microsoft Entra 租户 ID。 若要查找租户 ID,请使用以下 URL,将域替换为 YourDomain

https://login.partner.microsoftonline.cn/<YourDomain>/.well-known/openid-configuration/

例如,如果域 contoso.com,则 URL 为: https://login.partner.microsoftonline.cn/contoso.com/.well-known/openid-configuration/。 单击此 URL 可查看结果;第一行如下所示。

"authorization_endpoint":"https://login.partner.microsoftonline.cn/6babcaad-604b-40ac-a9d7-9fd97c0b779f/oauth2/authorize"

在本例中,租户 ID 为 aaaabbbb-0000-cccc-1111-dddd2222eeee. 运行此代码之前,请设置AAD_TENANT_ID的值。

AAD_TENANT_ID = "<TenantId>"
KUSTO_CLUSTER = "https://help.chinaeast2.kusto.chinacloudapi.cn/"
KUSTO_DATABASE = "Samples"

现在构造连接字符串。 此示例使用设备身份验证访问群集。 还可使用 Microsoft Entra 应用程序证书Microsoft Entra 应用程序密钥以及 Microsoft Entra 用户和密码

KCSB = KustoConnectionStringBuilder.with_aad_device_authentication(
    KUSTO_CLUSTER)
KCSB.authority_id = AAD_TENANT_ID

连接到 Azure 数据资源管理器并执行查询

对群集执行查询,并将输出存储在数据帧中。 运行此代码时,它将返回如下所示的消息: 若要登录,请使用 Web 浏览器打开页面 https://microsoft.com/deviceloginchina 并输入代码F3W4VWZDM进行身份验证。 按照步骤登录,然后返回运行下一个代码块。

KUSTO_CLIENT = KustoClient(KCSB)
KUSTO_QUERY = "StormEvents | sort by StartTime desc | take 10"

RESPONSE = KUSTO_CLIENT.execute(KUSTO_DATABASE, KUSTO_QUERY)

浏览 DataFrame 中的数据

输入登录后,查询将返回结果,它们存储在数据帧中。 可以像处理任何其他数据帧一样处理结果。

df = dataframe_from_result_table(RESPONSE.primary_results[0])
df

你应该会看到 StormEvents 表中的前十个结果。

后续步骤