
【CAI】InformaticaでRedshiftからデータ取得する外部公開APIを作成してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは、データアナリティクス事業本部の渡部です。
今回はInformaticaのCloud Application Integration(以下、CAI)でRedshiftからデータ取得するAPIを作成してみます。
CAIで作成するAPIには以下特徴があります。
- ネットワークが繋がっていなくてもAPIでデータ取得できる(APIをInformaticaCloud公開とした場合)
- APIを自由に作成することができる
- 認証認可やIPフィルタリング・流量制御が簡単に設定できる
- APIをCloud公開とする場合は、5MBのサイズ制限がある
実現すること
以下のような構成でRedshift ServerlessからデータをAPI経由で取得します。
構成図は簡単のために省略している箇所がありますが、SecureAgentからRedshiftにアクセスするAPI処理を作成して、外部公開APIとしてパブリッシュしたものをクライアントが実行する、というのが分かっていただければ幸いです。

RedshiftのテーブルはAWSのtickitdbのCATEGORYテーブルを使用します。
以下のテーブルのcatidとAPIのクエリパラメータが一致するレコードから、catgroupとcatnameを取得します。
| catid | catgroup | catname | catdesc | update_at |
|---|---|---|---|---|
| 1 | Sports | MLB | Major League Baseball | 2024-05-30 15:44:25 |
| 2 | Sports | NHL | National Hockey League | 2024-05-30 15:44:25 |
| 3 | Sports | NFL | National Football League | 2024-05-30 15:44:25 |
| 4 | Sports | NBA | National Basketball Association | 2024-05-30 15:44:25 |
| 5 | Sports | MLS | Major League Soccer | 2024-05-30 15:44:25 |
やってみる
JDBCドライバのダウンロードとインストール
CAIのDASコネクタを使用するので、JDBCでRedshiftと接続するためJDBCドライバのインストールが必要です。
DASコネクタの詳しい解説についてはこちらの記事をご参考ください。
RedshiftのJDBCドライバはこちらからダウンロードします。
展開すると、redshift-jdbc42-2.1.0.28.jarがあるのが確認できます。
将来的には異なるjarファイルとなっていると思われるので、その際は似た名前のファイルを選択ください。
jarファイルをSecure Agentがインストールされているサーバーの<Informatica Cloud Secure Agent>\apps\process-engine\extに配置して、サーバーを再起動します。
DASコネクタの作成
ここからはInformaticaの開発ターンです。
以下のとおりDASコネクタを作成します。

接続プロパティは以下のとおり設定して、他はデフォルトのままとします。
JDBC Driver:com.amazon.redshift.jdbc.DriverJDBC Connection URL:jdbc:redshift://endpoint:port/database

アクションタブでアクションを定義します。
入力にはcatidを設定し、テスト値として1を設定しました。

SQLは以下のとおり設定します。

select catid, catgroup, catname, catdesc from dwh.category where catid = '{$catid}'
出力はcatgroupとcatnameを代入するフィールドを設定します。

テストが成功すればOKです。

アプリケーション接続の作成
DASで使用した接続プロパティのテスト値として同じ値を設定します。
こちらで設定した値が接続処理では使用されます。
プロセスの作成
全体図は以下のとおりになります。

まずは開始ステップで入力フィールドと出力フィールドを設定します。
ここの入力フィールドはクエリパラメータ、出力フィールドはAPIのレスポンスとして使用します。


サービスステップで作成したアプリケーション接続を設定します。
入力フィールドで、開始ステップで設定した入力フィールドを指定します。

割り当てステップで、開始ステップで作成した出力フィールドにDASコネクタで作成した出力フィールドを指定します。

あとはパブリッシュをして完成です。
まとめ
POSTMANでGETしたところ、以下のとおりレスポンスが無事返ってきました。
1秒あたりでレスポンスが返ってきますね。

以上、CAIでのRedshiftからのデータ取得API作成でした。
お役に立てれば幸いです。






