こんにちは。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
検証には30日間のフル機能トライアルを利用できます。
CData Sync のインストールとログイン
まずは、 CData Sync の環境を構成しましょう。
こちらのリンクからCData Sync をダウンロードし、インストールを行います。CData Sync には、Windows 版、マルチプラットフォーム(Java)版、およびAWS のAMI 版があります。
www.cdata.com
この記事ではWindows マシンにWindows 版をインストールします。
ダウンロードした.exe ファイルを実行して、デフォルトでインストールをすすめます。途中でコンソールへのログインパスワードを設定するところがあるので任意のパスワードを設定します。
CData Sync はウェブサーバーを内蔵しているので、インストールが終わるとSync サーバーが起動されます。ブラウザ管理コンソールにログインします。
User: Admin
Password: 先ほど設定したパスワード
これでCData Sync が使えるようになりました。
Apache Cassandra の環境準備
続いてデータの連携先となる Apache Cassandara の環境を準備します。
今回は前回の記事で紹介したように、DataStax で環境を構成しました。
接続にはApplication Tokenや各種証明書が必要になるので、予め記事を参考に取得しておいてください。
www.cdatablog.jp
Salesforce へのコネクションを作成
ヘッダーで「接続」をクリックし、以下の画面で Salesforce のアイコンをクリックします。
Salesforce へのコネクションの設定画面が表示されるので、名前には任意の名称(例:Salesforce)に変更して、User、Password、SecurityTokenを設定し、「接続のテスト」ボタンをクリックします。
上段に「接続に成功しました。」のメッセージが出たら成功です。「変更を保存」ボタンをクリックして作成したコネクション情報を保存してください。
プロパティ名 |
値 |
備考 |
Auth Scheme |
Basic |
XXXX |
User |
YOUR_USER_ID |
Salesforce のアカウント |
Password |
YOUR_PASSWORD |
Salesforceのパスワード |
Security Token |
YOUR_SECURITY_TOKEN |
Salesforceより発行されたセキュリティトークン |
Cassandra へのコネクションを作成
続いて、「接続」の「同期先」タブから「Cassandra」の接続を追加します。(もし一覧に無い場合は、Add moreから追加で Cassandra コネクターをインストールしてください。)
以下のように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 |
例)SG3hJ252kfYKLTdteoteFZXjuyo8I9yulsrTl_vCES1i9blOULaefl2Pq_G2rkqtj7PMTn_9ExE6QfbRx4AuqAGe5aoY1e0+diT2fTLKMrAdxnRwb0BOCXY2ec4O9hI |
生成した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を指定します。 |
Cassandra へデータの同期をする場合、おそらく一番重要になるのは「Consistency Level」の指定でしょう。
有効な値は以下のヘルプに詳細があるので、こちらを元に設定してみてください。
cdn.cdata.com
ジョブの作成
それぞれのデータソースへの接続が完了したら、データ同期の実行単位となるジョブを作成しましょう。
先程作成した Salesforce と Cassandra のコネクションをそれぞれ選択します。
ジョブを作成した後は、同期対象となる任意のテーブルを選択しましょう。
データのプレビュー画面で、実際に取得が成功しているかどうかを確認できました。
あとは、任意のスケジュールを指定してデータのレプリケーションを実行できます。
試しに手動で実行してみると、それぞれのレプリケーション件数が結果として表示されました。
Cassandra でも確認してみると、無事レプリケーションされたデータが取得できました。
おわりに
このように、CData Sync を用いることで、Salesforce のデータを Cassandra に簡単に取り込むことができます。
CData Sync では Salesforce 以外にも様々なデータソースに対応しているので、是非自社で利用しているサービスに合わせて試してみてください。
www.cdata.com
関連コンテンツ