search
LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

Organization

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で作成したグラフをチームで共有するためには別途ライセンスが必要になる。

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
What you can do with signing up
2