Konfigurieren von Auftragseigenschaften für Spark-Aufträge in AWS Glue - AWS Glue

Konfigurieren von Auftragseigenschaften für Spark-Aufträge in AWS Glue

Wenn Sie Ihren Auftrag in der AWS Glue-Konsole definieren, stellen Sie Werte für Eigenschaften bereit, um die AWS Glue-Laufzeitumgebung zu steuern.

Definieren von Auftragseigenschaften für Spark-Aufträge

Die folgende Liste enthält Beschreibungen der Eigenschaften eines Spark-Auftrags. Informationen zu den Eigenschaften von Python-Shell-Aufträgen finden Sie unter Definieren von Auftragseigenschaften für Python-Shell-Aufträge. Informationen zu den Eigenschaften eines Streaming-ETL-Auftrags finden Sie unter Definieren von Auftragseigenschaften für einen Streaming-ETL-Auftrag.

Die Eigenschaften werden in der Reihenfolge aufgeführt, in der sie im Add job (Hinzufügen von Aufträgen)-Assistenten auf der AWS Glue-Konsole angezeigt werden.

Name

Geben Sie eine UTF-8-Zeichenfolge mit einer maximalen Länge von 255 Zeichen an.

Beschreibung

Geben Sie eine optionale Beschreibung mit bis zu 2.048 Zeichen ein.

IAM Role (IAM-Rolle)

Geben Sie die IAM-Rolle an, die für die Autorisierung von Ressourcen verwendet wird, die für die Ausführung des Auftrags und den Zugriff auf Datenspeicher verwendet werden. Weitere Informationen über die Berechtigungen für die Ausführung von Aufträgen in AWS Glue finden Sie unter Identity and Access Management für AWS Glue.

Typ

Der Typ des ETL-Auftrags. Dieser wird automatisch basierend auf dem Typ der ausgewählten Datenquellen festgelegt.

AWS Glue-Version

Die AWS Glue-Version bestimmt, welche Versionen von Apache Spark und Python für den Auftrag verfügbar sind, wie in der folgenden Tabelle angegeben.

AWS Glue-Version Unterstützte Spark- und Python-Versionen
5.0
  • Spark 3.5.4

  • Python 3.11

4,0
  • Spark 3.3.0

  • Python 3.10

3.0
  • Spark 3.1.1

  • Python 3.7

Sprache

Der Code im ETL-Skript definiert die Logik Ihres Auftrags. Das Skript kann in Python oder Scala programmiert werden. Sie können wählen, ob das Skript, das der Auftrag ausführt, von AWS Glue generiert oder von Ihnen bereitgestellt wird. Geben Sie den Skript-Namen und den Speicherort in Amazon Simple Storage Service (Amazon S3) an. Vergewissern Sie sich, dass sich keine Datei mit dem Namen des Skriptverzeichnisses im Pfad befindet. Weitere Informationen zum Schreiben von Skripts finden Sie unter AWS Glue-Programmierhandbuch.

Worker-Typ

Die folgenden Worker-Typen sind verfügbar:

Die auf AWS Glue-Workern verfügbaren Ressourcen werden in DPUs gemessen. Bei einer DPU handelt es sich um ein relatives Maß der Rechenleistung, die aus 4 vCPUs Rechenkapazität und 16 GB Arbeitsspeicher besteht.

  • G.025X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 0,25 DPU (2 vCPUs, 4 GB Arbeitsspeicher) mit 84 GB Festplatte (ca. 34 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Streaming-Aufträge mit geringem Volumen. Dieser Worker-Typ ist nur für Streaming-Aufträge der AWS Glue-Version 3.0 oder höher verfügbar.

  • G.1X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 1 DPU (4 vCPUs, 16 GB Arbeitsspeicher) mit 94 GB Festplatte (ca. 44 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Workloads wie Datentransformationen, Zusammenführungen und Abfragen. Er bietet eine skalierbare und kostengünstige Möglichkeit, die meisten Aufträge auszuführen.

  • G.2X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 2 DPUs (8 vCPUs, 32 GB Arbeitsspeicher) mit 138 GB Festplatte (ca. 78 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Workloads wie Datentransformationen, Zusammenführungen und Abfragen. Er bietet eine skalierbare und kostengünstige Möglichkeit, die meisten Aufträge auszuführen.

  • G.4X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 4 DPUs (16 vCPUs, 64 GB Arbeitsspeicher) mit 256 GB Festplatte (ca. 230 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Aufträge, deren Workloads Ihre anspruchsvollsten Transformationen, Aggregationen, Verknüpfungen und Abfragen enthalten.

  • G.8X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 8 DPUs (32 vCPUs, 128 GB Arbeitsspeicher) mit 512 GB Festplatte (ca. 485 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Aufträge, deren Workloads Ihre anspruchsvollsten Transformationen, Aggregationen, Verknüpfungen und Abfragen enthalten.

  • G.12X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 12 DPUs (48 vCPUs, 192 GB Arbeitsspeicher) mit 768 GB Festplatte (ca. 741 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Aufträge mit sehr großen und ressourcenintensiven Workloads, die eine erhebliche Rechenkapazität erfordern.

  • G.16X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 16 DPUs (64 vCPUs, 256 GB Arbeitsspeicher) mit 1024 GB Festplatte (ca. 996 GB frei) zugeordnet. Wir empfehlen diesen Worker-Typ für Aufträge mit den größten und ressourcenintensivsten Workloads, die maximale Rechenkapazität erfordern.

  • R.1X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker ist eine DPU mit speicheroptimierter Konfiguration zugeordnet. Wir empfehlen diesen Worker-Typ für speicherintensive Workloads, bei denen häufig zu wenig Arbeitsspeicher zur Verfügung steht oder bei denen ein hohes Verhältnis von Arbeitsspeicher zu CPU erforderlich ist.

  • R.2X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 2 DPUs mit speicheroptimierter Konfiguration zugeordnet. Wir empfehlen diesen Worker-Typ für speicherintensive Workloads, bei denen häufig zu wenig Arbeitsspeicher zur Verfügung steht oder bei denen ein hohes Verhältnis von Arbeitsspeicher zu CPU erforderlich ist.

  • R.4X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 4 DPUs mit speicheroptimierter Konfiguration zugeordnet. Wir empfehlen diesen Worker-Typ für große speicherintensive Workloads, bei denen häufig zu wenig Arbeitsspeicher zur Verfügung steht oder bei denen ein hohes Verhältnis von Arbeitsspeicher zu CPU erforderlich ist.

  • R.8X – Wenn Sie diese Art auswählen, müssen Sie auch einen Wert für die Anzahl der Worker angeben. Jedem Worker sind 8 DPUs mit speicheroptimierter Konfiguration zugeordnet. Wir empfehlen diesen Worker-Typ für sehr große speicherintensive Workloads, bei denen häufig zu wenig Arbeitsspeicher zur Verfügung steht oder bei denen ein hohes Verhältnis von Arbeitsspeicher zu CPU erforderlich ist.

Worker-Typ-Spezifikationen

Die folgende Tabelle enthält detaillierte Spezifikationen für alle verfügbaren G-Worker-Typen:

Spezifikationen für G-Worker-Typen
Worker-Typ DPU pro Knoten vCPU Speicher (GB) Festplatte (GB) Freier Festplattenspeicher (GB) Spark-Executors pro Knoten
G.025X 0,25 2 4 84 34 1
G.1X 1 4 16 94 44 1
G.2X 2 8 32 138 78 1
G.4X 4 16 64 256 230 1
G.8X 8 32 128 512 485 1
G.12X 12 48 192 768 741 1
G.16X 16 64 256 1024 996 1

Wichtig: Die Worker-Typen G.12X und G.16X sowie alle R-Worker-Typen (R.1X bis R.8X) haben eine höhere Startlatenz.

Sie zahlen einen Stundenpreis auf der Basis der Anzahl der DPUs, die für die Ausführung Ihrer ETL-Aufträge verwendet werden. Weitere Informationen finden Sie in der AWS GluePreisliste.

Wenn Sie bei AWS Glue Version 1.0 einen Auftrag über die Konsole konfigurieren und den Worker-Typ Standard angeben, wird die Maximale Kapazität festgelegt und die Anzahl der Worker erhält den Wert unter Maximale Kapazität - 1. Wenn Sie die AWS Command Line Interface (AWS CLI) oder das AWS-SDK verwenden, können Sie den Parameter Maximale Kapazität angeben, oder Sie können den Worker-Typ und die Anzahl der Worker angeben.

Für Aufträge der AWS Glue-Version 2.0 oder höher können Sie keine maximale Kapazität angeben. Stattdessen sollten Sie einen Worker-Typ und die Anzahl der Worker angeben.

Die Worker-Typen G.4X und G.8X sind nur verfügbar für Spark-ETL-Aufträge der AWS Glue-Version 3.0 oder höher in den folgenden AWS-Regionen: USA Ost (Ohio), USA Ost (Nord-Virginia), USA West (Nordkalifornien), US West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Seoul), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Kanada (Zentral), Europa (Frankfurt), Europa (Irland), Europa (London), Europa (Spanien), Europa (Stockholm) und Südamerika (São Paulo).

Die Worker-Typen G.12X, G.16X und R.1X bis zu R.8X sind nur für Spark-ETL-Aufträge der AWS Glue-Version 4.0 oder höher in den folgenden AWS-Regionen verfügbar: USA Ost (Nord-Virginia), Europa (Irland) und Europa (Frankfurt). Weitere Regionen werden in zukünftigen Versionen unterstützt.

Angeforderte Anzahl der Worker

Für die meisten Worker-Typen müssen Sie die Anzahl der Worker angeben, die bei der Ausführung des Auftrags zugewiesen werden.

Auftrags-Lesezeichen

Geben Sie an, wie AWS Glue Statusinformationen verarbeitet, wenn der Auftrag ausgeführt wird. Sie können bereits verarbeitete Daten beibehalten lassen, Statusinformationen aktualisieren oder Statusinformationen ignorieren. Weitere Informationen finden Sie unter Verfolgen von verarbeiteten Daten mit Auftragslesezeichen.

Warteschlange für Auftragsausführung

Gibt an, ob Auftragsausführungen in die Warteschlange gestellt werden, um sie später auszuführen, wenn sie aufgrund von Service Quotas nicht sofort ausgeführt werden können.

Wenn diese Option aktiviert ist, ist die Warteschlange für Auftragsausführungen aktiviert. Wenn sie nicht aktiviert ist, werden die Auftragsausführungen nicht in die Warteschlange aufgenommen.

Stimmt diese Einstellung nicht mit dem Wert überein, der in der Auftragsausführung festgelegt wurde, wird der Wert aus dem Feld für die Auftragsausführung verwendet.

Flexible Ausführung

Wenn Sie einen Auftrag mit AWS-Studio oder der API konfigurieren, können Sie eine Standard- oder flexible Auftragsausführungsklasse angeben. Ihre Aufträge können unterschiedliche Prioritäten und Zeitsensibilität haben. Die Standardausführungsklasse ist ideal für zeitkritische Workloads, die einen schnellen Auftragsstart und dedizierte Ressourcen erfordern.

Die flexible Ausführungsklasse eignet sich für nicht dringende Aufträge, deren Start- und Abschlusszeiten variieren können, z. B. für Vorproduktionsaufträge, Tests und einmalige Datenübertragungen. Flexible Ausführungen von Aufträgen werden für Aufträge unterstützt, die AWS Glue-Version 3.0 oder höher und G.1X- oder G.2X-Worker-Typen verwenden. Die neuen Worker-Typen (G.12X, G.16X und R.1X bis R.8X) unterstützen keine flexible Ausführung.

Ausführungen von Flex-Aufträgen werden basierend auf der Anzahl der Worker abgerechnet, die zu einem beliebigen Zeitpunkt ausgeführt werden. Die Anzahl der Worker kann für die Ausführung eines flexiblen Auftrags hinzugefügt oder entfernt werden. Anstatt eine einfache Berechnung von Max Capacity * Execution Time abzurechnen, trägt jeder Worker für die Zeit bei, die er während der Ausführung des Auftrags ausgeführt hat. Die Rechnung ist die Summe von (Number of DPUs per worker*time each worker ran).

Weitere Informationen finden Sie im Hilfebereich in AWS-Studio oder Aufträge und Auftragsausführungen.

Anzahl der Wiederholungen

Geben Sie an, wie oft (0 bis 10) AWS Glue den Auftrag automatisch neu starten soll, wenn er fehlschlägt. Aufträge, die das Timeout-Limit erreichen, werden nicht neu gestartet.

Zeitüberschreitung von Aufträgen

Legt die maximale Ausführungszeit in Minuten fest. Die maximale Einstellung beträgt 2.880 Minuten (2 Tage). Andernfalls geben die Aufträge eine Ausnahme aus.

Wenn der Wert leer gelassen wird, ist das Timeout standardmäßig auf 2.880 Minuten festgelegt.

Für alle vorhandenen AWS Glue-Aufträge mit einem Timeout-Wert von mehr als 7 Tagen wird standardmäßig ein Wert von 7 Tagen verwendet. Wenn Sie beispielsweise ein Timeout von 20 Tagen für einen Batch-Auftrag angegeben haben, wird dieser am 7. Tag gestoppt.

Bewährte Methoden für Auftrags-Timeouts

Jobs werden basierend auf der Ausführungszeit abgerechnet. Um unerwartete Gebühren zu vermeiden, konfigurieren Sie Timeout-Werte, die der erwarteten Ausführungszeit Ihres Auftrags entsprechen.

Erweiterte Eigenschaften
Skript-Dateiname

Ein eindeutiger Skript-Name für Ihren Auftrag. Kann nicht als Unbenannter Auftrag bezeichnet werden.

Skriptpfad

Der Amazon-S3-Objekt-Speicherort des Skripts. Der Pfad muss in der Form s3://bucket/prefix/path/ vorliegen. Der Pfad muss mit einem Schrägstrich (/) enden und darf keine Dateien enthalten.

Auftragsmetriken

Aktivieren oder deaktivieren Sie die Erstellung von Amazon CloudWatch-Metriken, wenn dieser Auftrag ausgeführt wird. Um die Profiling-Daten anzuzeigen, müssen Sie diese Option aktivieren. Weitere Informationen über das Aktivieren und Anzeigen von Metriken finden Sie unter Auftragsüberwachung und Debugging.

Kennzahlen zur Beobachtbarkeit der Aufträge

Aktivieren Sie die Erstellung von zusätzlichen CloudWatch-Kennzahlen für die Beobachtbarkeit, wenn dieser Auftrag ausgeführt wird. Weitere Informationen finden Sie unter Überwachung mit AWS Glue-Beobachtbarkeitsmetriken.

Kontinuierliche Protokollierung

Aktivieren Sie die kontinuierliche Protokollierung für Amazon CloudWatch. Wenn diese Option nicht aktiviert ist, stehen Protokolle erst nach Abschluss des Auftrags zur Verfügung. Weitere Informationen finden Sie unter Protokollieren für AWS Glue-Aufträge.

Spark-Benutzeroberfläche

Aktivieren Sie die Verwendung der Spark-Benutzeroberfläche, um diese Aufgabe zu überwachen. Weitere Informationen finden Sie unter Aktivieren der Apache-Spark-Webbenutzeroberfläche für AWS Glue-Aufgaben.

Spark-UI-Protokollpfade

Der Pfad zum Schreiben von Protokollen, wenn die Spark-UI aktiviert ist.

Konfiguration der Protokollierung und Überwachung über Spark-UI

Wählen Sie eine der folgenden Optionen:

  • Standard: Protokolle werden mit der AWS Glue-Auftragsausführungs-ID als Dateinamen geschrieben. Aktivieren Sie die Spark-UI-Überwachung in der AWS Glue-Konsole.

  • Legacy: Protokolle werden mit „spark-application-{Zeitstempel}“ als Dateinamen geschrieben. Aktivieren Sie die Spark-UI-Überwachung nicht.

  • Standard und Legacy: Protokolle werden sowohl an den Standard- als auch an den Legacy-Speicherorten geschrieben. Aktivieren Sie die Spark-UI-Überwachung in der AWS Glue-Konsole.

Maximale Gleichzeitigkeit

Legt die maximale Anzahl gleichzeitiger Ausführungen fest, die für diese Ausführung zulässig sind. Der Standardwert ist 1. Bei Erreichen dieser Schwelle wird ein Fehler zurückgegeben. Der Höchstwert, den Sie angeben können, wird durch ein Service Limit gesteuert. Wenn beispielsweise beim Starten einer neuen Instance eine vorherige Ausführung läuft, möchten Sie einen Fehler zurückgeben, um zu verhindern, dass zwei Instance desselben Auftrags gleichzeitig ausgeführt werden.

Temporärer Pfad

Geben Sie den Speicherort eines Arbeitsverzeichnisses in Amazon S3 an, in dem temporäre Zwischenergebnisse geschrieben werden, wenn AWS Glue das Skript ausführt. Vergewissern Sie sich, dass sich keine Datei mit dem Namen des temporären Verzeichnis im Pfad befindet. Dieses Verzeichnis wird verwendet, wenn AWS Glue aus Amazon Redshift liest oder darin schreibt. Es findet auch bei bestimmten AWS Glue-Transformationen Anwendung.

Anmerkung

AWS Glue erstellt einen temporären Bucket für Aufträge, wenn in einer Region noch kein Bucket vorhanden ist. Dieser Bucket erlaubt möglicherweise den öffentlichen Zugriff. Sie können entweder den Bucket in Amazon S3 ändern, um den öffentlichen Zugriffsblock festzulegen, oder den Bucket später löschen, nachdem alle Aufträge in dieser Region abgeschlossen sind.

Schwellenwert für die Verzögerungsbenachrichtigung (Minuten)

Legt den Schwellenwert (in Minuten) fest, bevor eine Verzögerungsbenachrichtigung gesendet wird. Sie können diesen Schwellenwert festlegen, um Benachrichtigungen zu senden, wenn ein RUNNING, STARTING oder STOPPING Auftragslauf mehr als eine erwartete Anzahl von Minuten andauert.

Sicherheitskonfiguration

Wählen Sie eine Sicherheitskonfiguration aus der Liste aus. Eine Sicherheitskonfiguration gibt an, wie die Daten am Amazon-S3-Ziel verschlüsselt werden: keine Verschlüsselung, serverseitige Verschlüsselung mit von AWS KMS verwalteten Schlüsseln (SSE-KMS) oder mit von Amazon S3 verwalteten Verschlüsselungsschlüsseln (SSE-S3).

Server-side encryption

Wenn Sie diese Option wählen, werden die Daten beim Schreiben des ETL-Auftrags nach Amazon S3 im Ruhezustand mit SSE-S3-Verschlüsselung verschlüsselt. Sowohl Ihr Amazon-S3-Datenziel als auch alle Daten, die in ein temporäres Amazon-S3-Verzeichnis geschrieben werden, werden verschlüsselt. Diese Option wird als Auftragsparameter übergeben. Weitere Informationen finden Sie unter Schützen von Daten mit serverseitiger Verschlüsselung mit Amazon S3-verwalteten Verschlüsselungsschlüsseln (SSE-S3) im Benutzerhandbuch von Amazon Simple Storage Service.

Wichtig

Diese Option wird bei Angabe einer Sicherheitskonfiguration ignoriert.

Verwenden des Glue-Datenkatalogs als Hive-Metastore

Wählen Sie diese Option, um den AWS Glue-Data-Catalog als Hive-Metastore zu verwenden. Die für den Auftrag verwendete IAM-Rolle muss über die glue:CreateDatabase-Berechtigung verfügen. Sofern nicht bereits vorhanden, wird im Data Catalog eine Datenbank namens „default“ angelegt.

Verbindungen

Wählen Sie eine VPC-Konfiguration, um auf Amazon-S3-Datenquellen zuzugreifen, die sich in Ihrer Virtual Private Cloud (VPC) befinden. Sie können eine Netzwerkverbindung in AWS Glue erstellen und verwalten. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Daten.

Bibliotheken
Pfad der Python-Bibliothek, Pfad der abhängigen JARs und Pfad der referenzierten Dateien

Geben Sie diese Optionen an, wenn Ihr Skript sie benötigt. Sie können die durch Kommas getrennten Amazon-S3-Pfade für diese Optionen definieren, wenn Sie den Auftrag definieren. Sie können diese Pfade bei der Ausführung des Auftrag überschreiben. Weitere Informationen finden Sie unter Bereitstellen eigener, benutzerdefinierter Skripts.

Auftragsparameter

Ein Satz von Schlüssel-Wert-Paaren, die als benannte Parameter an das Skript übergeben werden. Dies sind Standardwerte, die verwendet werden, wenn das Skript ausgeführt wird. Sie können auch in Auslösern oder beim Ausführen der Aufgabe überschrieben werden. Sie müssen dem Schlüsselnamen -- voranstellen; z. B.: --myKey. Beim Verwenden von AWS Command Line Interface übergeben Sie die Auftragsparameter als Zuordnung (Map) .

Beispiele finden Sie unter „Python parameters“ (Python-Parameter) in Übergeben von und Zugreifen auf Python-Parameter in AWS Glue.

Tags

Markieren Sie Ihren Auftrag mit einem Tag-Schlüssel und einem optionalen Tag-Wert. Nachdem Tag-Schlüssel erstellt wurden, sind sie schreibgeschützt. Verwenden Sie Tags für manche Ressourcen, damit sie leichter zu organisieren und identifizieren sind. Weitere Informationen finden Sie unter AWS-Tags in AWS Glue.

Einschränkungen für Aufträge, die auf verwaltete Tabellen von Lake Formation zugreifen

Beachten Sie die folgenden Hinweise und Einschränkungen beim Erstellen von Aufträgen, die aus von AWS Lake Formation verwalteten Tabellen lesen oder in diese schreiben: