CData Software Blog

クラウド連携のCData Software の技術ブログです。

CSA Data Uploader を使って Salesforce のデータを Amazon S3 にロード

f:id:sugimomoto:20210202161700p:plain

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

今回はクラスメソッド社が提供する、Amazon S3Google Cloud Storageへのデータアップロードサービスである、CSA Data UploaderでCData ODBC Driverを利用する方法を紹介します。

CSA Data Uploaderとは?

CSA Data Uploader はクラウドAmazon S3Google Cloud Storage™)へのアップロードやシンプルなデータ加工を実現するためのクライアント型アプリケーションです。

classmethod.jp

f:id:sugimomoto:20210202161639p:plain

オンプレのRDB(基幹システムなどのデータ)や外部のBlobストレージなどから、Amazon S3Google Cloud Storageにデータをアップロードすることで、AWSGCPのデータ分析基盤で可視化するためのデータの前処理として利用することが可能となっていて、現在データソースとしては下記の4種類をサポートしています。

f:id:sugimomoto:20210202161647p:plain

通常であれば、オンプレのRDBとして、MySQLSQL ServerOracle DBなどにしか接続できませんが、CSA Data Uploaderは内部の接続モジュールとして「ODBC」が利用されています。

CData Software Japanでは、RDB以外にも、SalesforceやKintoneなどのクラウドサービスに接続することができる「ODBC Driver」を提供しているので、このODBCの接続モジュールとCData ODBC Driversを活用することで、CSA Data Uploader から様々なクラウドサービスへのコネクティビティを実現することが可能となります。

www.cdata.com

f:id:sugimomoto:20210202161652p:plain

シナリオ

今回はODBCを使ったシンプルな連携の実施方法として、CData ODBC Driver経由でSalesforceのデータを取得し、Amazon S3 にデータ(CSV)をアップロードする方法を解説します。

f:id:sugimomoto:20210202161700p:plain

最終的に作成するジョブは以下のようなイメージとなります。

f:id:sugimomoto:20210202161710p:plain

このジョブを実行することで、以下のようなSalesforceデータのCSVファイルがAmazon S3にアップロードされるので、このデータを活用してAmazon Athena等を通じてデータの分析に繋げることが可能となります。

f:id:sugimomoto:20210202161715p:plain

なお、今回のシナリオではSalesforceを例に紹介していますが、CData で提供するKintoneやMarketo・Amazon MarketplaceなどのODBC Driverも同様に接続が可能です。

www.cdata.com

f:id:sugimomoto:20210125142529p:plain

手順

CSA Data Uploader のインストール

まず、CSA Data Uploaderを入手して、任意のフォルダに展開します。

CSA Data Uploaderはフリー版があり、以下のURLから入手できます。なお、Windows版とLinux版がありますが、今回はLinux版を使用しました。

classmethod.jp

f:id:sugimomoto:20210202161721p:plain

その後、コマンドラインで「csa_du.exe」を実行すると、対象のポート番号でCSA Data Uploaderが立ち上がります。

C:\Work\Software\csa_du-v1>C:\Work\Software\csa_du-v1\csa_du.exe
2021/01/13 09:34:54 Running in terminal.
I: 09:34:54 Running in terminal.
⇨ http server started on [::]:8889

CSA Data Uploaderのデフォルトのポート番号は80ですが、私の環境ではすでに埋まっているので、8889に切り替えています。

f:id:sugimomoto:20210202161728p:plain

詳しい構成方法については、以下のページを参照してみてください。

user-guide.csa-du.cs-analytics.info

Amazon S3 バケットの準備

次に転送先となるAmazon S3バケットとフォルダを準備しておきます。

今回は「s3://cdatadatapipeline/salesforce/」というパスで準備しました。

f:id:sugimomoto:20210202161734p:plain

バケットを作成後、以下の手順に従って、AWS CLIの設定を済ませておきます。

user-guide.csa-du.cs-analytics.info

CData ODBC Salesforce Driver のセットアップ

続いてCData ODBC Salesforce Driver をセットアップします。

以下のURLからトライアル版を取得し、CSA Data Uploader と同じ環境でセットアップを行います。

www.cdata.com

f:id:sugimomoto:20210202161741p:plain

セットアップ後、以下のように接続設定画面が立ち上がるので、Salesforce への接続に必要な認証情報を設定します。

プロパティ名 備考
User YOUR_USER_NAME ログインユーザーのUserIdを指定します。
Password YOUR_USER_PASSWORD ログインユーザーのPasswordを指定します。
Security Token 例)2Jfbxxxxxxxxxx9FNEe Salesforceの設定画面から取得したセキュリティトークンを指定します。取得方法はこちら

f:id:sugimomoto:20210202161746p:plain

入力後、接続テストをクリックして、接続が成功すればODBCの準備は完了です。

ODBC接続の追加

続いて、CSA Data Uploader 側の準備を行います。

まずは、先程構成したODBCの接続設定をCSA Data Uploaderに追加しましょう。

CSA Data Uploaderの画面から「設定」→「ODBC」に移動し

f:id:sugimomoto:20210202161752p:plain

「追加」をクリックします。

f:id:sugimomoto:20210202161758p:plain

この画面で種別を「汎用ODBC」、「データソース名」で先程作成したODBC DSNを選択します。

f:id:sugimomoto:20210222135441p:plain

入力後、接続テストが成功すれば設定は完了です。

Amazon S3接続の追加

続いて、Amazon S3の接続設定も追加します。

「設定」→「Amazon S3」に移動し

f:id:sugimomoto:20210202161809p:plain

「追加」をクリックします。

f:id:sugimomoto:20210202161814p:plain

任意の接続情報名と、事前に登録したAWSプロファイル名を入力します。

f:id:sugimomoto:20210202161819p:plain

入力後、検証をクリックして問題が無ければ保存します。

ジョブの作成

最後にどういったスケジュールで、どのデータをどこのAmazon S3バケット・フォルダーに転送するか? を設定するためのジョブを作成します。

「ジョブ」のページに移動して「ジョブを作成」をクリックし

f:id:sugimomoto:20210202161825p:plain

任意の名称でジョブを作成します。ジョブ種別は「データアップロード」を選んでください。

f:id:sugimomoto:20210202161835p:plain

ジョブは最初に入力対象となるデータを設定します。

f:id:sugimomoto:20210202161841p:plain

入力種別では、ODBC接続を選択し、データソース名で先程設定したSalesforceODBC DSNを選択します。

合わせて、どのようにSalesforceからデータ取得を行うか? を定義するため、SQLベースのクエリを記述します。

例えば、取引先を取得したい場合は以下のようにSQLを記述します。

SELECT * FROM Account

f:id:sugimomoto:20210202161851p:plain

利用可能なSELECTステートメントは、CData Driverのヘルプページで参照できます。

cdn.cdata.com

また、接続可能なテーブル(Salesforceのオブジェクト)はODBC DSNのテーブルタブで確認できます。Salesforce Driverは自動的にSalesforce上のカスタムオブジェクトやカスタムフィールドなども識別するので、ここで事前にアクセス可能なテーブル・カラムを確認しておくと良いでしょう。

f:id:sugimomoto:20210202161902p:plain

入力設定を保存したら、「データ表示」ボタンをクリックすることで実際にSalesforceから取得したデータを確認できます。

f:id:sugimomoto:20210202161910p:plain

以下のようにプレビューが表示されれば設定はOKです。

f:id:sugimomoto:20210202161917p:plain

出力設定

続いて出力設定を登録します。

f:id:sugimomoto:20210202161928p:plain

今回はAmazon S3にデータをアップロードするので出力種別で「S3アップロード」を選択します。

f:id:sugimomoto:20210202161935p:plain

続いて、ファイルの種別・区切り文字等任意のフォーマットを指定します。

Amazon S3の接続名には、事前に登録しておいた接続先を指定し、任意のバケットバケットのフォルダーパスを選択します。

f:id:sugimomoto:20210202161940p:plain

これでジョブが完成です。

f:id:sugimomoto:20210202161945p:plain

ジョブの実行

それではジョブを実行してみましょう。

右下の「保存して実行」ボタンをクリックすることで、ジョブが正常に動作するかどうか確認できます。

f:id:sugimomoto:20210202161951p:plain

「今すぐジョブを実行」のダイアログが開くので、「現在の日時で実行」する設定で、進めます。実行結果の通知は「通知する」を選んでおくと良いでしょう。

f:id:sugimomoto:20210202161956p:plain

あとは「実行」ボタンをクリックするだけです。

f:id:sugimomoto:20210202162002p:plain

ジョブが正常に完了すると、以下のように通知メッセージが表示されます。

f:id:sugimomoto:20210202162006p:plain

対象のAmazon S3バケットを見てみると、以下のようにCSVファイルが作成されていることを確認できました。

f:id:sugimomoto:20210202162010p:plain

実際にCSVを開いてみると、以下のようにSalesforceのデータが取得できています。

f:id:sugimomoto:20210202162015p:plain

おわりに

CData ODBC DriverはSalesforce以外にも多様なデータソースをサポートしています。

すべて30日間のトライアルを提供しているので、是非自社で使っているデータソースの連携にCSA Data Uploaderと合わせて活用してみてください。

www.cdata.com

f:id:sugimomoto:20210125142529p:plain

また、ODBC接続等でわからない点があれば、テクニカルサポートまでお気軽にどうぞ。

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