概要

Salesforce(セールスフォース)はいまや世界中で利用されているCRM(顧客関係管理)ツールであり、売上データを分析する際に、Salseforceのデータと他のデータを紐付けての分析は非常に重要になってきます。
Salesforceには登録された顧客のデータを分析するためにそれらの可視化、エクスポートを行うレポート機能がある程度標準の機能として備わっています。ですが何千、何万という単位のデータをリアルタイムで分析したい場合や、Salesforce以外のサービスで集積しているデータと絡めた高度な分析を行いたいといった場合には別途DWH(データウェアハウス)へデータを統合、Looker・TableauといったBIツールでデータの可視化・分析を行うという流れが有効ではないでしょうか。そしてこのようなデータ統合に役立つのがETLツールと呼ばれるサービスです。
今回はtrocco®(トロッコ)という分析基盤向けデータ統合サービスを使い、SalesforceのデータをSnowflakeへ統合し、LookerというBIツールを用いてデータの可視化を行います。
なお今回データの転送手段として使用するtrocco®は、Salesforceの他にも、様々な広告・CRM・DBなどのデータソースに対応しています。

SalesforceのデータをSnowflakeへ転送

Salesforceとは?

Salesforce(セールスフォース)とは、企業とその顧客を繋ぐ「クラウド型の顧客管理ソリューションシステム」です。
営業活動をはじめ、問合せ対応やマーケティングなど、さまざまな場面における顧客情報をまとめて管理できる特徴があります。クラウド型の顧客管理ツールの種類は多種多様ですが、Salesforceは全世界で15万社以上(2020年時点)の企業で導入されています。

Snowflakeとは?

Snowflake(スノーフレーク)は、クラウド上に構築されたSaaS型のデータウェアハウスです。
企業のデータ活用プロセスをシンプルにするクラウドデータプラットフォームです。サイロ化されたデータを一元的に管理し、誰もがデータにアクセスして意思決定を行えるデータ分析基盤を実現します。

ゴール

Salesforceのデータを下のようにSnowflakeに統合し、

LookerというBIツールで可視化します(作成後は自動で最新のグラフに更新することも可能です)

こんな人におすすめ

  • Salesforceのダッシュボード、標準のレポート機能での分析には限界を感じている方
  • Salesforceを利用中で、分析基盤やDWH(データウェアハウス)へのデータ統合・ETLを考えている方
  • LookerやSnowflakeを利用してデータ分析を行いたい方

1. trocco®でSalesforce → Snowflakeの転送自動化

1-0. 事前準備

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

なおtrocco®は無料トライアルを実施しているので、事前に申し込み・登録をしておきましょう

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

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

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

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

転送元に「Salesforce」を指定し、転送先に「Snowflake」を選択して「この内容で作成」ボタンを押します。

1-2. Salesforceとの連携設定

trocco®には自社内のユーザーでグループを作成し、グループ内で転送設定を共有する機能があります。他のユーザーにもわかりやすいように転送設定の名前となんの設定かがわかるようなメモを入力しておきます。

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

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

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

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

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

続いてどのようなデータを取得するかを設定していきます。

ここでは商談(Oppotunity)に関するデータを取得してみましょう。

「オブジェクト一覧を読み込む」から連携したSalesforceアカウントで抽出できるオブジェクトが一覧になって表示されます。そのなかから「Oppotunity」を選択します。

データ分析の経験があり、SQLの記述に抵抗がなければSOQL(Salesforce Object Query Language)を用いて取得するオブジェクトの内容をカスタマイズすることも可能です。

SOQLは開発者コンソールクエリエディタから作成できます。
※ SOQLの構文についてはこちらを参照してください。

1-4. 転送先Snowflakeの設定

転送元と同様に設定していきます。Snowflakeの接続情報を作成していきます。

転送先となるSnowflakeの接続先ホスト、ユーザー名およびパスワードが必要になります。

snowflake追加.png

先ほど作成した接続情報を選択し、転送先となるウェアハウス、データベース名、スキーマ名を設定します。

転送モードに関しては今回replaceを選択します。各転送モードの詳細はこちらの「転送モードについて」をご確認ください。

転送先snowflake.png

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

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

少し待つと、転送元のデータがプレビューされます。Salesforceからデータがどのように取得されるかが確認出来ます。

スキーマプレビュー.png

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

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

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

スケジュールトリガー設定.png

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

スケジュールの保存.png

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

設定は以上です。最後に、手動で転送ジョブを実行し、Snowflakeにデータを送ります。

手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。

実行する.png

これで転送は完了です。

2. Snowflakeの設定

Snowflake側での操作は特に必要ありませんが、Snowflakeのコンソール画面からプレビューを確認すると確かにデータが転送されています。

snowflakeプレビュー.png

3. Lookerで可視化

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

まずはSnowflakeとLookerを接続の設定を行います。
管理タブを開いて「データベース」の「接続」を開きます。

接続選択.png

接続しているデータベース一覧が表示されています。ここで「Add Connection」→「Database Connection」から接続するデータベース情報を入力します。

addconnection.png
connections.png

Snowflakeのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成していきます。 開発タブを開いて「LookMLプロジェクトの管理」に移動します。

プロジェクトの管理.png

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

newlookerml.png
newproject.png

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

model.views.png
test.views.png

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

newdash.png

白紙のダッシュボードが作成されるので「Qiita_Salesforce_ダッシュボード」と名前をつけます。
そして「Dashborardの編集」→「タイルの追加」を選択し、先ほどのmodel内で定義したExploreを選択します。

explorer.png

ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。今回は各項目における期待利益について分析したいとき、ディメンションに「Name」とメジャーに「Expected Revenue」を選択します。

各項目における期待利益.png

ダッシュボードに表示します。

データ完成.png

これで完成です。

まとめ

いかがでしたでしょうか。trocco®を利用することでSalesforceの管理画面を触ることなく簡単にデータを取得し、DWH(今回はSnowflake)に統合することが出来ます。
Snowflakeにデータを統合し、Lookerと連携することでデータの可視化することができます。
ぜひデータ分析の際にはご活用ください。

trocco®ではクレジットカード不要のフリープランを提供しているので、実際に試してみたい方はこの機会にぜひご検討ください。

hirokazu.kobayashi

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