Zusammenfassen von Eingabedateien in größeren Gruppen beim Lesen - AWS Glue

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.

Zusammenfassen von Eingabedateien in größeren Gruppen beim Lesen

Sie können die Eigenschaften Ihrer Tabellen festlegen, damit ein AWS Glue-ETL-Auftrag Dateien gruppieren kann, wenn sie aus einem Amazon-S3-Datenspeicher gelesen werden. Diese Eigenschaften ermöglichen den einzelnen ETL-Aufträgen eine Gruppe von Eingabedateien in eine einzelne In-Memory-Partition zu lesen. Dies ist besonders nützlich, wenn es eine große Anzahl kleiner Dateien in Ihrem Amazon-S3-Datenspeicher gibt. Wenn Sie bestimmte Eigenschaften festlegen, weisen Sie AWS Glue an, Dateien innerhalb einer Amazon-S3-Datenpartition zu gruppieren und die Größe der zu lesenden Gruppen zu bestimmen. Sie können diese Optionen auch festlegen, wenn Sie mit der create_dynamic_frame.from_options-Methode Daten aus dem Amazon-S3-Datenspeicher lesen.

Zum Aktivieren von Gruppierungsdateien für eine Tabelle legen Sie Schlüssel-Wert-Paare im Parameterfeld Ihrer Tabellenstruktur fest. Verwenden Sie eine JSON-Notation, um einen Wert für das Parameterfeld Ihrer Tabelle festzulegen. Weitere Informationen zum Bearbeiten der Eigenschaften einer Tabelle finden Sie unter Tabellendetails anzeigen und verwalten.

Sie können mit dieser Methode das Gruppieren von Tabellen im Data Catalog bei Amazon-S3-Datenspeichern aktivieren.

groupFiles

Setzen Sie groupFiles auf inPartition, damit die Gruppierung von Dateien innerhalb einer Amazon-S3-Datenpartition ermöglicht wird. Bei mehr als 50 000 Eingabedateien aktiviert AWS Glue automatisch die Gruppierung.

'groupFiles': 'inPartition'
groupSize

Legen Sie groupSize auf die Zielgröße von Gruppen in Bytes fest. Die groupSize-Eigenschaft ist optional. Ist sie nicht bereitgestellt, berechnet AWS Glue eine Größe für die Verwendung aller CPU-Kerne im Cluster und reduziert gleichzeitig die Gesamtzahl an ETL-Aufträgen und In-Memory-Partitionen.

Im Folgenden wird beispielsweise die Gruppengröße auf 1 MB festgelegt.

'groupSize': '1048576'

Beachten Sie, dass groupsize mit dem Ergebnis einer Berechnung eingestellt werden sollte. Beispiel: 1024 * 1024 = 1048576.

recurse

Legen Sie recurse (rekursiv) auf True fest, um Dateien in allen Unterverzeichnissen zu lesen, wenn paths als ein Array von Pfaden angegeben wird. Sie müssen rekursiv nicht festlegen, wenn es sich bei paths um ein Array von Objektschlüsseln in Amazon S3 handelt, oder das Eingabeformat parquet/orc ist, wie im folgenden Beispiel.

'recurse':True

Wenn Sie direkt aus Amazon S3 mit der create_dynamic_frame.from_options-Methode lesen, fügen Sie diese Verbindungsoptionen hinzu. Im Folgenden wird beispielsweise versucht, Dateien in Gruppen mit einer Größe von 1 MB zusammenzufassen.

df = glueContext.create_dynamic_frame.from_options("s3", {'paths': ["s3://s3path/"], 'recurse':True, 'groupFiles': 'inPartition', 'groupSize': '1048576'}, format="json")
Anmerkung

groupFiles wird für DynamicFrames unterstützt, die aus den folgenden Datenformaten erstellt wurden: csv, ion, grokLog, json und xml. Diese Option wird für Avro, Parquet und Orc nicht unterstützt.