シニア テクニカル アーキテクト
清水 優吾(しみず ゆうご) / 株式会社セカンドファクトリー
@yugoes1021
yugoes1021 Microsoft MVP
for Data Platform - Power BI
(2017.02 -)
いまできるデータ分析を
Power BI ではじめよう
~ Let’s start Power BI from Flat files (CSV, Excel) ~
2018-08-28
データ分析プラットフォーム勉強会#3 @ SGT
2018/08/28 データ分析プラットフォーム勉強会 #3 1
https://www.slideshare.net/yugoes1021
自己紹介:
清水 優吾 (Yugo Shimizu) ♂
株式会社セカンドファクトリー
シニア テクニカル アーキテクト
2018/08/28 データ分析プラットフォーム勉強会 #3 2
• もともと金融系システムの開発者。今はテクニカルアーキテクト。
• 時々コーディングもしてます。
専門: Power BI, Web API, “つくらず、つなぐこと”
興味: MS Flow, Logic Apps, IFTTT, PowerApps, o365 周辺サービス
Twitter: @yugoes1021 Facebook: yugoes1021
Qiita: https://qiita.com/yugoes1021
Power BI 勉強会: https://powerbi.connpass.com
Microsoft MVP
for Data Platform -
Power BI
(2017.02 - )
注意事項と前提
■注意事項
• 資料はすべて公開(powerbi.connpass.com or SlideShare)
• 写真・動画の撮影は自由に!
• 私の肖像権はフリー
• SNS 等へのアップOK(私以外の方が含まれる場合は、ご遠慮願います。)
ハッシュタグ:
#PowerBI #PBIJP #PBIJP758
■私が心掛けていること
• 誰でも実現可能な方法であること
• お金がかかっても、できるだけ安価であること
• なにより「試してみよっかなー」と思っていただけること
2018/08/28 データ分析プラットフォーム勉強会 #3 3
https://www.slideshare.net/yugoes1021
お約束
2018/08/28 データ分析プラットフォーム勉強会 #3 4
What is BI?
データベース
ダッシュボード
レポート
会議で JUDGE現場へ GO
Business Intelligence
現場で DO
意
思
決
定
の
た
め
に
通常業務により自然と溜まるデータ
どこでも SEE
現場で DO
5
データベース
ダッシュボード
レポート
Business Intelligence
現場で DO
通常業務により自然と溜まるデータ
どこでも SEE
現場で DO
6
2018/08/28 データ分析プラットフォーム勉強会 #3 7
理想はわかった
でもそこに行くまでに
どうしたらいいの?
2018/08/28 データ分析プラットフォーム勉強会 #3 8
理想はわかった
でもそこに行くまでに
どうしたらいいの?
フェーズ1
手動
フェーズ2
自動化
フェーズ3
マルチソース化
難易度
価値
コ
ス
ト
(
時
間
と
お
金
)
2018/08/28 9
【フェーズ1】
システムからデータをフラットファイル(CSV、Excel)でダウ
ンロード
データをグラフ化して、ファイルを共有
分析
現場へ
手動で
ダウン
ロード
DB
分析
可視化
全体のコストの80-90%
議論・判
断
2018/08/28 10
【フェーズ2】
システムと BI ツールを自動連携。定期的かつ必要なタイミ
ングで最新データがグラフ化され、分析や議論に適切な時間
を費やすことができ、繰り返し「試行」が可能となる
自動連携
議論・判
断
BI ツー
ル
DB
現場へ
可視化
全体のコストの80-90%
分析
試行
2018/08/28 11
【フェーズ3】
複数のシステムをデータソースとして DWH を構成、データ
を一元管理して、BI ツールを自動連携。データがグラフ化さ
れ、分析や議論。
自動連携
分析
議論・判
断
BI ツー
ル
DB
現場
へ
可視化
DB
SaaS
SNS
DWH
レ
ポ
ー
テ
ィ
ン
グ
モ
デ
リ
ン
グ
2018/08/28 データ分析プラットフォーム勉強会 #3 12
1.データソース接続
2.データ取得 (Extract)
3.変換、整形 (Transform)
4.モデルへの読み込み (Load)
5.リレーションの設定
6.レポート作成
7.ダッシュボード作成
8.レポート、ダッシュボードの共有
9.通知設定
Power BI のレポートを作成するまでに必要な手順
7~9はオプションです
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 13
フェーズ1のシナリオです
2018/08/28 データ分析プラットフォーム勉強会 #3 14
BI ツール
Power BI
Desktop
データソース
CSV, Excel
DB
フェーズ1
• データソースのファイルは毎月作成される
• 毎月締めごとにレポートを作成したくない
フェーズ1のシナリオです
2018/08/28 データ分析プラットフォーム勉強会 #3 15
BI ツール
Power BI
Desktop
CSV, Excel
DB
• データソースのファイルは毎月作成される
• 毎月締めごとにレポートを作成したくない
データソース
共有フォルダ
Windows
Server
データソースをフォルダにすることで、毎月作成されるファイルをフォルダに保存し、
Power BI Desktop でデータの最新化をするだけで OK。レポートを再作成する必要はない
フェーズ1
SaaS
Power BI
Service
レポート
発行
フェーズ1のシナリオです
2018/08/28 データ分析プラットフォーム勉強会 #3 16
CSV, Excel
DB
• データソースのファイルは毎月作成される
• 毎月締めごとにレポートを作成したくない
フェーズ1
SaaS
Power BI
Service
最新データ
オンプレミス
データゲートウェイ
データソース
共有フォルダ
Windows
Server
共有フォルダにアクセス可能な Windows Server にオンプレミスデータゲートウェイを
インストールすることで共有フォルダのデータが Power BI Service に送られる
オンプレミスデータゲートウェイ
https://docs.microsoft.com/ja-jp/power-bi/service-gateway-onprem
Demo
2018/08/28 データ分析プラットフォーム勉強会 #3 17
2018/08/28 データ分析プラットフォーム勉強会 #3 18
0.[準備]Power BI Desktop を起動し [ファイル] ⇒ [オプションと設定] ⇒ [オプション]
フェーズ1
②
①
③
④
2018/08/28 データ分析プラットフォーム勉強会 #3 19
①
②
③
④
1.Power BI Desktop を起動し [データを取得] をクリック
フェーズ1
注意:
前のページでオプション設定をしていないと
このドロップダウンは出てきません
フォルダパスをパラメータ化しておくと汎用
的な pbix が作れます
2018/08/28 データ分析プラットフォーム勉強会 #3 20
①
名前:フォルダパス
説明:(任意)
必須:チェック
種類:すべて
提案された値:任意の値
現在の値:
C:WorkCAPJPData
②
③
④
⑤
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 21
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 22
各列の型(タイプ)を適切に設定していく
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 23
このエラーが表示された場合
[プレビューの更新] をクリックすれば OK
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 24
このエラーが表示された場合
[プレビューの更新] をクリックすれば OK
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 25
日付 時刻 文字列 文字列
文字列 文字列 固定
小数点数
整数 固定
小数点数
すべての列に設定後
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 26
設定が終わったら [閉じて適用]
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 27
2.カレンダーテーブルを作る カレンダー =
var BaseCalendar = CALENDAR("2018/01/01", TODAY())
RETURN
GENERATE(
BaseCalendar,
var BaseDate = [Date]
var YearNumber = YEAR(BaseDate)
var MonthNumber = MONTH(BaseDate)
var DayNumber = WEEKDAY(BaseDate, 1)
RETURN ROW(
"年", YearNumber,
"月番号", MonthNumber,
"月", FORMAT(BaseDate, "mm月"),
"年月", FORMAT(BaseDate, "yyyy年mm月"),
"曜日番号", DayNumber,
"曜日", SWITCH(
DayNumber, 1, "日", 2, "月", 3, "火", 4, "水", 5, "木", 6, "金", 7, "土",""),
"週番号", WEEKNUM(BaseDate, 1),
"週", FORMAT(WEEKNUM(BaseDate, 1), "第00週")
)
)
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 28
2.カレンダーテーブルを作る
必要に応じて以下を確認&設定
1. [書式設定]
データ型、書式、
2. 並べ替えの設定
3. 可視化に不要な列を非表示に
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 29
3.リレーションシップを設定
カレンダー.日付 : 売上.Date = 1:n
を設定する
[日付] を [Date] に
ドラッグ&ドロップする
フェーズ1
2018/08/28 データ分析プラットフォーム勉強会 #3 30
フェーズ1
7月の Power BI Desktop の更新で
• 1対1
• 1対多
• 多対1
に加えて 多対多 のリレーションが
指定可能になりました(まだプレビュー)
2018/08/28 データ分析プラットフォーム勉強会 #3 31
2018/08/28 データ分析プラットフォーム勉強会 #3 32
ちょっとデータを見てみましょう
2018/08/28 データ分析プラットフォーム勉強会 #3 33
• POS や売上データによくあるこの形
• データに [コード] と [名称] を含んでいる(商品、カテゴリー)
• このままだと RDB 化するのに都合が悪い
こういう時は Power Query でデータを
マスタに分けましょう。
元データからマスタを作るには
2018/08/28 データ分析プラットフォーム勉強会 #3 34
[クエリを編集] ⇒ [クエリを編集] で Power Query エディターを起動
元データを含んでいる クエリ を右クリック ⇒ [参照]
2018/08/28 データ分析プラットフォーム勉強会 #3 35
元データが持っている [コード] や [名称] をマスタ化するために、
1. 作成するマスタの名称に変える
2. 必要な [コード] と [名称] 以外の列を削除する
元データからマスタを作るには
2018/08/28 データ分析プラットフォーム勉強会 #3 36
元データからマスタを作るには
マスター化完了
2018/08/28 データ分析プラットフォーム勉強会 #3 37
元データからマスタを作るには
同様の手順で商品も
マスター化完了
2018/08/28 データ分析プラットフォーム勉強会 #3 38
元データからマスタを作るには
CategoryName
ProductName
これらはマスタに
存在しているので、
非表示にする
右クリック ⇒
[レポートビューの
非表示]
スタースキーマ化後のモデル
2018/08/28 データ分析プラットフォーム勉強会 #3 39
元のデータ
2018/08/28 40
FACT
Dimension
DimensionDimension
Dimension
Dimension
2018/08/28 41
Dimension
DimensionDimension
Dimension
Dimension
One Fact and Multi Dimensions
2018/08/28 データ分析プラットフォーム勉強会 #3 42
翌月になりデータが増えた場合
CSV, Excel
新しいデータを該当フォルダ (C:WorkCAPJPData )
にコピーするだけで OK
データソースをフォルダにしている場合
• 拡張子が同じならファイル名は何でもよい
• データフォーマットは同じでなければならない
• 社内の共有フォルダがおすすめ
• データの整形(ETL)は不要
2018/08/28 データ分析プラットフォーム勉強会 #3 43
【フェーズ1】
システムからデータをフラットファイル(CSV、Excel)でダウ
ンロード
データをグラフ化して、ファイルを共有
分析
現場へ
手動で
ダウン
ロード
DB
分析
可視化
全体のコストの80-90%
議論・判
断
フェーズ2
2018/08/28 データ分析プラットフォーム勉強会 #3 44
2018/08/28 データ分析プラットフォーム勉強会 #3 45
【フェーズ2】
システムと BI ツールを自動連携。定期的かつ必要なタイミ
ングで最新データがグラフ化され、分析や議論に適切な時間
を費やすことができ、繰り返し「試行」が可能となる
自動連携
議論・判
断
BI ツー
ル
DB
現場へ
可視化
全体のコストの80-90%
分析
試行
フェーズ2
フェーズ2に移行するには以下2つが必要
1. BI 専用の DB
実は既に DB 設計はほぼ完了している
左の Power BI Desktop のリレーションシップ画面
の通りに DB を作成すれば OK
2. 元のデータソースから DB にデータを連携
データ連携の From, To により使えるツールが変わる。
Microsoft Flow, Azure Logic Apps
Azure Data Factory, HDInsight
連携ロジックが複雑な場合は Azure Functions や
AWS Lambda のようなソースコードをデプロイ可能
なサーバーレスコンピューティングサービスを検討す
る
2018/08/28 データ分析プラットフォーム勉強会 #3 46
フェーズ2
フェーズ2以降は技術者のチカラが必要になります
大事なのはフェーズ1を可能な限り早く実現してしまうこと
そうすればフェーズ2以降の実現の可能性がグッと高くなります
2018/08/28 データ分析プラットフォーム勉強会 #3 47
フェーズ2
ぜひ フェーズ3 を目指して
まずは フェーズ1 を実現してみてください
2018/08/28 データ分析プラットフォーム勉強会 #3 48
2018/08/28 データ分析プラットフォーム勉強会 #3 49
【Appendix】
Power BI を使用した
トータルソリューション
Business Application Platform (Citizen Application Platform)
2018/08/28 データ分析プラットフォーム勉強会 #3 50
Flow Power BIPowerApps
• “コーディングなし” で
アプリが作れる
• マルチプラットフォーム
で動作する
• アプリは組織内で管理
• インストール不要
• “コーディングなし” で
ビジネスロジックが
作れる
• 1つのトリガーと
1つ以上のアクション
• MS以外のサービスも
接続可能
• “コーディングなし” で
BI が実現できる
• データの可視化
• 分析用レポート
• リアルタイム
ダッシュボード
• 一時的にデータを保持
Office 365
Business Application Platform (Citizen Application Platform)
2018/08/28 データ分析プラットフォーム勉強会 #3 51
Flow Power BIPowerApps
Frontend Business Logic Data
Office 365
つまり システム が作れる
Appendix
2018/08/28 データ分析プラットフォーム勉強会 #3 52
デモ1
PowerApps + Flow + Power BI
= 飲食店ソリューション
2018/08/28 データ分析プラットフォーム勉強会 #3 53
デモ1
デモ1のシナリオです
2018/08/28 データ分析プラットフォーム勉強会 #3 54
こんな行列
よくありま
すよね?
2018/08/28データ分析プラットフォーム勉強会 #3 55
例えば飲食店…
名前を書いて…待つ。。。
2018/08/28 データ分析プラットフォーム勉強会 #3 56
2018/08/28 データ分析プラットフォーム勉強会 #3 57
だから最近こんなの増えてますよね
https://www.recruit-lifestyle.co.jp/news/pressrelease/business/nw16192_20160225 より引用
デモ1
で、これを
PowerApps + Flow + Power BI で
作ってみた
2018/08/28 データ分析プラットフォーム勉強会 #3 58
デモ1のアーキテクチャ
2018/08/28 データ分析プラットフォーム勉強会 #3 59
Power BI Service
PowerApps
からデータ送信
Microsoft Flow
PowerApps
Teams
Mail
デモ2
Flow + AI + Power BI
= SNS投稿写真管理ソリューション
2018/08/28 データ分析プラットフォーム勉強会 #3 60
デモ2
デモ2のシナリオです
2018/08/28 データ分析プラットフォーム勉強会 #3 61
デモ2
2018/08/28 データ分析プラットフォーム勉強会 #3 62
Facebook と Twitter など複数の SNS に
同じ写真をそれぞれ投稿するのはめんどい…
デモ2
2018/08/28 データ分析プラットフォーム勉強会 #3 63
一発で両方に投稿したい
ってことでこれを Flow でやってみた
2018/08/28 データ分析プラットフォーム勉強会 #3 64
Microsoft
Flow Text
Analytics
Computer
Vision
ついでに投稿内容を
Cognitive Services で
解析しちゃおう
Microsoft
Flow アプリ
ボタン
Power BI
Service
Blob
Storage
Facebook
Twitter
まとめ
2018/08/28 データ分析プラットフォーム勉強会 #3 65
2018/08/28 データ分析プラットフォーム勉強会 #3 66
いかがでしたでしょうか?
Power BI
いろんな使い方ができるでしょ?
Business Application Platform (Citizen Application Platform)
2018/08/28 データ分析プラットフォーム勉強会 #3 67
Flow Power BIPowerApps
Frontend Business Logic Data
Office 365
つまり アイデア しだい
2018/08/28 データ分析プラットフォーム勉強会 #3 68
実業務で フェーズ1~3の
実現を目指したい方は
お仕事のご依頼
お待ちしております
(*ノωノ)
2018/08/28 データ分析プラットフォーム勉強会 #3 69
あるいは
9/8(土) 13:00 – 18:00 @ SGT
Power BI 勉強会 @ 東京 #9
https://powerbi.connpass.com/event/95698/
2018/08/28 データ分析プラットフォーム勉強会 #3 70
https://www.facebook.com/groups/JapanPBUG/
Power BI に興味がある人はもちろん
興味がない人もぜひご登録を(*’ω’*)
ご清聴ありがとうございました!
~ご不明な点は何なりと!~
2018/08/28 データ分析プラットフォーム勉強会 #3 71
より詳細にお話聞きたい、
実案件でご相談があるという場合は
遠慮なくお申し付けください
m(_ _)m

いまできるデータ分析を Power BI ではじめよう

Editor's Notes

  • #16 ここでデモに切り替える!
  • #17 ここでデモに切り替える!