Azure Data Explorer からのデータを Redash で視覚化する

Redash を使用して、データ ソースに接続してクエリを実行し、ダッシュボードを構築してデータを視覚化し、それを同僚と共有します。 この記事では、Azure Data Explorer を Redash のデータ ソースとして設定し、データを視覚化する方法について説明します。

前提条件

データ ソースの構成

Azure Data Explorer をダッシュボード ツールのデータ ソースとして構成するには、次の手順を実行します。 このセクションでは、これらの手順について詳しく説明します。

  1. Microsoft Entra サービス プリンシパルを作成します。 このサービス プリンシパルは、Azure Data Explorer サービスにアクセスするためにダッシュボード ツールによって使用されます。

  2. Microsoft Entra サービス プリンシパルを Azure Data Explorer データベースのビューアー ロールに追加します。

  3. Microsoft Entra サービス プリンシパルからの情報に基づいてダッシュボード ツールの接続プロパティを指定し、接続をテストします。

サービス プリンシパルの作成

サービス プリンシパルは、Azure portal または Azure CLI コマンド ライン エクスペリエンスを使用して作成できます。 どちらの方法を使用しても、作成後に、後の手順で使用する 4 つの接続プロパティの値を取得します。

Azure portal

  1. サービス プリンシパルを作成するには、Azure portal のドキュメントの指示に従います。

    1. アプリケーションをロールに割り当てる」で、Azure Data Explorer クラスターに閲覧者ロールを割り当てます。

    2. サインインするための値を取得する」で、後の手順で使用する 3 つのプロパティ値 (ディレクトリ ID (テナント ID)、アプリケーション IDパスワード) をコピーします。

  2. Azure portal で [サブスクリプション] を選択し、サービス プリンシパルを作成したサブスクリプションの ID をコピーします。

    サブスクリプション ID - ポータル。

Azure CLI

  1. サービス プリンシパルを作成する。 適切なスコープを設定し、ロールの種類として reader を設定します。

    az ad sp create-for-rbac --name "https://{UrlToYourDashboard}:{PortNumber}" --role "reader" \
                             --scopes /subscriptions/{SubID}/resourceGroups/{ResourceGroupName}
    

    詳細については、「Azure CLI で Azure サービス プリンシパルを作成する」をご覧ください。

  2. このコマンドでは、次のような結果セットが返されます。 appIdpasswordtenant の 3 つのプロパティ値をコピーします。

    {
      "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "displayName": "{UrlToYourDashboard}:{PortNumber}",
      "name": "https://{UrlToYourDashboard}:{PortNumber}",
      "password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    }
    
  3. サブスクリプションの一覧を取得します。

    az account list --output table
    

    適切なサブスクリプション ID をコピーします。

    サブスクリプション ID - CLI。

サービス プリンシパルを閲覧者ロールに追加する

サービス プリンシパルを作成したら、Azure Data Explorer データベースの "閲覧者" ロールに追加します。 この作業は、Azure portal の [アクセス許可] で実行することも、 [クエリ] で管理コマンドを使用して実行することもできます。

Azure portal - [アクセス許可]

  1. Azure portal で、Azure Data Explorer クラスターに移動します。

  2. [概要] セクションで、StormEvents サンプル データが含まれたデータベースを選択します。

    [データベース] を選択します。

  3. [アクセス許可] を選択し、 [追加] を選択します。

    データベースのアクセス許可。

  4. [Add database permissions](データベース アクセス許可の追加) で、 [閲覧者] ロールを選択し、 [Select principals](プリンシパルの選択) を選択します。

    データベースのアクセス許可を追加する。

  5. 作成したサービス プリンシパルを検索します。 プリンシパルを選択し、 [選択] を選択します。

    Azure portal の [新しいプリンシパル] ペインのスクリーンショット。[選択] ボタンと、判読できないサービス プリンシパル プロパティを持つ 2 つのフィールドが強調表示されています。

  6. [保存] を選択します。

    Azure portal の [データベースのアクセス許可を追加する] ペインのスクリーンショット。[保存] ボタンが強調表示されています。

管理コマンド - [クエリ]

  1. Azure portal で、Azure Data Explorer クラスターに移動し、 [クエリ] を選択します。

    Azure portal の Azure Data Explorer クラスターのスクリーンショット。[クエリ] 項目が強調表示されています。

  2. クエリ ウィンドウで次のコマンドを実行します。 Azure portal または CLI で取得したアプリケーション ID とテナント ID を使用します。

    .add database {TestDatabase} viewers ('aadapp={ApplicationID};{TenantID}')
    

    このコマンドでは、次のような結果セットが返されます。 この例では、最初の行はデータベース内の既存のユーザーを示し、2 番目の行は先ほど追加したサービス プリンシパルを示しています。

    結果セット。

Redash で Azure Data Explorer コネクタを作成する

  1. Redash にサインインします。 [Get Started](開始) を選択してアカウントを作成します。

  2. [Let's get started](はじめに)[Connect a Data Source](データ ソースへの接続) を選択します。

    データ ソースに接続する。

  3. [Create a New Data Source](新しいデータ ソースの作成) ウィンドウで、[Azure Data Explorer (Kusto)] を選択し、[Create](作成) を選択します。

    Azure Data Explorer のデータ ソースを選択する。

  4. [Azure Data Explorer (Kusto)] ウィンドウで、次のフィールドに入力して [Create](作成) を選択します。

    Azure Data Explorer (Kusto) の設定ウィンドウ。

  5. [Settings](設定) ウィンドウで、[Save](保存) および [Test Connection](テスト接続) を選択して Azure Data Explorer (Kusto) データ ソース接続をテストします。

Redash でクエリを作成する

  1. Redash の左上で、 [Create](作成)>[Query](クエリ) を選択します。 [New Query](新しいクエリ) をクリックし、クエリの名前を変更します。

    クエリを作成する。

  2. 上部の編集ペインでクエリを入力し、[Save](保存) および [Execute](実行) を選択 します。 今後使用するためにクエリをパブリッシュするには、[Publish](パブリッシュ) を選択します。

    クエリを保存して実行する。

    左側のペインで、ドロップダウン メニューにデータ ソース接続名 (このフローでは Github connector) が表示され、選択されたデータベース内のテーブルが表示されます。

  3. 下部中央のペインにクエリ結果が表示されます。 [New Visualization](新しい視覚化) ボタンを選択して、クエリで使用する視覚化を作成します。

    新しい視覚化。

  4. 視覚化画面で、[Visualization Type](視覚化タイプ) と関連フィールド ([X Column](X 列)[Y Column](Y 列) など) を選択します。 視覚化を保存します。

    視覚化を構成して保存する。

パラメーターを使用してクエリを作成する

  1. [Create](作成)>[Query](クエリ) で新しいクエリを作成します。 {{}} 中かっこを使用してそれにパラメーターを追加します。 {{}} を選択して [Add Parameter](パラメーターの追加) ウィンドウを開きます。 また、設定アイコン を選択して既存のパラメーターの属性を変更し、<parameter_name> ウィンドウを開くこともできます。

    パラメーターを挿入する。

  2. パラメーターに名前を指定します。 ドロップダウン メニューから、 [Type: Query Based Dropdown List](種類: クエリベースのドロップダウン リスト) を選択します。 [OK] を選択します。

    クエリベースのドロップダウン リスト。

    注意

    このクエリでは複数の値を使用するため、構文 | where Type in ((split('{{Type}}', ','))) を含める必要があります。 詳細については、「in 演算子」を参照してください。 これにより、複数のクエリ パラメーター オプションが redash アプリに含まれます

Redash でダッシュボードを作成する

  1. ダッシュボードを作成するには、 [Create](作成)>[Dashboard](ダッシュボード) を選択します。 または、既存のダッシュボードを選択し、[Dashboards](ダッシュボード) で一覧からダッシュボードを選択します。

    ダッシュボードを作成する。

  2. [New Dashboard](新しいダッシュボード) ウィンドウで、ダッシュボードに名前を付け、[Save](保存) を選択します。 <Dashboard_name> ウィンドウで、[Add Widget](ウィジェットの追加) を選択して新しいウィジェットを作成します。

  3. [Add Widget](ウィジェットの追加) ウィンドウで、クエリ名を選択し、[Choose Visualization](視覚化の選択) および [Parameters](パラメーター) を選択します。 [Add to Dashboard](ダッシュボードに追加) を選択します

    視覚化を選択してダッシュボードに追加する。

  4. [Done Editing](編集完了) を選択してダッシュボードの作成を完了します。

  5. ダッシュボード編集モードで、[Use Dashboard Level Filters](ダッシュボード レベル フィルターの使用) を選択し、以前に定義した [Type](タイプ) パラメーターを使用します。

    ダッシュボードの作成を完了する。