使用 Azure 数据资源管理器 Python 库查询数据
本文介绍如何使用 Azure 数据资源管理器查询数据。 Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。
Azure 数据资源管理器提供适用于 Python 的数据客户端库。 该库允许通过代码查询数据。 连接到我们为帮助学习而设置的帮助群集上的表 。 可以查询该群集上的表,并返回结果。
先决条件
- Python 3.7 或更高版本
- 用于访问帮助群集的 Microsoft 帐户或 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 数据资源管理器使用 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 为 6babcaad-604b-40ac-a9d7-9fd97c0b779f
。 在运行此代码之前为 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 表中的前十个结果。