使用 Azure 資料總管 Python 程式庫查詢資料
在本文中,您會使用 Azure Data Explorer 來查詢數據。 Azure 資料總管是一項快速又可高度調整的資料探索服務,可用於處理記錄和遙測資料。
Azure 資料總管提供一個適用於 Python 的資料用戶端程式庫 \(英文\)。 此程式庫可讓您從程式碼中查詢資料。 線上到我們已設定協助學習之 說明叢集 上的數據表。 您可以在該叢集上查詢數據表,並傳回結果。
必要條件
- Python 3.7 或更新版本
- 用來存取說明叢集的 Microsoft 帳戶或 Microsoft Entra 使用者身分識別
安裝資料程式庫
安裝 azure-kusto-data。
pip install azure-kusto-data
新增 Import 陳述式和常數
從程式庫匯入類別,以及 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,並以您的網域取代 YourDomain。
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)
在 DataFrame 中探索資料
當您進入登入之後,查詢會傳回結果,並將其儲存於資料框架中。 您可以像處理任何其他資料框架一樣來處理結果。
df = dataframe_from_result_table(RESPONSE.primary_results[0])
df
您應該會看到來自 StormEvents 資料表的前十個結果。