Help us understand the problem. What is going on with this article?

Azure Table Storageの情報をExcelとPower BIへインポート & グラフ化

はじめに

本記事は「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」をメモします。
2019-11-17_19h52_59.png

Power Queryを使用してAzure Table Storageの情報をインポート

Excelを起動し、データタブ内の「データ変換 -> Azureから -> Azure テーブル ストレージから」をクリックします。
2019-11-17_19h37_39.png

前項で確認したAzure Table Storageのアカウント名を入力し、OKをクリックします。
2019-11-17_23h42_12.png

前項で確認したAzure Table Storageのアカウントキーを入力し、接続をクリックします。
2019-11-17_19h54_48.png

ナビゲータが開かれるのでテーブル名(accesslog)をクリックすると情報が表示されます。
その後、データの変換をクリックします。
2019-11-17_19h53_50.png

Power Queryのエディタが起動するのでContentの右にあるアイコンを押し、情報を展開し確認します。
2019-11-17_19h55_23.png

不要な情報の列がある場合は、列自体は削除することができます。
今回はTimestampの情報を削除します。

「Timestamp」上で右クリックし、「削除」を左クリックします。
2019-11-17_19h56_15.png

次にテーブル結合するためのidlistテーブルを読み込みます。
「ホームタブ -> 新しいソース -> Azure -> テーブルストレージ」をクリックします。
2019-12-01_11h53_28.png

idlistのテーブルをクリック後、「OK」をクリックします。
2019-12-01_11h54_34.png

Power Query上にidlistが読込まれるので、Contentの右にあるアイコンを右クリックし、
全てにチェックが入っていること確認したら「OK」をクリックし情報を展開します。
2019-12-01_11h55_07.png

次にaccesslogとidlistのテーブルを結合します。
「ホームタブ > クエリのマージの右側の▼マーク -> 新規としてクエリをマージ」をクリックします。
2019-12-01_11h56_49.png

結合したいテーブル2つ(idlistとaccesslog)を選択し、共通の項目であるRowKeyをクリックします。
結合の種類は内部を選択し、「OK」をクリックします。
2019-12-01_11h58_27.png

idlistとaccesslogのテーブルが結合されたMerge1という新しいテーブルが作成されます。
読み込んだ時点ではaccesslogの情報は省略されていますので展開しましょう。
2019-12-01_11h59_58.png

すると全ての情報が展開されます。
今回はグラフ表示に必要な情報のみを表示したいので、「列の選択」をクリックします。
2019-12-01_12h00_41.png

表示したい列にチェックを入れて「OK」をクリックします。
2019-12-01_12h01_14.png

次に列を結合してみましょう。
苗字と名前の列が別に存在しているので氏名として1つの列に結合させます。
Content.LastNameとContent.FisrtNameをどちらも選択状態(緑背景)にし
列を右クリックし「列のマージ」をクリックします。
2019-12-01_12h01_58.png

区切り記号は「スペース」し、新しい列名は「氏名」とし、「OK」をクリックします。
2019-12-01_12h02_34.png

「閉じて読み込む」をクリックします。
2019-12-01_12h03_13.png

エクセルのシートにクエリが読み込まれます。
2019-12-01_22h29_47.png

以上でAzure Table Storageの情報をExcelへインポートが完了です。

折れ線グラフの作成

現状の表ではyamadaさんとsuzukiさんの勤怠情報が混ざっているため、
グラフにする際に都合が悪いです。
縦軸を日付、横軸を氏名になるように表を加工します。

「デザイン -> ピボットテーブルで集計」をクリックします。
2019-12-01_12h04_39.png

結合した「Merge1」のテーブルを選択し、
配置する場所は「新規ワークシート」を選択し、「OK」をクリックします。
2019-12-01_12h04_57.png

ウィンドウ右側に「ピボットテーブルのフィールド」が表示されますので
以下の手順でグラフを設定します。
①「氏名」をドラッグし、「列」にドロップします。
②「accesslog.PartitionKey」をドラッグし、「行」にドロップします。
③「accesslog.Content.WorkTime」をドラッグし、「値」にドロップします。
④,⑤グラフの「折れ線グラフ」をクリックします。

2019-12-01_12h06_39.png

結果、yamadaさんとsuzukiさんの日別のWorkTimeがグラフ表示されます。
2019-12-01_12h14_49.png

以上で折れ線グラフの作成が完了です。

B. Azure Table Storageの情報をPower BIへインポート

Power BI Desktopをインストール

公式サイト(https://powerbi.microsoft.com/ja-jp/desktop/)からPower BIの無料ソフトをインストールします。

起動すると以下のような画面が表示されますので
「無料で試す」か「サインイン」もしくは「右上の×」をクリックします。

2019-11-18_00h24_17.png

処理が完了すると真っ白なキャンパスが表示されます。
2019-12-01_22h53_16.png

Power Queryを使用してAzure Table Storageの情報をインポート

おおまかな手順はExcelと同じです。
「ホーム」タブをクリックし、「データを取得」ボタンをクリックします。

2019-11-17_20h00_45.png

「Azure -> Azure Table Storege」をクリックし、接続をクリックします。
2019-11-17_20h01_18.png

「Azure Table Storageのアカウントとアカウントキーを確認」の情報を入力していきます。

Azure Table Storageのアカウント名を入力し、「OK」をクリックします。
2019-11-17_20h01_36.png

Azure Table Storageのアカウントキーを入力し、「接続」をクリックします。
2019-11-17_20h01_55.png

ナビゲータが開かれるのでaccesslogとidlistのテーブルにチェックを入れ、データの変換をクリックします。
2019-12-01_22h56_02.png

Power Queryエディタが開かれるのでaccesslog,idlistともにContentの右にあるアイコンをクリックし、
全てにチェックがついているのを確認し、「OK」をクリックすると情報が展開されます。
2019-12-01_22h57_32.png
2019-12-01_22h57_57.png

accesslogとidlistのテーブルを結合します。
「ホームタブ > クエリのマージの右側の▼マーク -> 新規としてクエリをマージ」をクリックします。
2019-12-01_23h01_28.png

結合したいテーブル2つ(idlistとaccesslog)を選択し、共通の項目であるRowKeyをクリックします。
結合の種類は内部を選択し、「OK」をクリックします。
2019-12-01_22h59_35.png

idlistとaccesslogのテーブルが結合されたMerge1という新しいテーブルが作成されます。
読み込んだ時点ではaccesslogの情報は省略されていますので展開しましょう。
2019-12-01_23h02_06.png

すると全ての情報が展開されます。
今回はグラフ表示に必要な情報のみを表示したいので、「列の選択」をクリックします。
2019-12-01_23h03_05.png

表示したい列にチェックを入れて「OK」をクリックします。
2019-12-01_23h03_33.png

次にExcelの手順同様に列を結合してみましょう。
苗字と名前の列が別に存在しているので氏名として1つの列に結合させます。
2019-12-01_23h04_07.png

区切り記号は「スペース」し、新しい列名は「氏名」とし、「OK」をクリックします。
2019-12-01_23h09_43.png

次にaccesslog.PartationKeyとaccesslog.Content.WorkTimeの型をキャストします。
※PowerBI Desktopの場合、キャストしないとグラフツールで正しくソートされません。

accesslog.PartationKeyは日付に変換します。
2019-12-01_23h12_42.png

accesslog.Content.WorkTimeは10進数に変換します。
2019-12-01_23h13_09.png

編集が完了したら、「閉じて適用」をクリックします。
2019-12-02_00h30_53.png

「フィルター -> 視覚化 -> フィールド」内にPower Queryエディタで編集した情報が表示されます。
2019-12-01_23h13_50.png

以上でAzure Table Storageの情報をPower BIへインポートが完了です。

折れ線グラフの作成

一般的な折れ線グラフを使用して情報を可視化します。

①「フィルター -> 視覚化」内の折れ線グラフのアイコンをクリックします。
②「accesslog.PartitionKey -> 日付の階層 -> 日」をドラッグし、「軸」にドロップします。
③「氏名」をドラッグし、「凡例」にドロップします。
④「accesslog.Content.WorkTime」をドラッグし、「値」にドロップします。
⑤折れ線グラフに情報が表示されるので、見やすいサイズにウィンドウを調整します。

2019-12-01_23h15_43.png

以上で、Power BIのグラフ化手順が完了です。

まとめ

・ExcelとPower BIのどちらもPower Queryが備わっており、インポート自体は5~10分で完了できる。

・Power Queryを使用するとデータ加工やインポートが簡単にできる。

・Power BI Desktopは可視化するためのツールで無料である。

・Power BI Desktopで作成したグラフをチームで共有するためには別途ライセンスが必要になる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away