3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【リバースETL】DWHからSalesforceにデータを入れてみる

Last updated at Posted at 2025-04-04

はじめに

リバースETLでは、DWHにある分析済みのデータをSalesforceなどのCRMへいれることで現場のユーザーが分析結果を確認しやすい環境を作ることができます

試しにTROCCOでリバースETLの設定してみたところ、思いの外Salesforce側の設定などに手間取りました。
今回は詰まったところや、発生したエラーなどをまとめていきたいと思います。

今回のゴール

DWHにあるデータをSalesforceのカスタムオブジェクトにいれる

やること

①Salesforceのカスタムオブジェクトを作成する
②TROCCOでリバースETL(Snowflake → Salesforce)の設定をする
③Salesforceで転送されたデータを確認する

①Salesforceのカスタムオブジェクトを作成する

Snowflakeに下記のようなデータがあります。
これをSalesforceで確認できるようにするため、器となるカスタムオブジェクトを作成します。

image.png

カスタムオブジェクトはSalesforceの設定にあるオブジェクトマネージャから作成できます。

スクリーンショット 2025-04-02 155120.png

作成したカスタムオブジェクトが下記です。

image.png

API NAME は transaction_data で作成しました。
カスタムオブジェクトの場合は自動で末尾に __c が付与されるようです。

さらに、カスタムオブジェクトの中にカスタムフィールドを作成していきます。
とりあえず必須項目だけ設定します。

スクリーンショット 2025-04-02 160950.png

作成したフィールドが下記です。DWHのカラム名とフィールド名は同じものにしました。

image.png

Salesforce側の設定はできたかな?と思ったので、TROCCOの設定を行います。

②TROCCOでリバースETL(Snowflake → Salesforce)の設定をする

入れ物ができたので、実際にデータを転送してみます。
リバースETLのときでも設定方法に変わりはなく、GUIでサクサク設定できます。
データ転送設定にて、転送元をSnowflake、転送先をSalesforceとして指定します。

image.png

STEP1の詳細設定画面では項目に従って設定を進めます。
STEP2のプレビューではこんな感じでデータが確認できます

今回はデモ用に適当なデータを使用しているため、レコードのIdを含まないデータで試しています。Salesforceに入れたデータを後から更新したい場合は、対象のレコードを特定するためIdが必要となります。

image.png

問題なさそうなので、保存して実行していきます。
結果はエラーになってしまいました...。

image.png

エラー内容を抜粋すると下記になっていました。

Session 315379465016086 has been successfully closed in 26 msINFO: Connection with session id: 315379465016086 closed successfully in 27 msThere are 598 failuresINVALID_FIELD: 598 failures No such column 'merchandise' on entity 'transaction_data__c'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.: {"merchandise":"A_001","company_purchased":"F株式会社","settlement_time":"2025/02/01

カスタムフィールド名のあとには __c が必要だと言われているみたいです。
データ転送設定のSTEP2 カラム定義でそれぞれのカラム名に __c を追加していきます。

image.png

この状態で実行すると成功しました!!

image.png

これでデータ転送は完了です!

③Salesforceで転送されたデータを確認する

無事Salesforceにデータを転送できました。Salesforce側で結果を確認しようとしたのですが、Salesforce上のタブにレコードを入れた「取引データ」という項目が見つかりません...
転送したデータに含まれるキーワード(株式会社)で検索しても結果に表示されませんでした

image.png

色々調べたところ、Salesforce上でタブの設定を行う必要があるようです。
設定を開き、ホームで tab(タブ) のように検索します。
ユーザーインターフェースに含まれる Tabs(タブ) を選択します。

スクリーンショット 2025-04-04 120915.png

新規作成します。

スクリーンショット 2025-04-04 121213.png

必須項目を設定して保存します。
すると、このような設定を作ることができます。

image.png

少し待ってからダッシュボードの方に戻ると、Moreの中に対象の項目が表示されることが確認できました!

スクリーンショット 2025-04-04 121644.png

また、検索した場合も結果として対象の項目が表示されることが確認できました。

スクリーンショット 2025-04-04 121958.png

Salesforce側の確認も完了したので今回はここまでです!お疲れ様でした

(おまけ) Salesforce上のレコードを一括で削除する方法

SalesforceではGUI上で一括選択してのレコード削除ができなさそうでした。
設定を失敗して想定外のレコードが大量に転送されてしまった場合や一旦レコードをすべて削除して最初からやり直したい場合は下記の記事に記載の方法が使えたのでご参考までに!

おわりに

Salesforce分かりづらすぎて大変でした。
Salesforceの公式ドキュメントは文字での説明が多く初心者には厳しいところがあるので、やってみた記事などのほうが参考になりました。
また、データ転送の設定ではカラム名の設定で躓きました。
一度SalesforceからDWHへデータを転送してみると、どのようなカラム名でどの情報が格納されているのか確認できます。それを参考にすると設定がスムーズに進められたので、適当なデータを手動で入れてみてデータ転送前に確認すると良さそうです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?