CData Sync Amazon S3 Destination の使い方

by 杉本和也 | 2021年07月19日

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

今回は CDataSync の連携先の一つとしてよくご相談をいただく、Amaozn S3 Destination の使い方を解説したいと思います。

Amazon S3 Destination とは?

任意の Amazon S3 Bucket に Salesforce や Kintone など、多様なデータソースから取得したデータをCSVとして吐き出す機能です。

f:id:sugimomoto:20210716232521p:plain

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

f:id:sugimomoto:20210716232527p:plain

利用手順

それでは実際に使い方を解説していきましょう。

CData Sync のセットアップ

CData Sync を以下のURLからダウンロードして任意の環境にセットアップしておきます。

今回は手順を割愛しますが、Windows・Linux・Amazon AMIなど好みの環境でセットアップできます。

https://www.cdata.com/jp/sync/

f:id:sugimomoto:20210716232534p:plain

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

f:id:sugimomoto:20210716232541p:plain

IAM ユーザーの準備

CDataSync から Amazon S3 への接続にはIAMユーザーのAccessKeyとSecretKeyが必要になります。

手順は割愛しますが、Amazon S3 へのアクセス権を付与したユーザーを作成しておいてください。

f:id:sugimomoto:20210716232548p:plain

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

f:id:sugimomoto:20210716232553p:plain

もしIAM ロールによる接続を行う場合は、対象のロールにAssumeRoleできる権限を持つIAMユーザーおよびAmazon S3へのアクセスポリシーを持つIAMロールを準備してください。

今回はIAMユーザーによる接続で構成します。

Amazon S3 Bucket の準備

続いてデータの保存先となる Amazon S3 の Bucket も構成しておきます。今回は 「s3://cdatajwrk/ReplicateFolder」というフォルダを作成しました。

f:id:sugimomoto:20210716232559p:plain

接続構成

準備が整ったので、CData Syncの接続構成を行っていきましょう。

まず、Amazon S3 への接続構成を行います。

「接続」→「同期先」から「Amazon S3」を選択します。

f:id:sugimomoto:20210716232604p:plain

以下のように接続情報を入力して、接続テストを行い、問題が無ければ「変更を保存」をクリックします。

プロパティ名 備考
AWS Access Key 例)AKIATGQKTWNACHQAMZF6 作成したIAMユーザーのアクセスキーを指定
AWS Secret Key 例)l33Ygzol2YCUJuZL/1p32OkfSGe7UTNUczA/wMRS 作成したIAMユーザーのシークレットキーを指定
AWS Region 例)TOKYO
Bucket 例)s3://cdatajwrk/ReplicateFolder 対象のS3バケットを指定
Auth Scheme AwsRootKeys

f:id:sugimomoto:20210716232613p:plain

Amazon S3 Destination の設定が完了したら、データの取得先となる設定も追加しましょう。

今回はSalesforceを対象にしてみました。

f:id:sugimomoto:20210716232621p:plain

ジョブの作成と実行

接続構成が終わったので、さっそくジョブを作成してみましょう。

「ジョブ」→「ジョブを追加」をクリックし

f:id:sugimomoto:20210716232627p:plain

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

f:id:sugimomoto:20210716232634p:plain

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

f:id:sugimomoto:20210716232640p:plain

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

f:id:sugimomoto:20210716232645p:plain

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

f:id:sugimomoto:20210716232650p:plain

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

f:id:sugimomoto:20210716232658p:plain

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

f:id:sugimomoto:20210716232704p:plain

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

f:id:sugimomoto:20210716232715p:plain

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

f:id:sugimomoto:20210716232721p:plain

データ登録の挙動について

最後にデータ登録の挙動についてお伝えしておきます。

デフォルトでは、データが更新されたり登録されたら、新しくCSVファイルが生成されます。

例えば、以下のようにSalesforceの「Contact」データを更新してみると

f:id:sugimomoto:20210716232729p:plain

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

f:id:sugimomoto:20210716232737p:plain

Amazon S3を覗いてみると、以下のようにCSVファイルが追加されています。

このようにデフォルトでは登録・更新レコードがどんどん追加されていく仕様になっています。

f:id:sugimomoto:20210716232742p:plain

ちなみにこの挙動はAmazon S3 Destination接続設定にある「Insert Mode」の「FilePerBatch」の挙動です。

例えばこの設定を「SingleFile」にして実行してみると

f:id:sugimomoto:20210716232749p:plain

先程のようなフォルダは作成されず、単一のCSVファイルが生成されます。

データの更新や作成・削除が発生しても常にこのCSVが更新される、という仕様になります。

f:id:sugimomoto:20210716232756p:plain

おわりに

というわけでざっと解説してきましたが、この他にも細かなチューニングや機能が色々と備わっています。

またBlogでも解説したいと思いますが、もし触っていてわからない点、気になる点があれば、テクニカルサポートまでお気軽にどうぞ!

https://www.cdata.com/jp/support/submit.aspx

関連コンテンツ

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

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。