Konfigurieren von AWS Glue-interaktiven Sitzungen für Jupyter und AWS Glue Studio-Notebooks - AWS Glue

Konfigurieren von AWS Glue-interaktiven Sitzungen 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

Unterstützte Magics in AWS Glue-interaktiven Sitzungen für Jupyter

Im Folgenden finden Sie Magics, die Sie in AWS Glue Interactive Sessions für Jupyter Notebooks verwenden können.

Sessions Magics

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

Geben Sie die AWS-Region an; in der 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 die Zeitüberschreitung für Spark-ETL-Sitzungen ist der Standardwert für die Zeitüberschreitung, 2 880 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

Definiert eine Zeichenfolge, die allen Sitzungs-IDs im Format [session_id_prefix]-[session_id] vorangestellt wird. Wenn keine Sitzungs-ID angegeben wird, wird eine zufällige UUID generiert. 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 der aktuellen AWS Glue-Sitzung zurück, einschließlich Dauer, Konfiguration und ausführende(r) 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

Legt den Sitzungstyp auf Streaming, ETL oder Ray fest.

Beispiel: %session_type Streaming

%glue_version String

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

Beispiel: %glue_version 3.0

Magics für die Auswahl von Auftragstypen

Name Typ Beschreibung
%streaming String Ändert den Sitzungstyp in AWS Glue Streaming.
%etl String Ändert den Sitzungstyp in AWS Glue ETL.
%glue_ray String Ändert den Sitzungstyp in AWS Glue für Ray. Lesen Sie Unterstützte Magics durch interaktive AWS Glue-Ray-Sitzungen.

AWS Glue for 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 JSON-formatiertes Wörterbuch an, das aus allen Konfigurationsparametern für eine Sitzung besteht. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden.

Eine Liste der Parameter und Beispiele zur Verwendung von %%configure finden Sie unter %%configure cell magic arguments.

%iam_role String

Gibt den ARN einer IAM-Rolle an, mit der Ihre Sitzung ausgeführt wird. 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 JSON-formatiertes Wörterbuch oder eine IAM-Rollen-ARN-Zeichenfolge an, um eine Sitzung für den kontoübergreifenden Zugriff zu erstellen.

Beispiel mit ARN:

%%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 Auftrag angegeben wurden. Beispiel:

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

Weitere Informationen zu Auftragsparametern finden Sie unter Auftragsparameter.

Sitzungskonfiguration

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 von AWS Glue-ETL-Aufträgen.
%%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 Namen 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 Postgres-JDBC-Treiber im Klassenpfad, um einen Konflikt mit dem Amazon Redshift-JDBC-Treiber zu vermeiden. Die Standardeinstellung ist null.

Beispiel:

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

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 zum Schreiben von Parquet-Daten in Amazon S3. Die Standardeinstellung ist 'true'.

Beispiel:

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

Beispiel:

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

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 Aktiviert die kontinuierliche Echtzeitprotokollierung für AWS Glue-Aufträge. 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 Auftrag 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. Verwenden Sie --conf vor jedem Parameter. 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 die maximale Zeit fest, die die Spark-Sitzung auf die Ausführung einer Anweisung warten soll, 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" }

Magic von Spark-Aufträgen (ETL und Streaming)

Name Typ Beschreibung
%worker_type String Standard, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X oder R.8X. number_of_workers muss ebenfalls festgelegt sein. 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

Führt SQL-Code aus. 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 erfordern einen Namen. Namen sollten für jede Sitzung eindeutig sein und können von Ihren IAM-Administratoren eingeschränkt werden. Weitere Informationen finden Sie unter Interaktive Sitzungen mit IAM. Der Jupyter-Kernel generiert automatisch eindeutige Sitzungsnamen für Sie. Es gibt jedoch zwei Möglichkeiten, um Sitzungen manuell zu benennen:

  1. Verwendung der Konfigurationsdatei AWS Command Line Interface, die sich unter ~.aws/config befindet. Siehe Einrichten der AWS-Konfiguration mit AWS Command Line Interface.

  2. Verwendung der %session_id_prefix-Magics. Siehe Unterstützte Magics in AWS Glue-interaktiven Sitzungen für Jupyter .

Ein Sitzungsname wird wie folgt generiert:

  • Wenn das Präfix und session_id angegeben werden: Der Sitzungsname lautet {prefix}-{UUID}.

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

Durch die Angabe eines Präfix können Sie Ihre Sitzung beim Auflisten in der AWS CLI oder in der Konsole leichter wiederfinden.

Angeben einer IAM-Rolle für interaktive Sitzungen

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

Die Rolle muss über dieselben IAM-Berechtigungen verfügen, die zum Ausführen von AWS Glue-Aufträgen erforderlich sind. Weitere Informationen zum Erstellen einer Rolle für AWS Glue-Aufträge und interaktive Sitzungen finden Sie unter Erstellen einer IAM-Rolle für AWS Glue.

IAM-Rollen können auf zwei Arten angegeben werden:

Konfigurieren von Sitzungen mit benannten Profilen

AWS Glue-interaktive Sitzungen verwenden die gleichen Anmeldeinformationen wie die AWS Command Line Interface oder boto3. Interaktive Sitzungen schätzen und arbeiten mit benannten Profilen wie die AWS CLI, die in ~/.aws/config (Linux und macOS) oder %USERPROFILE%\.aws\config (Windows) zu finden sind. Weitere Informationen finden Sie unter Verwendung benannter Profile.

Interaktive Sitzungen nutzen benannte Profile, indem sie die Angabe der AWS Glue-Servicerolle und des Sitzungs-ID-Präfix in einem Profil zulassen. 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.