O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~

1.373 visualizações

Publicada em

2017.09.09 CLR/H #clrh106 ~ オータムフェストを楽しもう ~ にて、ITPro トラックにて使用した資料です。

Publicada em: Dados e análise
  • Entre para ver os comentários

Facebook のデータを Power BI で見てみると…~セルフマーケティングに活用できるかも!?~

  1. 1. シニア テクニカル アーキテクト 清水 優吾(しみず ゆうご) / 株式会社セカンドファクトリー @yugoes1021 yugoes1021 Microsoft MVP for Data Platform - Power BI (2017.02 -) Facebook のデータを Power BI で見てみると… ~セルフマーケティングに活用できるかも!?~ http://bit.ly/pbi0909-yugo https://www.slideshare.net/yugoes1021/facebook-power-bi-79439498 2017-09-09 CLR/H #clrh106 ~ オータムフェストを楽しもう ~
  2. 2. 本セッションのゴール はい、皆さん。 Power BI 使ってますか? 2017/09/09 CLR/H #clrh106
  3. 3. 本セッションのゴール 2017/09/09 CLR/H #clrh106
  4. 4. 本セッションのゴール 2017/09/09 CLR/H #clrh106
  5. 5. 本セッションのゴール マイクロソフトの SaaS として提供されており、 無償で使用開始できる BI ツール 2017/09/09 CLR/H #clrh106
  6. 6. 本セッションのゴール 今日はちょこっとだけ使用しながら、 データ分析に一歩踏み出してみましょう。 2017/09/09 CLR/H #clrh106
  7. 7. 本セッションのゴール というわけで、本セッションのゴールは Power BI でデータ分析ってこうやるんだ! という入り口に皆さんをお連れすること です。 ちなみに Facebook データを使用します。 2017/09/09 CLR/H #clrh106
  8. 8. 自己紹介: 清水 優吾 (Yugo Shimizu) ♂ 株式会社セカンドファクトリー シニア テクニカル アーキテクト • もともと金融系システムの開発者。今はテクニカルアーキテクト。 • 時々コーディングもしてます。開発者の端くれです。 専門: Power BI, Web API, “つくらず、つなぐこと” Twitter: @yugoes1021 Facebook: https://www.facebook.com/yugoes1021 Power BI 勉強会: https://powerbi.connpass.com Japan Web API Community: https://jwacom.connpass.com 2017/09/09 CLR/H #clrh106 Microsoft MVP for Data Platform - Power BI (2017.02 - )
  9. 9. 注意事項と前提 ■注意事項 • 資料はすべて公開(SlideShare) • 写真・動画の撮影は自由に! • 私の肖像権はフリー • SNS 等へのアップOK(私以外の方が含まれる場合は、ご遠慮願います。) ハッシュタグ: #PowerBI #PBIJP #CLRH106 ■私が心掛けていること • 誰でも実現可能な方法であること • お金がかかっても、できるだけ安価であること • なにより「試してみよっかなー」と思っていただけること 2017/09/09 CLR/H #clrh106
  10. 10. Power BI を使う際に最初に決めること 1. 取得対象のデータを決める 2. Power BI へのつなぎ方を決める つまり… 1. =データソース 2. =アーキテクチャ ということですね。 2017/09/09 CLR/H #clrh106 皆さん自身の Facebook データ Data Connector 今回の場合…
  11. 11. (参考)もし MSDN をお使いなら Visual Studio with MSDN を会社や個人でお持ちの場合 Power BI Pro が 1 年間 無料で使用できる 特典 があります。 https://my.visualstudio.com/ こちらにアクセスしてご自身のアカウントでログイン 2017/09/09 CLR/H #clrh106
  12. 12. 今回のアーキテクチャ 2017/09/09 CLR/H #clrh106
  13. 13. アーキテクチャ 今回は以下を使用します。 • Power BI Desktop 標準の Data Connector 皆さん自身の Facebook のデータを収集 • Power BI Desktop データを可視化・分析するのに使用 2017/09/09 CLR/H #clrh106
  14. 14. Facebook 用データコネクタを使用したレポートの作成方法 Facebook 用データコネクタを使用したレポートを作成するには、Power BI Desktop でレ ポートを作成します。作成した pbix ファイルを Power BI service に発行すると Power BI service で動作させることができます。 2017/09/09 CLR/H #clrh106 Power BI service データソース pbix ファイル クライアント PC 2.発行 pbix 作成時の接続情報 1.作成 3.データ更新 発行後のスケジューリ ングをお忘れなく!
  15. 15. Power BI Desktop で Facebook へ接続 2017/09/09 CLR/H #clrh106
  16. 16. 1.データを取得 1. 以下にアクセスする https://powerbi.microsoft.com/ja-jp/desktop/ 2. 左の画面が開くので [DOWNLOAD FREE] をクリック 3. インストーラーを保存して、実行 する 4. 起動する 2017/09/09 CLR/H #clrh106
  17. 17. 1.データを取得 1. Power BI Desktop を起動して、[データを 取得] の上半分をクリック 2. 開いた画面の [オンライン サービス] をク リック 3. [Facebook] をクリック 4. 最後に [接続] をクリック 2017/09/09 CLR/H #clrh106
  18. 18. 1.データを取得 1. [接続] ドロップダウンをクリック 2. 今回は [投稿] を使用します。 必要に応じて、欲しいデータを選択してく ださい。 ちなみにこのコネクタは Facebook Graph API を呼び出しているようです。 参考) https://developers.facebook.com/docs/gra ph-api/overview 3. 試しに [接続] が “--なし--” のまま [OK] を押します。 2017/09/09 CLR/H #clrh106
  19. 19. 1.データを取得 左の様な画面になりますが、注目はURLの部分。 https://graph.facebook.com/v2.8/me となっています。 注意)現状の最新は v2.10 です。なので書き 換えちゃいます。 https://graph.facebook.com/v2.10/me また下部に注目してください。 books, feed, friends, games, likes, movies, permissions, posts, television. これらはさきほど [接続] に出てきた選択肢で す。 2017/09/09 CLR/H #clrh106
  20. 20. 1.データを取得 つまり [接続] で選ばなくても、大丈夫です。 が、Facebook は一度に取得できるデータ容量 がそこそこ厳しいので、必要なものに絞ってお いた方がよいです。 私の場合、Facebook アカウントを作成したの が 2011 年なのでこのまま実行するとすべて のデータを取りに行って、すごく長い時間待た されて、結果取得できず、となります。 なので URL を編集します。 https://graph.facebook.com/v2.10/me/po sts?since=1483196400 2017/09/09 CLR/H #clrh106
  21. 21. 1.データを取得 ?since=1483196400 は 日付指定 をする際の URL パラメータです。 = の後は Unix タイムスタンプと呼ばれる日時 形式です。 https://developers.facebook.com/docs/gra ph-api/using-graph-api?locale=ja_JP [UNIX タイムスタンプ変換ツール] http://url-c.com/tc/ 1483196400 = 2017年01月01日 00:00:00 2017/09/09 CLR/H #clrh106
  22. 22. 1.データを取得 ここまでくれば、あとは必要なデータを選択す れば OK です。 意識する必要があるのは 「Facebook は JSON データが返される」 ということです。 RDB とはデータ構造が異なります。Facebook のデータはネストの嵐ですw ハマるとよくわからなくなります。不要なデー タを何度も取得してしまうことになります。 なのでデモで見てみましょう! 2017/09/09 CLR/H #clrh106
  23. 23. ~デモ~ さぁーて、実際に見てみましょう。 2017/09/09 CLR/H #clrh106
  24. 24. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106
  25. 25. 2.データの加工(ETL) ETL とは Extract, Transform, Load の略で、 • Extract: データの抽出 • Transform: 欲しいデータを選択し整形(1.複数のデータを結合、2.表示形式を変更) • Load: 読み込む ということです。 Power BI Desktop の ETL 機能は他に比べても非常に優秀です。BI には ETL が必須なので すが、無償有償問わず、ここまで使えるツールはあまりないです。これを選定理由にされて いる方も多いです。 2017/09/09 CLR/H #clrh106
  26. 26. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 ■親データ { "姓”: "清水", "名”: "優吾", "性別": "男性", "年齢": 35, "投稿ID": [{101},{102}] } ■子データ [ { "投稿ID": 101, "投稿": "おはよう!", "日時": "2017-09-02T09:00:00+09:00" }, { "投稿ID": 102, "投稿": "こんにちは!", "日時": "2017-09-02T12:00:00+09:00" } ] ■欲しいデータ [ { "姓": "清水", "名": "優吾", "性別": "男性", "年齢": 35, "投稿ID": 101 "投稿": "おはよう!", "日時": "2017-09-02T09:00:00+09:00" }, { "姓": "清水", "名": "優吾", "性別": "男性", "年齢": 35, "投稿ID": 102 "投稿": "こんにちは!" "日時": "2017-09-02T12:00:00+09:00" }, ] ETL
  27. 27. 姓 名 性別 年齢 投稿ID 投稿 日時 清水 優吾 男 35歳 101 おはよう! 2017年09月02日09時00分00秒 清水 優吾 男 35歳 102 こんにちは! 2017年09月02日12時00分00秒 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 ■欲しいデータ [ { "姓": "清水", "名": "優吾", "性別": "男性", "年齢": 35, "投稿ID": 101 "投稿": "おはよう!", "日時": "2017-09-02T09:00:00+09:00" }, { "姓": "清水", "名": "優吾", "性別": "男性", "年齢": 35, "投稿ID": 102 "投稿": "こんにちは!" "日時": "2017-09-02T12:00:00+09:00" }, ]
  28. 28. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 • Data Analysis Expressions (DAX) 言語 DAX は、関数、演算子、および定数を集めたもので、これらを数式または式の中で使用して、1 つまたは複数の値を計算して返すこと ができます。 さらに簡単に説明すると、DAX は、現在のモデルに既に含まれているデータから新しい情報を作成するのに役立ちます。 (引用:https://powerbi.microsoft.com/ja-jp/documentation/powerbi-desktop-quickstart-learn-dax-basics/ ) 例)指定する日付範囲での製品カテゴリごとの成長率、売上の前年比、等 • M 言語 (正式名:Power Query Formula Language) 正式名称は Power Query Formula Language なのに、なぜだか M 言語と呼ばれる。 詳細は Power BI 勉強会 第3回 で紹介された沼口さんの資料をご覧ください。 https://docs.com/numaguchi-shige/2280/20170218-powerbi-m https://road2cloudoffice.blogspot.jp/2017/02/m-power-query-formula-language.html 私の中の分類ですが、ざっくりと以下のように捉えています。 • M 言語 ⇒ クエリエディターで編集 データを取得する際に、複数のデータを結合、過不足ないデータにするときに使用。基本的にドラッグ&ドロップで自動生成されたもの を手動で編集する(イチから書かない) • DAX 言語 ⇒ Power BI Desktop の [データ] や [フィールド] から選択し [数式バー] から編集 M 言語によって、過不足ない状態で取得されたデータを、整形するのに使用。[メジャー] が該当。 ここで言う「整形」とは、表示形式の変更、取得したデータから新たなデータを作成すること。Excel で言うとセルの書式設定。 例:日付の表示形式、列データの分割・結合、並び替え等
  29. 29. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 ■Facebook 等、SaaS をデータソースにする場合の注意点 – 日時 (DateTime) 型 クラウドサービスでは通常 協定世界時 UTC (英語:coordinated universal time) が使用されます。 https://ja.wikipedia.org/wiki/%E5%8D%94%E5%AE%9A%E4%B8%96%E7%95%8C%E6%99%82 実際は昨今の DB では 「UTC を表す “値” を保持していて、それを使用する際に各地の現地時刻に直して扱っている」 というのが正確な表現です。 これを考慮せずに Facebook からデータを取得、Power BI Desktop でレポート作成、Power BI service に 発行 すると、データが更新された際に、時刻がおかしくなる可能性があります。 大事なのはクエリエディターでデータを取得した際の日時データの形式です。
  30. 30. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 2017-08-19T02:31:04+00:00 yyyy-MM-ddTHH:mm:ss+00:00 ISO8601(日付と時刻に関する国際規格) で定義 “+00:00” の部分でこの日時の UTC に対す る時差を表現 つまり 2017-08-19T02:31:04+00:00 ⇒ 2017年8月19日 02時31分04秒 (UTC) ⇒ 2017年8月19日 11時31分04秒 (JST) 2017-08-19T02:31:04+09:00 ⇒ 2017年8月19日 02時31分04秒 (JST) ⇒ 2017年8月18日 17時31分04秒 (UTC)
  31. 31. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 2017-08-19T02:31:04+00:00 よく見ると取得したデータがすべて +00:00 (UTC) に なっています。つまり 02:31:04+00:00 というのは UTC で言えば 午前 02 時 31 分 04 秒 JST で言えば 午前 11 時 31 分 04 秒 のこと。 ただしこのまま [発行] すると Power BI service は UTC のまま表示し続けますw なのですべてのデータを 2017-08-19T02:31:04+00:00 ではなくて 2017-08-19T11:31:04+09:00 にしたいです。
  32. 32. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 ■詳細エディターを開く 1. [クエリを編集] クリック 2. クエリエディターで [詳細エディター] をクリック ■修正後 let ソース = Facebook.Graph("https://graph.facebook.com/v2.10/me/posts"), 変更された型 = Table.TransformColumnTypes(ソース,{{"created_time", type datetimezone}}), 変更された型2 = Table.TransformColumns(変更された型, {"created_time", each DateTimeZone.SwitchZone(_, 9), type datetimezone}) in 変更された型2 ■修正前 let ソース = Facebook.Graph("https://graph.facebook.com/v2.10/me/posts"), 変更された型 = Table.TransformColumnTypes(ソース,{{"created_time", type datetimezone}}) in 変更された型 【M 言語】
  33. 33. 2.データの加工(ETL) 2017/09/09 CLR/H #clrh106 ■時間帯 の作成 日付型(DateTime)の列が既にあることが前提 [モデリング]タブ ⇒ [新しい列] をクリック。以下の式を入力 時間帯 = HOUR([日付型の列名]) HOUR() 関数で時間帯を作成すると 整数型 になるので、検索条件等で使うことを想定するなら、文字列型バージョンも作成しておいたほうがよい ■時間帯(文字列) の作成 [モデリング]タブ ⇒ [新しい列] をクリック。以下の式を入力 時間帯(文字列) = HOUR([日付型の列名]) 作成後 [モデリング] タブ ⇒ 書式設定の中にあるデータ型を [テキスト] に指定 さらに [列で並べ替え] を選択し、元の数値型の列を指定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ※年が作成したい場合は、上記の HOUR 関数を YEAR 関数に替えてください。 【DAX】
  34. 34. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106
  35. 35. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106 さて、こうやって無事データが取得できて、分析もでき、Power BI service へ発 行もできました。 ところで BI というのは ビジネスインテリジェンス の略ですよね。一般的に BI では インサイトを得る と言います。英単語 insight だと「洞察(力)、物事の実態 を見抜くこと(力)」という意味です。 BI では「データを見て、その変化を見て、何が起きているのかを見抜いたり、推 測したりすること」です。
  36. 36. 流行のキーワード 2017/09/09 Backend Frontend Services D B IoT AI (人工知能) Machine Learning (機械学習) Chat Bot Robot Mobile App 業務アプリ Storage SNS Office 365 Salesforce Consumer Business kintoneFinTech Gateways on the Edge Gateways on the cloud Business Intelligence =APISensors Devices CLR/H #clrh106
  37. 37. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106 ただ、どんなに綺麗に可視化できたとしても、1日中ダッシュボードを眺めている 人なんていませんよね? でも見てないとリアルタイムの変化を知る必要がある場合は、気付けないかもし れない。。。 そんなあなたに朗報です。そう、Power BI service には 通知 をしてくれる機能 があります。 Data alerts in Power BI service です。
  38. 38. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106 [Power BI サービスでのデータ アラート] https://powerbi.microsoft.com/ja-jp/documentation/powerbi-service-set-data-alerts/ Power BI での通知は ダッシュボード にあるタイルに設定することができます。 ただし設定可能なタイルは ゲージ、カード、KPI です。
  39. 39. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106
  40. 40. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106 嬉しいことに データアラート は Microsoft Flow と連携することができます。 https://flow.microsoft.com/ja-jp/
  41. 41. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106
  42. 42. 3.Data alerts の設定 2017/09/09 CLR/H #clrh106
  43. 43. まとめ 今回は Facebook のデータを使用して、データの取得・整形・ 読込から、レポートを作成し、分析までを試してみました。 また、必要な通知、そこからの連携ができることもわかりました。 2017/09/09 CLR/H #clrh106 Power BI service Data alerts 通知 分析 Microsoft Flow Any Servicesトリガー
  44. 44. まとめ 皆さん、いかがでしたか? 「こんなに簡単にできるならやってみよう!」 試したくなりましたか? はい、今日のゴール達成( ˘ω˘ )! 2017/09/09 CLR/H #clrh106
  45. 45. ご清聴ありがとうございました! ~ご不明な点は何なりと!~ 2017/09/09 CLR/H #clrh106 より詳細にお話聞きたい、 実案件でご相談があるという場合は 遠慮なくお申し付けください m(_ _)m

×