Share via


Azure Data Explorer の Python ライブラリを使用してデータのクエリを実行する

この記事では、Azure Data Explorer を使用してデータのクエリを実行します。 Azure Data Explorer は、ログと利用統計情報データのための高速で拡張性に優れたデータ探索サービスです。

Azure データ エクスプ ローラーでは、Python 用のデータ クライアント ライブラリが提供されています。 このライブラリを使用すると、コードからデータをクエリできます。 学習を支援するために設定した "ヘルプ クラスター" 上のテーブルに接続します。 そのクラスターでテーブルのクエリを実行し、結果を返すことができます。

前提条件

データ ライブラリをインストールする

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テナント ID を使用します。 テナント ID を検索するには、次の 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"

この場合のテナント ID は 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 データ エクスプローラーに接続し、クエリを実行する

クラスターに対してクエリを実行し、データ フレームに出力を格納します。 このコードを実行すると、次のようなメッセージが返されます。"サインインするには、Web ブラウザーを使用して 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 テーブルの上位 10 件の結果が表示されます。

次のステップ