1

Ich bin derzeit Brainstorming eine Idee und versuchen herauszufinden, ob es machbar ist oder eine bessere Möglichkeit, diesen Ansatz zu behandeln.REST API für Redshift

Angenommen, ich habe eine Redshift-Tabelle und möchte diese Tabelle über eine REST-API verfügbar machen. Zum Beispiel gibt es mehrere Kunden, die irgendeine Art von Metadaten aus dieser Tabelle benötigen. Sie rufen einen REST-Dienst auf, der auf der Redshift ausgeführt wird, um die Daten zu erhalten, und antwortet dem Client im JSON-Format.

Ich bin ziemlich neu in Redshift/AWS-Bereich, also nicht sicher, ob AWS bereits etwas dafür haben? Ich weiß, S3 unterstützt REST API.

Klingt es machbar? Ich kann auf jeden Fall einen typischen REST-Service mit Java schreiben, während ich Daten von Redshift mit JDBC lese. Aber ich wollte wissen, ob es in der AWS-Welt einen besseren Weg gibt, damit umzugehen.

+0

AWS bietet diese Funktionalität nicht. Sie bieten nur über die PostgreSQL-API Zugriff auf Redshift. Wenn Sie eine REST-API möchten, müssen Sie eine erstellen oder ein Drittanbieterpaket finden, das für Redshift oder Postgres entwickelt wurde. –

+0

Sie können API-GW (https://aws.amazon.com/api-gateway/) verwenden, das eine Lambda-Funktion (https://aws.amazon.com/lambda/) aufruft, die Redshift abfragt der Benutzer. – Guy

Antwort

8

Die Amazon API Gateway kann eine öffentliche API verfügbar machen und ruft dann beim Aufruf eine Lambda-Funktion auf. Die Lambda-Funktion kann tun, was Sie wollen! Für bestimmte AWS-Dienste kann das API-Gateway auch als Proxy für die normalen API-Aufrufe dienen (z. B. Create an AWS Service Proxy for Amazon SNS). Bei SQL-Aufrufen von Amazon Redshift müssen jedoch Verbindungen zur Datenbank als Client hergestellt werden, anstatt API-Aufrufe an AWS zu senden . Daher

, müssten Sie:

  • schreiben AWS Lambda-Funktion (entweder Node.js, Java oder Python)
  • Haben Sie die Funktion zum Amazonas Redshift verbinden Datenbank und einen SQL-Aufruf
  • Definieren Sie eine API-Gateway API durchführen, die die REST-Anforderung empfängt und leitet sie an die Lambda-Funktion

Es komplex erscheinen mag, aber wenn sollte geradlinig sein, wenn Sie brechen es in Komponenten und lassen Sie jedes der Reihe nach arbeiten.

API Gateway hat auch die Fähigkeit cache responses, die schnellere Leistung bieten kann, indem sie nicht immer mit Amazon Redshift verbinden (zB für kürzlich abgerufene oder sich langsam ändernde Daten).