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.
Verwenden von Auftragsparametern in AWS Glue-Jobs
Beim Erstellen eines AWS Glue-Jobs legen Sie einige Standardfelder fest, z. B. Role
undWorkerType
. Über die Argument
-Felder (Auftragsparameter in der Konsole) können Sie zusätzliche Konfigurationsinformationen bereitstellen. In diesen Feldern können Sie AWS Glue-Jobs mit den in diesem Thema aufgelisteten Argumenten (Parametern) versehen. Weitere Informationen zum AWS Glue-Job API finden Sie unterAufträge.
Festlegen der Auftragsparameter
Sie können einen Auftrag über die Konsole auf der Registerkarte Job details (Details zur Auftragsausführung) unter der Kopfzeile Job Parameters (Auftragsparameter) konfigurieren. Sie können einen Job auch über die Einstellung AWS CLI by oder für einen Job DefaultArguments
oder NonOverridableArguments
über die Einstellung für einen Job, Arguments
der ausgeführt wird, konfigurieren. Für den Auftrag festgelegte Argumente werden bei jeder Ausführung des Auftrags übergeben, während bei der Auftragsausführung festgelegte Argumente nur für diese einzelne Ausführung übergeben werden.
Im Folgenden finden Sie beispielsweise die Syntax zum Ausführen eines Auftrags mit --arguments
zum Festlegen eines Auftragsparameters.
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'
Zugreifen auf Auftragsparameter
Beim Schreiben von AWS Glue-Skripten möchten Sie möglicherweise auf Job-Parameterwerte zugreifen, um das Verhalten Ihres eigenen Codes zu ändern. In unseren Bibliotheken stellen wir hierfür Hilfsmethoden zur Verfügung. Diese Methoden lösen Parameterwerte der Auftragsausführung auf, die die Parameterwerte des Auftrags überschreiben. Bei der Auflösung von Parametern, die an mehreren Stellen festgelegt wurden, überschreibt Auftrag NonOverridableArguments
die Auftragsausführung Arguments
, die wiederum Auftrag DefaultArguments
überschreibt.
In Python:
In Python-Aufträgen stellen wir eine Funktion mit dem Namen getResolvedParameters
bereit. Weitere Informationen finden Sie unter Zugriff auf Parameter mit getResolvedOptions. Die Auftragsparameter sind in der Variablen sys.argv
verfügbar.
In Scala:
In Scala-Aufträgen stellen wir ein Objekt mit dem Namen GlueArgParser
bereit. Weitere Informationen finden Sie unter AWS Glue Scala GlueArgParser-APIs. Die Auftragsparameter sind in der Variablen sysArgs
verfügbar.
Referenz der Auftragsparameter
AWS Glue erkennt die folgenden Argumentnamen, die Sie verwenden können, um die Skriptumgebung für Ihre Jobs und Jobausführungen einzurichten:
--additional-python-modules
-
Eine durch Kommas getrennte Liste, die eine Reihe von Python-Paketen darstellt, die installiert werden sollen. Sie können Pakete von PyPI installieren oder eine benutzerdefinierte Verteilung bereitstellen. Ein PyPI-Paketeintrag liegt im Format
vor und enthält den PyPI-Namen und die Version Ihres Zielpakets. Ein benutzerdefinierter Verteilungseintrag ist der S3-Pfad zur Verteilung.package
==version
Einträge verwenden einen Python-Versionsabgleich, um Paket und Version abzugleichen. Dies bedeutet, dass Sie zwei Gleichheitszeichen verwenden müssen, z. B.
==
. Es gibt auch andere Operatoren für die Versionsübereinstimmung. Weitere Informationen finden Sie unter PEP440. Um Optionen für die Modulinstallation an
pip3
zu übergeben, verwenden Sie den --python-modules-installer-option-Parameter. --auto-scale-within-microbatch
-
Der Standardwert ist "false". Dieser Parameter kann nur für AWS Glue-Streaming-Jobs verwendet werden, bei denen die Streaming-Daten in einer Reihe von Mikrobatches verarbeitet werden. Auto Scaling muss aktiviert sein. Wenn dieser Wert auf falsch gesetzt ist, wird der exponentielle gleitende Durchschnitt der Batch-Dauer für abgeschlossene Micro-Batches berechnet. Dieser Wert wird mit der Fenstergröße verglichen, um festzulegen, ob die Anzahl der Ausführer hoch- oder herunterskaliert werden soll. Die Skalierung erfolgt erst, wenn ein Mikro-Batch abgeschlossen ist. Wenn dieser Wert während eines Mikro-Batches auf wahr gesetzt ist, wird er hochskaliert, wenn die Anzahl der Spark-Aufgaben 30 Sekunden lang gleich bleibt oder die aktuelle Batch-Verarbeitung größer als die Fenstergröße ist. Die Anzahl der Ausführer sinkt, wenn ein Ausführer länger als 60 Sekunden im Leerlauf war oder der exponentielle gleitende Durchschnitt der Batch-Dauer niedrig ist.
--class
-
Die Scala-Klasse, die als Einstiegspunkt für Ihr Scala-Skript dient. Dies gilt nur, wenn die
--job-language
aufscala
eingestellt ist. --continuous-log-conversionPattern
-
Gibt ein benutzerdefiniertes Konvertierungsprotokollmuster für einen Auftrag an, der für die kontinuierliche Protokollierung aktiviert ist. Das Konvertierungsmuster gilt nur für Treiberprotokolle und Executor-Protokolle. Es hat keinen Einfluss auf den AWS Glue-Fortschrittsbalken.
--continuous-log-logGroup
-
Gibt einen benutzerdefinierten CloudWatch Amazon-Protokollgruppennamen für einen Job an, der für die kontinuierliche Protokollierung aktiviert ist.
--continuous-log-logStreamPrefix
-
Gibt ein benutzerdefiniertes CloudWatch Logstream-Präfix für einen Job an, der für die kontinuierliche Protokollierung aktiviert ist.
--customer-driver-env-vars
und--customer-executor-env-vars
-
Mit diesen Parametern werden Umgebungsvariablen auf dem Betriebssystem für jeden Worker (Treiber oder Executor) festgelegt. Sie können diese Parameter verwenden, wenn Sie Plattformen und benutzerdefinierte Frameworks auf AWS Glue aufbauen, damit Ihre Benutzer Jobs darauf schreiben können. Wenn Sie diese beiden Flags aktivieren, können Sie unterschiedliche Umgebungsvariablen für den Treiber bzw. den Executor festlegen, ohne dieselbe Logik in das Job-Skript selbst einfügen zu müssen.
Beispielverwendung
Im Folgenden finden Sie ein Beispiel für die Verwendung dieser Parameter:
"—customer-driver-env-vars", "CUSTOMER_KEY1=VAL1,CUSTOMER_KEY2=\"val2,val2 val2\"", "—customer-executor-env-vars", "CUSTOMER_KEY3=VAL3,KEY4=VAL4"
Das Setzen dieser Werte im Jobrun-Argument entspricht der Ausführung der folgenden Befehle:
Im Treiber:
exportiere CUSTOMER _ KEY1 = VAL1
export CUSTOMER _ KEY2 ="wert2, wert2 wert2"
Im Executor:
exportiere _ = CUSTOMER KEY3 VAL3
Anschließend können Sie im Jobskript selbst die Umgebungsvariablen mit
os.environ.get("CUSTOMER_KEY1")
oder abrufenSystem.getenv("CUSTOMER_KEY1")
.Erzwungene Syntax
Beachten Sie bei der Definition von Umgebungsvariablen die folgenden Standards:
Jeder Schlüssel muss den haben
CUSTOMER_ prefix
.Zum Beispiel: for
"CUSTOMER_KEY3=VAL3,KEY4=VAL4"
,KEY4=VAL4
wird ignoriert und nicht gesetzt.Jedes Schlüssel- und Wertepaar muss durch ein einzelnes Komma abgegrenzt werden.
Zum Beispiel:
"CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"
Wenn der „Wert“ Leerzeichen oder Kommas enthält, muss er in Anführungszeichen definiert werden.
Zum Beispiel:
CUSTOMER_KEY2=\"val2,val2 val2\"
Diese Syntax ist den Standards für das Setzen von Bash-Umgebungsvariablen sehr ähnlich.
--datalake-formats
-
Wird in AWS Glue 3.0 und späteren Versionen unterstützt.
Gibt das zu verwendende Data Lake-Framework an. AWS Glue fügt die erforderlichen JAR Dateien für die Frameworks, die Sie angeben, in die ein
classpath
. Weitere Informationen finden Sie unter Verwendung von Data-Lake-Frameworks mit AWS Glue-ETL-Aufträgen.Sie können einen oder mehrere der folgenden Werte durch Komma getrennt angeben:
-
hudi
-
delta
-
iceberg
Übergeben Sie beispielsweise das folgende Argument, um alle drei Frameworks anzugeben.
'--datalake-formats': 'hudi,delta,iceberg'
-
--disable-proxy-v2
-
Deaktivieren Sie den Service-Proxy, um AWS Serviceanrufe an Amazon S3 und AWS Glue zuzulassen CloudWatch, die von Ihrem Skript ausgehen, über IhrenVPC. Weitere Informationen finden Sie unter Konfiguration von AWS Anrufen zur Bearbeitung Ihres VPC. Um den Service-Proxy zu deaktivieren, legen Sie den Wert dieses Parameters auf
true
fest. --enable-auto-scaling
-
Aktiviert Auto Scaling und die Abrechnung pro Worker, wenn der Wert auf
true
eingestellt wird. --enable-continuous-cloudwatch-log
-
Ermöglicht die kontinuierliche Protokollierung von AWS Glue-Jobs in Echtzeit. Sie können Apache Spark-Aufgabenprotokolle in Echtzeit in CloudWatch anzeigen.
--enable-continuous-log-filter
-
Gibt einen Standardfilter (
true
) oder keinen Filter (false
) an, wenn Sie eine Aufgabe erstellen oder bearbeiten, die für die kontinuierliche Protokollierung aktiviert ist. Wenn Sie den Standardfilter wählen, werden unbrauchbare Apache Spark-Treiber-/Executor- und Apache Hadoop-Heartbeat-Protokollnachrichten entfernt. YARN Wenn Sie keinen Filter auswählen, erhalten Sie alle Protokollmeldungen. --enable-glue-datacatalog
-
Ermöglicht es Ihnen, den AWS Glue-Datenkatalog als Apache Spark Hive-Metastore zu verwenden. Um dieses Feature zu aktivieren, setzen Sie den Wert auf
true
. --enable-job-insights
-
Ermöglicht zusätzliche Fehleranalyseüberwachung mit AWS Glue Job Run Insights. Details hierzu finden Sie unter Überwachung mit Erkenntnissen in die AWS Glue-Auftragsausführung. Der Wert ist standardmäßig auf
true
festgelegt und Auftragsausführungs-Insights sind aktiviert.Diese Option ist für AWS Glue Version 2.0 und 3.0 verfügbar.
--enable--lakeformation-fine-grained-access
-
Ermöglicht eine feinkörnige Zugriffskontrolle für AWS Klebeaufträge. Weitere Informationen finden Sie unter Verwendung von AWS Glue mit AWS Lake Formation für eine feinkörnige Zugriffskontrolle.
--enable-metrics
-
Aktiviert die Erfassung von Metriken für die Erstellung von Auftragsprofilen für diese Auftragsausführung. Diese Metriken sind auf der AWS Glue-Konsole und der CloudWatch Amazon-Konsole verfügbar. Der Wert dieses Parameters ist nicht relevant. Um dieses Feature zu aktivieren, können Sie für diesen Parameter einen beliebigen Wert angeben. Aus Gründen der Übersichtlichkeit wird jedoch
true
empfohlen. Um dieses Feature zu deaktivieren, entfernen Sie diesen Parameter aus Ihrer Auftragskonfiguration. --enable-observability-metrics
-
Ermöglicht eine Reihe von Observability-Metriken, um Erkenntnisse darüber zu gewinnen, was in jedem Job passiert, der auf der Seite Job Runs Monitoring unter der AWS Glue-Konsole und der Amazon CloudWatch Konsole ausgeführt wird. Um dieses Feature zu aktivieren, setzen Sie den Wert dieses Parameters auf „true“. Um dieses Feature zu deaktivieren, setzen Sie ihn auf
false
oder entfernen Sie den Parameter aus der Auftragskonfiguration. --enable-rename-algorithm-v2
-
Setzt die Version des EMRFS Umbenennungsalgorithmus auf Version 2. Wenn ein Spark-Auftrag den dynamischen Partitionsüberschreibungsmodus verwendet, besteht die Möglichkeit, dass eine doppelte Partition erstellt wird. Zum Beispiel können Sie eine doppelte Partition wie
s3://bucket/table/location/p1=1/p1=1
erhalten. Hier ist P1 die Partition, die überschrieben wird. Das Umbenennen des Algorithmus Version 2 behebt dieses Problem.Diese Option ist nur in der AWS Glue-Version 1.0 verfügbar.
--enable-s3-parquet-optimized-committer
-
Aktiviert den EMRFS S3-optimierten Committer für das Schreiben von Parquet-Daten in Amazon S3. Sie können das Parameter/Wert-Paar über die AWS Glue-Konsole angeben, wenn Sie einen AWS Glue-Job erstellen oder aktualisieren. Durch Festlegen des Werts
true
wird der Committer aktiviert. Standardmäßig ist die Flagge in AWS Glue 3.0 aktiviert und in AWS Glue 2.0 ausgeschaltet.Weitere Informationen finden Sie unter Verwenden des EMRFS S3-optimierten Committers.
--enable-spark-ui
-
Wenn diese Option auf gesetzt ist
true
, wird die Funktion aktiviert, die Spark-Benutzeroberfläche zum Überwachen und Debuggen von AWS ETL Glue-Jobs zu verwenden. --executor-cores
-
Anzahl der Spark-Aufgaben, die parallel ausgeführt werden können. Diese Option wird auf AWS Glue 3.0+ unterstützt. Der Wert sollte das Zweifache der Anzahl von vCPUs für den Worker-Typ nicht überschreiten, also 8 auf
G.1X
, 16 aufG.2X
, 32 aufG.4X
und 64 aufG.8X
. Sie sollten bei der Aktualisierung dieser Konfiguration Vorsicht walten lassen, da dies die Arbeitsleistung beeinträchtigen könnte, da eine erhöhte Aufgabenparallelität zu Speicher- und Festplattenauslastung führt und die Quell- und Zielsysteme drosseln kann (zum Beispiel: Dies würde zu mehr gleichzeitigen Verbindungen bei Amazon führen). RDS --extra-files
-
Die Amazon S3 S3-Pfade zu zusätzlichen Dateien, wie Konfigurationsdateien, die AWS Glue vor der Ausführung in das Arbeitsverzeichnis Ihres Skripts auf dem Treiberknoten kopiert. Mehrere Werte müssen vollständige Pfade sein, die durch Kommas (
,
) getrennt werden. Es werden nur einzelne Dateien unterstützt, kein Verzeichnispfad. Diese Option wird für Python-Shell-Auftragstypen nicht unterstützt. --extra-jars
-
Die Amazon S3 S3-Pfade zu zusätzlichen Dateien, die AWS Glue auf den Treiber und die Executoren kopiert. AWS Glue fügt diese Dateien auch dem Java-Klassenpfad hinzu, bevor Ihr Skript ausgeführt wird. Mehrere Werte müssen vollständige Pfade sein, die durch Kommas (
,
) getrennt werden. Die Erweiterung muss nicht sein.jar
--extra-py-files
-
Die Amazon S3 S3-Pfade zu zusätzlichen Python-Modulen, die AWS Glue dem Python-Pfad auf dem Treiberknoten hinzufügt, bevor Ihr Skript ausgeführt wird. Mehrere Werte müssen vollständige Pfade sein, die durch Kommas (
,
) getrennt werden. Es werden nur einzelne Dateien unterstützt, kein Verzeichnispfad. --job-bookmark-option
-
Steuert die Darstellung eines Auftrags-Lesezeichens. Die folgenden Optionswerte können festgelegt werden:
‑‑job‑bookmark‑option-Wert Beschreibung job-bookmark-enable
Bereits verarbeitete Daten nachverfolgen. Wenn ein Auftrag ausgeführt wird, werden neue Daten seit dem letzten Checkpoint verarbeitet. job-bookmark-disable
Immer das gesamte Dataset verarbeiten. Sie sind für die Verwaltung der Ausgaben aus früheren Auftragsausführungen verantwortlich. job-bookmark-pause
Verarbeiten inkrementeller Daten seit der letzten erfolgreichen Ausführung oder der Daten in dem durch die folgenden Unteroptionen identifizierten Bereich, ohne den Status des letzten Lesezeichens zu aktualisieren. Sie sind für die Verwaltung der Ausgaben aus früheren Auftragsausführungen verantwortlich. Die beiden Unteroptionen lauten wie folgt: -
job-bookmark-from
<from-value>
ist die Ausführungs-ID, die alle Eingaben darstellt, die bis zur letzten erfolgreichen Ausführung vor und einschließlich der angegebenen Ausführungs-ID verarbeitet wurden. Die entsprechende Eingabe wird ignoriert. -
job-bookmark-to
<to-value>
ist die Ausführungs-ID, die alle Eingaben darstellt, die bis zur letzten erfolgreichen Ausführung vor und einschließlich der angegebenen Ausführungs-ID verarbeitet wurden. Die entsprechende Eingabe ohne die Eingabe, die durch den<from-value>
identifiziert wird, wird von der Aufgabe verarbeitet. Jede Eingabe, die später als diese Eingabe ist, wird auch aus der Verarbeitung ausgeschlossen.
Der Auftrags-Lesezeichenstatus wird nicht aktualisiert, wenn dieser Optionssatz angegeben wird.
Die Unteroptionen sind optional. Bei ihrer Verwendung müssen jedoch beide Unteroptionen angegeben werden.
Um beispielsweise ein Aufgabenlesezeichen zu aktivieren, übergeben Sie das folgende Argument:
'--job-bookmark-option': 'job-bookmark-enable'
-
--job-language
-
Die Skript-Programmiersprache. Dieser Wert muss entweder
scala
oderpython
sein. Wenn dieser Parameter nicht vorhanden ist, ist der Standardwertpython
. --python-modules-installer-option
-
Eine Klartextzeichenfolge, die Optionen definiert, die an
pip3
übergeben werden, wenn Module mit --additional-python-modules installiert werden. Stellen Sie Optionen wie in der Befehlszeile bereit, getrennt durch Leerzeichen und mit vorangestellten Bindestrichen. Weitere Informationen zur Verwendung finden Sie unter Installation zusätzlicher Python-Module mit Pip in AWS Glue 2.0 oder höher.Anmerkung
Diese Option wird für AWS Glue-Jobs nicht unterstützt, wenn Sie Python 3.9 verwenden.
--scriptLocation
-
Der Amazon Simple Storage Service (Amazon S3) -Speicherort, an dem sich Ihr ETL Skript befindet (im Formular
s3://path/to/my/script.py
). Dieser Parameter überschreibt einen Skript-Speicherort imJobCommand
-Objekt. --spark-event-logs-path
-
Gibt einen Amazon-S3-Pfad an. Wenn Sie die Spark-UI-Überwachungsfunktion verwenden, bereinigt AWS Glue die Spark-Ereignisprotokolle alle 30 Sekunden in diesem Amazon-S3-Pfad über einen Bucket, der als temporäres Verzeichnis zum Speichern von Spark-UI-Ereignissen verwendet werden kann.
--TempDir
-
Gibt einen Amazon-S3-Pfad zu einem Bucket an, der als temporäres Verzeichnis für den Auftrag verwendet werden kann.
Um beispielsweise ein temporäres Verzeichnis zu setzen, übergeben Sie das Argument:
'--TempDir': '
s3-path-to-directory
'Anmerkung
AWS Glue erstellt einen temporären Bucket für Jobs, falls noch kein Bucket in einer Region existiert. Dieser Bucket erlaubt möglicherweise den öffentlichen Zugriff. Sie können entweder den Bucket in Amazon S3 ändern, um die öffentliche Zugriffssperre festzulegen, oder den Bucket später löschen, nachdem alle Aufträge in dieser Region abgeschlossen sind.
--use-postgres-driver
-
Wenn dieser Wert auf gesetzt wird
true
, priorisiert er den JDBC Postgres-Treiber im Klassenpfad, um einen Konflikt mit dem Amazon Redshift Redshift-Treiber zu vermeiden. JDBC Diese Option ist nur in AWS Glue Version 2.0 verfügbar. --user-jars-first
-
Wenn Sie diesen Wert auf setzen
true
, werden die zusätzlichen JAR Dateien des Kunden im Klassenpfad priorisiert. Diese Option ist nur in AWS Glue Version 2.0 oder höher verfügbar. --conf
-
Sie steuert die Spark-Konfigurationsparameter. Sie ist für fortschrittliche Anwendungsfälle.
--encryption-type
-
Legacy-Parameter. Das entsprechende Verhalten sollte über Sicherheitskonfigurationen konfiguriert werden. Weitere Informationen zu Sicherheitskonfigurationen finden Sie unter Verschlüsseln von Daten, die von AWS Glue geschrieben werden.
AWS Glue verwendet intern die folgenden Argumente und du solltest sie niemals verwenden:
-
--debug
— AWS Innenverklebungen. Nicht einstellen. -
--mode
— AWS Innenverklebungen. Nicht einstellen. -
--JOB_NAME
— AWS Innenverklebungen. Nicht einstellen. -
--endpoint
— AWS Innenverklebungen. Nicht einstellen.
AWS Glue unterstützt das Bootstrapping einer Umgebung mit dem site
Python-Modul, mit dem standortspezifische sitecustomize
Anpassungen vorgenommen werden können. Das Bootstrapping Ihrer eigenen Initialisierungsfunktionen wird nur für fortgeschrittene Anwendungsfälle empfohlen und wird auf Glue 4.0 nach bestem Wissen unterstützt. AWS
Das Präfix der Umgebungsvariablen, GLUE_CUSTOMER
, ist für die Verwendung durch Kunden reserviert.