0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#1 Azure Data Explorer を使ってみよう 【環境準備編】

Last updated at Posted at 2021-11-10

【 Azure Data Explorer 分析・可視化編 その1 】

概要

Azure Data Explorer を使ってみよう! ということで、以下の3ステップで簡単に說明します

  1. 【環境準備編】:Azure Data Explorer 環境を作成し、ADLS Gen2 のデータを抽出します
  2. 【可視化編】:Data Explorer で クエリー処理 されたデータを可視化し、共有します

image.png

今回は 【環境準備編】の說明となります

  • Azure DataLake Storage Gen2
    • データの確認
  • Azure Data Explorer
    • クラスターの作成
    • データベースの作成
    • インジェストの作成

ローカル環境

  • macOS Big Sur 11.3
  • python 3.8.3
  • Azure CLI 2.28.0

前提条件

  1. Azure環境がすでに用意されていること(テナント/サブスクリプション)
  2. ローカル環境に「azure cli」がインストールされていること。
  3. 「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 ポータル画面を表示させます。
image.png

表示された「Ingest new data」の「Destination」タブ画面において、以下の値を設定し、画面下部の「Next Source」ボタンを押す

項目
Cluster iturudecluster01.japaneast
Database database01
Table Create new table - tbl001

image.png

次に表示された「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

「ファイルを定義するスキーマ」の選択ではどちらでも同じなので上のものを選択しておきます。

image.png

次に表示された「Ingest new data」の「Schema」タブ画面において、以下の値を設定し、画面下部の「Next Summary」ボタンを押す

項目
Compression Type Uncompressed
Data format JSON
Nexted levels 1
Mapping tbl001_mapping

image.png

最後に「データ インジェスト完了」画面が表されます。問題がなければ画面下部の「Close」ボタンを押す

image.png

Azure Portal の 「Azure Data Explorer クラスター」画面の左側から「クエリ」を選択し、「.show databases」コマンドを「クエリ ウィンドウ」に入力後、 [実行] を選択します。結果セットには、データベースである 「database01」 が表示されることを確認します。

image.png


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 を使用した環境構築でした、、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?