Configuration AWS Glue sessions interactives pour Jupyter et AWS Glue Studio blocs-notes - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration AWS Glue sessions interactives pour Jupyter et AWS Glue Studio blocs-notes

Présentation de Jupyter magics

Les Jupyter magics sont des commandes qui peuvent être exécutées au début d'une cellule ou en tant que corps cellulaire entier. Les magics commencent par % pour les magics linéaires et %% pour les magics cellulaires. Les magics linéaires telles que %region et %connections peuvent être exécutées avec plusieurs magics dans une cellule, ou avec du code inclus à l’intérieur de la cellule, comme dans l'exemple suivant.

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

Les magics cellulaires doivent utiliser la cellule entière et leur commande peut s'étendre sur plusieurs lignes. Ci-dessous un exemple de %%sql.

%%sql select * from rds_tables.sales_table

Magies soutenues par AWS Glue séances interactives pour Jupyter

Voici des magies que vous pouvez utiliser avec AWS Glue sessions interactives pour les blocs-notes Jupyter.

Sessions Magics (Séances Magics)

Nom Type Description
%help N/A Renvoie une liste de descriptions et de types d'entrée pour toutes les commandes magiques.
%profile Chaîne Spécifiez un profil dans votre AWS configuration à utiliser comme fournisseur d'informations d'identification.
%region Chaîne

Spécifie la Région AWS ; dans laquelle initialiser une séance. Valeurs par défaut de ~/.aws/configure.

Exemple : %region us-west-1

%idle_timeout Int

Nombre de minutes d'inactivité au bout desquelles une séance expire après l'exécution d'une cellule. La valeur du délai d'inactivité par défaut pour les ETL séances Spark est le délai d'inactivité par défaut, soit 2 880 minutes (48 heures). Pour les autres types de séances, consultez la documentation relative.

Exemple : %idle_timeout 3000

%session_id N/A Retournez l'ID de séance de la séance en cours d'exécution.
%session_id_prefix Chaîne

Définissez une chaîne qui précède toutes les séances IDs au format [session_id_prefix] - [session_id]. Si aucun ID de séance n'est fourni, un résultat aléatoire UUID est généré. Ce magic n'est pas pris en charge lorsque vous exécutez un bloc-notes Jupyter dans AWS Glue Studio.

Exemple : %session_id_prefix 001

%status Renvoie le statut du courant AWS Glue session, y compris sa durée, sa configuration et l'exécution de son rôle/utilisateur.
%stop_session Arrête la séance en cours.
%list_sessions Répertorie toutes les séances en cours d'exécution par nom et ID.
%session_type Chaîne

Définit le type de session comme suit : Streaming ou Ray. ETL

Exemple : %session_type Streaming

%glue_version Chaîne

La version de AWS Glue à utiliser par cette séance.

Exemple : %glue_version 3.0

Magics pour la sélection des types de tâches

Nom Type Description
%streaming Chaîne Modifie le type de session en AWS Glue Streaming.
%etl Chaîne Modifie le type de session en AWS Glue ETL.
%glue_ray Chaîne Modifie le type de session en AWS Glue pour Ray. Découvrez les sessions interactives Magics soutenues par AWS Glue Ray.

AWS Glue pour Spark config magics

Le magic %%configure est un dictionnaire au format JSON comprenant tous les paramètres de configuration d'une session. Chaque paramètre peut être spécifié ici ou par magies individuelles.

Nom Type Description
%%configure Dictionnaire

Spécifiez un dictionnaire JSON au format comprenant tous les paramètres de configuration d'une séance. Chaque paramètre peut être spécifié ici ou par magies individuelles.

Pour obtenir la liste des paramètres et des exemples d'utilisation%%configure, voirArguments du magic cellulaire %%configure.

%iam_role Chaîne

Spécifiez un IAM rôle ARN avec lequel exécuter votre séance. Valeurs par défaut de ~/.aws/configure.

Exemple : %iam_role AWSGlueServiceRole

%number_of_workers Int

Le nombre d'employés d'un paramètre worker_type défini qui sont alloués lorsqu'une tâche est exécutée. worker_type doit également être défini. La valeur par défaut number_of_workers est 5.

Exemple : %number_of_workers 2

%additional_python_modules Liste

Liste de modules Python supplémentaires séparés par des virgules à inclure dans votre cluster (peut provenir de PyPI ou de S3).

Exemple: %additional_python_modules pandas, numpy.

%%tags Chaîne

Ajoute des balises à une session. Spécifiez les balises entre crochets {}. Chaque paire de noms de balises est placée entre parenthèses (« ») et séparée par une virgule (,).

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

Utilisez le magic %status pour afficher les balises associées à la session.

%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 Dictionnaire

Spécifiez un dictionnaire au format JSON ou une ARN chaîne de IAM rôle pour créer une séance d'accès intercompte.

Exemple avec ARN :

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

Exemple avec informations d'identification :

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

Arguments du magic cellulaire %%configure

Le magic %%configure est un dictionnaire au format JSON comprenant tous les paramètres de configuration d'une session. Chaque paramètre peut être spécifié ici ou par magies individuelles. Vous trouverez ci-dessous des exemples d'arguments soutenus par le magic cellulaire %%configure. Utilisez le -- préfixe pour les arguments d'exécution spécifiés pour la tâche. Exemple :

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

Pour de plus amples informations sur les paramètres de la tâche, consultezParamètres des tâches.

Configuration de session

Paramètre Type Description
max_retries Int

Nombre maximum de tentatives de cette tâche en cas d'échec.

%%configure { "max_retries": "0" }
max_concurrent_runs Int Nombre maximal d'exécutions simultanées autorisées pour une tâche.

Exemple :

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

Paramètres de session

Paramètre Type Description
--enable-spark-ui Booléen Activez l'interface utilisateur Spark pour surveiller et déboguer AWS Glue ETLemplois.
%%configure { "--enable-spark-ui": "true" }
--spark-event-logs-path Chaîne Spécifie un chemin d'accès Amazon S3. Lorsque vous utilisez la fonctionnalité de surveillance de l'interface utilisateur Spark.

Exemple :

%%configure { "--spark-event-logs-path": "s3://path/to/event/logs/" }
--script_location Chaîne Spécifie le chemin d'accès S3 à un script qui exécute une tâche.

Exemple :

%%configure { "script_location": "s3://new-folder-here" }
--SECURITY_CONFIGURATION Chaîne

Nom d'une configuration AWS Glue de sécurité

Exemple :

%%configure { "--security_configuration": { "encryption_type": "kms", "kms_key_id": "YOUR_KMS_KEY_ARN" } }
--job-language Chaîne Langage de programmation des scripts. Accepte la valeur « scala » ou « python ». La valeur par défaut est « python ».

Exemple :

%%configure { "--job-language": "scala" }
--class Chaîne La classe Scala qui sert de point d'entrée à votre script Scala. La valeur par défaut est nulle.

Exemple :

%%configure { "--class": "className" }
--user-jars-first Booléen Donne la priorité aux JAR fichiers supplémentaires du client dans le chemin de classe. La valeur par défaut est nulle.

Exemple :

%%configure { "--user-jars-first": "true" }
--use-postgres-driver Booléen Donne la priorité au JDBC pilote Postgres dans le chemin de classe afin d'éviter tout conflit avec le pilote. Amazon Redshift JDBC La valeur par défaut est nulle.

Exemple :

%%configure { "--use-postgres-driver": "true" }
--extra-files List(string) Chemins Amazon S3 vers des fichiers supplémentaires (par exemple, des fichiers de configuration) AWS Glue copie dans le répertoire de travail de votre script avant de l'exécuter.

Exemple :

%%configure { "--extra-files": "s3://path/to/additional/files/" }
--job-bookmark-option Chaîne Contrôle le comportement d'un signet de tâche. Accepte les valeurs « job-bookmark-enable », « job-bookmark-disable » ou « job-bookmark-pause ». La valeur par défaut est job-bookmark-disable « ».

Exemple :

%%configure { "--job-bookmark-option": "job-bookmark-enable" }
--TempDir Chaîne Spécifie un chemin Amazon S3 vers un compartiment qui peut être utilisé comme répertoire temporaire pour la tâche. La valeur par défaut est nulle.

Exemple :

%%configure { "--TempDir": "s3://path/to/temp/dir" }
--enable-s3-parquet-optimized-committer Booléen Active le validateur optimisé pour EMRFS Amazon S3 pour l'écriture de données Parquet dans Amazon S3. La valeur par défaut est « true ».

Exemple :

%%configure { "--enable-s3-parquet-optimized-committer": "false" }
--enable-rename-algorithm-v2 Booléen Définit la version de l'algorithme de EMRFS renommage sur la version 2. La valeur par défaut est « true ».

Exemple :

%%configure { "--enable-rename-algorithm-v2": "true" }
--enable-glue-datacatalog Booléen Vous permet d'utiliser le AWS Glue Catalogue de données en tant que métastore Apache Hive Spark.

Exemple :

%%configure { "--enable-glue-datacatalog": "true" }
--enable-metrics Booléen Permet de collecter des métriques de profilage de tâche pour l'exécution de la tâche. La valeur par défaut est « false ».

Exemple :

%%configure { "--enable-metrics": "true" }
--enable-continuous-cloudwatch-log Booléen Active la journalisation continue en temps réel pour AWS Glue emplois. La valeur par défaut est « false ».

Exemple :

%%configure { "--enable-continuous-cloudwatch-log": "true" }
--enable-continuous-log-filter Booléen Spécifie un filtre standard ou aucun filtre lorsque vous créez ou modifiez une tâche activée pour la journalisation continue. La valeur par défaut est « true ».

Exemple :

%%configure { "--enable-continuous-log-filter": "true" }
--continuous-log-stream-prefix Chaîne Spécifie un préfixe de flux de Amazon CloudWatch journal personnalisé pour une tâche activée pour la journalisation en continu. La valeur par défaut est nulle.

Exemple :

%%configure { "--continuous-log-stream-prefix": "prefix" }
--continuous-log-conversionPattern Chaîne Spécifie un modèle de journal de conversion personnalisé pour une tâche activée pour la journalisation en continu. La valeur par défaut est nulle.

Exemple :

%%configure { "--continuous-log-conversionPattern": "pattern" }
--conf Chaîne Contrôle les paramètres de configuration de Spark. Elle est destinée aux cas d'utilisation avancés. À utiliser --conf avant chaque paramètre. Exemple :
%%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 Détermine la durée maximale pendant laquelle la séance Spark doit attendre la fin d'une instruction avant de la terminer.
%%configure { "timeout": "30" }
auto-scaling Booléen Détermine s'il faut ou non utiliser l'auto-scaling.
%%configure {   "––enable-auto-scaling": "true" }

Magies de Spark Jobs (ETLet du streaming)

Nom Type Description
%worker_type Chaîne Standard, G.1X ou G.2X. number_of_workers doit également être défini. Le paramètre worker_type par défaut est G.1X.
%connections Liste

Spécifiez une liste de connexions séparées par des virgules à utiliser dans la séance.

Exemple :

%connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
%extra_py_files Liste Liste de fichiers Python supplémentaires séparée par des virgules provenant d'Amazon S3.
%extra_jars Liste Liste de pots supplémentaires séparés par des virgules à inclure dans le cluster.
%spark_conf Chaîne Spécifiez des configurations Spark personnalisées pour votre session. Par exemple, %spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer.

Magics pour les tâches Ray

Nom Type Description
%min_workers Int Le nombre minimum de travailleurs alloués à une tâche Ray. Par défaut : 1.

Exemple : %min_workers 2

%object_memory_head Int Le pourcentage de mémoire disponible sur le nœud principal de l'instance après un démarrage à chaud. Minimum : 0. Maximum : 100.

Exemple : %object_memory_head 100

%object_memory_worker Int Le pourcentage de mémoire disponible sur le composant master de l'instance après un démarrage à chaud. Minimum : 0. Maximum : 100.

Exemple : %object_memory_worker 100

Action Magics (Action Magics)

Nom Type Description
%%sql Chaîne

Exécutez SQL le code. Toutes les lignes après la %%sql magie initiale comme faisant partie du SQL code.

Exemple : %%sql select * from rds_tables.sales_table

%matplot Illustration Matplotlib

Visualisez vos données à l'aide de la bibliothèque Matplotlib.

Exemple :

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 Illustration Plotly

Visualisez vos données à l'aide de la bibliothèque Plotly.

Exemple :

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

Désignation des séances

AWS Glue Les séances interactives sont AWS des ressources et nécessitent un nom. Les noms doivent être uniques pour chaque séance et peuvent être restreints par vos IAM administrateurs. Pour de plus amples informations, veuillez consulter Sessions interactives avec IAM. Le noyau Jupyter génère automatiquement des noms de session uniques pour vous. Toutefois, les séances peuvent être nommées manuellement de deux manières :

  1. À l'aide du fichier de AWS Command Line Interface configuration situé à l'adresse~.aws/config. Voir Configuration de la AWS configuration avec le AWS Command Line Interface.

  2. Utilisation des magics %session_id_prefix. Consultez Magies soutenues par AWS Glue séances interactives pour Jupyter .

Un nom de séance est généré comme suit :

  • Lorsque le préfixe et l'identifiant de session sont fournis : le nom de la séance sera {prefix} - {}. UUID

  • Lorsque rien n'est fourni : le nom de la séance sera {UUID}.

Le préfixe des noms de séance vous autorise à reconnaître votre session lorsque vous la répertoriez dans la console AWS CLI ou dans la console.

Spécification d'un IAM rôle pour les séances interactives

Vous devez spécifier un rôle AWS Identity and Access Management (IAM) à utiliser avec AWS Glue ETLcode que vous exécutez avec des sessions interactives.

Le rôle requiert les mêmes IAM autorisations que celles requises pour s'exécuter AWS Glue emplois. Voir Créer un IAM rôle pour AWS Gluepour plus d'informations sur la création d'un rôle pour AWS Glue emplois et séances interactives.

IAMLes rôles peuvent être spécifiés de deux manières :

Configuration des séances avec des profils nommés

AWS Glue Les séances interactives utilisent les mêmes informations d'identification que AWS Command Line Interface ou boto3. Les sessions interactives honorent et fonctionnent avec des profils nommés tels que le AWS CLI trouvé dans ~/.aws/config (Linux ou MacOS) ou %USERPROFILE%\.aws\config (Windows). Pour de plus amples informations, consultez Using named profiles.

Les sessions interactives tirent parti des profils nommés en permettant AWS Glue Le préfixe de fonction du service et d'ID de séance à spécifier dans un profil. Pour configurer un rôle de profil, ajoutez une ligne pour la clé iam_role et/ou session_id_prefix à votre profil nommé comme indiqué ci-dessous. Le session_id_prefix ne nécessite pas de guillemets. Par exemple, si vous souhaitez ajouter un session_id_prefix, saisissez la valeur du session_id_prefix=myprefix.

[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>

Si vous disposez d'une méthode personnalisée pour générer des informations d'identification, vous pouvez également configurer votre profil pour utiliser le paramètre credential_process dans votre fichier ~/.aws/config. Par exemple :

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

Vous trouverez plus de détails sur la source d'approvisionnement des informations d'identification via le paramètre credential_process ici : Source d'approvisionnement des informations d'identification avec un processus externe.

Si une région ou iam_role ne sont pas définis dans le profil que vous utilisez, vous devez les spécifier à l'aide des magics %region et %iam_role dans la première cellule que vous exécutez.