概要

Salesforceを利用している企業のなかには単なる顧客情報の管理だけでなく、それらの情報を分析してより確度の高い顧客にフォーカスしていくなどの営業戦略へ活用している企業も多いと思います。このように何かデータを分析し、かつそこから得られる情報を他者にわかりやすく伝えるには、グラフや表といった視覚的なわかりやすさを高めた資料が有効です。
ですがSalesforceのデータは日々更新されるため、最新のデータを活用するにはグラフや表も日々更新し続ける必要があります。このような作業は時間的なコストもかかりますし、かといって途中で止めるわけにもいかない厄介な作業といえるでしょう。
そこで今回は、trocco®というデータ分析基盤構築サービスを使い、Salesforceデータの抽出自動化+DWH(分析用データベース)への統合+可視化までやってみようと思います。

なお、今回データの転送手段として採用したtrocco®は、Salesforceの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。

SalesforceのデータをRedshiftへ転送

ゴール

今回はSalesforceのデータを下の画像のようなグラフをまとめたものを30分くらいで作成します。また作成後はtrocco®の機能を利用して自動でデータを最新値に更新するようにします。

こんな人におすすめ

  • Salesforceに標準で備わっているダッシュボード・レポート機能での分析では限界を感じている方
  • Salesforceを利用中で、そのデータをデータ分析基盤に載せたい方
  • LookerやRedshiftを利用し、大規模データでも高速でデータ分析を行いたい方

1. DWHと同期する手段の選定

1-1. DWHの選定

今回使用するDWH(データウェアハウス)を選定します。

  • Amazon Redshift
  • Google BigQuery
  • MySQLやPostgreSQL など

trocco®はいずれのサービスとの連携にも対応していますが、今回はAmazon Redshiftを利用することにします。

1-2. SalesforceのデータをAmazon Redshiftに転送する4つの方法

Amazon Redshiftにデータを集約することが決まったので、続いては転送するための手段を検討します。

  1. Salesforceのデータを管理画面からダウンロードし、手動でAmazon Redshiftにアップロードする
  2. SalesforceとAmazon Redshiftの各APIを用いて、プログラムを書いて連携する
  3.  Embulkを利用し、自分で環境を構築する
  4.  trocco®を利用し、画面上で設定する

1 は単発の実行であれば問題なさそうですが、冒頭で述べたようにデータを日々取り込むことを考えると毎回同じ作業を繰り返すことになり、手間と時間が取られます。
2 は連携に先立ってAPIのキャッチアップ、プログラムを書くという作業、環境構築と三段階に時間がかかり、また一度連携を実装してもエラー対応やシステムのメンテナンスコストが継続的に発生します。
32 と同様にEmbulkについての専門的な知識がある程度必要になります。また自分で環境構築・運用を行うという点も同様です。加えてエラーの内容が少し専門的なため、APIでの実装よりエラーの解消が困難になるかもしれません。
そこで今回はEmbulkの課題も解決し、プログラムを書かずに画面上の設定のみで作業が完結する、4 のtrocco®というSaaSを利用します。

2. trocco®でSalesforce → Redshiftの転送自動化

2-0. 事前準備

データの転送のためにはtrocco®のアカウント・Salesforceのアカウントが必要です。

無料トライアルを実施しているので、事前に申し込み・登録しておいてください!

https://trocco.io/lp/index.html

(申し込みの際に、こちらの記事を見たという旨を記載して頂ければご案内がスムーズに行なえます。)

2-1. 転送元・転送先を決定

trocco®にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。

転送元に「Salesforce」を指定し、転送先に「Redshift」を選択して転送設定作成ボタンを押します。

設定画面になるので、必要な情報を入力していきます。

2-2. Salesforceとの連携設定

あとで見たときに自分で分かるように転送設定の名前とメモを入力します。

次に「転送元の設定」内の「接続情報を追加」ボタンを押します。

別タブで接続情報の新規作成画面が開きますので、必要事項を記入して保存ボタンを押します。

再度転送設定画面に戻り、接続情報の「再読込」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。

これでSalesforceとの連携は完了です。

2-3. Salesforceからのデータ抽出設定

次に、どのようなデータを取得するかを設定していきます。
ここでは商談(Oppotunity)に関するデータを取得してみます。
オブジェクトで「Oppotunity」を指定し、グラフを作成するために必要なデータ項目をクエリで指定します。

2-4. 転送先Redshiftの設定

転送元と同様に設定していきます。

転送先とするデータベース名、スキーマ、テーブルを設定します。

また、一時的にデータを保存するS3バケットとプレフィックスを指定してください。

最後に転送モードを選択します。insertとすることでテーブルにデータを追加することができます。

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

2-5. データのプレビュー

少し待つと、転送元のデータがプレビューされます。ここではSalesforceから取り込んだデータが表示されています。

転送したいデータが取れているので、このまま「スケジュール・通知設定」に進みます。

2-6. スケジュール・通知設定

「スケジュール・トリガー設定」タブを開きます。

「スケジュールを追加」ボタンを押すと、以下の画像のような入力欄が出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し、自動化することが出来ます。

2-7. データ転送ジョブの実行

設定は以上です。最後に、手動で転送ジョブを実行し、Redshiftにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。

これで転送は完了です!

3. Redshiftの設定

特に設定することありませんが、データがきちんと送られているかプレビューで確認してみます。

Amazon Redshiftの画面を操作することなく、データが転送されていることが確認できました。

4. Lookerで可視化

それでは、これらのデータをLookerで可視化していきます。

まずはRedshiftとLookerを接続の設定を行います。
管理タブを開いて「Database」の「Connections」を開きます。

接続しているデータベース一覧が表示されています。

ここで「Add Connection」→「Database Connection」から接続するデータベース情報を入力します。

Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成していきます。

開発タブを開いて「LookMLプロジェクトの管理」に移動します。

「New LookML Project」から新しいLookMLプロジェクトを作成します。

「Create Project」を押したら、エディタでmodelとviewを定義します。
後々必要になるので、modelの中ではexploreを設定しておきましょう。
(書き方が分からない場合はLookerの公式ドキュメントを参照してください)

これでグラフを作る準備が整いました。
トップページに戻って「New」からDashboardを作成します。

白紙のダッシュボードができました。ここに各種グラフを追加していきます。「新しいTILE」を押します。

先ほどのmodel内で定義したExploreを選択します。

DIMENSIONSにグラフの横軸に表示したいデータ、MEASURESにグラフの縦軸に表示したいデータを設定し、Tileに表示したいデータをプロットします。ここでは日毎の契約数をまとめてみます。

これで一つTileが完成しました。この調子で他のTileも作成すると、今回のゴールであるSalesforceのデータダッシュボードが出来上がります。

まとめ

いかがでしたでしょうか。trocco®を使うとSalesforceの管理画面を触ることなく、簡単にデータを取得し、DWH(Redshift)に貯めることが出来ます。
Redshiftにデータを統合し、Lookerと連携することでそのデータを使ったグラフを作り、データの可視化が出来ます。

trocco®は、ETL/データ転送・データマート生成・ジョブ管理・データガバナンスなどのデータエンジニアリング領域をカバーした、分析基盤構築・運用の支援SaaSです。trocco®について詳しく知りたいという方は、以下より資料をご請求ください。

hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。