Configuration des Séances interactives AWS Glue pour Jupyter et Blocs-notes AWS Glue Studio
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
Des magics soutenus par les séances interactives AWS Glue pour Jupyter
Ci-après les magics que vous pouvez utiliser avec les séances interactives AWS Glue pour les bloc-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écifie un profil dans votre configuration AWS à 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 Exemple : |
%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 séances ETL 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 : |
%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 tous les ID de séance au format [session_id_prefix]-[session_id]. Si aucun ID de séance n'est fourni, un UUID aléatoire 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 : |
%status |
Renvoie le statut de la séance AWS Glue actuelle, 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, ETL ou Ray. Exemple : |
%glue_version |
Chaîne |
La version de AWS Glue à utiliser par cette session. Exemple : |
Magics pour la sélection des types de tâches
| Nom | Type | Description |
|---|---|---|
%streaming |
Chaîne | Modifie le type de séance en Streaming AWS Glue. |
%etl |
Chaîne | Modifie le type de séance en ETL AWS Glue. |
| %glue_ray | Chaîne | Modifie le type de session en AWS Glue pour Ray. Consultez Magics supported by AWS Glue Ray interactive sessions. |
Magics de configuration AWS Glue pour Spark.
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 au format JSON 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 de |
%iam_role |
Chaîne |
Spécifiez un ARN de rôle IAM avec lequel exécuter votre séance. Valeurs par défaut de ~/.aws/configure. Exemple : |
%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. Exemple : |
%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: |
%%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 (,).
Utilisez le magic
|
%%assume_role |
Dictionnaire |
Spécifiez un dictionnaire au format JSON ou une chaîne ARN de rôle IAM pour créer une session d'accès intercompte. Exemple avec ARN :
Exemple avec informations d'identification :
|
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 plus d’informations sur les paramètres des tâches, consultez Paramè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.
|
max_concurrent_runs |
Int | Nombre maximal d'exécutions simultanées autorisées pour une tâche. Exemple :
|
Paramètres de session
| Paramètre | Type | Description |
|---|---|---|
--enable-spark-ui |
Booléen | Activez l'interface utilisateur Spark pour surveiller et déboguer les tâches ETL AWS Glue.
|
--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 :
|
--script_location |
Chaîne | Spécifie le chemin d'accès S3 à un script qui exécute une tâche. Exemple :
|
--SECURITY_CONFIGURATION |
Chaîne | Nom d’une configuration de sécurité AWS Glue Exemple :
|
--job-language |
Chaîne | Langage de programmation des scripts. Accepte la valeur « scala » ou « python ». La valeur par défaut est « python ». Exemple :
|
--class |
Chaîne | La classe Scala qui sert de point d'entrée à votre script Scala. La valeur par défaut est nulle. Exemple :
|
--user-jars-first |
Booléen | Donne la priorité aux fichiers JAR supplémentaires du client dans le chemin de classe. La valeur par défaut est nulle. Exemple :
|
--use-postgres-driver |
Booléen | Donne la priorité au pilote JDBC Postgres dans le chemin de classe afin d'éviter tout conflit avec le pilote JDBC Amazon Redshift. La valeur par défaut est nulle. Exemple :
|
--extra-files |
List(string) | Les chemins Amazon S3 vers des fichiers supplémentaires (par exemple, des fichiers de configuration) que AWS Glue copie vers le répertoire de travail de votre script avant de l'exécuter. Exemple :
|
--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 :
|
--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 :
|
--enable-s3-parquet-optimized-committer |
Booléen | Active le validateur EMRFS optimisé pour Amazon S3 pour l'écriture de données Parquet dans Amazon S3. La valeur par défaut est « true ». Exemple :
|
--enable-rename-algorithm-v2 |
Booléen | Définit la version de l'algorithme de renommage EMRFS sur la version 2. La valeur par défaut est « true ». Exemple :
|
--enable-glue-datacatalog |
Booléen | Vous permet d'utiliser le catalogue de données AWS Glue en tant que métastore Apache Hive Spark. Exemple :
|
--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 :
|
--enable-continuous-cloudwatch-log |
Booléen | Active la journalisation continue en temps réel des tâches AWS Glue. La valeur par défaut est « false ». Exemple :
|
--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 :
|
--continuous-log-stream-prefix |
Chaîne | Spécifie un préfixe de flux de journal Amazon CloudWatch personnalisé pour une tâche activée pour la journalisation en continu. La valeur par défaut est nulle. Exemple :
|
--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 :
|
--conf |
Chaîne | Contrôle les paramètres de configuration de Spark. Elle est destinée aux cas d'utilisation avancés. Utilisez --conf avant chaque paramètre. Exemple :
|
| timeout | Int | Détermine la durée maximale pendant laquelle la session Spark doit attendre qu’une instruction n’expire avant d’y mettre fin.
|
| autoscaling | Booléen | Détermine s’il faut ou non utiliser l’autoscaling.
|
Magics de tâches Spark (ETL et streaming)
| Nom | Type | Description |
|---|---|---|
%worker_type |
Chaîne | Standard, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X ou R.8X. 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 :
|
%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 : |
%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_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 : |
Action Magics (Action Magics)
| Nom | Type | Description |
|---|---|---|
%%sql |
Chaîne |
Exécutez le code SQL. Toutes les lignes après magic Exemple : |
%matplot |
Illustration Matplotlib |
Visualisez vos données à l'aide de la bibliothèque Matplotlib. Exemple :
|
%plotly |
Illustration Plotly |
Visualisez vos données à l'aide de la bibliothèque Plotly. Exemple :
|
Désignation des séances
Les séances interactives AWS Glue sont des ressources AWS et nécessitent un nom. Les noms doivent être uniques pour chaque session et peuvent être restreints par vos administrateurs IAM. Pour plus d’informations, consultez Séances 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 :
-
Utilisation du fichier de configuration AWS Command Line Interface situé dans
~.aws/config. Voir Configuration de AWS Config avec l'outil AWS Command Line Interface. -
Utilisation des magics
%session_id_prefix. Consultez Des magics soutenus par les séances interactives AWS Glue 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 l'interface AWS CLI ou dans la console.
Spécification d'un rôle IAM pour les séances interactives
Vous devez spécifier un rôle Identity and Access Management (IAM) AWS à utiliser avec le code ETL AWS Glue que vous exécutez avec des séances interactives.
Le rôle requiert les mêmes autorisations IAM que celles requises pour exécuter les tâches AWS Glue. Voir Création d'un rôle IAM pour AWS Glue pour plus d'informations sur la création d'un rôle pour les tâches AWS Glue et les séances interactives.
Les rôles IAM peuvent être spécifiés de deux manières :
-
Utilisation du fichier de configuration AWS Command Line Interface situé dans
~.aws/config(recommandé). Pour de plus amples informations, veuillez consulter Configuration de séances avec ~/.aws/config (langue Français non garantie).Note
Lorsque magic de
%profileest utilisée, la configuration pourglue_iam_rolede ce profil est respectée. -
Utilisation du magic %iam_role. Pour plus d’informations, consultez Des magics soutenus par les séances interactives AWS Glue pour Jupyter .
Configuration des séances avec des profils nommés
Les séances interactives AWS Glue 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 séances interactives tirent parti des profils nommés en permettant au préfixe de fonction du service et aux ID de séance AWS Glue d'être spécifiés 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.