Upload
salesforce-developers-japan
View
982
Download
0
Embed Size (px)
Citation preview
Wave Analyticsによるダッシュボード開発-データセット作成編 -
株式会社セールスフォース・ドットコムセールスエンジニアリング本部
リードソリューションエンジニア伊勢 健吾
Kengo IseLead Solution EngineerSalesforce.com [email protected]
Speaker
質問がある場合には ?
質問は最後まで待つ必要はありません ! “Question”の機能を使って質問をして下さい可能な場合は別のスタッフが質問について回答しますすぐに回答出来ない場合は、後ほどスピーカーが回答します
ライブ Q&Aを最後に行います時間の許す限り、Webinarの最後に Q & Aの時間を設けます
開発者フォーラムを活用しましょうよりたくさんの質問がある場合は ?こちらをご利用下さいhttp://developer.salesforce.com/jp/forums
録画ビデオは Youtube及びWebinar詳細ページにて公開されます (参加登録 URLと同じです )
本Webinarは録画されています
Salesforce Developers Japan
Heroku JP@herokujp
@salesforcedevjp
ソーシャルアカウント
アジェンダ
Wave Analyticsの全体像と主要な構成要素データフローの全体像とデータセット作成までのながれ
データセット拡張メタデータでできること
(デモ )外部データと Salesforceデータを 1つにまとめる例
その他、情報リソースのご紹介
本日ご紹介する主な内容
Wave Analyticsの全体像と主要な要素[全体像とデータセット・レンズ・ダッシュボード ]
Wave Analytics Platform
オペレーショナルレポート
ETL/EAI/CSV/API
セールス サービス マーケティング
コミュニティApps
Lightning
Wave Analytics の全体像
外部データ
- 検索ベースのクエリエンジンを搭載 - ダッシュボードへの組み込み、アクション機能- 強力なビジュアライゼーション機能 - モバイルファーストの設計
データセットの取込方法: SFDCデータと外部データ データセットの取込ルートは大きく 2つ、もう一段細かく分けると4つに分けられる。
データフロー
ExternalAPI
外部データ(Salesforce外データ )
Salesforceデータ
②データセット ③レンズ ④ダッシュボード
⑤アプリケーション
①データフローによる取
込
Waveダッシュボードの構成要素
データフロー作成の流れ[データフロー全体像とデータセットを作るまで &留意点 ]
ダッシュボード作成までの基本的な流れ [再掲 ]
データセットの作成 レンズの定義 ダッシュボードへクリップ
以下の3つステップで作成を行う本日、メインでご紹介する部分 前回メインでご紹介した部分
フレックスダッシュボードデザイナ( β)では必ずしもレンズを作ってからでなくても良い!
12Wave Analyticsへデータを取り込むまで
• データフローは Salesforceのオブジェクトや既に存在するデータセットに基づき、「単一もしくは複数のデータセットを作成・更新」をおこないます。
• データフローとは、ある salesforceオブジェクト、あるいはデータセットに対してどのような変換や抽出をしてデータセットを作るのかを定義した「データ抽出・変換仕様をひとまとめにした実行単位」です。
• データフローの実行をスケジューリングすることにより、随時実行だけではなく定期的なデータセットの更新を自動で行うことが出来ます。 (24回 /1日 )
13
1. データフローのデザインダッシュボードに表現するデータソースとしての SFDCデータ(オブジェクト)を識別し、どのような変換やまとめ方でデータセットをいくつを作れば良いのか?、等を検討します。
2. データフロー JSONの作成データセットビルダーを使用し、単一データセットを作るための JSONを用意します。そしてこの JSONファイルに対して、必要に応じてその他の変換や追加対象となるデータセットなどの仕様を追記していきます。
3. データフローの実行データフロー JSONを一旦作成&アップロードしたら、手動で実行してみます。(実行中にストップさせることも可能です。)
4. データフローのモニタリング「データ監視」メニューよりデータフローの完了ステータスを確認します。正常に完了したのか、もしくはエラーが出て異常終了していないかを確認します。
5. データフローのスケジューリング上記 1-4を繰り返し、データフローを完成させたら、あとはスケジューリングにより定期的に実行するよう設定を行います。業務時間帯を外して夜間のバッチ処理としてスケジューリングするのが一般的です。
データフロー作成のながれ
14
対象となるデータを明らかにすることと、それらを抽出したりひとまとめにするデータフローの設計はWaveダッシュボードにおいてとても重要な要素といえます。
データフローのデザインにおいて、主に以下の前提や特長をおさえつつ、どういったデータセットを用意する必要があるかをイメージできることが大切です。
• 複数 Salesforceオブジェクトを 1つのデータセットとして作成することが可能• Salesforceオブジェクト(内部データ)と外部データを結合して 1つのデータセットとして作成することが可能
• 1つのデータフローで複数のデータセットを作成 /更新する事が可能
⇒ 業務要件(=ダッシュボード要件)として事前に明らかにする必要があるのは、どんな /いくつのデータ(=データセット)をWaveで用意すれば良いのか?ということ
データフローのデザイン
15データフローデザインの例
この DFでは商談オブジェクトと取引先オブジェクトをそれぞれ抽出し、 1つのデータセットとしてWave 上でまとめています。
1. まず各オブジェクトからデータ抽出をし、商談と取引先を1つに結合します。次にその中でもステージが「受注済」となっているレコードだけを抽出し、”受注済商談”という名前の単一データセットとして登録します。
2. 上記の様に複数オブジェクトを結合し、特定の条件で絞り込んだデータのみを含んだデータセットを作ることが可能です。この例においては特定のステージでフィルタをしていますが、フィルタせず、すべてのステージを含んだデータセットとして作成する事も可能です。
商談
取引先
抽出 変換 登録
受注済商談
16データフローのデザイン– レコードの粒度について
【 Point】データレコード一行で何を表しているのか?
どの指標(数値データ)を集計する必要があるか?
上記の例では1レコードはひとつの商談を表しています。つまり、このデータセットの粒度はひとつの「商談」単位でで表現されているデータセットといえます。
商談名 金額
ABC – 10 Desktops 10,000.00ABC – 20 Laptops 20,000.00Acme – 100 Licenses 50,000.00Acme – 50 Laptops 50,000.00
取引先名 取引先別年間売上高
ABC Labs 250,000,000ABC Labs 250,000,000Acme Inc. 300,000,000Acme Inc. 300,000,000
ここでいう粒度とは、データセット内における1レコードが表現するものの単位を言いますDEFINITION:
取引先名 年間売上高 商談金額合計
ABC Labs 500,000,000 30,000.00Acme Inc. 600,000,000 100,000.00
粒度が異なる指標を同じデータセットに含めないようにする必要があります。異なる粒度のデータを扱う場合には、それぞれの粒度でデータセットを分けて作成し、ダッシュボード上の表現により組み合わせて(”取引先“で双方の DSをフィルタし連動する、など)利用する事を検討します。
ALERT:
抽出対象となる指標と切り口+その粒度を明らかにする
業務要件に基づき、必要となるデータ項目やその分析に必要なそれぞれの切り口とその粒度を明らかにします。
(=メジャーとディメンションを明らかにする)
これらのデータ要件を事前に整理することがデータフローを作成する際に必要となります。
DEFINITION:
17
どの指標をどの切り口で見るのか?を明らかにする(例 ) 商談金額を取引先にみる、部門別に見る、担当別に見る、など
上記の分析対象データはどのオブジェクト・データソースに格納されているのか?を識別
(例)商談、取引先、ユーザー、その他
それらのオブジェクト・データソースにおけるリレーションの確認(どういうリレーションが張られているのか?どの結合キーで結合できそうか?等)
どのような粒度でそれらのデータ分析を行う必要があるのか?の確認(データセット内に保持するレコードの粒度)
分析対象となるデータとその粒度を明らかにすることが、データフロー作成においての重要なポイントです。
データフローデザイン– ETL と ELT
一般的なアナリティクス製品にあるような「抽出 -変換 -ロード」 (=ETL)といった順ではなく、Wave Analyticsでは変換のほとんどがロードされたあとに行われます。この点がWave Analyticsのデータ抽出機構を ETLではなく” ELT”、 (もしくは EtLT)と呼んでいる主な理由となります。
抽出(Extract)
ロード(Load)
変換(Transformation)
19
以下の観点においては慎重にデータセットを用意する必要があります。
• Waveに登録したデータセットの全レコード数はWave Analyticsに格納できる件数制限の制約を受けます
• データセットビルダーでデータフローを作成する前に対象となるオブジェクトがおおよそどれくらいの件数を保持しているのかを確認しましょう。
• また、現在どれくらいの件数をWaveに保持しているのかを確認しましょう ([設定 ]-[WaveAnalytics]-[ 始めましょう ]より確認可能 )
• デフォルトで抽出しただけではデータセットはすべてのWave ユーザーが閲覧可能です。• 一般的には行レベルセキュリティをかける、あるいはデータセットを分けてアプリケーション毎に配置するなどし、データセットの公開範囲を制限する必要があります。
データフローデザイン - その他の考慮事項 -
20
データセットビルダーを使用して、最初のデータフロー JSONを作成します。データフロー( JSON)の作成
オブジェクトの選択 項目の選択 リレーション先のオブジェクトと項目の選択
DEMO 1Salesforceの複数オブジェクトからデータを抽出し、 1つのWaveデータセットとして作成
22データフロー( JSON)の作成 -Extract-
これら 2つのノードではsfdcDigest変換を使用してそれぞれのオブジェクトから必要な項目を抽出しています。
23データフロー( JSON)の作成 – Augment -
ここでは augment変換を使用し、取引先 IDをキーとして商談に取引先の列を追加しています。※ここでいう Left keyの AccountIDとRight Keyの IDは同じ粒度の取引先 IDです。
23
24
データフロー( JSON)の作成 – filter-
このノードではStageName 列が”受注済=(Closed Won)”の商談レコードのみを filterしています。
2424
25
データフロー( JSON)の作成 – register-
このノードでは先ほど”受注済”のみでレコードをフィルタしたデータをソースとして、そのデータをデータセットとして sfdcRegister変換により登録しています。(その名前を UIで使う名称と APIで使用される名称を同じ名称で登録しています。 )
252525
26
• 編集前に以前のデータフロー JSONをバックアップしましょう!
• JSONファイルは UTF-8 形式でアップロードをしてください(現時点では UTF-8 形式のみアップロード可能)
• データフロー JSONへ記述する各変換の順番は関係ありません。• Wave Analyticsでは実行時にデータフローを横断して解析し各変換の依存関係を解析することで、実際に変換を処理す
る順番を決定します。
• データの抽出は各オブジェクトに対してそれぞれ 1回になるようにデータフロー JSONを記述・変更します。• 同じデータフロー内での重複した抽出処理は処理速度をスローダウンするため。
• ノード名は当該処理で何をやっているかが分かる様な記述にしましょう。• 例えば、 “ node 101”ではなく“ Extract Opportunities”という風に記述するなど。
• JSONが有効な記述形式になっているか確認するためにツールを使うことをお奨めします。• 無効な JSONファイルをアップロードする前に気づけるようにしましょう
• JSON の名前と値のペアは大文字小文字が区別されますのでご注意ください。
データフロー JSONを編集する際の Tips
| データ監視 | データフロービュー
データフローの実行 27
• データフローを作った時点ではデータフローは自動実行はされません。• まずは手動で随時実行をおこなってください。
28データフローの監視
• データフロービューではデータフローのステータスとして開始・終了時刻や実行時間、および過去 10回のジョブステータスと過去七日間の履歴を併せて確認することが出来ます。
• データフロージョブが異常終了した場合には、各ノードを開き、各変換ノード毎に詳細を確認出来ます。
• データフローに問題がある場合には、データフロー JSONを編集し、再度アップロードと実行を行います。
29データフローのスケジュール
• データフローを自動実行する場合には、スケジューリングを行います。• 通常、データフロー実行予定時刻は業務時間外(夜間など)に設定します。
データセット拡張メタデータ[XMDの設定でできること ]
31拡張メタデータ (Extended metadata)Extended metadata(=XMD)とは、データセットに対して設定できるパラメータファイルです。レンズやダッシュボード上で表現されるフォーマットについて JSONファイルとして定義が出来ます。
DEFINITION:
XMDで設定できること
• 基準 ( 指標 )のフォーマット形式 • ディメンションおよび基準(指標)の表示ラベル • 基準のディメンションのグループ化 • 特定の項目の色 • 値テーブルに表示されるデフォルトの列 • ユーザインターフェースでのディメンションおよび基
準の非表示 • ユーザが Salesforce オブジェクトのアクションを利用し、 Salesforce および外部 Web サイトのレコードへのリンクをたどることができるカスタムメニュー・・・など
数値や桁数、接頭辞などのフォーマット
項目名などのラベリング
特定の値の読み換え
【参考】 Waveでやりたいこと vs編集対象のまとめ
編集対象
ダッシュボードJSON
データセット拡張メタデータ JSON
(XMD JSON)
スキーマJSON
ダッシュボードを表示してCMD+E(CTL+E)
データフローJSON
オブジェクト結合の仕方、変換やデータセット名の指定、会計年度の設定、セキュリティ設定など
SFDCデータのデータセット定義
編集方法
データセット名 .xmd.jsonを DS編集画面よりダウンロード /アップロード
データセット名 .schema.jsonを DS編集画面よりダウンロード /アップロード
データセット名 .jsonをデータ監視画面よりダウンロード /アップロード
列名、型、桁数、文字コードなどの外部データ由来のデータセットについての
各種スキーマ定義
アクション設定、特定のディメンションの値の色や項目のラベル、フォーマット
などのデータセットをWaveで扱う際の動作 (アクショ
ン )やビジュアル周りの定義
ダッシュボードのレイアウト、レンズ (クエリ )定義、チャート形式、
とその紐付けなど、ダッシュボード全体としての外観とクエリの定義
やりたいことの例
Wave 上でやりたいことに対して、どの JSONをいじればよいか分からなくなる事もあるので参考
DEMO 2Salesforceデータと外部データをひとつにまとめてみる例
34Salesforceデータと外部データを 1つのデータセットにする
• Salesforceのオブジェクトをデータソースとして作成したしたデータセットと外部より CSVデータをアップロードすることで作成したデータセットを 1つのデータセットにします。
受注済商談一覧
外部データ (取引先評価 ) マージされたデータセット
[APPENDIX]
Wave ライブラリの紹介 その他リファレンスガイドなどのWave Analytics 関連ドキュメント以下の URLから各種ドキュメントへアクセス出来ます。https://help.salesforce.com/apex/HTViewHelpDoc?id=bi.htm&language=ja
Analytics Cloudをもっと知るために モバイルアプリ、 Trailheadなどで体感ください。
エキスパートの説明を受けながらWaveに触れることが可能です
iOS 用モバイルアプリiOS用モバイルアプリをご用意サンプルデータを通してWave Analyticsを体験
(iPhone/iPad) ※Android 向けは Summer以降
thank y u