1

私は現在、アイデアをブレーンストーミングし、このアプローチを実行するのが実現可能かどうかを判断しようとしています。REST API for Redshift

私はRedshiftテーブルを持っており、このテーブルをREST APIで公開したいとします。たとえば、このテーブルから何らかの種類のメタデータを必要とする顧客がいくつかあります。彼らはRESTサービスを呼び出し、データを取得するためにRedshift上で実行し、JSON形式でクライアントに応答します。

私はRedshift/AWSエリアでかなり新しくなっているので、AWSにすでに何かがあるかどうかは分かりません。 S3がREST APIをサポートしていることは分かっています。

実現可能ですか? JDBCを使ってRedshiftからデータを読み込みながら、Javaを使って典型的なRESTfulなサービスを書くことは間違いありません。 AWSの世界でこれを処理するより良い方法があるかどうかを知りたがっています。

+0

AWSはこの機能を提供していません。彼らはPostgreSQL API経由でRedshiftへのアクセスのみを提供します。 REST APIが必要な場合は、REST APIをビルドするか、RedshiftまたはPostgres用に設計されたサードパーティのパッケージを見つけなければなりません。 –

+0

API-GW(https://aws.amazon.com/api-gateway/)を使用して、ラムダ関数(https://aws.amazon.com/lambda/)を呼び出すことができます。ユーザー。 – Guy

答えて

8

Amazon API Gatewayは公開APIを公開し、呼び出し時にラムダ関数を呼び出すことができます。ラムダ関数は、あなたが望むことを何でもすることができます!

一部のAWSサービスでは、APIゲートウェイは通常のAPI呼び出し(たとえばCreate an AWS Service Proxy for Amazon SNS)のプロキシとしても機能しますが、Amazon Redshiftに対するSQL呼び出しでは、AWSへのAPI呼び出しではなくクライアントとしてデータベースに接続する必要があります。

したがって、あなたがする必要があります:(Node.jsの、JavaやPythonのいずれかで)AWSラムダ関数を書く

  • は機能は、アマゾンの赤方偏移に接続持っていますあなたが壊れた場合にストレートフォワードする必要があります場合は、データベースとSQL呼び出し
  • を実行するには、REST要求を受信し、それは複雑に見えるかもしれません

ラムダ関数に転送しAPIゲートウェイAPIを定義しますが、それをコンポーネントに分解し、それぞれを順番に処理します。

APIゲートウェイにはcache responsesの機能もあり、Amazon Redshiftに常に接続するとは限りません(たとえば、最近アクセスしたデータや遅いデータの変更など)。