CData Software Blog

クラウド連携のCData Software の技術ブログです。

Cloud Data Fusion で Salesforce に取引先情報を登録する:CData Salesforce JDBC Driver

こんにちは。エンジニアの宮本です。

以前 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

f:id:sennanvolar44:20191221191143p:plain Cloud Data Fusion は JDBC をアップロードすることができます。登録方法は前回の記事を参照してください。

パイプラインの作成

サイドメニューの Source から「BigQuery」、Sink から「Database」を選択し、以下のように線で結びます。
f:id:sennanvolar44:20191221192227p:plain

BigQuery の設定

BigQuery のボックスをクリックしますと設定画面が表示されます。
Label、Reference Nameに任意の名前を設定し、下に続くBigQuery へのアクセス設定を 入力します。(Project ID や Dataset など)
f:id:sennanvolar44:20191221192551p:plain

入力後、「GET SCHEMA」ボタンがあるのでクリックします。BIgQueryへのアクセスが成功すると右側にアクセス先テーブルのカラムが表示されます。これで設定は完了です。
f:id:sennanvolar44:20191221192859p:plain

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 を上げても使えるようなライセンスキーを使ってます。評価版のドライバーではご利用できませんのでご注意ください
  • Table Name:Account
  • Columns:Name(今回はName項目だけを更新対象にします)

f:id:sennanvolar44:20191221193633p:plain

これでデータパイプラインが完成です。
f:id:sennanvolar44:20191221230527p:plain

データパイプラインのプレ実行

作成したデータパイプラインをプレで実行することができますのでやってみます。
ちなみにプレなのでデータの更新は行いません。一連の流れがエラーなく行えるかを確認していくことになります。

右上の方にあります「Preview」をクリックします。
f:id:sennanvolar44:20191221231151p:plain

「Run」をクリックするとプレ実行が始まります。
f:id:sennanvolar44:20191221231349p:plain

エラーメッセージが表示されなかったので正常終了しました。 f:id:sennanvolar44:20191221231746p:plain

これで問題なく本実行できることが確認できました。

データパイプラインの実行

次は実際にデプロイ→本番実行をしていきます。

BigQuery にあるデータを更新

今時点では Salesforce と BigQuery は同じデータが入ってます。これだと同じレコードが追加されてしまうので、データを変更していきます。
※ BigQuery 以外の場合は Update や Delete を選択することができず、全て新規扱いでレコードが登録されてしまうようです。

取引先名(Name)に「CData Software Japan」で更新しました。 f:id:sennanvolar44:20191221233605p:plain

いま Salesforce 自体には取引先名に「CData Software Japan」は存在していません。なお、この確認は CData Salesforce JDBC Driver で Salesforce のデータをSQLで確認しています。
f:id:sennanvolar44:20191221233945p:plain

デプロイ & 実行

デプロイは簡単です。以下の赤枠の「Deploy」をクリックするだけです。
f:id:sennanvolar44:20191221234123p:plain

デプロイが完了すると以下の画面のようになりますので、真ん中上にある「Run」をクリックします。
f:id:sennanvolar44:20191221234405p:plain

Statusが緑色になり、”Succeeded” と表示されているのでパイプラインの実行が正常に終了しました。
f:id:sennanvolar44:20191221235024p:plain

Salesforce のデータを確認

「CData Software Japan」という取引先名のデータが存在しているかみてみます。SQL を実行すると BigQuery で更新した1件が Salesforce に追加されていることが確認できました。
f:id:sennanvolar44:20191221235648p:plain

さいごに

前回の記事(Salesforce→BigQuery)に続き、今度は登録だけになりますが逆パターンを行い、Salesforce へのデータ連携を Cloud Data Fusion で行えることがわかりました。 今時点では 連携先が BigQuery 以外の場合は、Update や Delete などが Cloud Data Fusion で設定できないようになっていましたが、今後に期待したいと思います。
先ほど CData JDBC Driver で Marketo のデータも扱えることを確認できたので、Cloud Data Fusion の環境だけ用意してしまえば、さまざまなデータソースを扱ったデータパイプラインの作成ができそうです。