Abfragen vorhandener 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.

Abfragen vorhandener Daten mit Amazon S3 Select

Wichtig

Amazon S3 Select ist für Neukunden nicht mehr verfügbar. Bestandskunden von Amazon S3 Select können die Funktion weiterhin wie gewohnt nutzen. Weitere Informationen

Mit Amazon S3 Select können Sie Structured Query Language (SQL) -Anweisungen verwenden, um den Inhalt eines Amazon S3 S3-Objekts zu filtern und nur die Teilmenge der Daten abzurufen, die Sie benötigen. 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 in CSVJSON, oder gespeichert ist Apache Parquet . Es funktioniert auch mit einem Objekt, das mit GZIP oder komprimiert ist BZIP2 (nur für CSV JSON Und-Objekte), und einem serverseitig verschlüsselten Objekt. Sie können das Format der Ergebnisse entweder als CSV oder angeben und festlegenJSON, wie die Datensätze im Ergebnis getrennt werden.

In der Anfrage übergeben Sie SQL Ausdrücke an Amazon S3. Amazon S3 Select unterstützt eine Teilmenge von. SQL Weitere Informationen zu den SQL Elementen, die von Amazon S3 Select unterstützt werden, finden Sie unterSQLReferenz 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 ausführen AWS SDKs.

Anmerkung

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

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.

  • Wenn das Objekt, das Sie abfragen, mit serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C) verschlüsselt ist, müssen Sie den Verschlüsselungsschlüssel verwenden https und in der Anfrage 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 eines SQL Ausdrucks beträgt 256 KB.

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

  • Amazon S3 Select kann nur verschachtelte Daten mithilfe des JSON Ausgabeformats ausgeben.

  • 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 Amazon S3 S3-Speicherklassen verstehen und verwalten.

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

  • Amazon S3 Select unterstützt nur die spaltenförmige Komprimierung mit oder GZIP Snappy. Amazon S3 Select unterstützt keine Komprimierung des gesamten Objekts für ein Parquet Objekt.

  • Amazon S3 Select unterstützt nicht Parquet Ausgabe. Sie müssen das Ausgabeformat als CSV oder angebenJSON.

  • 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. Sie geben auch den SQL Ausdruck an, den Amazon S3 verwendet, um die Anfrage zu filtern.

Weitere Informationen zur Erstellung einer Amazon S3 Select-Anfrage finden Sie unter SelectObjectContentin der Amazon Simple Storage Service API Reference. In den folgenden Abschnitten finden Sie auch 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. Im Folgenden wird beispielsweise ein Amazon S3 S3-Objekt gezeigt, das eine Reihe von Datensätzen in einem zeilengetrennten Format CSV 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ützung an Parquet, CSV (ohne Trennzeichen in Anführungszeichen) oder JSON Objekte (nur im LINES Modus). CSVund JSON Objekte müssen unkomprimiert sein. Wenn für zeilenbasierte JSON Objekte CSV und Objekte ein Scanbereich als Teil der Amazon S3 Select-Anfrage angegeben wird, werden alle Datensätze verarbeitet, die innerhalb des Scanbereichs beginnen. Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Parquet Bei Objekten werden alle Zeilengruppen verarbeitet, die innerhalb des angeforderten Scanbereichs beginnen.

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

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 Liste der Fehlercodes für SELECT Objektinhalte auf der Seite Error Responses in der Amazon Simple Storage Service API Reference.

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