Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Verwendung von S3 Select mit Hive zur Verbesserung der Leistung - Amazon EMR

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.

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.

Verwendung von S3 Select mit Hive zur Verbesserung der Leistung

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-EMR-Version 5.18.0 und höher können Sie S3 Select mit Hive auf Amazon EMR verwenden. S3 Select ermöglicht es Anwendungen, nur eine Teilmenge von Daten aus einem Objekt abzurufen. Bei Amazon EMR wird die numerische Arbeit zur Filterung großer Datensätze von dem Cluster an Amazon S3 ausgelagert. Dies kann die Leistung in einigen Anwendungen verbessern und reduziert die Menge der zwischen Amazon EMR und Amazon S3 übertragenen Daten.

S3 Select wird mit Hive-Tabellen auf der Grundlage von CSV- und JSON-Dateien und durch die Einstellung der Konfigurationsvariablen s3select.filter auf true während der Hive-Sitzung unterstützt. Weitere Informationen und Beispiele finden Sie unter Angeben von S3 Select in Ihrem Code.

Ist S3 Select das Richtige für meine Anwendung?

Wir empfehlen, dass Sie Benchmark-Tests für Ihre Anwendungen im Vergleich mit und ohne S3 Select durchführen, um zu sehen, ob es für Ihre Anwendung geeignet sein könnte.

Verwenden Sie die folgenden Richtlinien, um zu bestimmen, ob Ihre Anwendung ein Kandidat für die Verwendung von S3 ist:

  • Ihre Abfrage filtert mehr als die Hälfte des ursprünglichen Datensatzes.

  • Ihre Abfrage-Filterprädikate verwenden Spalten mit einem Datentyp, der von Amazon S3 Select unterstützt wird. Weitere Informationen finden Sie unter Datentypen im Benutzerhandbuch für Amazon Simple Storage Service.

  • Ihre Netzwerkverbindung zwischen Amazon S3 und dem Amazon-EMR-Cluster hat eine gute Übertragungsgeschwindigkeit und verfügbare Bandbreite. Amazon S3 komprimiert keine HTTP-Antworten, sodass die Antwortgröße bei komprimierten Eingabedateien wahrscheinlich zunimmt.

Überlegungen und Einschränkungen

  • Die Amazon-S3-serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) und die clientseitige Verschlüsselung werden nicht unterstützt.

  • Die Eigenschaft AllowQuotedRecordDelimiters wird nicht unterstützt. Wenn diese Eigenschaft angegeben ist, schlägt die Abfrage fehl.

  • Nur CSV- und JSON-Dateien im UTF-8-Format werden unterstützt. Mehrzeilig CSVs und JSON werden nicht unterstützt.

  • Nur unkomprimierte oder gzip- oder bzip2-Dateien werden unterstützt.

  • Kommentarzeichen auf der letzten Zeile werden nicht unterstützt.

  • Leere Zeilen am Ende einer Datei werden nicht verarbeitet.

  • Hive auf Amazon EMR unterstützt die primitiven Datentypen, die S3 Select unterstützt. Weitere Informationen finden Sie unter Datentypen im Benutzerhandbuch für Amazon Simple Storage Service.

Angeben von S3 Select in Ihrem Code

Um S3 Select in Ihrer Hive-Tabelle zu verwenden, erstellen Sie die Tabelle durch Angabe von com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat als INPUTFORMAT-Klassenname, und geben Sie einen Wert für die Eigenschaft s3select.format mit der TBLPROPERTIES-Klausel an.

S3 Select ist standardmäßig deaktiviert, wenn Sie Abfragen ausführen. Aktivieren Sie S3 Select, indem Sie s3select.filter auf true in Ihrer Hive-Sitzung setzen, wie unten gezeigt. Die folgenden Beispiele zeigen, wie Sie S3 Select angeben, wenn Sie eine Tabelle aus CSV- und JSON-Dateien erstellen und anschließend die Tabelle mit einer einfachen Select-Anweisung abfragen.

Beispiel CREATE-TABLE-Anweisung für CSV-basierte Tabelle
CREATE TABLE mys3selecttable ( col1 string, col2 int, col3 boolean ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://path/to/mycsvfile/' TBLPROPERTIES ( "s3select.format" = "csv", "s3select.headerInfo" = "ignore" );
Beispiel CREATE-TABLE-Anweisung für JSON-basierte Tabelle
CREATE TABLE mys3selecttable ( col1 string, col2 int, col3 boolean ) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://path/to/json/' TBLPROPERTIES ( "s3select.format" = "json" );
Beispiel SELECT-TABLE-Anweisung
SET s3select.filter=true; SELECT * FROM mys3selecttable WHERE col2 > 10;
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.