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を活用する上で、必ず意識しなくてはならないことがあります。そう、せせりです。
※これはももタレ
せせり … 鮮度
- そのデータは、分析する価値のある鮮度の高いデータでしょうか?
- 適切なタイミングで更新されていますか?
せせり … 精度
- そのデータは、正確な傾向が出ますか?
- 抜け漏れとかありませんか?
せせり … 粒度
- そのデータは、やりたい分析に対して適切な粒度ですか?
- 月/日/時分単位、伝票/伝票明細単位など、データの粒度をきちんと意識できていますか?
かっこいいグラフを作るときには、このせせりを意識してデータ連携を行わなくてはなりません。 なんとなくでやると、あとから大〜〜変なことになります。
このデータ連携のプロセスである、E(抽出)とT(加工)とL(登録)について、EAの機能を紹介しようと思います。
Einstein AnalyticsのEとTとL!
⬇︎まずはデータ連携の超ざっくり全体像
ふむふむ。抽出元データは「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データセットを用いることのがベストプラクティスになります。
なぜならば、複数のグラフを配置するだけで、勝手にグラフ間での連動を行なってくれるからです。
⬇︎こんな感じ
1つのデータセットから作られたグラフや選択リストであれば、ポンと配置するだけで勝手に連動してくれるんです。
ダッシュボードやページを移動したときにもこの連動を保持するような機能もあります。
イメージとしては、巨大な一枚のExcelシートをサクサク扱うような感じ。
さて、そんな巨大な一枚のExcelシートを使いやすくするために、データを加工するツールが用意されています。
それが、「データフロー」と「レシピ」です。
以下ではそれぞれの機能の概要を述べますが、機能詳細やそれぞれのツールの違いの詳細はこちらをご確認ください。
→Analytics でのデータの準備
データフロー
データフローは一般的なETLツールと同じように、ノードを並べてデータ連携フローを作ります。 ETLツールを触ったことがある人なら、自由度が高く設定しやすいかも?
⬇︎データフローの一覧画面
⬇︎とあるデータフローの画面
このデータフロー画面自体も、ETLで表現してみました。元データの抽出、加工、登録の流れですね。
加工は、結合させたり定義の等しいデータを統合したり、フィルタをかけたり項目を追加したり。
機能の詳細は以下をご覧ください。
参考:Analytics データフローの変換
レシピ
レシピは、単一のデータセットもしくは接続済みデータ(=コネクタで設定した外部データ)を元に、データを加工し、一つのデータセットに登録するツールです。
正直、大概の機能はデータフローで可能なものになります。
⬇︎レシピの一覧画面
⬇︎とあるレシピの画面
レシピの画面は、プレビューが見れたり、その項目の欠損値や出現頻度がわかります。 この画面自体は、データセットの中身をかるくみたりするのにいいかも(レンズでいいじゃんってなるかもですが、欠損値は意外と見えないんです)。
一番左には、このレシピを実行した時の処理の流れが上から書いてあります。
ここで注目すべきは、「内部結合」と「グループ&集計」です。 これはどちらも、データフローでは現在できない処理になります。
⬇︎レシピの結合
先ほどのデータフローのところでも書きましたが、データフローは現在、左外部結合(LEFT OUTER JOIN)しかできません。
レシピならば他にも、内部結合(INNER JOIN)や完全外部結合(FULL OUTER JOIN)などが可能なのです。
⬇︎レシピの集計
データフローは基本的に、集計(GOUP BY)してデータの粒度を変更することができません。 レシピならば、合計, 平均, 最大などで集計処理を行うことが可能になります。
データフローとレシピの使い分け
基本はデータフローで加工するのがオススメです。 「左外部結合以外の結合がしたい」もしくは「集計処理がしたい」時など、レシピでしかできないことがある場合にのみ、レンズを活用すればいいのかなと。
おわりに
以上、長々と書いてしましましたがEinstein AnalyticsのEとTとLでした。
2020年も盛りだくさんな予感がしています。 2019年に引き続き、楽しみたいと思います!