こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は CDataSync の連携先の一つとしてよくご相談をいただく、Amaozn S3 Destination の使い方を解説したいと思います。
Amazon S3 Destination とは?
任意の Amazon S3 Bucket に Salesforce や Kintone など、多様なデータソースから取得したデータをCSVとして吐き出す機能です。

出力先のAmazon S3をデータレイクとして活用し、Amazon Athena などと組み合わせて、大量のデータを集計・分析することが可能になります。

利用手順
それでは実際に使い方を解説していきましょう。
CData Sync のセットアップ
CData Sync を以下のURLからダウンロードして任意の環境にセットアップしておきます。
今回は手順を割愛しますが、Windows・Linux・Amazon AMIなど好みの環境でセットアップできます。
https://www.cdata.com/jp/sync/

セットアップ後、情報タブからトライアルライセンスを有効化しておいてください。

IAM ユーザーの準備
CDataSync から Amazon S3 への接続にはIAMユーザーのAccessKeyとSecretKeyが必要になります。
手順は割愛しますが、Amazon S3 へのアクセス権を付与したユーザーを作成しておいてください。

ちなみに Amazon S3 の接続はIAMユーザーベースの接続と、IAM ロールを用いた接続の2種類がサポートされています。

もしIAM ロールによる接続を行う場合は、対象のロールにAssumeRoleできる権限を持つIAMユーザーおよびAmazon S3へのアクセスポリシーを持つIAMロールを準備してください。
今回はIAMユーザーによる接続で構成します。
Amazon S3 Bucket の準備
続いてデータの保存先となる Amazon S3 の Bucket も構成しておきます。今回は 「s3://cdatajwrk/ReplicateFolder」というフォルダを作成しました。

接続構成
準備が整ったので、CData Syncの接続構成を行っていきましょう。
まず、Amazon S3 への接続構成を行います。
「接続」→「同期先」から「Amazon S3」を選択します。

以下のように接続情報を入力して、接続テストを行い、問題が無ければ「変更を保存」をクリックします。
| プロパティ名 | 値 | 備考 |
|---|---|---|
| AWS Access Key | 例)AKIATGQKTWNACHQAMZF6 | 作成したIAMユーザーのアクセスキーを指定 |
| AWS Secret Key | 例)l33Ygzol2YCUJuZL/1p32OkfSGe7UTNUczA/wMRS | 作成したIAMユーザーのシークレットキーを指定 |
| AWS Region | 例)TOKYO | |
| Bucket | 例)s3://cdatajwrk/ReplicateFolder | 対象のS3バケットを指定 |
| Auth Scheme | AwsRootKeys |

Amazon S3 Destination の設定が完了したら、データの取得先となる設定も追加しましょう。
今回はSalesforceを対象にしてみました。

ジョブの作成と実行
接続構成が終わったので、さっそくジョブを作成してみましょう。
「ジョブ」→「ジョブを追加」をクリックし

ソースで「Salesforce」、同期先として「Amazon S3 Destination」をそれぞれ選択します。

ジョブを作成したら同期対象となるSalesforceのデータ、テーブルを追加します。

今回は以下の3種類のテーブルを追加してみました。

あとは任意のスケジュールを指定して実行するだけです。ただ、今回はとりあえず試したいので手動実行してみます。

対象のテーブルを選択して「実行」ボタンをクリックすると、以下のようにデータのレプリケーションが実施され、ステータスに結果が表示されます。

Amazon S3の対象にした Bucket にアクセスしてみると、以下のように同期対象としたテーブルのフォルダがそれぞれ作成され

中にCSVファイルが生成されていました!

CSVファイルをダウンロードしてみると、ちゃんとSalesforceのデータが出力されていることが確認できます。

データ登録の挙動について
最後にデータ登録の挙動についてお伝えしておきます。
デフォルトでは、データが更新されたり登録されたら、新しくCSVファイルが生成されます。
例えば、以下のようにSalesforceの「Contact」データを更新してみると

ステータスには以下のように表示されます。更新した「Contact」のデータだけが、同期結果1件となりました。

Amazon S3を覗いてみると、以下のようにCSVファイルが追加されています。
このようにデフォルトでは登録・更新レコードがどんどん追加されていく仕様になっています。

ちなみにこの挙動はAmazon S3 Destination接続設定にある「Insert Mode」の「FilePerBatch」の挙動です。
例えばこの設定を「SingleFile」にして実行してみると

先程のようなフォルダは作成されず、単一のCSVファイルが生成されます。
データの更新や作成・削除が発生しても常にこのCSVが更新される、という仕様になります。

おわりに
というわけでざっと解説してきましたが、この他にも細かなチューニングや機能が色々と備わっています。
またBlogでも解説したいと思いますが、もし触っていてわからない点、気になる点があれば、テクニカルサポートまでお気軽にどうぞ!