在本文中,将使用 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 为 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 表中的前十个结果。