Bewährte Methoden - AWS Präskriptive Leitlinien

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.

Bewährte Methoden

AWS Glue Berücksichtigen Sie bei der Entwicklung mit die folgenden bewährten Methoden.

Lokal zuerst entwickeln

Um beim Erstellen Ihrer ETL-Aufträge Kosten und Zeit zu sparen, testen Sie zuerst Ihren Code und Ihre Geschäftslogik lokal. Anweisungen zum Einrichten eines Docker-Containers, der Ihnen beim Testen von AWS Glue ETL-Aufträgen sowohl in einer Shell als auch in einer integrierten Entwicklungsumgebung (IDE) helfen kann, finden Sie im Blogbeitrag Lokales Entwickeln und Testen von AWS Glue Aufträgen mithilfe eines Docker-Containers.

AWS Glue Interaktive Sitzungen verwenden

AWS Glue -interaktive Sitzungen bieten ein Serverless-Spark-Backend in Verbindung mit einem Open-Source-Jupyter-Kernel, der in Notebooks und IDEs wie PyCharm, IntelliJ und VS Code integriert werden kann. Durch die Verwendung interaktiver Sitzungen können Sie Ihren Code anhand echter Datensätze mit dem AWS Glue Spark-Backend und der IDE Ihrer Wahl testen. Befolgen Sie zunächst die Schritte unter Erste Schritte mit AWS Glue interaktiven Sitzungen.

Verwenden Sie die Partitionierung, um genau das abzufragen, was Sie benötigen

Partitionierung bezieht sich auf die Aufteilung eines großen Datensatzes in kleinere Partitionen basierend auf bestimmten Spalten oder Schlüsseln. Wenn Daten partitioniert sind, AWS Glue kann selektive Scans für eine Teilmenge von Daten durchführen, die bestimmte Partitionierungskriterien erfüllt, anstatt den gesamten Datensatz zu scannen. Dies führt zu einer schnelleren und effizienteren Abfrageverarbeitung, insbesondere bei der Arbeit mit großen Datensätzen.

Partitionsdaten basierend auf den Abfragen, die für sie ausgeführt werden. Wenn beispielsweise die meisten Abfragen nach einer bestimmten Spalte filtern, kann die Partitionierung dieser Spalte die Abfragezeit erheblich reduzieren. Weitere Informationen zum Partitionieren von Daten finden Sie unter Arbeiten mit partitionierten Daten in AWS Glue.

Optimieren der Speicherverwaltung

Die Speicherverwaltung ist beim Schreiben von AWS Glue ETL-Aufträgen von entscheidender Bedeutung, da sie auf der Apache-Spark-Engine ausgeführt werden, die für die speicherinterne Verarbeitung optimiert ist. Der Blogbeitrag Optimieren der Speicherverwaltung in AWS Glue enthält Details zu den folgenden Speicherverwaltungstechniken:

  • Amazon S3-Listenimplementierung von AWS Glue

  • Gruppierung

  • Ausschließen irrelevanter Amazon S3-Pfade und -Speicherklassen

  • Spark- und AWS Glue Lesepartitionierung

  • Masseneinfügungen

  • Join-Optimierungen

  • PySpark Benutzerdefinierte Funktionen (UDFs)

  • Inkrementelle Verarbeitung

Effiziente Datenspeicherformate verwenden

Beim Erstellen von ETL-Aufträgen empfehlen wir, transformierte Daten in einem spaltenbasierten Datenformat auszugeben. Spaltenbasierte Datenformate wie Apache Parquet und ORC werden häufig für die Speicherung und Analyse von Big Data verwendet. Sie sind darauf ausgelegt, die Datenverschiebung zu minimieren und die Komprimierung zu maximieren. Diese Formate ermöglichen auch die Aufteilung von Daten auf mehrere Reader für erhöhte parallele Lesevorgänge während der Abfrageverarbeitung.

Das Komprimieren von Daten trägt auch dazu bei, die Menge der gespeicherten Daten zu reduzieren, und verbessert die Leistung von Lese-/Schreibvorgängen. AWS Glue unterstützt mehrere Komprimierungsformate nativ. Weitere Informationen zur effizienten Datenspeicherung und Komprimierung finden Sie unter Aufbau einer leistungseffizienten Datenpipeline.

Verwenden Sie den entsprechenden Skalierungstyp

Es ist wichtig zu verstehen, wann horizontal skaliert (die Anzahl der Worker geändert) oder vertikal skaliert (den Worker-Typ geändert) werden soll, AWS Glue da dies die Kosten und Leistung der ETL-Aufträge beeinträchtigen kann.

Im Allgemeinen sind ETL-Aufträge mit komplexen Transformationen speicherintensiver und erfordern eine vertikale Skalierung (z. B. die Umstellung von G.1X auf den G.2X-Worker-Typ). Für rechenintensive ETL-Aufträge mit großen Datenmengen empfehlen wir die horizontale Skalierung, da darauf ausgelegt AWS Glue ist, diese Daten parallel über mehrere Knoten hinweg zu verarbeiten.

Durch die genaue Überwachung von AWS Glue Auftragsmetriken in Amazon CloudWatch können Sie feststellen, ob ein Leistungsengpass durch einen Mangel an Arbeitsspeicher oder Rechenleistung verursacht wird. Weitere Informationen zu AWS Glue Worker-Typen und Skalierung finden Sie unter Bewährte Methoden zum Skalieren von Apache-Spark-Aufträgen und zum Partitionieren von Daten mit AWS Glue.