hnishiyamaのブログ

日記とかSalesforceのこととか、なんでも書いていきます。

Einstein AnalyticsのEとTとL

この記事は Salesforce Advent Calendar 2019 の21日目の投稿になります。

はじめに

新卒でSIerに入社して以来、ずっとBIに触れている私です。

今の会社に入ってからかなり幅は広がった(BI以外にもたくさんのことに触れます)ものの、今も根っこの一部にあるのはデータを活用したいお客様との向き合いです。 より上流の工程への指向性が強い近頃ですが、これまで培ってきたBIの知見は必ずや財産になると思っています。

さて!
Einstein Analytics(以下、EA)は、あくまでもBIのためのツールです。
企業の経営戦略・意思決定にデータを役立てたいのであれば、BIツールがあなたの右腕になることは間違いありません。これこそがBIツールの存在意義です。

そして!
もしその企業が世界最大のCRMであるSalesforceを活用しているのであれば。
ただの分析だけではなくアクションまでつなげることができるEAが、BIツールの候補として挙がるでしょう。

参考:Analytics から Salesforce レコードへのアクションの実行

本記事では、Salesforce.comが提供するBIツールであるEAのデータ連携機能について、ご紹介していきます。


 BIで大事なこと

実際にBIを活用する上で、必ず意識しなくてはならないことがあります。そう、せせりです。

f:id:hhhhhnishi:20191221155602p:plain

※これはももタレ

せり … 鮮度

  • そのデータは、分析する価値のある鮮度の高いデータでしょうか?
  • 適切なタイミングで更新されていますか?

り … 精度

  • そのデータは、正確な傾向が出ますか?
  • 抜け漏れとかありませんか?

せせ … 粒度

  • そのデータは、やりたい分析に対して適切な粒度ですか?
  • 月/日/時分単位、伝票/伝票明細単位など、データの粒度をきちんと意識できていますか?

かっこいいグラフを作るときには、このせせりを意識してデータ連携を行わなくてはなりません。 なんとなくでやると、あとから大〜〜変なことになります。

このデータ連携のプロセスである、E(抽出)とT(加工)とL(登録)について、EAの機能を紹介しようと思います。


 Einstein AnalyticsのEとTとL!

⬇︎まずはデータ連携の超ざっくり全体像 f:id:hhhhhnishi:20191221155605p:plain

ふむふむ。抽出元データは「Salesforceオブジェクト」か「外部システム」か「csvファイル」なんですね。

そしてどうやら「データフロー」というツールや「レシピ」というツールを使ってデータ連携を行うみたいです。 この2つの違いについては概要に触れますが、実はそのうち統合される予定みたいです。


 Einstein AnalyticsのE!

EAはグラフやダッシュボードが作成できるツールということで、Salesforceの標準機能であるレポート・ダッシュボードとの違いは意識すべきです。 そして、様々なデータソースを扱える点は大きな違いと言えるでしょう。

EAは、複数の大量のデータソースを高速に扱うのに十分なエンジン、そして容量を兼ね備えています。
エンジンのアップデートはリリースノートには記載されませんが、かなりのスペックアップデートがされています!

そして、今年の初めは1億レコードだった容量も、なんとSpring’20で100億レコードに!!(現時点では10億レコード)

各抽出元データの取り込み方法、活用シーンは以下の通りです。

取り込み方法
抽出元データ
活用シーン, 特徴
データフロー Salesforceオブジェクト Salesforceオブジェクトのデータ取り込み
・セキュリティ設定の取り込みが可能
・スケジュール実行可能
コネクタ 外部システム, Salesforceオブジェクト ・設定ベースで取り込みの設定が可能
・スケジュール実行可能
・今後も継続的にコネクタが追加される
ETLツール 外部システム ・Informatica, Talend, DataSpider Cloud, MuleSoftが対応
外部データAPI 外部システム ・自動化やトリガーベースでのデータ更新に対応
csvアップロードウィザード csvファイル ・UIからの手動でのデータアップロードに対応

近頃は、コネクタがとても豊富になってきました。
Marketoや他Salesforce組織などのエンタープライズアプリケーション、Google BigQueryなどのDWH、Heroku PostgresやSAP HANAなどのデータベースサービス、ファイルベースのAWS S3、WebサイトのGoogle アナリティクスなど。API連携が不要になることで活用の幅がとても広がっています。

※コネクタについての最新情報はこちらでご確認ください。
参考:Analytics コネクタを使用したローカルおよび外部データの同期


 Einstein AnalyticsのTとL!

EA自体はいわゆるETLツールではないので、できる限り加工済みのデータをいただきたいものです。
それでもグラフやダッシュボードで表現するにあたっては、幾分かの加工が必要になります。

そして、EAではできるだけ1ダッシュボードにつき1データセットを用いることのがベストプラクティスになります。

なぜならば、複数のグラフを配置するだけで、勝手にグラフ間での連動を行なってくれるからです。

⬇︎こんな感じ f:id:hhhhhnishi:20191221155626g:plain

1つのデータセットから作られたグラフや選択リストであれば、ポンと配置するだけで勝手に連動してくれるんです。

ダッシュボードやページを移動したときにもこの連動を保持するような機能もあります。

イメージとしては、巨大な一枚のExcelシートをサクサク扱うような感じ。

さて、そんな巨大な一枚のExcelシートを使いやすくするために、データを加工するツールが用意されています。
それが、「データフロー」と「レシピ」です。

以下ではそれぞれの機能の概要を述べますが、機能詳細やそれぞれのツールの違いの詳細はこちらをご確認ください。
Analytics でのデータの準備


データフロー

データフローは一般的なETLツールと同じように、ノードを並べてデータ連携フローを作ります。 ETLツールを触ったことがある人なら、自由度が高く設定しやすいかも?

⬇︎データフローの一覧画面 f:id:hhhhhnishi:20191221155612p:plain

⬇︎とあるデータフローの画面 f:id:hhhhhnishi:20191221155720p:plain

このデータフロー画面自体も、ETLで表現してみました。元データの抽出、加工、登録の流れですね。

加工は、結合させたり定義の等しいデータを統合したり、フィルタをかけたり項目を追加したり。

機能の詳細は以下をご覧ください。
参考:Analytics データフローの変換


レシピ

レシピは、単一のデータセットもしくは接続済みデータ(=コネクタで設定した外部データ)を元に、データを加工し、一つのデータセットに登録するツールです。

正直、大概の機能はデータフローで可能なものになります。

⬇︎レシピの一覧画面 f:id:hhhhhnishi:20191221155728p:plain

⬇︎とあるレシピの画面 f:id:hhhhhnishi:20191221155650p:plain

レシピの画面は、プレビューが見れたり、その項目の欠損値や出現頻度がわかります。 この画面自体は、データセットの中身をかるくみたりするのにいいかも(レンズでいいじゃんってなるかもですが、欠損値は意外と見えないんです)。

一番左には、このレシピを実行した時の処理の流れが上から書いてあります。

ここで注目すべきは、「内部結合」「グループ&集計」です。 これはどちらも、データフローでは現在できない処理になります。


⬇︎レシピの結合

f:id:hhhhhnishi:20191221155659p:plain

先ほどのデータフローのところでも書きましたが、データフローは現在、左外部結合(LEFT OUTER JOIN)しかできません。

レシピならば他にも、内部結合(INNER JOIN)や完全外部結合(FULL OUTER JOIN)などが可能なのです。


⬇︎レシピの集計

f:id:hhhhhnishi:20191221155713p:plain

データフローは基本的に、集計(GOUP BY)してデータの粒度を変更することができません。 レシピならば、合計, 平均, 最大などで集計処理を行うことが可能になります。


データフローとレシピの使い分け

基本はデータフローで加工するのがオススメです。 「左外部結合以外の結合がしたい」もしくは「集計処理がしたい」時など、レシピでしかできないことがある場合にのみ、レンズを活用すればいいのかなと。


おわりに

以上、長々と書いてしましましたがEinstein AnalyticsのEとTとLでした。

2020年も盛りだくさんな予感がしています。 2019年に引き続き、楽しみたいと思います!