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 von Daten vor Ort mit Amazon S3 Select
Wichtig
Amazon S3 Select ist für Neukunden nicht mehr verfügbar. Bestandskunden von Amazon S3 Select können das Feature weiterhin wie gewohnt nutzen. Weitere Informationen
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 in CSV, JSON oder Apache Parquet . Es funktioniert auch mit einem Objekt, das mit GZIP oder BZIP2 (nur für CSV- und JSON-Objekte) komprimiert ist, und einem serverseitig 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 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 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 Anforderung 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 in den Speicherklassen S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive oder Reduced Redundancy Storage (RRS) gespeicherte Objekte nicht abfragen. Sie können auch die Objekte, die auf der Ebene S3 Intelligent-Tiering Archive Access oder S3 Intelligent-Tiering Deep Archive Access gespeichert sind, nicht abfragen. Weitere Informationen über Speicherklassen finden Sie unter Verstehen und Verwalten von Amazon-S3-Speicherklassen.
Zusätzliche Einschränkungen gelten bei der Verwendung von Amazon S3 Select mit einem Parquet Objekt:
-
Amazon S3 Select unterstützt nur spaltenförmige Komprimierung mit GZIP oder Snappy. Amazon S3 Select unterstützt keine Komprimierung des gesamten Objekts für Parquet Objekt.
-
Amazon S3 Select unterstützt nicht 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 zur Erstellung einer Amazon S3 Select-Anfrage finden Sie unter SelectObjectContentin der Amazon Simple Storage Service API-Referenz. 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ützung an Parquet, CSV- (ohne Trennzeichen in Anführungszeichen) oder JSON-Objekte (nur im LINES
Modus). 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. Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Parquet Objekte, alle Zeilengruppen, die innerhalb des angeforderten Scanbereichs beginnen, werden verarbeitet.
Amazon S3 Select-Scanbereichsanforderungen können mit der AWS CLI Amazon S3 S3-API und verwendet AWS SDKs werden. 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-Referenz.
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: