Apache Cassandra に Salesforce のデータを取り込む方法:CDataSync

f:id:sugimomoto:20210914153215p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

前回の記事で DataStax に構成した Apache Cassandra にCData Driver から接続する方法を紹介しました。

www.cdatablog.jp

ただ、Cassandra のユースケースを考えると、以下のユースケースのようにデータストアとして様々なデータを蓄積し、Apache Spark で集計・分析に繋げるというユースケースもありますよね。

www.slideshare.net

そこで今回は Cassandra にデータを取り込む方法として、CData Sync を用いた方法を紹介したいと思います。

CData Sync とは

CData Sync は、各種クラウドサービス(SaaS)データをRDB やクラウドデータストアにレプリケーションできるデータパイプラインツールです。

各SaaS のAPI コーディングが不要で400種類を超えるデータソースに対応して、主要なRDB やクラウドストアへのETL/ETL ジョブを作成、実行できます。

今回はこのCData Sync を使って、CRM SaaS として有名な Salesforce のデータを Cassandra に取り込んでみます。

www.cdata.com

f:id:sugimomoto:20210914152623p:plain

検証には30日間のフル機能トライアルを利用できます。

CData Sync のインストールとログイン

まずは、 CData Sync の環境を構成しましょう。

こちらのリンクからCData Sync をダウンロードし、インストールを行います。CData Sync には、Windows 版、マルチプラットフォーム(Java)版、およびAWS のAMI 版があります。

www.cdata.com

この記事ではWindows マシンにWindows 版をインストールします。

ダウンロードした.exe ファイルを実行して、デフォルトでインストールをすすめます。途中でコンソールへのログインパスワードを設定するところがあるので任意のパスワードを設定します。

f:id:cdatasoftware:20210906191156p:plain

CData Sync はウェブサーバーを内蔵しているので、インストールが終わるとSync サーバーが起動されます。ブラウザ管理コンソールにログインします。

  • User: Admin

  • Password: 先ほど設定したパスワード

f:id:cdatasoftware:20210906191102p:plain

これでCData Sync が使えるようになりました。

Apache Cassandra の環境準備

続いてデータの連携先となる Apache Cassandara の環境を準備します。

今回は前回の記事で紹介したように、DataStax で環境を構成しました。

接続にはApplication Tokenや各種証明書が必要になるので、予め記事を参考に取得しておいてください。

www.cdatablog.jp

Salesforce へのコネクションを作成

ヘッダーで「接続」をクリックし、以下の画面で Salesforce のアイコンをクリックします。

f:id:sugimomoto:20210914152632p:plain

Salesforce へのコネクションの設定画面が表示されるので、名前には任意の名称(例:Salesforce)に変更して、User、Password、SecurityTokenを設定し、「接続のテスト」ボタンをクリックします。

上段に「接続に成功しました。」のメッセージが出たら成功です。「変更を保存」ボタンをクリックして作成したコネクション情報を保存してください。

プロパティ名 備考
Auth Scheme Basic XXXX
User YOUR_USER_ID Salesforce のアカウント
Password YOUR_PASSWORD Salesforceのパスワード
Security Token YOUR_SECURITY_TOKEN Salesforceより発行されたセキュリティトークン

f:id:sugimomoto:20210914152637p:plain

Cassandra へのコネクションを作成

続いて、「接続」の「同期先」タブから「Cassandra」の接続を追加します。(もし一覧に無い場合は、Add moreから追加で Cassandra コネクターをインストールしてください。)

f:id:sugimomoto:20210914152643p:plain

以下のようにDataStax の Cassandra に接続するために必要な情報をそれぞれ入力ます。

プロパティ名 備考
Server 例)83dcfcce-d66f-4e15-8e5e-36e9563cebfb-ap-southeast-1.
db.astra.datastax.com
config.json の Host の値を指定します。
User 例)tKYtFNEGDhGYeDlazreXXPYH 生成したApplication Token のClient IDを指定します。
Password 例)SG3hJ252kfYKLTdteoteFZXjuyo8
I9yulsrTl_vCES1i9blOULaefl2Pq_
G2rkqtj7PMTn_9ExE6QfbRx4Auq
AGe5aoY1e0+diT2fTLKMrAdxnR
wb0BOCXY2ec4O9hI
生成したApplication Token のClient Secret を指定します。
Server 例)samplekeystore 接続したいkey store を指定します。
UseSSL True
SSLClientCert 例)C:\Work\Datastax\secure-connect-sample\cert.pfx cert.pfx ファイルのパスを指定します。
SSLClientCertType PFXFILE
SSLClientCertPassword 例)xEl8V06tBX73rJwQY XXXX
SSLServerCert 例)C:\Work\Datastax\secure-connect-sample\ca.crt ca.crt ファイルのパスを指定します。
Consistency Level 例)ALL 任意のConsistency Levelを指定します。

f:id:sugimomoto:20210914152648p:plain

Cassandra へデータの同期をする場合、おそらく一番重要になるのは「Consistency Level」の指定でしょう。

有効な値は以下のヘルプに詳細があるので、こちらを元に設定してみてください。

cdn.cdata.com

f:id:sugimomoto:20210914152654p:plain

ジョブの作成

それぞれのデータソースへの接続が完了したら、データ同期の実行単位となるジョブを作成しましょう。

f:id:sugimomoto:20210311162114p:plain

先程作成した Salesforce と Cassandra のコネクションをそれぞれ選択します。

f:id:sugimomoto:20210914152659p:plain

ジョブを作成した後は、同期対象となる任意のテーブルを選択しましょう。

f:id:sugimomoto:20210914152704p:plain

データのプレビュー画面で、実際に取得が成功しているかどうかを確認できました。

f:id:sugimomoto:20210914152708p:plain

あとは、任意のスケジュールを指定してデータのレプリケーションを実行できます。

f:id:sugimomoto:20210311162149p:plain

試しに手動で実行してみると、それぞれのレプリケーション件数が結果として表示されました。

f:id:sugimomoto:20210914152713p:plain

Cassandra でも確認してみると、無事レプリケーションされたデータが取得できました。

f:id:sugimomoto:20210914152718p:plain

おわりに

このように、CData Sync を用いることで、Salesforce のデータを Cassandra に簡単に取り込むことができます。

CData Sync では Salesforce 以外にも様々なデータソースに対応しているので、是非自社で利用しているサービスに合わせて試してみてください。

www.cdata.com

f:id:sugimomoto:20210914152944p:plain

トライアル・お問い合わせ

関連コンテンツ