「S3 + Athena」 で実行していたことを 「BLOB + Azure Data Explorer」 で実現してみました − 2


STEP-2 : Azure Data Explorer の Web UI でデータベースへのクエリを実行する

概要

AWSの「S3 + Athena」 で実行できること、つまり、S3に保存されているJSON形式等のデータ(以下、JSONデータ)を Athenaで提供されているSQLライクな構文を用いてクエリ実行することによりデータ抽出が可能となっています。同様なことをAzure上の「BLOB + Azure Data Explorer」構成においても可能であることを確認しました。なお、「Web UI」と「Pythonプログラム」の両方で実現しております。

この実現を以下の3つのステップで順次説明します。
STEP-1.Azure Data Explorer クラスターとデータベースを作成する
STEP-2.Azure Data Explorer の Web UI でデータベースへのクエリを実行する
STEP-3.Azure Data Explorer の Python ライブラリを使用してデータベースへのクエリを実行する

STEP-1についてはこちらを参照ください。 今回は STEP-2 について説明します。

Azure Data Explorer は、大量のデータのリアルタイム分析を実現するフルマネージドの高速データ分析サービスです。 Azure Data Explorer の Web UI を使用すると、Azure Data Explorer クラスターに接続して、Kusto クエリ言語のコマンドとクエリを作成、実行、共有できます。

ローカル環境

macOS Big Sur 11.1
python 3.8.3
Microsoft Edge 89.0.774.63(Safariでは Azure Data Explorer がうまく動きませんでした)

ローカル上での事前準備

Azure Storega Exploere がインストールされていること。

Azure上での事前準備

STEP-1を完了していること
今回のクエリー対象となるデータは、この記事 にある「IoTSample-write.py」で 2222件生成したものとなります。

Azure Data Explorer の Web UI の表示

Azure Data Explorer の Web UI を以下の手順で表示します。

1.Azureポータルにサインインします。
2.STEP-1 で作成した Azure Data Explorer クラスター「ituruadxcluster」リソースを選択します。
3.Azure Data Explorer クラスター画面に表示されている「URL」をコピーします

3.コピーした「URL」をブラウザの新しいタブで開きます。これが Azure Data Explorer の Web UI となります。

Azure Data Explorer Web UI でデータベースで基本コマンドを実行する

まずは、「.show databases」コマンドを「クエリ ウィンドウ」に入力後、 [実行] を選択します。結果セットには、データベースである 「IoTDummyDatabase」 が表示されることを確認します。

Azure Data Explorer Web UI でデータベースへのクエリを実行

今回のメインディッシュ、いくつかのサンプルクエリーを実行してみます。

1.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# Kusto
iot_tbl 
| sort by ['id'] desc 
| take 10

このクエリを実行すると、iot_tbl テーブルから最新の 10 レコードが返されます。 結果は次のテーブルのようになります。

2.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# Kusto
iot_tbl 
| sort by ['id'] desc 
| project ['time'], iot_state, iot_num, section, vol_1, vol_2 
| take 10

このクエリを実行すると、iot_tbl テーブルから最新の 10 レコードが返され、表示されるカラムは Kusto の project で定義したもののみとその表示順となります。 結果は次のテーブルのようになります。

3.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# Kusto
iot_tbl
| summarize event_count=count(iot_state) by iot_state
| sort by event_count
| where event_count > 1
| project iot_state, event_count
| render columnchart

このクエリを実行すると、iot_tbl テーブルから iot_state(都道府県)毎のデータ件数をカウントし、件数の多い都道府県から棒グラフで表示されます。 結果は以下のようになります。

4.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# Kusto
iot_tbl
| where section == "C"

このクエリを実行すると、iot_tbl テーブの section カラムの値が "C" のもののみ返されます。 結果は次のテーブルのようになります。

5.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# Kusto
iot_tbl
| where section == "C" or section == "E" or section == "W"

このクエリを実行すると、iot_tbl テーブの section カラムの値が "C","E","W" のもののみ返されます。 結果は次のテーブルのようになります。

6.次のクエリをコピーしてクエリ ウィンドウに貼り付けます。 ウィンドウの上部にある [実行] を選択します。

# kusto
iot_tbl
| summarize event_count=count(section) by section
| sort by event_count
| where section == "C" or section == "E" or section == "W"
| project section, event_count
| render columnchart

このクエリを実行すると、iot_tbl テーブの section カラムの値が "C","E","W" のもののみを対象に、それ毎のデータ件数をカウントし、件数の多い section から棒グラフで表示されます。 結果は以下のようになります。

次の最後のステップでは、Azure Data Explorer の Python ライブラリを使用してデータベースへのクエリを実行してみます。

本課題のシリーズ情報

3つのステップ
STEP-1.Azure Data Explorer クラスターとデータベースを作成する
STEP-2.Azure Data Explorer の Web UI でデータベースへのクエリを実行する
STEP-3.Azure Data Explorer の Python ライブラリを使用してデータベースへのクエリを実行する