こんにちは。エンジニアの宮本です。
以前 GCP の新しいサービスである Cloud Data Fusion と CData のJDBC Driver を使って、Salesforce から BigQuery への連携記事をアップしました。
www.cdatablog.jp
今回はその逆、BigQuery にあるレコードを Salesforce に連携して追加していく方法をご紹介します。
必要なもの
- GCPのアカウント
- BigQueryへ事前にデータを登録(今回は Salesforce にある Account オブジェクトのデータをそのまま BigQuery に入れてます)
- CData Salesforce JDBC Driver (クラウド環境で使えるライセンスが別途必要)
構成(BigQuery→Salesforce)
Cloud Data Fusion は JDBC をアップロードすることができます。登録方法は前回の記事を参照してください。
パイプラインの作成
サイドメニューの Source から「BigQuery」、Sink から「Database」を選択し、以下のように線で結びます。
BigQuery の設定
BigQuery のボックスをクリックしますと設定画面が表示されます。
Label、Reference Nameに任意の名前を設定し、下に続くBigQuery へのアクセス設定を 入力します。(Project ID や Dataset など)
入力後、「GET SCHEMA」ボタンがあるのでクリックします。BIgQueryへのアクセスが成功すると右側にアクセス先テーブルのカラムが表示されます。これで設定は完了です。
Salesforce の設定
こちらも同様に Salesforce のボックスをクリックします。 JDBC Driver は 「Salesforce」という名前で登録したので、Plugin Name にそのまま入力しました。 今回の設定内容は以下の通りです。
- Label:Salesforce
- Reference Name:Salesforce
- Plugin Name:Salesforce
- Plugin Type:jdbc
- Connection String:jdbc:salesforce:User=xxxxxx;Password=・・・・・
クラウド環境に JDBC を上げても使えるようなライセンスキーを使ってます。CDataサポートチームまでお問合せいただければ、Data Fusionで利用できるライセンスキーをご用意できますので、その際は以下のリンクからご連絡ください!
CData Software Japan - Technical Support
- Table Name:Account
- Columns:Name(今回はName項目だけを更新対象にします)
これでデータパイプラインが完成です。
データパイプラインのプレ実行
作成したデータパイプラインをプレで実行することができますのでやってみます。
ちなみにプレなのでデータの更新は行いません。一連の流れがエラーなく行えるかを確認していくことになります。
右上の方にあります「Preview」をクリックします。
「Run」をクリックするとプレ実行が始まります。
エラーメッセージが表示されなかったので正常終了しました。
これで問題なく本実行できることが確認できました。
データパイプラインの実行
次は実際にデプロイ→本番実行をしていきます。
BigQuery にあるデータを更新
今時点では Salesforce と BigQuery は同じデータが入ってます。これだと同じレコードが追加されてしまうので、データを変更していきます。
※ BigQuery 以外の場合は Update や Delete を選択することができず、全て新規扱いでレコードが登録されてしまうようです。
取引先名(Name)に「CData Software Japan」で更新しました。
いま Salesforce 自体には取引先名に「CData Software Japan」は存在していません。なお、この確認は CData Salesforce JDBC Driver で Salesforce のデータをSQLで確認しています。
デプロイ & 実行
デプロイは簡単です。以下の赤枠の「Deploy」をクリックするだけです。
デプロイが完了すると以下の画面のようになりますので、真ん中上にある「Run」をクリックします。
Statusが緑色になり、”Succeeded” と表示されているのでパイプラインの実行が正常に終了しました。
Salesforce のデータを確認
「CData Software Japan」という取引先名のデータが存在しているかみてみます。SQL を実行すると BigQuery で更新した1件が Salesforce に追加されていることが確認できました。
さいごに
前回の記事(Salesforce→BigQuery)に続き、今度は登録だけになりますが逆パターンを行い、Salesforce へのデータ連携を Cloud Data Fusion で行えることがわかりました。
今時点では 連携先が BigQuery 以外の場合は、Update や Delete などが Cloud Data Fusion で設定できないようになっていましたが、今後に期待したいと思います。
先ほど CData JDBC Driver で Marketo のデータも扱えることを確認できたので、Cloud Data Fusion の環境だけ用意してしまえば、さまざまなデータソースを扱ったデータパイプラインの作成ができそうです。
前回記事にも書いてありますが、Salesforce Driver を Cloud Data Fusion で使うには、サポートよりランタイムキーを発行する必要があります。とはいえ、トライアル版として30日間無料でご利用いただけますので、お試しいただく際は以下のサポートフォームより是非ご連絡ください!