こんにちは。CDataリードエンジニアの杉本です。
今回は ETLツールの DataSpiderを使って、楽楽販売とSendgridを接続・連携する方法を紹介します。
楽楽販売とは?
「楽楽販売」は、販売管理業務を飛躍的に標準化・効率化させるクラウド型の販売管理システムです。
https://www.rakurakuhanbai.jp/business/
Web版RDBのような形で自由にテーブルを定義して、業務アプリケーションを構築することが可能です。
また、それぞれのテーブルを操作可能なAPIを公開しており、外部サービスとの連携機能が充実しています。
実現イメージ
DataSpirderでは多種多様なコネクタを標準装備していますが、現在楽楽販売へシームレスに接続できるコネクタは提供されていません。
https://www.hulft.com/software/dataspider/product#anc_02
Web API向けのコネクタを利用することもできますが、各APIに関する知識の習得やページネーションや認証処理を踏まえなければ自由にデータを操作することはできません。
そこで、CData JDBC Driverを使用してこのボトルネックを解消します。
DataSpirderには予めJDBC用のインターフェースが提供されているため、楽楽販売 API を CData Driverインターフェースでアクセスできるようにしてしまいます。
これによりユーザーは 楽楽販売 や SendGrid など、それぞれ仕様が違うAPIを意識すること無く、DataSpirderなどのETLツールで扱えるようになります。
本記事のシナリオ
本記事では前述の通り楽楽販売の顧客情報を SendGrid の Recipients へ連携します。
以下のような顧客マスタデータを楽楽販売に用意しました。
手順
それでは実際に DataSpirder による楽楽販売とSendGrid の連携方法を説明します。
REST データ処理用 RSDファイルの作成
次に、楽楽販売 API を CData 各種 Deiverが SQL として解釈できるように設定ファイルを作成します。
楽楽販売は自由にテーブルを定義することができますので、今回はテンプレートとして提供されている顧客マスタを取得するためのビューを予め定義しておきました。設定ファイルをカスタマイズすることで、様々なビューに対応させることが可能です。
以下のGitHubから保存してください。
https://github.com/sugimomoto/CData.REST.RakurakuHanbai
保存先フォルダは後ほど使用するので「C:\CData_REST\RakurakuHanbai」といった書き込み可能な任意のフォルダに配置してください。
CData JDBC Driverのインストール
DataSpirder と 楽楽販売 API を繋ぐために必要となるCData CSV Driverをインストールします。
楽楽販売APIはHTTPリクエストベースのAPIですが、最終的なレスポンスではCSV形式のフォーマットを利用するため、CData CSV JDBC Driver を利用します。
まず、以下のURLからCData CSV JDBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
https://www.cdata.com/jp/drivers/csv/jdbc/
ダウンロード後、セットアップを実施します。
また、合わせて SendGrid JDBC Driverも使用していますので、こちらも同様にダウンロード・セットアップを行っておきます。
https://www.cdata.com/jp/drivers/sendgrid/jdbc/
JDBC Driver の設定
次にDataSpirderでJDBC Driverを利用できるように、JDBC ライブラリファイルをDataSpirderのPluginフォルダに移動します。
必要なファイルは以下の5種類です。
C:\Program Files\CData\CData JDBC Driver for CSV 2019J\lib
- cdata.jdbc.csv.jar
- cdata.jdbc.csv.lic
- cdata.jdbc.csv.remoting.ini
C:\Program Files\CData\CData JDBC Driver for SendGrid 2019J\lib
- cdata.jdbc.sendgrid.jar
- cdata.jdbc.sendgrid.lic
この5種類のファイルをそのまま以下のフォルダにコピーします。
C:\Program Files\DataSpiderServista\server\plugin\data_processing\modules\jdbc_adapter
最後にDataSpirderのサービスを再起動すれば準備完了です。
DataSpider Studioの起動と新規プロジェクトの作成
それでは、DataSpirderで作業をはじめていきましょう。DataSpirder Studioを起動し、新規プロジェクトを作成します。
任意のプロジェクト名で作成を行ってください。予めスクリプトも作成しておきましょう。
楽楽販売データ取得処理作成
次に 楽楽販売 からデータの取得処理を作成します。右側のツールボックスから「データベース」→「JDBC」→「テーブルの読み取り」を選択し、フロー画面にドラッグ・アンド・ドロップで配置します。
接続先から「追加」を選択し
以下の情報でJDBCの接続情報を作成します。Locationには先程の接続ファイルを配置したフォルダ、API TOken・Tenant にはそれぞれ接続する楽楽販売の接続情報を入力してください。
- 名前:RakurakuHanbai
- ドライバクラス名:cdata.jdbc.csv.CSVDriver
- URL:jdbc:csv:Location=C:\CData_REST\RakurakuHanbai;Other="APIToken=XXXXXX;Tenant=https://XXXX.htdb.jp/XXXX/;";
接続情報を作成後、テーブル一覧から「顧客」テーブルを選択します。「接続テスト」をクリックし、接続が問題なければ、「完了」をクリックし、設定終了です。
SendGrid データ書き込み処理作成
続いて SendGrid への書き込み処理も作成しましょう。
先程と同様に「データベース」→「JDBC」から、今度は「テーブル書き込み」を選択し、ドラッグ・アンド・ドロップでフロー画面に配置します。
先程と同じように接続先から「追加」をクリックし
以下のように接続情報を入力します。
- 名前:SendGrid
- ドライバクラス名:cdata.jdbc.sendgrid.SendGridDriver
- URL:jdbc:sendgrid:user=XXXXX;password=XXXX;
接続設定完了後、テーブル一覧から「Recipients」テーブルを選択し、「完了」をクリックします。
マッピング処理の作成
最後に 楽楽販売 と SendGrid のデータをマッピングするための処理を作成します。
フロー画面から 楽楽販売 の処理をドラッグ・アンド・ドロップし、SendGridの書き込み処理に移動させます。
すると、以下のようなフローの作成画面が表示されるので「プロセスフローとデータフローを引く」を選択し「マッピングを追加する」にチェックを入れて、「OK」をクリックします。
以下のようにマッピング処理が作成されるので、ダブルクリックで詳細画面を表示します。
ここでデータの取得元からデータの書き込み先、それぞれのカラムのマッピングをドラッグ・アンド・ドロップで行います。
マッピング後、「Start」と「End」をそれぞれ接続すれば、すべてのフローが完成です。
実行
それでは実際にフローを実行してみましょう。画面上の「▶」ボタンをクリックします。
実行後スクリプトが正常に完了すると、以下のようなメッセージボックスが表示されます。
実際に SendGrid の画面を見ると、正常にデータが登録されていることがわかりました。
今回はシンプルな登録処理を行いましたが、取得対象の条件抽出や条件による更新処理等、DataSpirderを挟むことで様々なデータ連携が実現できるようになります。
おわりに
本記事では DataSpirder をもとに解説しましたが、CData Driver ではDataSpirder以外の多様なETLツールやiPaaSの接続もサポートしています。
以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。
https://www.cdata.com/jp/drivers/csv/
関連コンテンツ