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

by 杉本和也 | October 19, 2021

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

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

www.snaplogic.com

SnapLogic とは?

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

www.snaplogic.com

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

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

techcrunch.com

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

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

www.cdata.com

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

シナリオ

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

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

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

docs-snaplogic.atlassian.net

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

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

www.cdata.com

手順

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

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

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

www.cdata.com

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

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

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

コネクションの作成

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

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

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

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

「Add Account」をクリックし

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

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

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

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

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

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

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

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 テクニカルサポートデスクまでお問い合わせください。

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

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

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

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

cdn.cdata.com

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

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

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

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

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

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

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

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

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

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

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

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

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

データの Insert

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

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

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

おわりに

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

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

www.cdata.com