

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.

# Optimieren Sie die ETL-Erfassung der Eingabedateigröße auf AWS
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws"></a>

*Unterstützung Patrikar, Amazon Web Services*

## Zusammenfassung
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie den Aufnahmeschritt des ETL-Prozesses (Extrahieren, Transformieren und Laden) für Big Data- und Apache Spark-Workloads auf AWS Glue optimieren können, indem Sie die Dateigröße vor der Verarbeitung Ihrer Daten optimieren. Verwenden Sie dieses Muster, um das Problem mit *kleinen* Dateien zu verhindern oder zu lösen. Dies ist der Fall, wenn eine große Anzahl kleiner Dateien die Datenverarbeitung aufgrund der Gesamtgröße der Dateien verlangsamt. Beispielsweise können Hunderte von Dateien, die jeweils nur einige hundert Kilobyte groß sind, die Datenverarbeitungsgeschwindigkeit für Ihre AWS Glue Glue-Jobs erheblich verlangsamen. Dies liegt daran, dass AWS Glue interne Listenfunktionen auf Amazon Simple Storage Service (Amazon S3) ausführen muss und YARN (Yet Another Resource Negotiator) eine große Menge an Metadaten speichern muss. Um die Datenverarbeitungsgeschwindigkeit zu verbessern, können Sie mithilfe von Gruppierung Ihre ETL-Aufgaben in die Lage versetzen, eine Gruppe von Eingabedateien in eine einzige In-Memory-Partition zu lesen. Die Partition gruppiert automatisch kleinere Dateien zusammen. Alternativ können Sie benutzerdefinierten Code verwenden, um Ihren vorhandenen Dateien Batch-Logik hinzuzufügen.

## Voraussetzungen und Einschränkungen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein oder mehrere [AWS-Klebejobs](https://docs.aws.amazon.com/glue/latest/dg/author-job.html)
+ Eine oder mehrere Big-Data- oder [Apache Spark-Workloads](https://spark.apache.org/)
+ Einen [S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html)

## Architektur
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-architecture"></a>

Das folgende Muster zeigt, wie Daten in verschiedenen Formaten von einem AWS Glue Glue-Job verarbeitet und dann in einem S3-Bucket gespeichert werden, um einen Überblick über die Leistung zu erhalten.

![\[Daten in verschiedenen Formaten werden von einem AWS Glue Glue-Job verarbeitet und dann in einem S3-Bucket gespeichert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/88ee332f-2f12-4d88-b491-e78bbb173850/images/9a97b54a-3f67-4a48-94d2-5807373ace25.png)


Das Diagramm zeigt den folgenden Workflow:

1. 
**Anmerkung**  
Ein AWS Glue Glue-Job konvertiert kleine Dateien im CSV-, JSON- und Parquet-Format in dynamische Frames. : Die Größe der Eingabedatei hat den größten Einfluss auf die Leistung des AWS Glue Glue-Jobs.

1. Der AWS Glue Glue-Job führt interne Listenfunktionen in einem S3-Bucket aus.

## Tools
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-tools"></a>
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter ETL-Service. Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

## Epen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-epics"></a>

### Verwenden Sie Gruppierung, um die ETL-Aufnahme beim Lesen zu optimieren
<a name="use-grouping-to-optimize-etl-ingestion-during-reading"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Geben Sie die Gruppengröße an. | Wenn Sie mehr als 50.000 Dateien haben, erfolgt die Gruppierung standardmäßig. Sie können die Gruppierung jedoch auch für weniger als 50.000 Dateien verwenden, indem Sie die Gruppengröße im `connectionOptions` Parameter angeben. Der `connectionOptions` Parameter ist in der `create_dynamic_frame.from_options` Methode enthalten. | Dateningenieur | 
| Schreiben Sie den Gruppierungscode. | Verwenden Sie die `create_dynamic_frame` Methode, um einen dynamischen Frame zu erstellen. Beispiel:<pre>S3bucket_node1 = glueContext.create_dynamic_frame.from_options(<br />    format_options={"multiline": False},<br />    connection_type="s3",<br />    format="json",<br />    connection_options={<br />        "paths": ["s3://bucket/prefix/file.json"],<br />        "recurse": True,<br />        "groupFiles": 'inPartition', <br />        "groupSize": 1048576<br />    },<br />    transformation_ctx="S3bucket_node1",<br />)</pre>Wird verwendet`groupFiles`, um Dateien in einer Amazon S3 S3-Partitionsgruppe zu gruppieren. Wird verwendet`groupSize`, um die Zielgröße der Gruppe festzulegen, die im Speicher gelesen werden soll. Geben Sie `groupSize` in Byte an (1048576 = 1 MB). | Dateningenieur | 
| Fügen Sie den Code zum Workflow hinzu. | Fügen Sie den Gruppierungscode zu Ihrem [Job-Workflow](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) in AWS Glue hinzu. | Dateningenieur | 

### Verwenden Sie benutzerdefinierte Logik, um die ETL-Erfassung zu optimieren
<a name="use-custom-logic-to-optimize-etl-ingestion"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie die Sprache und die Verarbeitungsplattform. | Wählen Sie die Skriptsprache und die Verarbeitungsplattform, die auf Ihren Anwendungsfall zugeschnitten sind. | Cloud-Architekt | 
| Schreiben Sie den Code. | Schreiben Sie die benutzerdefinierte Logik, um Ihre Dateien zu stapeln. | Cloud-Architekt | 
| Fügen Sie den Code zum Workflow hinzu. | Fügen Sie den Code zu Ihrem [Job-Workflow](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) in AWS Glue hinzu. Dadurch kann Ihre benutzerdefinierte Logik bei jeder Ausführung des Jobs angewendet werden. | Dateningenieur | 

### Neupartitionierung beim Schreiben von Daten nach der Transformation
<a name="repartition-when-writing-data-after-transformation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie Konsummuster. | Finden Sie heraus, wie nachgelagerte Anwendungen die von Ihnen geschriebenen Daten verwenden werden. Wenn sie beispielsweise täglich Daten abfragen und Sie nur Daten pro Region partitionieren oder sehr kleine Ausgabedateien haben, z. B. 2,5 KB pro Datei, ist dies nicht optimal für die Nutzung. | DBA | 
| Daten vor dem Schreiben neu partitionieren. | Neupartitionierung auf der Grundlage von Verknüpfungen oder Abfragen während der Verarbeitung (basierend auf der Verarbeitungslogik) und nach der Verarbeitung (basierend auf dem Verbrauch). Beispielsweise eine Neupartitionierung auf der Grundlage der Bytegröße, wie`.repartition(100000)`, oder eine Neupartitionierung auf der Grundlage von Spalten, wie. `.repartition("column_name")` | Dateningenieur | 

## Zugehörige Ressourcen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-resources"></a>
+ [Eingabedateien in größeren Gruppen lesen](https://docs.aws.amazon.com/glue/latest/dg/grouping-input-files.html)
+ [Überwachung von AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-glue.html)
+ [Überwachung von AWS Glue mithilfe von CloudWatch Amazon-Metriken](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)
+ [Auftragsüberwachung und Debugging](https://docs.aws.amazon.com/glue/latest/dg/monitor-profile-glue-job-cloudwatch-metrics.html)
+ [Erste Schritte mit serverlosem ETL auf AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/welcome.html)

## Zusätzliche Informationen
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-additional"></a>

**Ermitteln der Dateigröße**

Es gibt keine einfache Methode, um festzustellen, ob eine Datei zu groß oder zu klein ist. Die Auswirkung der Dateigröße auf die Verarbeitungsleistung hängt von der Konfiguration Ihres Clusters ab. In Core Hadoop empfehlen wir, Dateien mit einer Größe von 128 MB oder 256 MB zu verwenden, um die Blockgröße optimal zu nutzen.

Für die meisten Textdatei-Workloads auf AWS Glue empfehlen wir eine Dateigröße zwischen 100 MB und 1 GB für einen 5-10 DPU-Cluster. Um die beste Größe der Eingabedateien zu ermitteln, überwachen Sie den Vorverarbeitungsbereich Ihres AWS Glue Glue-Auftrags und überprüfen Sie dann die CPU-Auslastung und die Speicherauslastung des Auftrags.

**Zusätzliche Überlegungen**

Wenn die Leistung in den frühen ETL-Phasen einen Engpass darstellt, sollten Sie die Datendateien vor der Verarbeitung gruppieren oder zusammenführen. Wenn Sie die vollständige Kontrolle über den Dateigenerierungsprozess haben, kann es noch effizienter sein, Datenpunkte auf dem Quellsystem selbst zu aggregieren, bevor die Rohdaten an AWS gesendet werden.