CDataSync製品を使ったクラウドデータのバックアップとレプリケート

# はじめに

業務システムのクラウドサービス活用も進み、マルチクラウド、オンプレ×クラウドのハイブリッドで利用されている企業も多くなってきています。これにより、企業内のデータ資産は物理的にも論理的にも分散されてしまい、業務ユーザは、自身が欲しい情報を取得するに、各クラウドサービスへアクセスして収集する必要があります。BIツールなビボッドによるアドホックな分析にはリアルタイム性では優位ですが、各クラウドサービス上のデータへの都度のアクセスは、ネットワークのレイテンシが高く（遅く）必ずしも向いてい無いケースもあります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/e3af031b-649f-c8e7-699e-c34295621638.png)

本記事では、Salesforceを例にSaasデータをオンプレのMySQLにレプリケートされたデータベースを作成する方法を説明します。

# CData Sync製品とは

ポイント＆クリック操作でSaasデータをデータベースに複製を作成するサーバー製品です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/3d644d7a-1282-0079-8a74-b80f79cfc5cb.png)
独自のスケジューリング機能のもと、Saas側で変更が生じたデータのみレプリケートが行われます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/b293572d-c86a-9ee2-33fd-534364ac8875.png)

CData Sync製品はこちらのWebサイトよりダウンロードできます。アクティベーション時に評価ライセンスを選択することで30日間ご使用いただけます。
[ダウンロードホームページ](https://www.cdata.com/sync/)
現在、CData Software Japanでは日本語版を準備中です（2017/12現在）。

# 手順

## CData Sync製品のダウンロードおよびインストール

[こちらのCData Sync製品のページ](https://www.cdata.com/sync/)にアクセスして「DOWNLOAD」ボタンをクリックします。ダウンロードに必要な情報（メールアドレス必須）を登録してダウンロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/d1ab159c-0f1c-621f-98bf-6e1df1cbe70e.png)
setup.exeがダウンロードされるので、レプリケートを実行するマシン上にインストールします。インストーラを起動して、EURAを確認し、ウィザードに従いインストールします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/791f4f30-d77b-caaf-9995-f02def882cd5.png)
途中、管理者のパスワードの設定が必要となりますので、任意のパスワードを入力します。インストーラを最後まで進むと「Run CData Data Sync」にチェックがついていることを確認して終了します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/5df58b9c-5509-95a5-087b-d1dc6ef7165f.png)
Windowsのステータスバーに、CData Data Syncのアイコンが表示されて、しばらくたつとブラウザが起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/0fdb41c3-1417-90ae-4548-f41f75128e55.png)

## ライセンスのアクティベーション

Login画面が表示されるので、User(admin), Passwordはインストール時に指定したパスワードを入力してSign inします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/9c11edd4-ef28-a51a-83de-0203bbe46aad.png)
「About」タブに移り、Licenseのアクティベーションを行います。「Activate 30-Day Trial」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/ca4dbbfe-af61-da25-b7e3-307e24eff090.png)

Sourceに連携するSaasデータソースを選択して、NameとEmailを入力して、Terms and Conditionsの確認を行い、「Activate Trial」を実行します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/694c8fb0-dd16-0823-abb9-84b70617b72a.png)
※アクティベーションには、ライセンスサーバーへのアクセスが必要となりますのでネットワークに接続されている必要があります
アクティベーションが出来ると、Data Sourceに接続Saas（画面の例ではSalesforce）が追加されます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/92c01c5f-c036-30b4-dcbd-cb72942b7f98.png)

## 接続コネクションの設定

「CONNECTIONS」タブに移り、「+Add Connection..」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/4b9b278a-ecfb-0b82-8b9d-54bf3779ee72.png)
レプリケーション先のデータベースを「Destinations」から選択します。今回はMySQLを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/9a37a3e1-317a-0197-64b5-7833011f61bb.png)
MySQLへの接続情報を設定して、「Test Connection」で接続できれば「Save Changes」ボタンをクリックして保存します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/41bcd368-9765-e3e8-4fb3-c342e4e150bc.png)

続いてレプリケーション元のSaasを選択します。今回はSalesforceを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/21ef2988-5754-3439-6a1b-f90d8421d972.png)
Salesforceへの接続情報を設定して、「Test Connection」で接続できれば「Save Changes」ボタンをクリックして保存します。今回のSalesforceの場合は、User、Passwordに加えてSecurityTokenが必要となります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/e1d1635f-3d62-fc13-bf8c-b0a0bb4c02a9.png)
※各Saasへの接続情報は、[製品マニュアル](http://cdn.cdata.com/help/ASC/sync/pg_Salesforce.htm)をご参照ください。
レプリケート元のSaasとレプリケート先のデータベースのコネクション設定が揃いました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8615f78c-fecb-7682-0710-2806dd057913.png)

## 実行ジョブの設定

「JOBS」タブに移り、「+Add Job...」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2a564508-e881-f435-44d7-b60c12f14bb4.png)

Job Nameに任意な名称を付け、Source（Salesforce）とDestination（MySQL）を選択し、Salesforce内のどのオブジェクト（テーブル）のレプリケーションを作成するかを選択するために「+Add Tables」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/4db0655c-e15c-489d-46ec-4c0ce7642e66.png)
Salesforce内のオブジェクト（テーブル）の一覧が表示されるので、今回はAccount（取引先）とOppotunities（商談）を追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/60ccbdf2-0465-0fd3-7469-571b1b631cbd.png)
追加されたテーブルを選択して、「Run」ボタンをクリックして実行してみましょう。「The job started runnnning...」というメッセージが表示されて実行されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/c2c0cae8-e841-ef5c-8c38-5686741e09c9.png)

実行が正常に完了すると「The job [job name] has completed.」といったメッセージが表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8300053c-3a32-a181-f272-ca92c31bbe82.png)

レプリケート先のMySQLの管理コンソール（MySQL Workbench）からアクセスすると、テーブルが作成されていることを確認できます。試しにAccount(取引先)テーブルのデータをSELECT文で取得して確認してみます。Salesforce内のデータのレプリカが出来ていますね。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/34c898f0-9537-e646-991c-34c06eece530.png)

作成したJobを10分間隔で実行するといったスケジュール実行の設定を行います。設定したら「Save Changes」してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/0db7911c-b352-925b-c588-946ca6c41a6a.png)
Salesforce側でデータを追加してみてください。本スケジュールされたJobは追加・変更されたレコードのみ処理の対象をするので、スケジュールされたジョブでは、追加・変更されたレコードのみ処理されたことを確認できます。追加・変更がなけば下記のように「Records affects:0」となります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/b146ea23-7693-e0a4-de22-1792d1955776.png)

## 管理用WebAPIの利用

CData Sync製品の最新バージョンでは管理コンソールがWebとなり、WebAPIで、コネクションの作成やジョブの実行といった管理機能を利用出来るようになりました。

まずはじめに、WebAPIでアクセスする際のアクセストークンを生成します。SETTINGSタブに移動して「User Permissions」配下にユーザを追加します。生成されたAuthTokenは後で利用するので手元に控えておいてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/3198eb1c-e075-d352-0065-4542af4a5b75.png)

画面右上の「API」タブを開きます。本画面にAPIのエンドポイントのリストおよびリファレンスが記載されています。例えば、Resourcesグループ内の「/api.rsc/connections」エンドポイントは、接続コネクションの情報を一覧取得したり、接続コネクションを作成するエンドポイントです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/c994a662-10dc-1fad-e707-c4de42145c6a.png)
実際にPostmanなどからAPIを叩くとJSONレスポンスで返ってきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/5f55d597-258b-0e03-ce86-3c6d9ef34a85.png)

「/api.rsc/executejob」をPOSTメソッドでJobを起動することもできます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/7e4d9399-8c59-fca7-a309-6b9cfa894941.png)

# まとめ

CData Sync製品を使って、ポイント＆クリック設定だけで、Saasデータをデータベースにバックアップとレプリケートする手順についての説明でした。[CData Sync製品はWebサイトよりダウンロードできます](https://www.cdata.com/sync/)。アクティベーション時に評価ライセンスを選択することで30日間ご使用いただけますので是非ご試用ください。