iPaaS SnapLogic を使って SendGrid と外部サービスを連携させてみる:SnapLogic & CData JDBC Driver

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

f:id:sugimomoto:20211015164310p:plain

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

今回はガートナーの Magic Quadrant でも取り上げられている Enterprise 向け iPaaS・SnapLogicとCData JDBC Driver を組み合わせて、メール配信サービスの SendGrid を利用する方法を紹介したいと思います。

www.snaplogic.com

SnapLogic とは?

SnapLogic はノーコードでデータインテグレーションのフローを作成することができる、Enterprise 向けのiPaaSです。

www.snaplogic.com

f:id:sugimomoto:20211015164315p:plain

iPaaS名前が出てくる前、2006年から設立され、EAI・ETLとしてサービスを提供していたので、昨今流行りのSaaSだけでなく、レガシーなデータベースやHadoop周りのビッグデータ処理サービスなどにも接続先としてサポートしているのが特徴的だと思います。

2019年に大型の資金調達を行って話題にも上がっていましたね。

techcrunch.com

ブロックスタイルでフローを組み立てる感じのUIで開発することができます。IN/OUT・処理が直感的にわかりやすいのが良いですね。

f:id:sugimomoto:20211015164321p:plain

さらに、データベースにJDBC経由で接続できるコネクタが含まれており、CData JDBC Driver と組み合わせることで、CData が対応している様々なデータソースとの接続を拡張することができるようになります。

www.cdata.com

今回の記事ではこのJDBC接続とCData JDBC Driver を使って、SnapLogic から SendGrid に接続する方法を紹介します。

シナリオ

今回は前述の通り、SnapLogic を用いて Sendgrid のデータを他のサービスと連携させます。対象の外部サービスはBigQueryを選んでみました。

f:id:sugimomoto:20211015164327p:plain

最終的に作成するフローは以下のようなイメージです。

f:id:sugimomoto:20211015164332p:plain

SnapLogic でも数多くのコネクターが提供されていますが、現状はSendGridのコネクターが提供されていません。

docs-snaplogic.atlassian.net

しかしながら、標準で備えているJDBC コネクターとCData JDBC Driver ラインナップを組み合わせることで、SnapLogicが標準で接続できないクラウドサービスやNoSQLへの連携も可能にします。

例えば、国産クラウドサービスのkintoneやSansanには対応していないので、ここをCData JDBC Driverで橋渡しすることができます。

www.cdata.com

f:id:sugimomoto:20211015164337p:plain

手順

CData SendGrid JDBC Driver のインストール・セットアップ

まず、CData SendGrid JDBC Driverをダウンロード・セットアップします。

CData SendGrid JDBC Driver は以下のURLから30日間のトライアル版が入手できます。

www.cdata.com

f:id:sugimomoto:20211015164343p:plain

インストーラーを立ち上げると、以下のような画面になるので、ダイアログに従ってセットアップを完了してください。

f:id:sugimomoto:20211015164350p:plain

セットアップが完了すると以下のようにDriver本体となる「jar」ファイルが所定のフォルダに生成されます。

これを SnapLogic をアップロードして、SendGrid 接続を利用できるようにします。

f:id:sugimomoto:20211015164354p:plain

コネクションの作成

それでは、SnapLogic から SendGrid へのコネクションを作成していきましょう。

SnapLogic では以下のJDBC コネクターを使っていきます。

まずはデータ取得のためのコネクター「Generic JDBC - Select」を配置します。

f:id:sugimomoto:20211015164402p:plain

配置後、「Account」タブを選択して、接続情報を追加します。

「Add Account」をクリックし

f:id:sugimomoto:20211015164406p:plain

「Continue」をクリックします。

f:id:sugimomoto:20211015164413p:plain

ここでJDBCの接続情報を追加しますが、まずは接続に利用するJDBC Driver本体をアップロードしましょう。

以下のJDBC JARsからデータベースのアイコンをクリックします。

f:id:sugimomoto:20211015164419p:plain

「Upload File」ボタンをクリックして、対象のJDBC Driverを選択しましょう。

f:id:sugimomoto:20211015164424p:plain

SendGrid JDBC Driver は「C:\Program Files\CData\CData JDBC Driver for SendGrid 2021J\lib」のフォルダに配置されています。

f:id:sugimomoto:20211015164428p:plain

アップロードしたら、必要な項目を入力します。

各プロパティの詳しい解説は以下のヘルプページでも解説しています。

cdn.cdata.com

プロパティ名 備考
Label 例)CData JDBC Driver Account のラベルを入力します。
JDBC Driver cdata.jdbc.sendgrid.jar 対象のJDBC jarファイルを指定します。
JDBC Driver Class cdata.jdbc.sendgrid.SendGridDriver JDBC SendGrid Driverのクラス名を指定します。
JDBC Url jdbc:cdata:sendgrid:APIKey=abc123;RTK=XXX; SendGridに接続するための接続文字列を指定します。

RTKはトライアルキーになります。詳しくはCData テクニカルサポートデスクまでお問い合わせください。

f:id:sugimomoto:20211015164433p:plain

入力後、「Validate」をクリックしてOKであれば、「Apply」をクリックして適用します。

続いて、データを取得するための諸条件を指定しましょう。

今回はSendGridのRecipients(受信者リスト)を取得してみます。

Table name に「Recipients」を指定し、Output fieldsで取得したい項目をそれぞれ指定していきます。取得できる項目に関しては、以下のヘルプを参照してみてください。必要に応じて他の諸条件も指定できます。

cdn.cdata.com

f:id:sugimomoto:20211015164438p:plain

接続設定が完了したら、データをプレビューしてみましょう。

以下のようにコネクタの末尾をクリックするとプレビュー画面に移動します。

f:id:sugimomoto:20211015164442p:plain

以下のようにデータが取得できていればOKです。

f:id:sugimomoto:20211015164447p:plain

取得したデータをBigQuery に流し込んで見る

それでは、SendGridから取得したデータをBigQuery に流し込んでみましょう。今回はBigQuery 上にあらかじめ以下のようなテーブルを作成しておきました。

f:id:sugimomoto:20211015164452p:plain

SnapLogicでは標準のBigQuery コネクターが存在するので、今回はこの中の「Google BigQuery Write」を利用しました。

f:id:sugimomoto:20211015164457p:plain

フローを配置したら、「Account」タブからコネクションを「Google BigQuery OAuth2」で追加します。

f:id:sugimomoto:20211015164501p:plain

必要な情報を入力して、コネクションを確立すると、OAuthプロセスが開始され、ログインが完了します。

f:id:sugimomoto:20211015164505p:plain

Accountの作成が完了したら、「Settings」タブで連携先となるBigQuery のProjectIDやDataset ID、Table IDをそれぞれ指定します。

f:id:sugimomoto:20211015164510p:plain

BigQuery のコネクションを作成したら以下のように先程構成したSendGrid の JDBC コネクタと接続しましょう。

f:id:sugimomoto:20211015164515p:plain

フローができたら画面右上の実行ボタンをクリックすることでフローを手動で動かすことができます。

f:id:sugimomoto:20211015164519p:plain

実行完了後、BigQuery を確認してみると、正常にデータが取り込まれていました。

f:id:sugimomoto:20211015164524p:plain

ちなみに今回はBigQuery のテーブルとカラムを一致させていたのでストレートに流し込みましたが、Mapperを使って項目を組み替えることも可能です。

f:id:sugimomoto:20211015164529p:plain

データの Insert

なお、今回はデータの取得のフローでJDBC Driverを利用しましたが、「Generic JDBC - Insert」を利用することで、SendGridにデータを書き込むことも可能です。

f:id:sugimomoto:20211015164535p:plain

設定はシンプルで対象のテーブルをTable Nameで指定し

f:id:sugimomoto:20211015164539p:plain

Mapperでマッピングするだけです。

f:id:sugimomoto:20211015164543p:plain

おわりに

このようにCData JDBC Driver と SnapLogicを組み合わせることで、簡単にサポートされていないサービスへの接続を拡張させることができます。

他にも様々なデータソース用コネクターがありますので、ぜひ自社で使っているサービスと合わせて試してみてください。

www.cdata.com

f:id:sugimomoto:20211015164337p:plain

関連コンテンツ

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

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