Konfigurieren AWS Glue interaktive Sessions für Jupyter und AWS Glue Studio notebooks - 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.

Konfigurieren AWS Glue interaktive Sessions für Jupyter und AWS Glue Studio notebooks

Einführung in Jupyter Magics

Jupyter Magics sind Befehle, die am Anfang einer Zelle oder als ganzer Zellinhalt ausgeführt werden können. Zeilen-Magics beginnen mit % und Zellen-Magics mit %%. Zeilen-Magics wie %region und %connections können wie im folgenden Beispiel mit mehreren Magics in einer Zelle oder mit Code im Zellinhalt ausgeführt werden.

%region us-east-2 %connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')

Zell-Magics müssen die gesamte Zelle verwenden und der Befehl kann sich über mehrere Zeilen erstrecken. Ein Beispiel für %%sql sehen Sie unten.

%%sql select * from rds_tables.sales_table

Magics unterstützt von AWS Glue interaktive Sessions für Jupyter

Im Folgenden finden Sie Zaubermittel, die Sie mit verwenden können AWS Glue interaktive Sessions für Jupyter-Notebooks.

Sessions Magics

Name Typ Beschreibung
%help Gibt eine Liste von Beschreibungen und Eingabetypen für alle magischen Befehle zurück.
%profile String Geben Sie in Ihrer AWS Konfiguration ein Profil an, das als Anbieter für Anmeldeinformationen verwendet werden soll.
%region String

Geben Sie den AWS-Region; an, in dem eine Sitzung initialisiert werden soll. Standardwert aus ~/.aws/configure.

Beispiel: %region us-west-1

%idle_timeout Int

Die Anzahl der Minuten von Inaktivität, nach denen eine Zeitüberschreitung für eine Sitzung auftritt, nachdem eine Zelle ausgeführt wurde. Der Standardwert für das Leerlauf-Timeout für ETL Spark-Sitzungen ist das Standard-Timeout von 2880 Minuten (48 Stunden). Informationen zu anderen Sitzungstypen finden Sie in der Dokumentation für diesen Sitzungstyp.

Beispiel: %idle_timeout 3000

%session_id Gibt die Sitzungs-ID für die laufende Sitzung zurück.
%session_id_prefix String

Definieren Sie eine Zeichenfolge, die allen Sitzungen vorangeht, IDs im Format [session_id_prefix] - [session_id]. Wenn keine Sitzungs-ID angegeben wird, wird eine Zufalls-ID generiert. UUID Dieses Magic wird nicht unterstützt, wenn Sie ein Jupyter Notebook in AWS Glue Studio ausführen.

Beispiel: %session_id_prefix 001

%status Gibt den Status des aktuellen AWS Glue Sitzung einschließlich Dauer, Konfiguration und ausführender Benutzer/Rolle.
%stop_session Beenden Sie die aktuelle Sitzung.
%list_sessions Listet alle derzeit ausgeführten Sitzungen nach Name und ID auf.
%session_type String

Setzt den Sitzungstyp auf Streaming,ETL, oder Ray.

Beispiel: %session_type Streaming

%glue_version String

Die Version von AWS Glue soll von dieser Sitzung verwendet werden.

Beispiel: %glue_version 3.0

Magics für die Auswahl von Auftragstypen

Name Typ Beschreibung
%streaming String Ändert den Sitzungstyp zu AWS Glue Streamen.
%etl String Ändert den Sitzungstyp zu AWS Glue ETL.
%glue_ray String Ändert den Sitzungstyp auf AWS Glue für Ray. Weitere Informationen finden Sie unter Magics, die von interaktiven AWS Glue Ray-Sitzungen unterstützt werden.

AWS Glue für Spark Config Magics

Das %%configure-Magic ist ein JSON-formatiertes Wörterbuch, das alle Konfigurationsparameter für eine Sitzung enthält. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden.

Name Typ Beschreibung
%%configure Dictionary

Geben Sie ein Wörterbuch im JSON -Format an, das aus allen Konfigurationsparametern für eine Sitzung besteht. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden.

Eine Liste mit Parametern und Anwendungsbeispielen finden Sie %%configure unter. %%configure cell magic arguments

%iam_role String

Geben Sie eine IAM Rolle ARN an, mit der Ihre Sitzung ausgeführt werden soll. Standardwert aus ~/.aws/configure.

Beispiel: %iam_role AWSGlueServiceRole

%number_of_workers Int

Die Anzahl der Worker eines definierten worker_type, die zugewiesen werden, wenn ein Auftrag ausgeführt wird. worker_type muss ebenfalls festgelegt werden. Der Standardwert für number_of_workers ist 5.

Beispiel: %number_of_workers 2

%additional_python_modules Auflisten

Durch Kommas getrennte Liste zusätzlicher Python-Module, die in Ihren Cluster aufgenommen werden sollen (kann von PyPI oder S3 stammen).

Beispiel: %additional_python_modules pandas, numpy.

%%tags String

Fügt einer Sitzung Tags hinzu. Geben Sie die Tags in geschweiften Klammern { } an. Jedes Tag-Namenspaar wird in Klammern („“) eingeschlossen und durch ein Komma (,) getrennt.

%%tags {"billing":"Data-Platform", "team":"analytics"}

Nutzen Sie dieses %status Magic, um mit der Sitzung verknüpfte Tags anzuzeigen.

%status
Session ID: <sessionId> Status: READY Role: <example-role> CreatedOn: 2023-05-26 11:12:17.056000-07:00 GlueVersion: 3.0 Job Type: glueetl Tags: {'owner':'example-owner', 'team':'analytics', 'billing':'Data-Platform'} Worker Type: G.4X Number of Workers: 5 Region: us-west-2 Applying the following default arguments: --glue_kernel_version 0.38.0 --enable-glue-datacatalog true Arguments Passed: ['--glue_kernel_version: 0.38.0', '--enable-glue-datacatalog: true']
%%assume_role Dictionary

Geben Sie ein Wörterbuch im JSON-Format oder eine IAM ARN Rollenzeichenfolge an, um eine Sitzung für den kontoübergreifenden Zugriff zu erstellen.

ARNBeispiel mit:

%%assume_role { 'arn:aws:iam::XXXXXXXXXXXX:role/AWSGlueServiceRole' }

Beispiel mit Anmeldeinformationen:

%%assume_role {{ "aws_access_key_id" = "XXXXXXXXXXXX", "aws_secret_access_key" = "XXXXXXXXXXXX", "aws_session_token" = "XXXXXXXXXXXX" }}

%%configure cell magic arguments

Das %%configure-Magic ist ein JSON-formatiertes Wörterbuch, das alle Konfigurationsparameter für eine Sitzung enthält. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden. Nachfolgend finden Sie Beispiele für Argumente, die von dem %%configure-Zellen-Magic unterstützt werden. Verwenden Sie das -- Präfix für Ausführungsargumente, die für den Job angegeben wurden. Beispiel:

%%configure { "--user-jars-first": "true", "--enable-glue-datacatalog": "false" }

Weitere Informationen zu Auftragsparametern finden Sie unterAuftragsparameter.

Konfiguration der Sitzung

Parameter Typ Beschreibung
max_retries Int

Die maximale Anzahl der Wiederholungsversuche für diesen Auftrag, wenn er fehlschlägt.

%%configure { "max_retries": "0" }
max_concurrent_runs Int Die maximale Anzahl der gleichzeitigen Ausführungen, die für einen Auftrag zulässig sind.

Beispiel:

%%configure { "max_concurrent_runs": "3" }

Sitzungsparameter

Parameter Typ Beschreibung
--enable-spark-ui Boolesch Aktivieren Sie die Spark-Benutzeroberfläche zum Überwachen und Debuggen AWS Glue ETLJobs.
%%configure { "--enable-spark-ui": "true" }
--spark-event-logs-path String Gibt einen Amazon-S3-Pfad an. Bei Verwendung des Spark UI-Überwachungs-Features.

Beispiel:

%%configure { "--spark-event-logs-path": "s3://path/to/event/logs/" }
--script_location String Gibt den S3-Pfad zu einem Skript an, das einen Auftrag ausführt.

Beispiel:

%%configure { "script_location": "s3://new-folder-here" }
--SECURITY_CONFIGURATION String

Der Name einer AWS Glue Sicherheitskonfiguration

Beispiel:

%%configure { "--security_configuration": { "encryption_type": "kms", "kms_key_id": "YOUR_KMS_KEY_ARN" } }
--job-language String Die Skript-Programmiersprache. Akzeptiert den Wert „scala“ oder „python“. Die Standardeinstellung ist „python“.

Beispiel:

%%configure { "--job-language": "scala" }
--class String Die Scala-Klasse, die als Einstiegspunkt für Ihr Scala-Skript dient. Die Standardeinstellung ist null.

Beispiel:

%%configure { "--class": "className" }
--user-jars-first Boolesch Priorisiert die zusätzlichen JAR Dateien des Kunden im Klassenpfad. Die Standardeinstellung ist null.

Beispiel:

%%configure { "--user-jars-first": "true" }
--use-postgres-driver Boolesch Priorisiert den JDBC Postgres-Treiber im Klassenpfad, um Konflikte mit dem Treiber zu vermeiden. Amazon Redshift JDBC Die Standardeinstellung ist null.

Beispiel:

%%configure { "--use-postgres-driver": "true" }
--extra-files List(string) Die Amazon S3 S3-Pfade zu zusätzlichen Dateien, z. B. Konfigurationsdateien, die AWS Glue kopiert in das Arbeitsverzeichnis Ihres Skripts, bevor es ausgeführt wird.

Beispiel:

%%configure { "--extra-files": "s3://path/to/additional/files/" }
--job-bookmark-option String Steuert die Darstellung eines Auftrags-Lesezeichens. Akzeptiert den Wert 'job-bookmark-enable', 'job-bookmark-disable' oder 'job-bookmark-pause'. Die Standardeinstellung ist 'job-bookmark-disable'.

Beispiel:

%%configure { "--job-bookmark-option": "job-bookmark-enable" }
--TempDir String Gibt einen Amazon-S3-Pfad zu einem Bucket an, der als temporäres Verzeichnis für den Auftrag verwendet werden kann. Die Standardeinstellung ist null.

Beispiel:

%%configure { "--TempDir": "s3://path/to/temp/dir" }
--enable-s3-parquet-optimized-committer Boolesch Aktiviert den für EMRFS Amazon S3 optimierten Committer für das Schreiben von Parquet-Daten in Amazon S3. Die Standardeinstellung ist 'true'.

Beispiel:

%%configure { "--enable-s3-parquet-optimized-committer": "false" }
--enable-rename-algorithm-v2 Boolesch Legt die Version des EMRFS Umbenennungsalgorithmus auf Version 2 fest. Die Standardeinstellung ist 'true'.

Beispiel:

%%configure { "--enable-rename-algorithm-v2": "true" }
--enable-glue-datacatalog Boolesch Ermöglicht Ihnen die Verwendung von AWS Glue Datenkatalog als Apache Spark Hive-Metastore.

Beispiel:

%%configure { "--enable-glue-datacatalog": "true" }
--enable-metrics Boolesch Ermöglicht die Erfassung von Metriken zur Auftragsprofilerstellung für die Auftragsausführung. Standard ist 'false'.

Beispiel:

%%configure { "--enable-metrics": "true" }
--enable-continuous-cloudwatch-log Boolesch Ermöglicht die kontinuierliche Protokollierung in Echtzeit für AWS Glue Jobs. Standard ist 'false'.

Beispiel:

%%configure { "--enable-continuous-cloudwatch-log": "true" }
--enable-continuous-log-filter Boolesch Gibt einen Standardfilter oder keinen Filter an, wenn Sie einen Auftrag erstellen oder bearbeiten, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist 'true'.

Beispiel:

%%configure { "--enable-continuous-log-filter": "true" }
--continuous-log-stream-prefix String Gibt ein benutzerdefiniertes Amazon CloudWatch Protokollstream-Präfix für einen Job an, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist null.

Beispiel:

%%configure { "--continuous-log-stream-prefix": "prefix" }
--continuous-log-conversionPattern String Gibt ein benutzerdefiniertes Konvertierungsprotokollmuster für einen Auftrag an, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist null.

Beispiel:

%%configure { "--continuous-log-conversionPattern": "pattern" }
--conf String Sie steuert die Spark-Konfigurationsparameter. Sie ist für fortschrittliche Anwendungsfälle. Wird --conf vor jedem Parameter verwendet. Beispiel:
%%configure { "--conf": "spark.hadoop.hive.metastore.glue.catalogid=123456789012 --conf hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory --conf hive.metastore.schema.verification=false" }
timeout Int Legt fest, wie lange die Spark-Sitzung maximal warten soll, bis eine Anweisung abgeschlossen ist, bevor sie beendet wird.
%%configure { "timeout": "30" }
auto-scaling Boolesch Legt fest, ob die auto-scaling verwendet werden soll oder nicht.
%%configure {   "––enable-auto-scaling": "true" }

Entfachen Sie die Magie von Jobs (ETLund Streaming)

Name Typ Beschreibung
%worker_type String Standard, G.1X oder G.2X. number_of_workers muss ebenfalls festgelegt werden. Der Standardwert für „worker_type“ ist G.1X.
%connections Auflisten

Geben Sie eine kommagetrennte Liste der Verbindungen an, die in der Sitzung verwendet werden sollen.

Beispiel:

%connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
%extra_py_files Auflisten Durch Kommas getrennte Liste mit zusätzlichen Python-Dateien von Amazon S3.
%extra_jars Auflisten Durch Kommas getrennte Liste mit zusätzlichen Jars, die in den Cluster aufgenommen werden sollen.
%spark_conf String Geben Sie benutzerdefinierte Spark-Konfigurationen für Ihre Sitzung an. Beispiel, %spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer.

Magics für Ray-Aufträgen

Name Typ Beschreibung
%min_workers Int Die Mindestanzahl von Workern, die einem Ray-Auftrag zugewiesen werden. Standard: 1

Beispiel: %min_workers 2

%object_memory_head Int Der Prozentsatz des freien Speichers auf dem Hauptknoten der Instance nach einem Warmstart. Minimum: 0. Maximum: 100.

Beispiel: %object_memory_head 100

%object_memory_worker Int Der Prozentsatz des freien Arbeitsspeichers auf den Instance-Worker-Knoten nach einem Warmstart. Minimum: 0. Maximum: 100.

Beispiel: %object_memory_worker 100

Action Magics

Name Typ Beschreibung
%%sql String

SQLCode ausführen. Alle Zeilen nach dem ersten %%sql Magic werden als Teil des SQL Codes übergeben.

Beispiel: %%sql select * from rds_tables.sales_table

%matplot Matplotlib-Abbildung

Visualisieren Sie Ihre Daten mit der Matplotlib-Bibliothek.

Beispiel:

import matplotlib.pyplot as plt # Set X-axis and Y-axis values x = [5, 2, 8, 4, 9] y = [10, 4, 8, 5, 2] # Create a bar chart plt.bar(x, y) # Show the plot %matplot plt
%plotly Plotly-Abbildung

Visualisieren Sie Ihre Daten mit der Plotly-Bibliothek.

Beispiel:

import plotly.express as px #Create a graphical figure fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure") #Show the figure %plotly fig

Benennen von Sitzungen

AWS Glue interaktive Sitzungen sind AWS Ressourcen und benötigen einen Namen. Die Namen sollten für jede Sitzung eindeutig sein und können von Ihren IAM Administratoren eingeschränkt werden. Weitere Informationen finden Sie unter Interaktive Sessions mit IAM. Der Jupyter-Kernel generiert automatisch eindeutige Sitzungsnamen für Sie. Es gibt jedoch zwei Möglichkeiten, um Sitzungen manuell zu benennen:

  1. Verwenden Sie die AWS Command Line Interface Konfigurationsdatei unter~.aws/config. Siehe AWS Config einrichten mit dem AWS Command Line Interface.

  2. Verwendung der %session_id_prefix-Magics. Siehe Magics unterstützt von AWS Glue interaktive Sessions für Jupyter .

Ein Sitzungsname wird wie folgt generiert:

  • Wenn das Präfix und die Session_ID angegeben sind: Der Sitzungsname lautet {prefix} - {}. UUID

  • Wenn nichts angegeben ist: Der Sitzungsname lautet {}. UUID

Wenn Sie Sitzungsnamen als Präfix angeben, können Sie Ihre Sitzung wiedererkennen, wenn Sie sie in der AWS CLI OR-Konsole auflisten.

Angeben einer IAM Rolle für interaktive Sitzungen

Sie müssen eine AWS Identity and Access Management (IAM) -Rolle angeben, die mit verwendet werden soll AWS Glue ETLCode, den Sie mit interaktiven Sitzungen ausführen.

Für die Rolle sind dieselben IAM Berechtigungen erforderlich wie für die Ausführung AWS Glue Jobs. Siehe Eine IAM Rolle erstellen für AWS Glueweitere Informationen zum Erstellen einer Rolle für AWS Glue Jobs und interaktive Sitzungen.

IAMRollen können auf zwei Arten angegeben werden:

Konfigurieren von Sitzungen mit benannten Profilen

AWS Glue interaktive Sitzungen verwenden dieselben Anmeldeinformationen wie AWS Command Line Interface oder boto3, und interaktive Sitzungen berücksichtigen und arbeiten mit benannten Profilen, wie sie in ~/.aws/config (Linux und macOS) oder %USERPROFILE%\.aws\config (Windows) zu AWS CLI finden sind. Weitere Informationen finden Sie unter Verwendung benannter Profile.

Interaktive Sitzungen nutzen die Vorteile benannter Profile, indem sie Folgendes ermöglichen AWS Glue Die Dienstrolle und das Sitzungs-ID-Präfix müssen in einem Profil angegeben werden. Um eine Profilrolle zu konfigurieren, fügen Sie eine Zeile für den Schlüssel iam_role und/oder session_id_prefix wie unten gezeigt in Ihrem benannten Profil hinzu. Für sind session_id_prefix keine Anführungszeichen erforderlich. Wenn Sie beispielsweise einen session_id_prefix hinzufügen möchten, geben Sie den Wert von session_id_prefix=myprefix ein.

[default] region=us-east-1 aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRole> session_id_prefix=<prefix_for_session_names> [user1] region=eu-west-1 aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRoleUser1> session_id_prefix=<prefix_for_session_names_for_user1>

Wenn Sie eine benutzerdefinierte Methode zum Generieren von Anmeldeinformationen nutzen, können Sie Ihr Profil auch dafür konfigurieren, credential_process-Parameter in Ihrer ~/.aws/config-Datei zu verwenden. Zum Beispiel:

[profile developer] region=us-east-1 credential_process = "/Users/Dave/generate_my_credentials.sh" --username helen

Weitere Informationen zur Beschaffung von Anmeldeinformationen mithilfe der credential_process-Parameter finden Sie hier: Beschaffung von Anmeldeinformationen mit einem externen Prozess.

Wenn eine Region oder iam_role in dem von Ihnen verwendeten Profil nicht festgelegt sind, müssen Sie sie mit den Magic-Anweisungen %region und %iam_role in der ersten Zelle angeben, die Sie ausführen.