Azure Data Explorer からのデータを Redash で視覚化する
Redash を使用して、データ ソースに接続してクエリを実行し、ダッシュボードを構築してデータを視覚化し、それを同僚と共有します。 この記事では、Azure Data Explorer を Redash のデータ ソースとして設定し、データを視覚化する方法について説明します。
前提条件
- Azure サブスクリプション。 無料の Azure アカウントを作成します。
- Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
- 「Azure Data Explorer にサンプル データを取り込む」で説明されているように、 データを取り込む。 取り込みオプションの詳細については、取り込みの概要に関する記事を参照してください。
データ ソースの構成
Azure Data Explorer をダッシュボード ツールのデータ ソースとして構成するには、次の手順を実行します。 このセクションでは、これらの手順について詳しく説明します。
Microsoft Entra サービス プリンシパルを作成します。 このサービス プリンシパルは、Azure Data Explorer サービスにアクセスするためにダッシュボード ツールによって使用されます。
Azure Data Explorer データベースの viewers ロールに Microsoft Entra サービス プリンシパルを追加します。
Microsoft Entra サービス プリンシパルからの情報に基づいてダッシュボード ツールの接続プロパティを指定し、接続をテストします。
サービス プリンシパルの作成
サービス プリンシパルは、Azure portal または Azure CLI コマンド ライン エクスペリエンスを使用して作成できます。 どちらの方法を使用しても、作成後に、後の手順で使用する 4 つの接続プロパティの値を取得します。
Azure portal
サービス プリンシパルを作成するには、Azure portal のドキュメントの指示に従います。
「アプリケーションをロールに割り当てる」で、Azure Data Explorer クラスターに閲覧者ロールを割り当てます。
[サインインの Get 値 セクションで、手順で説明されている 3 つのプロパティ値 ( Directory ID (テナント ID)、 アプリケーション ID、および Password) をコピー。
Azure portal で [サブスクリプション] を選択し、サービス プリンシパルを作成したサブスクリプションの ID をコピーします。
Azure CLI
サービス プリンシパルを作成する。 適切なスコープを設定し、ロールの種類として
reader
を設定します。az ad sp create-for-rbac --name "https://{UrlToYourDashboard}:{PortNumber}" --role "reader" \ --scopes /subscriptions/{SubID}/resourceGroups/{ResourceGroupName}
詳細については、「Azure CLI で Azure サービス プリンシパルを作成する」をご覧ください。
このコマンドでは、次のような結果セットが返されます。 appId、password、tenant の 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" }
サブスクリプションの一覧を取得します。
az account list --output table
適切なサブスクリプション ID をコピーします。
サービス プリンシパルを閲覧者ロールに追加する
サービス プリンシパルを作成したら、Azure Data Explorer データベースの "閲覧者" ロールに追加します。 この作業は、Azure portal の [アクセス許可] で実行することも、[クエリ] で管理コマンドを使用して実行することもできます。
Azure portal - [アクセス許可]
Azure portal で、Azure Data Explorer クラスターに移動します。
[概要] セクションで、StormEvents サンプル データが含まれたデータベースを選択します。
[アクセス許可] を選択し、[追加] を選択します。
[Add database permissions]\(データベース アクセス許可の追加\) で、[閲覧者] ロールを選択し、[Select principals]\(プリンシパルの選択\) を選択します。
作成したサービス プリンシパルを検索します。 プリンシパルを選択し、[選択] を選択します。
[保存] を選択します。
管理コマンド - [クエリ]
Azure portal で、Azure Data Explorer クラスターに移動し、[クエリ] を選択します。
クエリ ウィンドウで次のコマンドを実行します。 Azure portal または CLI で取得したアプリケーション ID とテナント ID を使用します。
.add database {TestDatabase} viewers ('aadapp={ApplicationID};{TenantID}')
このコマンドでは、次のような結果セットが返されます。 この例では、最初の行はデータベース内の既存のユーザーを示し、2 番目の行は先ほど追加したサービス プリンシパルを示しています。
Redash で Azure Data Explorer コネクタを作成する
Redash にサインインします。 [Get Started]\(開始\) を選択してアカウントを作成します。
[Let's get started]\(はじめに\) で [Connect a Data Source]\(データ ソースへの接続\) を選択します。
[Create a New Data Source]\(新しいデータ ソースの作成\) ウィンドウで、[Azure Data Explorer (Kusto)] を選択し、[Create]\(作成\) を選択します。
[Azure Data Explorer (Kusto)] ウィンドウで、次のフィールドに入力して [Create]\(作成\) を選択します。
[Settings]\(設定\) ウィンドウで、[Save]\(保存\) および [Test Connection]\(テスト接続\) を選択して Azure Data Explorer (Kusto) データ ソース接続をテストします。
Redash でクエリを作成する
Redash の左上で、[Create]\(作成\)>[Query]\(クエリ\) を選択します。 [New Query]\(新しいクエリ\) をクリックし、クエリの名前を変更します。
上部の編集ペインでクエリを入力し、[Save]\(保存\) および [Execute]\(実行\) を選択 します。 今後使用するためにクエリをパブリッシュするには、[Publish]\(パブリッシュ\) を選択します。
左側のペインで、ドロップダウン メニューにデータ ソース接続名 (このフローでは Github connector) が表示され、選択されたデータベース内のテーブルが表示されます。
下部中央のペインにクエリ結果が表示されます。 [New Visualization]\(新しい視覚化\) ボタンを選択して、クエリで使用する視覚化を作成します。
視覚化画面で、[Visualization Type]\(視覚化タイプ\) と関連フィールド ([X Column]\(X 列\) や [Y Column]\(Y 列\) など) を選択します。 視覚化を保存します。
パラメーターを使用してクエリを作成する
[Create]\(作成\)>[Query]\(クエリ\) で新しいクエリを作成します。 {{}} 中かっこを使用してそれにパラメーターを追加します。 {{}} を選択して [Add Parameter]\(パラメーターの追加\) ウィンドウを開きます。 また、設定アイコン を選択して既存のパラメーターの属性を変更し、<parameter_name> ウィンドウを開くこともできます。
パラメーターに名前を指定します。 ドロップダウン メニューから、[Type: Query Based Dropdown List]\(種類: クエリベースのドロップダウン リスト\) を選択します。 [OK] を選択します。
Note
このクエリでは複数の値を使用するため、構文
| where Type in ((split('{{Type}}', ',')))
を含める必要があります。 詳細については、「in 演算子」を参照してください。 これにより、複数のクエリ パラメーター オプションが redash アプリに含まれます。
Redash でダッシュボードを作成する
ダッシュボードを作成するには、[Create]\(作成\)>[Dashboard]\(ダッシュボード\) を選択します。 または、既存のダッシュボードを選択し、[Dashboards]\(ダッシュボード\) で一覧からダッシュボードを選択します。
[New Dashboard]\(新しいダッシュボード\) ウィンドウで、ダッシュボードに名前を付け、[Save]\(保存\) を選択します。 <Dashboard_name> ウィンドウで、[Add Widget]\(ウィジェットの追加\) を選択して新しいウィジェットを作成します。
[Add Widget]\(ウィジェットの追加\) ウィンドウで、クエリ名を選択し、[Choose Visualization]\(視覚化の選択\) および [Parameters]\(パラメーター\) を選択します。 [Add to Dashboard]\(ダッシュボードに追加\) を選択します
[Done Editing]\(編集完了\) を選択してダッシュボードの作成を完了します。
ダッシュボード編集モードで、[Use Dashboard Level Filters]\(ダッシュボード レベル フィルターの使用\) を選択し、以前に定義した [Type]\(タイプ\) パラメーターを使用します。