CRM Analyticsを使ってSnowflakeからSalesforceへのZeroリバースETLを実装する方法
本記事は Snowflake Advent Calendar 2024 の6日目です。
1. はじめに
SnowflakeにあるデータをSalesforceへリバースETLして、ビジネス側の方にSalesforce上でデータを見せたい、レポートの抽出条件に入れたい、そういった需要があると思います。
そこで今回は、Salesforceの製品CRM Analytics(旧Tableau CRM)を利用して、ZeroリバースETLを実装する方法についてまとめます。
なお、SalesforceからSnowflakeへのZeroETLの実装方法と、今回利用するCRM Analyticsについて、及びCRM Analyticsが利用可能なSalesforceの開発環境、Snowflakeのトライアル環境の取得方法については、前回の記事をご覧ください。
前回のETL、今回のリバースETLのどちらも開発環境で実際に試すことができますので、興味を持たれた方はぜひ試してみてください。
2. 今回やること
2-1. 一文でまとめると
Snowflake Marketplaceから法人に関するオープンデータを取得し、それをCRM Analyticsを利用してSalesforceの取引先オブジェクトに法人番号をキーに結合し、Salesforceへデータを転送する。
2-2. 利用システム概要
CRM Analyticsなど、前回の記事で触れているもの以外のものについてリンクを張っておきます。
- Snowflake Marketplace
- オープンデータ:truestar社が提供するPrepper Open Data Bank
- 法人番号
法人番号については、法人番号株式会社さんが熱く語っていらっしゃいますので、そちらをご確認いただくのも良いかもしれません。
3. Snowflakeでのデータ準備
3-1. Marketplaceからデータを取得
Snowflakeにログインをしたら、まずはMarketplaceからPrepper Open Data BankのCorporate Dataをダウンロードします。
- 画面左上の
Data Products
>Marketplace
をクリック - 画面上の検索画面から
Prepper Open Data Bank - Japanese Corporate Data
を検索 -
Get
をクリック -
Get
をクリック(Options
については任意で設定ください)
--
4. Salesforceの設定
次にSalesforce側の設定をし、Snowflakeからデータを送付するための準備をします。
4-1. Salesforceへデータを出力する機能を有効化
デフォルト設定では機能が有効化されていないため、この設定をしないと後工程のSalesforce 出力コネクタ
が表示されません。
- 画面右上の歯車マークのボタン
設定
をクリック - 画面左上のグローバル検索ボックスに
Analytics
と入力 -
設定
をクリック -
Salesforce 出力接続を有効化
にチェック -
保存
をクリック
--
4-2. tokenの生成
Salesforceでは、外部との連携をする場合、tokenを設定する必要があるので、その設定方法を記載します。
-
アストロくんのマーク
をクリック -
設定
をクリック -
わたしのセキュリティトークンのリセット
を設定 -
セキュリティトークンのリセット
をクリック - メールにセキュリティトークンが届く
※5-3のステップで利用します
4-3. Salesforceに法人番号と従業員数を入力する項目を作成
取引先オブジェクトに、オープンデータとの結合のキーにするために利用する「法人番号」「従業員数」を入力する項目を作成します。
- 画面右上の
歯車マークのボタン
>設定
の順番でクリック - 画面左上の
オブジェクトマネージャー
をクリック - 画面右上の
クイック検索
に「取引先」と入力 - 画面左に
取引先
が出てくるので、クリック - 画面左上の
項目とリレーション
をクリック - 画面右上の
新規
をクリック - データ型は
テキスト
を選択し、次へ
をクリック - 表示名、文字数、API参照名を入力
- 表示名:法人番号
- 文字数:13(法人番号は13桁のため)
- 項目名:CorporateNumber
- ※Salesforceはパスカルケースが主流ですが、記法は任意
- 何もせず、
次へ
をクリック - 「Analytics Cloud Integration User」にチェックが入っていることを確認し、
保存
をクリック - 保存できれば、項目の作成完了
--
4-4. 法人番号を入力したサンプル取引先を作成
実際にデータがSnowflakeからSalesforceに入ることを確認するために、サンプルで法人番号を入力した取引先レコードを作成しておきましょう。
- 画面左上の
点々マーク
をクリックし、リストからセールス
をクリック - 画面真ん中上のタブから
取引先
をクリック - 画面右上の
新規
をクリック -
取引先名
、法人番号
を入力し、保存をクリック-
サンプルとして、SalesforceとSnowflakeの法人番号をおいておきます株式会社セールスフォース・ジャパン:4010401076766Snowflake合同会社:5010401146527- 最後に気付きまして、PODBに上記2社の従業員データがありませんでした...そのため、弊社の法人番号を例とします
- 株式会社HR Force:3010001189465
- こちらは、ご自身の会社や知っている会社など、ご自由にご入力ください
- 法人番号の検索は、法人番号検索サイトから可能です
-
--
5. CRM Analyticsの設定
5-1. Snowflakeとの接続設定
CRM Analyticsの機能を利用するためには、Analytics Studio
のアプリケーションへ移動する必要があります。その後、今回はSalesforceとSnowflakeを接続するための設定を行います。
- 画面左上の
点々マーク
をクリック -
Analytics Studio
を選択(もし表示されない場合は検索窓に入力) -
データマネージャ
をクリック -
接続
をクリック -
新しい接続
をクリック -
入力
をクリック -
Snowflake コネクタ
をクリック
※Snowflake Direct コネクタ、Snowflake 非公開コネクタではないので、注意 -
次へ
をクリック - Snowflake設定で設定した名称など、必要な情報を入力
※Database、Schemeには、PODBのデータが参照できる情報を入力
Database:PREPPER_OPEN_DATA_BANK__JAPANESE_CORPORATE_DATA
Scheme:E_PODB
-
保存してテスト
をクリック -
出力
タブと、設定した出力設定が存在すればOK
--
5-2. オブジェクトの設定
-
接続
をクリック -
入力
タブ内のSnowflake接続(4-3でつけた任意の名前)にある▼
をクリック -
オブジェクトを編集
をクリック - オブジェクトは
CORP_BASIC
にチェック - 法人番号と従業員数の列にチェック
- おそらくエラーとなり保存できないため、エラーマークの隣の鉛筆マークをクリック
-
精度
を20から18に変更 -
保存
をクリック - Snowflake接続の右にある
▼
をクリックし、データ同期を実行
をクリック -
状況
が成功
になっていたらOK
--
5-3. SnowflakeのデータをSalesforceへ出力する許可を行う設定
取引先や取引先責任者などの重要なオブジェクトはもともと接続されていたり、項目が選択されていることがあります。ただし、実際にはそれぞれの組織ごとに利用する項目は異なると思いますので、こちらの設定をして、送付する項目を決定しましょう。
-
接続
をクリック -
新しい接続
をクリック -
出力
をクリック -
Salesforce コネクタ
をクリック -
次へ
をクリック - 必要な情報を入力
パスワード欄のみ注意。自身で設定したもの+4-2で設定したtoken -
保存してテスト
をクリック - テストに成功し、
出力
タブに作成した出力設定が存在すればOK
--
5-4. レシピの作成
- 画面左から
レシピ
タブに移動し、新規レシピ
をクリック -
入力データを追加
をクリック -
ACCOUNT
とCORP_BASIC
をチェックし、次へ
をクリック
このとき、ACCOUNT
では法人番号と従業員数、IDのみにしておく - 上記どちらかの隣にある
+
をクリック -
接続
タブから、選択した方ではない方(もう一つの方)を選択し、結合
をクリック - 結合キーを「法人番号」の項目で設定する
- 結合の隣の
+
から、出力
をクリック - 必要な情報を入力し、
適用
をクリック
書き込み先
:出力接続
接続名
:5-3で作成した出力接続
オブジェクト名
:Account
項目
:それぞれ適切に紐づいているか確認 -
保存して実行
をクリックし、任意のレシピ名で保存(→自動実行開始)
※ジョブ監視タブにて実行結果の確認が可能
--
5-5. スケジュール設定
本番環境を想定すると、毎日決まった時間に同期する設定をしたい、などの要望があると思いますので、その方法についてご紹介します。
-
レシピ
タブの該当のレシピ横にある▼
をクリック -
スケジュール
をクリック - 時間ベース、イベントベースにてスケジュール管理が可能
--
6. Salesforceのデータ確認
最後に、Salesforceの取引先に、Snowflakeからデータが送付されたのかを確認してみます。
無事、入ってきていました。これにて完了です。
7. おわりに
今回は、CRM Analyticsを利用して、SnowflakeからSalesforceへのZeroリバースETLの実装方法についてご紹介しました。今回はSnowflakeを利用しましたが、CRM Analyticsがコネクタを持っていれば、他の製品でも同様の方法で実装することが可能です。
本記事が少しでも皆様がCRM Analyticsに興味を持ってくださるきっかけとなれましたら幸いです。
Discussion