各製品の資料を入手。
詳細はこちら →BigCommerceとSalesforceのデータをSnowflakeで集計・分析してSalesforceに連携する方法(リバースETL)
BigCommerce とSalesforce のデータをSnowflake に統合してリードスコアを付加した後に変更後のデータをSalesforce 連携する、リバースETL 構成のパイプラインを構築します。
最終更新日:2024-03-12
この記事で実現できるBigCommerce 連携のシナリオ
こんにちは!プロダクトスペシャリストの宮本です。
CData Sync は、400種類以上のSaaS / DB のデータを各種DB・データウェアハウスにノーコードで統合可能なETL / ELT ツールです。CData Sync では、DB / DWH だけでなくSalesforce をはじめとする一部SaaS をデータの転送先としてサポートしているため、いわゆるリバースETL 構成のデータパイプラインを構築できます。
本記事では、BigCommerce とSalesforce のデータをSnowflake に統合、リードスコアを計算・付加した後にSalesforce 連携する、というリバースETL 構成のパイプラインを作っていきます。
CData Sync とは?

CData Sync は、レポーティング・ダッシュボード、機械学習・AI などで使えるよう、社内のデータを一か所に統合して管理できるデータ基盤をノーコードで構築できるETL ツールで、以下の特徴を持っています。
- BigCommerce をはじめとする400種類以上のSaaS / DB データに対応
- 主要なRDB、データレイク、データストア、データウェアハウスにデータを転送
- 業務データのデータ分析基盤へのETL / ELT 機能に特化し、極限まで設定操作をシンプルに
- 主要なSaaS データの差分更新やCDC(Change Data Capture、変更データキャプチャ)のサポート
- フレキシブルなSQL / dbt 連携での取得データの変換
- Salesforce を始めとする一部SaaS へのデータ転送(リバースETL)をサポート
CData Sync を使い始める
CData Sync は、フルマネージド(SaaS)型・オンプレミス型・AWS / Azure でのホスティング、と多様なホスティング環境に対応しています。各オプションで無償トライアルを提供していますので、自社のニーズにフィットするオプションを選択してお試しください。
無償トライアルへまずは製品の概要を知りたい、という方は5分でCData Sync を体験できる製品ツアーをご利用ください。
製品ツアーへリバースETL とは?
ETL の逆方向のデータ転送手法で、データウェアハウス(DWH)からSaaS へデータを転送することを指します。アプリ間連携のようなEAI とは異なり、ETL のようにバッチ処理での連携を行います。例えば、SalesforceとBigCommerce のデータをデータウェアハウス内に統合、集計・予測してからSalesforceに書き戻したい場合、以下の2つの方法があります。
- Salesforce → データウェアハウスで連携
- データウェアハウスで変換されたデータをSalesforce に書き戻し

それでは、BigCommerce とSalesforce のデータを統合して書き戻すための具体的な設定手順を説明していきます。
実現するシナリオ
BigCommerce とSalesforce の情報を一度Snowflake に統合、統合したデータを使ってリードをスコアリングし、その結果をSalesforce に書き戻します。 リバースETL のデータソースとなるDB としてSnowflake を使い、全体のデータの流れは、
Salesforce (Lead)+BigCommerce → Snowflake(スコアリング)→ Salesforce(Lead)となります。なお、Salesforce のLead オブジェクトにはスコアリング結果を格納するカスタム項目を事前に作成しておきます。
Salesforce とBigCommerce への接続を設定
はじめに、Salesforce とBigCommerce のデータをSnowflake に転送するための設定を行います。
CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。
それでは、データソースとしてBigCommerce を設定していきましょう。左の[接続]タブをクリックします。
- [+接続の追加]ボタンをクリックします。
- [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、BigCommerce を見つけます。
- BigCommerce の右側の[→]をクリックして、BigCommerce アカウントへの接続画面を開きます。もし、BigCommerce のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。
- 接続プロパティにBigCommerce に接続するアカウント情報を入力をします。
BigCommerce 認証は標準のOAuth フローに基づいています。
Store ID の取得
BigCommerce Store に接続するには、StoreId が必要です。Store Id を確認するには、以下の手順に従ってください。
- BigCommerce アカウントにログインします。
- ホームページから「Advanced Settings」->「API Accounts」 を選択します。
- 「Create API Account」->「Create V2/V3 API Token」をクリックします。
- 画面にAPI Path という名前のテキストボックスが表示されます。
- テキストボックス内に、次の構造のURL が表示されます:https://api.bigcommerce.com/stores/{Store Id}/v3。
- 上記で示したように、Store Id は'stores/' と'/v3' パスパラメータの間にあります。
- Store Id を取得したら、「キャンセル」 をクリックするか、まだ持っていない場合はAPI Account の作成に進むことができます。
パーソナルアクセストークンの取得
加えて、自分のデータをテストおよびアクセスするには、個人用トークンを取得する必要があります。個人用トークンを取得する方法は次のとおりです。
- BigCommerce アカウントにログインします。
- ホームページから「Advanced Settings」->「API Accounts」 を選択します。
- 「Create API Account」->「Create V2/V3 API Token」をクリックします。
- アカウント名を入力します。
- 作成するAPI Account の「OAuth Scopes」を選択します。CData 製品 は"None" とマークされたデータにアクセスできません。また、"read-only" とマークされたデータを変更できません。
- 「保存」をクリックします。
BigCommerce への認証
次に、以下を設定してデータに接続できます。- StoreId:API Path テキストボックスから取得したStore ID に設定。
- OAuthAccessToken:生成したトークンに設定。
- InitiateOAuth:OFF に設定。
- [作成およびテスト]をクリックして、正しくBigCommerce に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてBigCommerce への接続が設定されました。
Salesforce への接続を設定
データソースとしてSalesforce を設定します。接続プロパティまでの設定方法は基本的にBigCommerce と同じです。
Salesforce への接続には通常のログインの他、OAuth やSSO を利用できます。ログイン方式では、ユーザー名、パスワード、セキュリティトークンを使って接続します。Salesforce セキュリティトークンの取得についてはこちらの記事をご確認ください。
ユーザー名、パスワードを使用しない、またはできない場合、OAuth 認証を利用できます。
SSO (シングルサインオン) は、SSOProperties、SSOLoginUrl、TokenUrl プロパティを設定することでID プロバイダー経由で利用できます。詳細はヘルプドキュメントの「はじめに」を参照してください。
Snowflake への接続を設定
次に、Snowflake への接続を設定します。同じく[接続]タブを開きます。
- [+接続の追加]ボタンをクリックします。
- [同期先]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Snowflake を見つけます。
- Snowflake の右側の[→]をクリックして、Snowflake データベースへの接続画面を開きます。
- 必要な接続プロパティを入力します。Snowflake との接続には、以下のプロパティが必要です。
- User: Snowflake データベースへの認証用のusername
- Password: Snowflake ユーザーのpassword
- AuthScheme: 使用する認証スキーマ。入力可能な値はPASSWORD、もしくはOKTA
- Account: Snowflake でのアカウント
- URL: Snowflake インスタンスのURL 例: https://myaccount.snowflakecomputing.com
- Warehouse: Snowflake ウェアハウスの名前
- Database: Snowflake データベース名
- Schema: Snowflake データベースのスキーマ
- [作成およびテスト]をクリックして、正しく接続できているかをテストします。
- これで転送先としてSnowflake を設定できました。CData Sync では、Snowflake のデータベース名を指定するだけで、転送するSnowflake に併せたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。
Salesforce とBigCommerce のデータをSnowflake に統合
CData Sync では、データ転送をジョブ単位で設定します。ジョブは、例えばSalesforce → Snowflake といった1データソース対1転送先の単位で設定し、データソースが持つ複数のテーブルを転送できます。データ転送ジョブを設定するには、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。
すべてのオブジェクトをデータ転送する場合
Salesforce のすべてのオブジェクト / テーブルをデータ転送するには、[種類]で[すべて同期]を選択して、[タスクを追加]ボタンで確定します。
作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Salesforce テーブルをSnowflake に転送できます。
オブジェクトを選択してデータ転送する場合
Salesforce から特定のオブジェクト / テーブルを選択してデータ転送を行うことが可能です。[種類]では[標準(個別設定)]を選んでください。
次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。
するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、データ転送を行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、データ転送ジョブを実行します。
このようにとても簡単にSalesforce からSnowflake への同期を行うことができました。
Snowflake に転送されたテーブルを見てみると、Salesforce のデータが転送されていることが確認できます。スコアリング結果を格納するLeadScore_c(カスタム項目)にはまだ何もデータが入っていnaino、ここにBigCommerce のデータを統合したリードスコアリングの計算結果を追加します。

同じ手順で、BigCommerce のお好みのデータをSnowflake に転送できます。今回はCustomers テーブルを使用しました。
リードスコアリング
それでは、Salesforce のリードをスコアリングしてSnowflake に反映しましょう。このときにBigCommerce のCustomers データを統合して使います。
CData Sync ではSalesforce とBigCommerce 以外にも400種類以上のデータソースをサポートしているので、スコアリングに必要なデータ(Webサイト上のアクティビティやメール開封率、ダウンロード履歴など)が他にあれば追加してみてください。
それでは、Snowflake のLead_reverse テーブルのLeadScore_c を参照してみましょう。
本記事ではリードスコアリングの方法は省きますが、Snowflake 上でSalesforce とBigCommerce のデータを使ってスコアリングした結果は以下のようにLeadScore_c カラムに追加しています。

この更新されたリードデータを、元のリードデータを持つSalesforce に書き戻します。
Salesforce への書き戻し
書き戻しを行うには、Snowflake からSalesforce へのジョブを作成する必要があります。ただし、作成方法はデータソースと同期先に注意するだけでほとんど同じです。
では、ジョブを追加ボタンをクリックしてジョブを作成していきます。
- データソース:Snowflake
- 同期先:Salesforce
- 転送モード:元あるリードデータにスコアリング結果を加えるだけなので、Update

※連携方法は、 Insert、Upsert、Update の3パターンから選択可能です。Upsertの場合は、Salesforce で外部ID として登録している項目のみKey として使用可能
ここでテーブル同士を紐づけます。

次にどの項目をキーにするか、またどのカラム同士をマッピングするかを指定します。今回は LeadScore_c 同士でマッピングしました。

設定は以上で、あとは右上の実行ボタンをクリックするだけです。※運用時はスケジュール設定を行ってください。

実行が完了すると、ステータスや更新した行数が表示されます。

では、最後に Salesforce のLeadオブジェクトを見てみましょう。LeadScore 列にSnowflake でスコアリングした結果が取り込まれました!

Salesforce へのリバースETL 構成をCData Sync で実現
このように、Salesforce とBigCommerce のデータを統合して書き戻すリバースETL のような複雑に思える構成でも、CData Sync ならノーコードで簡単に実現できます。
リバースETL にはリードスコアリングの他、マスタデータとの連携やWeb 解析ツールが持つユーザーアクティビティとの連携など、幅広いユースケースがあります。30日間の無償トライアルで、リバースETL パイプラインの構築を手軽にお試しください。
日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
もっとユースケースが知りたい!という方は、CData Sync の 導入事例を併せてご覧ください。