【 Azure Data Explorer 分析・可視化編 その1 】
概要
Azure Data Explorer を使ってみよう! ということで、以下の3ステップで簡単に說明します
- 【環境準備編】:Azure Data Explorer 環境を作成し、ADLS Gen2 のデータを抽出します
- 【可視化編】:Data Explorer で クエリー処理 されたデータを可視化し、共有します
今回は 【環境準備編】の說明となります
- Azure DataLake Storage Gen2
- データの確認
- Azure Data Explorer
- クラスターの作成
- データベースの作成
- インジェストの作成
ローカル環境
- macOS Big Sur 11.3
- python 3.8.3
- Azure CLI 2.28.0
前提条件
- Azure環境がすでに用意されていること(テナント/サブスクリプション)
- ローカル環境に「azure cli」がインストールされていること。
- 「Azure Databricks を使ってみよう」の
【環境準備編】【抽出変換編】【格納編】の3つを完了していること
事前準備
Azure CLI の機能拡張
## 最新の Data Explorer CLI(Kusto CLI)バージョンを使用する拡張機能をインストールします
$ az extension add -n kusto
## Azure CLI の確認
$ az version
{
"azure-cli": "2.28.0",
"azure-cli-core": "2.28.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {
"azure-iot": "0.10.13",
"databricks": "0.7.3",
"kusto": "0.3.0",
"stack-hci": "0.1.4"
}
}
Azure 環境の準備
### ローカル環境変数の定義
export RG_NAME_ETL=rg-ituru_bricks01
export RG_NAME=rg-ituru_explorer01
export SUBS_NAME=PSP2-01
export STORAGE_ACCOUNT=testaccount
export ETL_CONTAINER=etl-cost-data
export DE_CLUSTER_NAME=iturudecluster01
export DATABASE_NAME=database001
## 使用するテナントへのログイン
$ az login --tenant <tenant_id>
## 使用サブスクリプションの定義
$ az account set --subscription $SUBS_NAME
## 使用サブスクリプションの確認(IsDefault=True)
$ az account list --output table
## サブスクリプションのリソースIDを取得
$ SUBS_ID=$(az account show --query "id" --output tsv)
## Azure Data Explorer 用のリソースグループ作成
$ az group create --name $RG_NAME --location japaneast
Gen2 の Storage Account の確認
## ストレージアカウントの確認(接続文字列の取得可否で判断)
$ CONNECT_STRING=$(az storage account show-connection-string -g $RG_NAME_ETL -n $STORAGE_ACCOUNT --subscription $SUBS_NAME --output tsv)
$ echo $CONNECT_STRING
DefaultEndpointsProtocol=https;AccountName=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;EndpointSuffix=core.windows.net
## コンテナの確認
$ az storage container list --account-name $STORAGE_ACCOUNT --output table
Name Lease Status Last Modified
------------- -------------- -------------------------
cost-data 2021-10-15T20:22:38+00:00
etl-cost-data 2021-10-15T21:12:14+00:00
## 使用するコンテナのデータファイルの確認
## コンテナー内の BLOB を一覧表示する
$ az storage blob list --account-name $STORAGE_ACCOUNT --container-name $ETL_CONTAINER --output table
※【格納編】でサブスクリプション名で階層化したデータを使用します。
ParSubscription_02.json/Subscription=NSG-01
ParSubscription_02.json/Subscription=iapp-01
環境の構築
Azure Data Explorer の作成
## Azure Data Explorer クラスターの作成(完了まで、十数分かかります)
az kusto cluster create --name $DE_CLUSTER_NAME --sku name="Dev(No SLA)_Standard_E2a_v4" tier="Basic" --type "SystemAssigned" --resource-group $RG_NAME --location japaneast
## 作成したクラスターの確認
az kusto cluster show --cluster-name $DE_CLUSTER_NAME --resource-group $RG_NAME
## Azure Data Explorer クラスターでデータベースの作成
az kusto database create --cluster-name $DE_CLUSTER_NAME --database-name $DATABASE_NAME --resource-group $RG_NAME --read-write-database soft-delete-period=P7D hot-cache-period=P5D location=japaneast
## 作成したデータベースの確認
az kusto database show --database-name $DATABASE_NAME --resource-group $RG_NAME --cluster-name $DE_CLUSTER_NAME
Azure Data Explorer インジェストの作成
Azure Portal で上記で作成した Data Explorer サービスに移動し、「ステップ3:データ インジェスト」の 「新しいデータの取り込み」ボタンを押し、Azure Data Explorer ポータル画面を表示させます。
表示された「Ingest new data」の「Destination」タブ画面において、以下の値を設定し、画面下部の「Next Source」ボタンを押す
項目 | 値 |
---|---|
Cluster | iturudecluster01.japaneast |
Database | database01 |
Table | Create new table - tbl001 |
次に表示された「Ingest new data」の「Source」タブ画面において、以下の値を設定し、画面下部の「Next Schema」ボタンを押す
項目 | 値 |
---|---|
Source Type | ADLS Gen2 コンテナーから |
インジェストの種類 | 1回限りで継続的 |
Select source | コンテナーの選択 |
Storage subscription | PSP2-01 |
Storage account | testaccount |
Container | etl-cost-data |
Table | tbl01 |
Sample size | 1 - 5,000 |
File Filters - Folder path | ParSubscription_02.json |
File Filters - File extention | .json |
「ファイルを定義するスキーマ」の選択ではどちらでも同じなので上のものを選択しておきます。
次に表示された「Ingest new data」の「Schema」タブ画面において、以下の値を設定し、画面下部の「Next Summary」ボタンを押す
項目 | 値 |
---|---|
Compression Type | Uncompressed |
Data format | JSON |
Nexted levels | 1 |
Mapping | tbl001_mapping |
最後に「データ インジェスト完了」画面が表されます。問題がなければ画面下部の「Close」ボタンを押す
Azure Portal の 「Azure Data Explorer クラスター」画面の左側から「クエリ」を選択し、「.show databases」コマンドを「クエリ ウィンドウ」に入力後、 [実行] を選択します。結果セットには、データベースである 「database01」 が表示されることを確認します。
Azure Data Explorer データベースのクリーンアップ
## データベース一覧の表示
$ az kusto database list --cluster-name $DE_CLUSTER_NAME --resource-group $RG_NAME -o table
HotCachePeriod IsFollowed Kind Location Name ProvisioningState ResourceGroup SoftDeletePeriod
---------------- ------------ --------- ---------- --------------------------- ------------------- ------------------- ------------------
5 days, 0:00:00 False ReadWrite Japan East iturudecluster01/database01 Succeeded rg-ituru_explorer01 7 days, 0:00:00
## データベースをクリーンアップするには、データベースを削除します
$ az kusto database delete --cluster-name $DE_CLUSTER_NAME --resource-group $RG_NAME --name $DATABASE_NAME
Azure Data Explorer テーブルのクリーンアップ
## テーブルクリーンアップするには、テーブルを削除します
## 「クエリ ウィンドウ」 から以下を実行します
.drop table <table_name>
まとめ
Azure CLI と Azure Data Explorer Portal を使用した環境構築でした、、、