こんにちは。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
関連コンテンツ