#はじめに
本記事は「ICカードリーダで取得した情報を4GPi経由でAzure Table Storageに保存」の続編になります。
Azure Table Storageに情報を保存する方法については上記記事を参照ください。
##本記事で学べる事
ExcelおよびPowerBIにて以下の手順を紹介しています。
①Azure Table Storageの情報をインポート
②テーブルの内部結合(Power Query)
③データ列の結合(Power Query)
④折れ線グラフの作成
##Azure Table Storageとは?
Azure Table Storageとは、NoSQLの構造化データをクラウド内に格納するマネージドサービスです。
大規模な半構造化データセットを使用して迅速な開発を行うための
NoSQLキーバリューストアサービスです。
AzureにはCOSMOS DBというデータストレージもありますが、
今回は比較的安価なAzure Table Storageを使用します。
##Power BIとは?
Power BIは、情報を視覚化して分析するためのビジネスインテリジェンスです。
言い換えると、大量の情報をグラフや表など人の目に分かりやすい形で表現し、
分析するためのツールです。
Power BIはアプリやWebサイトに埋め込むことも可能ですので、
他人数での共有や拡張に自由度があるのが特徴です。
※共有には有料ライセンスが必要です。
##Azure Table Storageの情報をExcel や Power BIへインポートするのは簡単?
ExcelとPower BIのどちらもアドインのPower Queryを使用すると
簡単にデータベースやファイルの情報をインポート・加工・変換ができます。
また、MicroSoft製品であるAzureからの情報をインポートは
専用の読み込みボタンがあり、手順も簡単で1分もあれば情報をインポートできます。
#A. Azure Table Storageの情報をExcelへインポート
##Azure Table Storageのアカウントとアカウントキーを確認
データをインポートする前にAzure Table Storageのアカウントとアカウントキーを参照する必要があります。
アカウントとアカウントキーはAzureのポータル(https://portal.azure.com/)から確認できます。
ポータル内で「Home -> Storage accounts -> 4gpi -> Access keys」の順にクリックして
以下画像のように表示されますので「Strage account name」と「key -> Key1」をメモします。
##Power Queryを使用してAzure Table Storageの情報をインポート
Excelを起動し、データタブ内の「データ変換 -> Azureから -> Azure テーブル ストレージから」をクリックします。
前項で確認したAzure Table Storageのアカウント名を入力し、OKをクリックします。
前項で確認したAzure Table Storageのアカウントキーを入力し、接続をクリックします。
ナビゲータが開かれるのでテーブル名(accesslog)をクリックすると情報が表示されます。
その後、データの変換をクリックします。
Power Queryのエディタが起動するのでContentの右にあるアイコンを押し、情報を展開し確認します。
不要な情報の列がある場合は、列自体は削除することができます。
今回はTimestampの情報を削除します。
「Timestamp」上で右クリックし、「削除」を左クリックします。
次にテーブル結合するためのidlistテーブルを読み込みます。
「ホームタブ -> 新しいソース -> Azure -> テーブルストレージ」をクリックします。
idlistのテーブルをクリック後、「OK」をクリックします。
Power Query上にidlistが読込まれるので、Contentの右にあるアイコンを右クリックし、
全てにチェックが入っていること確認したら「OK」をクリックし情報を展開します。
次にaccesslogとidlistのテーブルを結合します。
「ホームタブ > クエリのマージの右側の▼マーク -> 新規としてクエリをマージ」をクリックします。
結合したいテーブル2つ(idlistとaccesslog)を選択し、共通の項目であるRowKeyをクリックします。
結合の種類は内部を選択し、「OK」をクリックします。
idlistとaccesslogのテーブルが結合されたMerge1という新しいテーブルが作成されます。
読み込んだ時点ではaccesslogの情報は省略されていますので展開しましょう。
すると全ての情報が展開されます。
今回はグラフ表示に必要な情報のみを表示したいので、「列の選択」をクリックします。
次に列を結合してみましょう。
苗字と名前の列が別に存在しているので氏名として1つの列に結合させます。
Content.LastNameとContent.FisrtNameをどちらも選択状態(緑背景)にし
列を右クリックし「列のマージ」をクリックします。
区切り記号は「スペース」し、新しい列名は「氏名」とし、「OK」をクリックします。
以上でAzure Table Storageの情報をExcelへインポートが完了です。
折れ線グラフの作成
現状の表ではyamadaさんとsuzukiさんの勤怠情報が混ざっているため、
グラフにする際に都合が悪いです。
縦軸を日付、横軸を氏名になるように表を加工します。
「デザイン -> ピボットテーブルで集計」をクリックします。
結合した「Merge1」のテーブルを選択し、
配置する場所は「新規ワークシート」を選択し、「OK」をクリックします。
ウィンドウ右側に「ピボットテーブルのフィールド」が表示されますので
以下の手順でグラフを設定します。
①「氏名」をドラッグし、「列」にドロップします。
②「accesslog.PartitionKey」をドラッグし、「行」にドロップします。
③「accesslog.Content.WorkTime」をドラッグし、「値」にドロップします。
④,⑤グラフの「折れ線グラフ」をクリックします。
結果、yamadaさんとsuzukiさんの日別のWorkTimeがグラフ表示されます。
以上で折れ線グラフの作成が完了です。
#B. Azure Table Storageの情報をPower BIへインポート
##Power BI Desktopをインストール
公式サイト(https://powerbi.microsoft.com/ja-jp/desktop/)からPower BIの無料ソフトをインストールします。
起動すると以下のような画面が表示されますので
「無料で試す」か「サインイン」もしくは「右上の×」をクリックします。
##Power Queryを使用してAzure Table Storageの情報をインポート
おおまかな手順はExcelと同じです。
「ホーム」タブをクリックし、「データを取得」ボタンをクリックします。
「Azure -> Azure Table Storage」をクリックし、接続をクリックします。
「Azure Table Storageのアカウントとアカウントキーを確認」の情報を入力していきます。
Azure Table Storageのアカウント名を入力し、「OK」をクリックします。
Azure Table Storageのアカウントキーを入力し、「接続」をクリックします。
ナビゲータが開かれるのでaccesslogとidlistのテーブルにチェックを入れ、データの変換をクリックします。
Power Queryエディタが開かれるのでaccesslog,idlistともにContentの右にあるアイコンをクリックし、
全てにチェックがついているのを確認し、「OK」をクリックすると情報が展開されます。
accesslogとidlistのテーブルを結合します。
「ホームタブ > クエリのマージの右側の▼マーク -> 新規としてクエリをマージ」をクリックします。
結合したいテーブル2つ(idlistとaccesslog)を選択し、共通の項目であるRowKeyをクリックします。
結合の種類は内部を選択し、「OK」をクリックします。
idlistとaccesslogのテーブルが結合されたMerge1という新しいテーブルが作成されます。
読み込んだ時点ではaccesslogの情報は省略されていますので展開しましょう。
すると全ての情報が展開されます。
今回はグラフ表示に必要な情報のみを表示したいので、「列の選択」をクリックします。
次にExcelの手順同様に列を結合してみましょう。
苗字と名前の列が別に存在しているので氏名として1つの列に結合させます。
区切り記号は「スペース」し、新しい列名は「氏名」とし、「OK」をクリックします。
次にaccesslog.PartationKeyとaccesslog.Content.WorkTimeの型をキャストします。
※PowerBI Desktopの場合、キャストしないとグラフツールで正しくソートされません。
accesslog.PartationKeyは日付に変換します。
accesslog.Content.WorkTimeは10進数に変換します。
「フィルター -> 視覚化 -> フィールド」内にPower Queryエディタで編集した情報が表示されます。
以上でAzure Table Storageの情報をPower BIへインポートが完了です。
##折れ線グラフの作成
一般的な折れ線グラフを使用して情報を可視化します。
①「フィルター -> 視覚化」内の折れ線グラフのアイコンをクリックします。
②「accesslog.PartitionKey -> 日付の階層 -> 日」をドラッグし、「軸」にドロップします。
③「氏名」をドラッグし、「凡例」にドロップします。
④「accesslog.Content.WorkTime」をドラッグし、「値」にドロップします。
⑤折れ線グラフに情報が表示されるので、見やすいサイズにウィンドウを調整します。
以上で、Power BIのグラフ化手順が完了です。
#まとめ
・ExcelとPower BIのどちらもPower Queryが備わっており、インポート自体は5~10分で完了できる。
・Power Queryを使用するとデータ加工やインポートが簡単にできる。
・Power BI Desktopは可視化するためのツールで無料である。
・Power BI Desktopで作成したグラフをチームで共有するためには別途ライセンスが必要になる。