Filtern und Abrufen von Daten mit Amazon S3 Select - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Filtern und Abrufen von Daten mit Amazon S3 Select

Mit Amazon S3 Select können Sie mit SQL (Structured Query Language)-Anweisungen die Inhalte von Amazon S3-Objekten filtern, sodass nur die tatsächlich von Ihnen benötigte Teilmenge an Daten abgerufen wird. Wenn Sie die Daten mit Amazon S3 Select filtern, wird die von Amazon S3 übertragene Datenmenge reduziert, wodurch sich die Kosten und Latenzzeiten für diesen Datenabruf verringern.

Mit Amazon S3 Select können Sie jeweils nur ein Objekt abfragen. Es funktioniert mit einem Objekt, das im CSV-, JSON- oder Apache Parquet Format gespeichert ist. Es funktioniert auch mit einem Objekt, das mit GZIP oder BZIP2 komprimiert ist (nur für CSV- und JSON-Objekte), und einem serverseitigen verschlüsselten Objekt. Als Format für die Ergebnisse geben Sie entweder CSV oder JSON an. Sie können ebenfalls festlegen, wie die Datensätze im Ergebnis getrennt werden.

In der Anforderung werden SQL-Ausdrücke an Amazon S3 übergeben. Amazon S3 Select unterstützt eine Teilmenge von SQL. Weitere Informationen zu den von Amazon S3 Select unterstützten SQL-Elementen finden Sie unter SQL-Referenz für Amazon S3 Select.

Sie können SQL-Abfragen mithilfe der Amazon S3 S3-Konsole, der AWS Command Line Interface (AWS CLI), der SelectObjectContent REST-API-Operation oder der AWS SDKs durchführen.

Anmerkung

Bei der Amazon S3-Konsole ist die zurückgegebene Datenmenge auf 40 MB begrenzt. Um weitere Daten abzurufen, verwenden Sie die AWS CLI oder die API.

Voraussetzungen und Einschränkungen

Für die Verwendung von Amazon S3 Select müssen folgende Voraussetzungen erfüllt sein:

  • Sie haben die Berechtigung s3:GetObject für das abzufragende Objekt.

  • Falls das abzufragende Objekt serverseitig mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt ist, müssen Sie https verwenden und den Verschlüsselungsschlüssel in der Anforderung angeben.

Für die Verwendung von Amazon S3 Select gelten die folgenden Einschränkungen:

  • S3 Select kann nur ein Objekt pro Anfrage abfragen.

  • Die maximale Länge des SQL-Ausdrucks ist 256 KB.

  • Die Maximallänge eines Datensatzes in der Eingabe oder im Ergebnis liegt bei 1 MB.

  • Amazon S3 Select kann nur mithilfe des JSON-Ausgabeformats verschachtelte Daten übermitteln.

  • Sie können kein Objekt abfragen, das in den Speicherklassen S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive oder Reduced Redundancy Storage (RRS) gespeichert ist. Sie können auch kein Objekt abfragen, das auf der Stufe S3 Intelligent-Tiering Archive Access oder der Stufe S3 Intelligent-Tiering Deep Archive Access gespeichert ist. Weitere Informationen über Speicherklassen finden Sie unter Verwenden von Amazon-S3-Speicherklassen.

Bei der Verwendung von Amazon S3 Select mit einem Parquet Objekt gelten zusätzliche Einschränkungen:

  • Amazon S3 Select unterstützt ausschließlich die Spaltenkompression mittels GZIP oder Snappy. Amazon S3 Select unterstützt keine Komprimierung des gesamten Objekts für ein Parquet Objekt.

  • Amazon S3 Select unterstützt keine Parquet-Ausgabe. Sie müssen das Ausgabeformat als CSV oder JSON angeben.

  • Die Maximalgröße für unkomprimierte Zeilengruppen beträgt 512 MB.

  • Sie müssen die im Schema des Objekts angegebenen Datentypen verwenden.

  • Select-Anfragen für ein wiederholtes Feld geben ausschließlich den letzten Wert zurück.

Erstellen einer Anforderung

Beim Erstellen einer Anforderung geben Sie die Details des abzufragenden Objekts mithilfe eines InputSerialization-Objekts an. Die Details zur Rückgabe der Ergebnisse geben Sie mit einem OutputSerialization-Objekt an. Außerdem binden Sie den SQL-Ausdruck ein, der von Amazon S3 zum Filtern der Anforderung verwendet wird.

Weitere Informationen zum Erstellen einer Amazon S3 Select-Anforderung finden Sie unter SelectObjectContent in der Referenz zu Amazon Simple Storage Service API. In den folgenden Abschnitten finden Sie eines der SDK-Codebeispiele.

Anforderungen mittels Scanbereichen

Mit Amazon S3 Select können Sie eine Teilmenge eines Objekts scannen, indem Sie einen abzufragenden Byte-Bereich angeben. Mit dieser Fähigkeit können Sie das gesamte Objekt parallel scannen, indem Sie die Arbeit in separate Amazon S3 Select-Anforderungen für eine Reihe von sich nicht überlappenden Scanbereichen aufteilen.

Scanbereiche müssen nicht an Datensatzgrenzen ausgerichtet werden. Eine Scanbereichsanforderung von Amazon S3 Select wird über den angegebenen Byte-Bereich ausgeführt. Ein Datensatz, der im angegebenen Scanbereich beginnt, aber darüber hinaus reicht, wird von der Abfrage bearbeitet. Beispiel: Im Folgenden wird ein Amazon S3-Objekt gezeigt, das eine Reihe von Datensätzen in einem zeilengetrennten CSV-Format enthält:

A,B C,D D,E E,F G,H I,J

Gehen wir einmal davon aus, dass Sie den Amazon-S3-Select-Parameter ScanRange verwenden, bei (Byte) 1 beginnen und bei (Byte) 4 enden. Der Scanbereich würde also bei „,“ beginnen und der Scan würde bis zum Ende des Datensatzes fortgesetzt, der bei „C“ beginnt. Ihre Scanbereichsanfrage gibt das Ergebnis „C, D“ zurück, da dies das Ende des Datensatzes ist.

Amazon S3 Select Scan Range fordert UnterstützungParquet, CSV (ohne Trennzeichen in Anführungszeichen) oder JSON-Objekte (nur im LINES Modus) an. CSV- und JSON-Objekte dürfen nicht komprimiert sein. Wenn bei zeilenbasierten CSV- und JSON-Objekten ein Scanbereich als Teil der Amazon S3-Select-Anforderung angegeben wird, werden alle Datensätze, die innerhalb des Scanbereichs beginnen, verarbeitet. Bei Parquet-Objekten werden alle Zeilengruppen, die innerhalb des angeforderten Scanbereich beginnen, verarbeitet.

Amazon S3 Select-Scanbereichsanforderungen können mit der AWS CLI Amazon S3 S3-API und den AWS SDKs verwendet werden. Sie können den ScanRange-Parameter in der Amazon S3 Select-Anfrage als diese Funktion verwenden. Weitere Informationen finden Sie unter SelectObjectContent in der API-Referenz zu Amazon Simple Storage Service.

Fehler

Amazon S3 Select gibt einen Fehlercode und eine zugehörige Fehlermeldung zurück, wenn beim Versuch, eine Abfrage auszuführen, ein Problem auftritt. Eine Liste der Fehlercodes und Beschreibungen finden Sie im Abschnitt List of SELECT Object Content Error Codes auf der Seite Error Responses im Amazon-Simple-Storage-Service-API-Referenz.

Weitere Informationen zu Amazon S3 Select finden Sie in den folgenden Themen: