

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.

# AWS Glue : comment ça marche
<a name="how-it-works"></a>

AWS Glue utilise d'autres AWS services pour orchestrer vos tâches ETL (extraction, transformation et chargement) afin de créer des entrepôts de données et des lacs de données et de générer des flux de sortie. AWS Glueappelle les opérations d'API pour transformer vos données, créer des journaux d'exécution, stocker la logique de vos tâches et créer des notifications pour vous aider à surveiller l'exécution de vos tâches. La console AWS Glue connecte ces services dans une application gérée, ce qui vous permet de vous concentrer sur la création et la surveillance de vos tâches ETL. La console effectue les opérations de développement et de tâches administratives en votre nom. Vous fournissez les informations d'identification et d'autres propriétés à AWS Glue pour accéder à vos sources de données et écrire dans vos cibles de données.

AWS Glue s'occupe de la mise en service et de la gestion des ressources requises pour exécuter votre charge de travail. Vous n'avez pas besoin de créer l'infrastructure pour un outil ETL car AWS Glue le fait pour vous. Lorsque les ressources sont requises, afin de réduire le temps de démarrage, AWS Glue utilise une instance à partir de son pool d'instances « à chaud » pour exécuter votre charge de travail.

AWS Glue vous permet de créer des tâches en utilisant des définitions de tables dans votre catalogue de données. Les tâches consistent en des scripts contenant les instructions qui exécutent les tâches de transformation de données souhaitées. Vous pouvez utiliser des déclencheurs pour initier des tâches sur un calendrier ou en tant que résultat d'un événement spécifié. Vous déterminez où résident vos données cible et les données source qui alimentent votre cible. Sur la base de vos entrées, AWS Glue transforme vos données du format source au format cible. Vous pouvez également fournir des scripts personnalisés dans la console ou l’API AWS Glue pour traiter vos données en fonction de vos besoins spécifiques.

**Sources et destinations des données**  
AWS Glue pour Spark vous permet de lire et d'écrire des données issues de plusieurs systèmes et bases de données, notamment :
+ Amazon S3
+ Amazon DynamoDB
+ Amazon Redshift
+ Amazon Relational Database Service (Amazon RDS)
+ Bases de données tierces accessibles à JDBC
+ MongoDB et Amazon DocumentDB (compatible avec MongoDB)
+ Autres connecteurs de place de marché et plug-ins Apache Spark

**Flux de données**  
AWS Glue pour Spark peut diffuser des données à partir des systèmes suivants :
+ Amazon Kinesis Data Streams
+ Apache Kafka

AWS Glue est disponible dans plusieurs AWS régions. Pour de plus amples informations, veuillez consulter [AWS Régions et points de terminaison](https://docs.aws.amazon.com/general/latest/gr/rande.html) dans le manuel Référence générale d'Amazon Web Services.

**Topics**
+ [Travaux ETL sans serveur exécutés en isolation](#how-it-works-isolation)
+ [AWS Glue concepts](components-key-concepts.md)
+ [AWS Glue composants](components-overview.md)
+ [AWS Glue pour Spark et AWS Glue pour Ray](how-it-works-engines.md)
+ [Conversion de schémas semi-structurés en schémas relationnels avec AWS Glue](schema-relationalize.md)
+ [AWS Systèmes de type Glue](glue-types.md)

## Travaux ETL sans serveur exécutés en isolation
<a name="how-it-works-isolation"></a>

AWS Glue exécute vos tâches ETL dans un environnement sans serveur avec le moteur de votre choix, Spark ou Ray. AWS Glue exécute ces tâches sur les ressources virtuelles qu'il met en service et gère dans son propre compte de service. 

AWS Glue est conçu pour effectuer les tâches suivantes :
+ Isoler les données clients.
+ Protéger les données client en transit et au repos.
+ Accéder aux données des clients uniquement en cas de besoin, en réponse à leurs demandes, à l'aide d'informations d'identification temporaires et réduites, ou aux rôles IAM de leur compte lorsqu'ils y consentent.

Lors de la mise en service d'une tâche ETL, vous fournissez des sources de données d'entrée et des cibles de données de sortie dans votre cloud privé virtuel (VPC). En outre, vous fournissez le rôle IAM, l'ID VPC, l'ID de sous-réseau et le groupe de sécurité nécessaires pour accéder aux sources et aux cibles de données. Pour chaque tuple (ID de compte client, rôle IAM, ID de sous-réseau et groupe de sécurité), AWS Glue crée un environnement, isolé au niveau du réseau et de la gestion de tous les autres environnements au sein de votre compte de service AWS Glue.

 Vous créez et configurez AWS Glue des ressources, telles que des catalogues de données, des tâches et des robots d'exploration au sein de votre AWS compte. Ces ressources sont ensuite associées au rôle IAM et aux paramètres réseau (sous-réseau et groupe de sécurité) que vous spécifiez lors du processus de création. 

AWS Glue crée des interfaces réseau Elastic dans votre sous-réseau à l'aide d'adresses IP privées. Les tâches utilisent ces interfaces réseau élastiques pour accéder à vos sources et à vos cibles de données. Le trafic entrant, sortant et au sein de l'environnement d'exécution de la tâche est régi par votre VPC et vos stratégies de mise en réseau, avec une exception : les appels effectués vers des bibliothèques AWS Glue peuvent acheminer le trafic vers des opérations d'API AWS Glue via le VPC AWS Glue. Tous les appels d'API AWS Glue sont consignés ; par conséquent, les propriétaires de données peuvent effectuer un audit de l'accès aux API en activant [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/), qui fournit des journaux d'audit pour votre compte.

AWS Glueles environnements gérés qui exécutent vos tâches ETL sont protégés par les mêmes pratiques de sécurité que celles appliquées AWS aux autres services. Pour un aperçu des pratiques et des responsabilités partagées en matière de sécurité, consultez le livre blanc [Introduction aux processus AWS de sécurité](https://docs.aws.amazon.com/whitepapers/latest/introduction-aws-security/welcome.html).

# AWS Glue concepts
<a name="components-key-concepts"></a>

 AWS Glue est un service ETL (extraction, transformation, chargement) entièrement géré qui vous permet de déplacer facilement des données entre différentes sources de données et cibles. Les composants clés sont les suivants : 
+  **Catalogue de données** : magasin de métadonnées contenant des définitions de tables, des définitions de tâches et d’autres informations de contrôle pour vos flux de travail ETL. 
+  **Robots** : programmes qui se connectent à des sources de données, déduisent des schémas de données et créent des définitions de tables de métadonnées dans le catalogue de données. 
+  **Tâches ETL** : logique métier permettant d’extraire les données des sources, de les transformer à l’aide de scripts Apache Spark et de les charger dans des cibles. 
+  **Déclencheurs** : mécanismes permettant de lancer des exécutions de tâches en fonction de calendriers ou d’événements. 

 Le flux de travail type implique : 

1.  Définissez les sources de données et les cibles dans le catalogue de données. 

1.  Utilisez les robots pour renseigner le catalogue de données avec des métadonnées de table provenant de sources de données. 

1.  Définissez des tâches ETL avec des scripts de transformation pour déplacer et traiter les données. 

1.  Exécutez des tâches à la demande ou en fonction de déclencheurs. 

1.  Surveillez les performances des tâches à l’aide de tableaux de bord. 

 Le schéma suivant montre l'architecture d'un AWS Glue environnement. 

![\[Concepts de base pour remplir votre catalogue de données et traiter le flux de données ETL dans AWS Glue.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/HowItWorks-overview.png)


Vous définissez *des tâches* AWS Glue pour accomplir le travail requis pour extraire, transformer et charger des données (ETL) d'une source de données vers une cible de données. Généralement, vous effectuez les actions suivantes :
+ Pour les sources de magasins de données, vous définissez un *crawler* pour remplir votre AWS Glue Data Catalog avec les définitions de table des métadonnées. Vous associez votre crawler à un magasin de données, et le crawler crée les définitions de table dans le catalogue de données. Pour les sources en streaming, vous définissez manuellement les tables du catalogue de données et spécifiez les propriétés du flux des données.

  Outre les définitions de tables, le AWS Glue Data Catalog contient d'autres métadonnées nécessaires pour définir les tâches ETL. Vous utilisez ces métadonnées lorsque vous définissez une tâche pour transformer vos données.
+ AWS Glue peut générer un script pour transformer vos données. Vous pouvez également fournir le script dans la AWS Glue console ou dans l'API.
+ Vous pouvez exécuter votre tâche à la demande ou la configurer pour qu’elle démarre lorsqu’un *déclencheur* spécifié est mis en action. Le déclencheur peut être une planification temporelle ou un événement.

  Lorsque votre tâche s’exécute, un script extrait les données de la source de données, les transforme et les charge sur la cible de données. Le script s’exécute dans un environnement Apache Spark, dans AWS Glue.

**Important**  
Les tables et les bases de données dans AWS Glue sont des objets dans le AWS Glue Data Catalog. Elles contiennent des métadonnées, mais aucune donnée d’un magasin de données.


|  | 
| --- |
|  **Les données textuelles, telles que CSVs, doivent être codées `UTF-8` AWS Glue pour être traitées correctement. Pour plus d’informations, veuillez consulter la page Wikipédia [UTF-8](https://en.wikipedia.org/wiki/UTF-8).**   | 

## AWS Glue terminologie
<a name="components-major"></a>

AWS Glue repose sur l'interaction de plusieurs composants pour créer et gérer votre flux de travail d'extraction, de transformation et de chargement (ETL).

### AWS Glue Data Catalog
<a name="components-data-catalog"></a>

Les métadonnées persistantes sont stockées dans AWS Glue. Il contient des définitions de tables, des définitions de tâches et d'autres informations de contrôle pour gérer votre AWS Glue environnement. Chaque AWS compte en possède un AWS Glue Data Catalog par région. 

### Classifieur
<a name="components-classifier"></a>

Détermine le schéma de vos données. AWS Glue fournit des classificateurs pour les types de fichiers courants, tels que CSV, JSON, AVRO, XML, etc. Il fournit également les classifieurs des systèmes de gestion de base de données relationnelle (SGBDR) utilisant une connexion JDBC. Vous pouvez écrire votre propre classificateur à l’aide d’un modèle grok ou en spécifiant une balise de ligne dans un document XML.

### Connexion
<a name="components-connection"></a>

Un objet de catalogue de données qui contient les propriétés requises pour se connecter à un magasin de données particulier.

### crawler
<a name="components-crawler"></a>

Programme qui se connecte à un magasin de données (source ou cible), parcourt la liste hiérarchisée des classificateurs pour déterminer le schéma de vos données, puis crée des tables de métadonnées dans l’ AWS Glue Data Catalog.

### Base de données
<a name="components-database"></a>

Ensemble de définitions de tables du catalogue de données associées, organisées en un groupe logique.

### Stockage de données, source de données, cible de données
<a name="components-data-store"></a>

Un *magasin de données* est un référentiel qui permet de stocker vos données de façon permanente. Les exemples incluent les compartiments Amazon S3 et les bases de données relationnelles. Une *source de données* est un magasin de données qui est utilisé comme entrée d’un processus ou d’une transformation. Une *cible de données* est un magasin de données dans lequel écrit un processus ou une transformation.

### Point de terminaison de développement
<a name="components-development-endpoint"></a>

Un environnement que vous pouvez utiliser pour développer et tester vos scripts AWS Glue ETL.

### Trame dynamique
<a name="components-dynamic-frame"></a>

Table distribuée qui prend en charge les données imbriquées telles que les structures et les tableaux. Chaque enregistrement est auto-descriptif, conçu pour une flexibilité de schéma avec des données semi-structurées. Chaque enregistrement contient à la fois les données et le schéma qui les décrit. Vous pouvez utiliser à la fois des cadres dynamiques et Apache Spark DataFrames dans vos scripts ETL, et effectuer des conversions entre eux. Les trames dynamiques fournissent un ensemble de transformations avancées pour le nettoyage des données, ainsi que pour l’extraction, le transfert et le chargement.

### Tâche
<a name="components-job"></a>

Logique métier requise pour exécuter un travail d’extraction, de transformation et de chargement (ETL). Elle se compose d’un script de transformation, de sources de données et de cibles de données. Les exécutions des tâches sont initiées par les déclencheurs qui peuvent être planifiés ou mis en action par des événements.

### Tableau de bord de performance de tâche
<a name="features-job-monitoring"></a>

AWS Glue fournit un tableau de bord d'exécution complet pour vos tâches ETL. Le tableau de bord affiche des informations sur les exécutions de tâche à partir d’une période spécifique. 

### Interface de bloc-notes
<a name="components-notebook-server"></a>

Une expérience de bloc-notes améliorée grâce à une configuration en un clic pour faciliter la création des tâches et l’exploration des données. Le bloc-notes et les connexions sont configurés automatiquement pour vous. Vous pouvez utiliser l'interface du bloc-notes basée sur Jupyter Notebook pour développer, déboguer et déployer des scripts et des flux de travail de manière interactive à l'aide de l'infrastructure ETL Apache Spark AWS Glue sans serveur. Vous pouvez également effectuer des requêtes ad hoc, des analyses de données et des visualisations (par exemple, des tableaux et des graphiques) dans l’environnement de bloc-notes.

### Script
<a name="components-script"></a>

Code qui extrait les données des sources, les transforme et les charge dans des cibles. AWS Glue génère PySpark ou des scripts Scala.

### Table
<a name="components-table"></a>

Définition de métadonnées qui représente vos données. Que les données se trouvent dans un fichier Amazon Simple Storage Service (Amazon S3), une table Amazon Relational Database Service (Amazon RDS) ou un autre jeu de données, une table définit le schéma de vos données. Un tableau AWS Glue Data Catalog contient les noms des colonnes, les définitions des types de données, les informations de partition et les autres métadonnées relatives à un jeu de données de base. Le schéma de vos données est représenté dans la définition de votre AWS Glue table. Les données réelles restent dans leur magasin de données d'origine, qu'il s'agisse d'un fichier ou d'une table de base de données relationnelle. AWS Glue catalogue vos fichiers et vos tables de base de données relationnelle dans le. AWS Glue Data Catalog Ils sont utilisés comme sources et cibles lorsque vous créez une tâche ETL.

### Transformation
<a name="components-transform"></a>

Logique de code qui permet de manipuler les données dans un format différent.

### Déclencheur
<a name="components-trigger"></a>

Démarre une tâche ETL. Les déclencheurs peuvent être définis selon une heure planifiée ou un événement.

### Éditeur de tâche visuel
<a name="features-visual-editor"></a>

 L’éditeur visuel est une interface graphique qui facilite la création, l’exécution et le contrôle des tâches d’Extraction, transformation et chargement (ETL) dans AWS Glue. Vous pouvez composer visuellement des flux de travail de transformation des données, les exécuter AWS Glue de manière fluide sur le moteur ETL sans serveur basé sur Apache Spark et inspecter le schéma et les résultats des données à chaque étape du travail. 

### Nœuds
<a name="components-worker"></a>

Avec AWS Glue, vous ne payez que pour le temps nécessaire à l'exécution de votre tâche ETL. Il n’y a pas de ressources à gérer, pas de coûts initiaux et les temps de démarrage ou d’arrêt ne vous sont pas facturés. Un taux horaire vous est facturé en fonction du nombre d'**unités de traitement des données** (ou DPUs) utilisées pour exécuter votre tâche ETL. Une seule unité de traitement des données (DPU) est également appelée « *travailleur* ». AWS Glue propose plusieurs types de travailleurs pour vous aider à sélectionner la configuration qui répond à vos exigences en matière de latence et de coûts. Les travailleurs sont disponibles dans des configurations standard, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, G.025X, et des configurations R.1X, R.2X, R.4X, R.8X optimisées pour la mémoire.

# AWS Glue composants
<a name="components-overview"></a>

AWS Glue fournit une console et des opérations d'API pour configurer et gérer votre charge de travail d'extraction, de transformation et de chargement (ETL). Vous pouvez utiliser les opérations d'API via plusieurs langages spécifiques SDKs et le AWS Command Line Interface ()AWS CLI. Pour plus d'informations sur l'utilisation du AWS CLI, reportez-vous à la section [Référence des AWS CLI commandes](https://docs.aws.amazon.com/cli/latest/reference/).

AWS Glue utilise le AWS Glue Data Catalog pour stocker les métadonnées relatives aux sources de données, aux transformations et aux cibles. Le Catalogue de données est un remplacement instantané du métastore Apache Hive. AWS Glue Jobs system Il fournit une infrastructure gérée pour définir, planifier et exécuter des opérations ETL sur vos données. Pour plus d'informations sur l' AWS Glue API, consultez[AWS Glue API](aws-glue-api.md).

## AWS Glue console
<a name="console-intro"></a>

Vous utilisez la AWS Glue console pour définir et orchestrer votre flux de travail ETL. La console appelle plusieurs opérations d'API dans AWS Glue Data Catalog et AWS Glue Jobs system pour effectuer les tâches suivantes :
+ Définissez AWS Glue des objets tels que des tâches, des tables, des robots d'exploration et des connexions.
+ Planifier l’exécution des crawlers.
+ Définir les événements ou planifications des déclencheurs de tâche.
+ Recherchez et filtrez des listes d' AWS Glue objets.
+ Modifier les scripts de transformation.

## AWS Glue Data Catalog
<a name="data-catalog-intro"></a>

 AWS Glue Data Catalog Il s'agit de votre magasin de métadonnées techniques permanent dans le AWS cloud. 

Chaque AWS compte en possède un AWS Glue Data Catalog par AWS région. Chaque catalogue de données est un ensemble hautement évolutif de tableaux organisés en bases de données. Une table est une représentation par métadonnées d'un ensemble de données structurées ou semi-structurées stockées dans des sources telles qu'Amazon RDS, le système de fichiers distribué Apache Hadoop, Amazon OpenSearch Service, etc. AWS Glue Data Catalog Il fournit un référentiel uniforme dans lequel des systèmes disparates peuvent stocker et rechercher des métadonnées afin de suivre les données dans des silos de données. Vous pouvez ensuite utiliser les métadonnées pour interroger et transformer ces données de manière cohérente dans une grande variété d’applications. 

 Vous utilisez le catalogue de données ainsi que les Gestion des identités et des accès AWS politiques et Lake Formation pour contrôler l'accès aux tables et aux bases de données. Pour ce faire, vous pouvez autoriser différents groupes de votre entreprise à publier les données en toute sécurité à l’échelle de l’organisation tout en protégeant au maximum les informations sensibles. 

Le catalogue de données, ainsi que Lake Formation, vous fournissent également des fonctionnalités complètes d'audit et de gouvernance, avec un suivi des modifications de schéma et des contrôles d'accès aux données. CloudTrail Cela permet de s’assurer que les données ne sont pas modifiées de façon inappropriée ou partagées par inadvertance. 

 Pour plus d’informations sur la sécurisation et l’audit du AWS Glue Data Catalog, consultez : 
+  **AWS Lake Formation** – Pour en savoir plus, consultez [Présentation d’ AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) dans le *Guide du développeur AWS Lake Formation *. 
+  **CloudTrail**— Pour plus d'informations, voir [Qu'est-ce que c'est CloudTrail ?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) dans le *guide de AWS CloudTrail l'utilisateur*. 

Voici d'autres AWS services et projets open source qui utilisent : AWS Glue Data Catalog
+ **Amazon Athena** – Pour plus d’informations, veuillez consulter la rubrique [Présentation des tables, des bases de données et du catalogue de données](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html) dans le *Guide de l’utilisateur Amazon Athena*.
+ **Amazon Redshift Spectrum**  Pour en savoir plus, consultez la rubrique [Utilisation d’Amazon Redshift Spectrum pour interroger des données externes](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html) dans le *Guide du développeur de base de données Amazon Redshift*.
+ **Amazon EMR** - Pour plus d’informations, veuillez consulter la rubrique [Utiliser de stratégies basées sur les ressources pour l’accès d’Amazon EMR à AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) dans le *Guide de gestion Amazon EMR*.
+ **AWS Glue Data Catalog client pour le métastore Apache Hive** — Pour plus d'informations sur ce GitHub projet, voir [AWS Glue Data Catalog Client pour le métastore Apache](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore) Hive.



## AWS Glue chenilles et classificateurs
<a name="crawling-intro"></a>

AWS Glue vous permet également de configurer des robots d'exploration capables de scanner les données dans toutes sortes de référentiels, de les classer, d'en extraire des informations de schéma et de stocker les métadonnées automatiquement dans le. AWS Glue Data Catalog Ils AWS Glue Data Catalog peuvent ensuite être utilisés pour guider les opérations ETL.

Pour de plus amples informations sur la configuration des crawlers et des classifieurs, veuillez consulter [Utilisation de robots pour alimenter le catalogue de données](add-crawler.md). Pour plus d'informations sur la programmation des robots d'exploration et des classificateurs à l'aide de l' AWS Glue API, consultez. [API de classifieurs et d'crawlers](aws-glue-api-crawler.md)

## AWS Glue Opérations ETL
<a name="etl-script-intro"></a>

À l'aide des métadonnées du catalogue de données, AWS Glue vous pouvez générer automatiquement des scripts Scala ou PySpark (l'API Python pour Apache Spark) avec des AWS Glue extensions que vous pouvez utiliser et modifier pour effectuer diverses opérations ETL. Par exemple, vous pouvez extraire, nettoyer et transformer les données brutes, puis stocker le résultat dans un référentiel différent, où il peut être interrogé et analysé. Un tel script peut convertir un fichier CSV sous une forme relationnelle et l’enregistrer dans Amazon Redshift.

Pour plus d'informations sur l'utilisation des fonctionnalités AWS Glue ETL, consultez[Programmation de scripts Spark](aws-glue-programming.md).

## Streaming d'ETL en AWS Glue
<a name="streaming-etl-intro"></a>

AWS Glue vous permet d'effectuer des opérations ETL sur des données en streaming à l'aide de tâches exécutées en continu. AWS Glue L'ETL de streaming repose sur le moteur de streaming structuré Apache Spark et peut ingérer des flux provenant d'Amazon Kinesis Data Streams, d'Apache Kafka et d'Amazon Managed Streaming for Apache Kafka (Amazon MSK). ETL de streaming peut nettoyer et transformer les données de streaming et les charger dans des magasins de données Amazon S3 ou JDBC. Utilisez Streaming ETL in AWS Glue pour traiter les données d'événements telles que les flux IoT, les flux de clics et les journaux réseau.

Si vous connaissez le schéma de la source de données de streaming, vous pouvez le spécifier dans une table du catalogue de données. Sinon, vous pouvez activer la détection de schéma dans la tâche ETL de streaming. La tâche détermine ensuite automatiquement le schéma à partir des données entrantes.

La tâche ETL de streaming peut utiliser à la fois des transformations AWS Glue intégrées et des transformations natives d'Apache Spark Structured Streaming. Pour plus d'informations, consultez la section [Opérations sur le DataFrames streaming/Datasets](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#operations-on-streaming-dataframesdatasets) sur le site Web d'Apache Spark. 

Pour de plus amples informations, veuillez consulter [Tâches ETL en streaming dans AWS Glue](add-job-streaming.md).

## Le système AWS Glue d'emplois
<a name="job-orchestration-intro"></a>

 AWS Glue Jobs system Il fournit une infrastructure gérée pour orchestrer votre flux de travail ETL. Vous pouvez créer des tâches AWS Glue qui automatisent les scripts que vous utilisez pour extraire, transformer et transférer des données vers différents emplacements. Les tâches peuvent être programmées et chaînées, ou elles peuvent être déclenchées par des événements tels que l’arrivée de nouvelles données.

Pour plus d'informations sur l'utilisation du AWS Glue Jobs system, consultez[Surveillance AWS Glue](monitor-glue.md). Pour plus d’informations sur la programmation à l’aide de l’API AWS Glue Jobs system , consultez [API de tâches](aws-glue-api-jobs.md).

## Composants ETL visuels
<a name="glue-studio-ui-components"></a>

 AWS Glue vous permet de créer des tâches ETL via un canevas visuel que vous pouvez manipuler. 

![\[La capture d'écran montre que le panneau des ressources est fermé.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/glue-studio-canvas.png)


### Menu de tâches ETL
<a name="glue-studio-ui-components-menu"></a>

 Les options du menu situées en haut du canevas vous permettent d’accéder aux différentes vues et aux détails de configuration de votre tâche. 
+  **Visuel** : le canevas de l’éditeur de tâche visuel. C’est ici que vous pouvez ajouter des nœuds pour créer une tâche. 
+  **Script** : représentation par script de votre tâche ETL. AWS Glue génère le script en fonction de la représentation visuelle de votre travail. Vous pouvez également modifier votre script ou le télécharger. 
**Note**  
 Si vous choisissez de modifier le script, l’expérience de création de tâches est définitivement convertie en mode script uniquement. Ensuite, vous ne pourrez plus utiliser l’éditeur visuel pour modifier la tâche. Vous devez ajouter toutes les sources de tâches, les transformations et les cibles, et apporter toutes les modifications nécessaires à l’aide de l’éditeur visuel avant de choisir de modifier le script. 
+  **Détails de la tâche** : l’onglet Informations de la tâche vous permet de configurer votre tâche en définissant les propriétés de la tâche. Il existe des propriétés de base, telles que le nom et la description de votre tâche, le rôle IAM, le type de tâche, la version AWS Glue, la langue, le type de travailleur, le nombre de travailleurs, le signet de la tâche, l’exécution flexible, le nombre de suppressions et le délai d’expiration de la tâche, ainsi que des propriétés avancées, telles que les connexions, les bibliothèques, les paramètres de la tâche et les balises. 
+  **Exécutions** : après l’exécution de votre tâche, vous pouvez accéder à cet onglet pour consulter vos précédentes exécutions de tâches. 
+  **Qualité des données** : la qualité des données évalue et contrôle la qualité de vos ressources de données. Vous pouvez en savoir plus sur l’utilisation de la qualité des données dans cet onglet et ajouter une transformation de qualité des données à votre tâche. 
+  **Calendriers** : les tâches que vous avez planifiées apparaissent dans cet onglet. Si aucun calendrier n’est associé à cette tâche, cet onglet n’est pas accessible. 
+  **Contrôle de version** : vous pouvez utiliser Git avec votre tâche en la configurant dans un référentiel Git. 

### Panneaux ETL visuels
<a name="glue-studio-ui-components-panels"></a>

 Lorsque vous travaillez dans le canevas, plusieurs panneaux sont disponibles pour vous aider à configurer vos nœuds ou à prévisualiser vos données et à visualiser le schéma de sortie. 
+  **Propriétés** : le panneau Propriétés apparaît lorsque vous choisissez un nœud sur votre canevas. 
+  **Aperçu des données** : le panneau Aperçu des données fournit un aperçu de la sortie des données afin que vous puissiez prendre des décisions avant d’exécuter votre tâche et d’examiner votre sortie. 
+  **Schéma de sortie** : l’onglet Schéma de sortie vous permet de visualiser et de modifier le schéma de vos nœuds de transformation. 

 **Redimensionnement des panneaux** 

 Vous pouvez redimensionner le panneau Propriétés sur le côté droit de l’écran et le panneau inférieur qui contient les onglets Aperçu des données et Schéma de sortie en cliquant sur le bord du panneau et en le faisant glisser vers la gauche et la droite ou vers le haut et le bas. 
+  **Panneau Propriétés** : redimensionnez le panneau Propriétés en cliquant et en faisant glisser le bord du canevas sur le côté droit de l’écran, puis en le faisant glisser vers la gauche pour augmenter sa largeur. Par défaut, le panneau est réduit et lorsqu’un nœud est sélectionné, le panneau Propriétés s’ouvre à sa taille par défaut. 
+  **Panneau Aperçu des données et Schéma de sortie** : redimensionnez le panneau inférieur en cliquant et en faisant glisser le bord inférieur du canevas en bas de l’écran, puis en le faisant glisser vers le haut pour augmenter sa hauteur. Par défaut, le panneau est réduit et lorsqu’un nœud est sélectionné, le panneau inférieur s’ouvre à sa taille par défaut. 

### Canevas de tâche
<a name="glue-studio-ui-components-canvas"></a>

 Vous pouvez ajouter, supprimer et des move/reorder nœuds directement sur le canevas Visual ETL. Considérez-le comme votre espace de travail pour créer une tâche ETL entièrement fonctionnelle qui commence par une source de données et peut se terminer par une cible de données. 

 Lorsque vous travaillez avec des nœuds sur le canevas, vous disposez d’une barre d’outils qui vous permet d’effectuer des zooms avant et arrière, de supprimer des nœuds, d’établir ou de modifier des connexions entre les nœuds, de modifier l’orientation du flux de travail et d’annuler ou de rétablir une action. 

![\[La capture d'écran montre que le panneau des ressources est fermé.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/glue-studio-canvas-toolbar.png)


 La barre d’outils flottante est ancrée dans le coin supérieur droit du canevas et contient plusieurs images qui effectuent des actions : 
+  **Icône de mise en page** : la première icône de la barre d’outils est l’icône de mise en page. Par défaut, la direction des tâches visuelles est de haut en bas. Elle réorganise la direction de votre tâche visuelle en disposant les nœuds horizontalement de gauche à droite. Cliquez à nouveau sur l’icône de mise en page pour revenir de haut en bas. 
+  **Icône de recentrage** : l’icône de recentrage modifie l’affichage du canevas en le centrant. Vous pouvez l’utiliser pour des tâches importantes pour revenir à la position centrale. 
+  **Icône de zoom avant** : l’icône de zoom avant agrandit la taille des nœuds du canevas. 
+  **Icône de zoom arrière** : l’icône de zoom avant réduit la taille des nœuds du canevas. 
+  **Icône corbeille** : l’icône de corbeille supprime un nœud de la tâche visuelle. Vous devez d’abord sélectionner un nœud. 
+  **Icône d’annulation** : l’icône d’annulation annule la dernière action effectuée sur la tâche visuelle. 
+  **Icône de rétablissement** : l’icône de rétablissement répète la dernière action effectuée sur la tâche visuelle. 

 **Utilisation de la mini-carte** 

![\[La capture d’écran montre un gros plan de la mini-carte.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/glue-studio-canvas-minimap.png)


### Panneau des ressources
<a name="glue-studio-ui-components-canvas-resource-panel"></a>

 Le panneau des ressources contient toutes les sources de données, les actions de transformation et les connexions disponibles. Ouvrez le panneau des ressources sur le canevas en cliquant sur l’icône « \$1 ». Cela ouvre le panneau des ressources. 

 Pour fermer le panneau des ressources, cliquez sur la croix, **X**, dans le coin supérieur droit du panneau des ressources. Le panneau est ainsi masqué jusqu’à ce que vous souhaitiez l’ouvrir à nouveau. 

![\[La capture d’écran montre que le panneau des ressources est fermé.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/resource-panel-open.png)


#### Transformations et données populaires
<a name="glue-studio-ui-components-popular-transforms"></a>

 En haut du panneau se trouve une collection de **Transformations et de données populaires**. Ces nœuds sont couramment utilisés dans AWS Glue. Choisissez-en un pour l’ajouter au canevas. Vous pouvez également masquer les **Transformations et données populaires** en cliquant sur le triangle situé à côté de l’en-tête **Transformations et données populaires**. 

 Dans la section **Transformations et données populaires**, vous pouvez rechercher des nœuds de transformations et de source de données. Les résultats apparaissent au fur et à mesure que vous saisissez du texte. Plus vous saisissez de caractères lors de votre requête de recherche, plus la liste des résultats diminuera. Les résultats de recherche sont renseignés à partir de la and/or description du nom du nœud. Choisissez un nœud pour l’ajouter à votre canevas. 

#### Transformations et données
<a name="glue-studio-ui-components-transforms-and-data"></a>

 Deux onglets organisent les nœuds en **Transformations** et **Données**. 

 **Transformations** : lorsque vous choisissez l’onglet **Transformations**, toutes les transformations disponibles peuvent être sélectionnées. Choisissez une transformation pour l’ajouter au canevas. Vous pouvez également choisir **Ajouter une transformation** au bas de la liste des transformations, ce qui ouvrira une nouvelle page de documentation sur la création de [Transformations visuelles personnalisées](https://docs.aws.amazon.com/glue/latest/ug/custom-visual-transform.html). En suivant les étapes, vous pourrez créer vos propres transformations. Vos transformations apparaîtront alors dans la liste des transformations disponibles. 

 **Données** : l’onglet de données contient tous les nœuds des **Sources** et des **Cibles**. Vous pouvez masquer les sources et les cibles en cliquant sur le triangle situé à côté de l’en-tête sources ou cibles. Vous pouvez afficher les sources et les cibles en cliquant à nouveau sur le triangle. Choisissez un nœud source ou cible pour l’ajouter au canevas. Vous pouvez également choisir **Gérer les connexions** pour ajouter une nouvelle connexion. Cela ouvrira la page Connecteurs dans la console. 

# AWS Glue pour Spark et AWS Glue pour Ray
<a name="how-it-works-engines"></a>

Dans AWS Glue Apache Spark (AWS Glue ETL), vous pouvez PySpark écrire du code Python pour gérer les données à grande échelle. Spark est une solution familière à ce problème, mais les ingénieurs de données formés à Python peuvent trouver la transition peu intuitive. Le DataFrame modèle Spark n'est pas parfaitement « pythonique », ce qui reflète le langage Scala et le runtime Java sur lesquels il repose.

Dans AWS Glue, vous pouvez utiliser des tâches shell Python pour exécuter des intégrations de données Python natives. Ces tâches s'exécutent sur une seule EC2 instance Amazon et sont limitées par la capacité de cette instance. Elle limite le débit des données que vous pouvez traiter et devient coûteuse à gérer lorsqu'il s'agit de Big Data.

AWS Glue for Ray vous permet d'augmenter les charges de travail en Python sans investir de manière substantielle dans l'apprentissage de Spark. Vous pouvez tirer parti de certains scénarios dans lesquels Ray est plus performant. En vous offrant le choix, vous pouvez utiliser les points forts de Spark et de Ray.

AWS Glue ETL et AWS Glue for Ray sont différents en dessous, ils supportent donc des fonctionnalités différentes. Consultez la documentation pour identifier les fonctionnalités prises en charge.

## Qu'est-ce que c'est AWS Glue pour Ray ?
<a name="how-it-works-ray"></a>

Ray est une infrastructure de calcul distribuée open source que vous pouvez utiliser pour augmenter les charges de travail, en mettant l'accent sur Python. Pour plus d'informations sur Ray, consultez le [site Web de Ray](https://www.ray.io/). AWS Glue Les tâches de Ray et les sessions interactives vous permettent d'utiliser Ray dans Ray AWS Glue.

Vous pouvez utiliser AWS Glue for Ray pour écrire des scripts Python pour des calculs qui s'exécuteront en parallèle sur plusieurs machines. Dans les tâches et les sessions interactives Ray, vous pouvez utiliser des bibliothèques Python familières telles que Pandas, afin de faciliter l'écriture et l'exécution de vos flux de travail. Pour plus d'informations sur les jeux de données Ray, veuillez consulter la rubrique [Jeux de données Ray](https://docs.ray.io/en/latest/data/dataset.html) dans la documentation Ray. Pour plus d'informations sur pandas, veuillez consulter le [site Web Pandas](https://pandas.pydata.org/).

Avec AWS Glue for Ray, vous pouvez exécuter vos flux de travail Pandas sur des mégadonnées à l'échelle de l'entreprise, avec seulement quelques lignes de code. Vous pouvez créer une tâche Ray à partir de la AWS Glue console ou du AWS SDK. Vous pouvez également ouvrir une session AWS Glue interactive pour exécuter votre code dans un environnement Ray sans serveur. Les tâches visuelles dans ne AWS Glue Studio sont pas encore prises en charge.

AWS Glue les jobs for Ray vous permettent d'exécuter un script selon un calendrier ou en réponse à un événement d'Amazon EventBridge. Les jobs stockent des informations de journal et des statistiques de surveillance CloudWatch qui vous permettent de comprendre l'état et la fiabilité de votre script. Pour plus d'informations sur le système des AWS Glue tâches, consultez[Travailler avec Ray Jobs dans AWS Glue](ray-jobs-section.md).

Ray automatise la mise à l'échelle du code Python en répartissant le traitement sur un cluster de machines qu'il reconfigure en temps réel, en fonction de la charge. Cette opération peut entraîner une amélioration des performances par dollar pour certaines charges de travail. Avec Ray Jobs, nous avons intégré la mise à l'échelle automatique de manière native dans le modèle de AWS Glue travail, afin que vous puissiez tirer pleinement parti de cette fonctionnalité. Les travaux de Ray sont exécutés sur AWS Graviton, ce qui se traduit par une meilleure performance globale en termes de prix.

Outre les économies de coûts qu'elle permet, vous pouvez utiliser la mise à l'échelle automatique native pour exécuter les charges de travail Ray sans consacrer de temps à la maintenance, au réglage et à l'administration des clusters. Vous pouvez utiliser des bibliothèques open source familières prêtes à l'emploi, telles que Pandas, et le AWS SDK pour Pandas. Elles améliorent la vitesse d'itération pendant que vous développez sur AWS Glue pour Ray. Lorsque vous utiliserez AWS Glue for Ray, vous serez en mesure de développer et d'exécuter rapidement des charges de travail d'intégration de données rentables.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/OJ3ZngYTyNE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/OJ3ZngYTyNE)


# Conversion de schémas semi-structurés en schémas relationnels avec AWS Glue
<a name="schema-relationalize"></a>

Il est courant de vouloir convertir des données semi-structurées en tables relationnelles. Conceptuellement, vous aplatissez un schéma hiérarchique pour en faire un schéma relationnel. AWS Gluepeut effectuer cette conversion pour vous on-the-fly.

Les données semi-structurées contiennent généralement un balisage pour identifier les entités au sein des données. Il peut inclure des structures de données imbriquées sans schéma fixe. Pour en savoir plus sur les données semi-structurées, consultez [Semi-structured data](https://en.wikipedia.org/wiki/Semi-structured_data) dans Wikipédia. 

Les données relationnelles sont représentées par des tables composées de lignes et de colonnes. Les relations entre les tables peuvent être représentées par une relation entre clé primaire et clé étrangère. Pour en savoir plus, consultez [Base de données relationnelle](https://en.wikipedia.org/wiki/Relational_database) dans Wikipedia. 

AWS Glue utilise des crawlers pour déduire des schémas pour les données semi-structurées. Il transforme ensuite les données en un schéma relationnel à l'aide d'une tâche ETL (extraction, transformation et chargement). Par exemple, vous souhaiterez peut-être analyser les données JSON des fichiers source Amazon Simple Storage Service (Amazon S3) vers les tables Amazon Relational Database Service (Amazon RDS). Comprendre comment AWS Glue gère les différences entre les schémas peut vous aider à comprendre le processus de transformation. 

Ce diagramme montre comment AWS Glue transforme un schéma semi-structuré en schéma relationnel.

![\[Flux montrant la conversion d'un schéma semi-structuré en schéma relationnel.\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/images/HowItWorks-schemaconversion.png)


Le diagramme illustre les éléments suivants :
+ La valeur unique `A` est convertie directement en une colonne relationnelle.
+ La paire de valeurs `B1` et `B2` est convertie en deux colonnes relationnelles.
+ La structure `C` et ses enfants `X` et `Y` sont convertis en deux colonnes relationnelles.
+ Le tableau `D[]` est converti en une colonne relationnelle avec une clé étrangère qui pointe vers une autre table relationnelle. En plus d'une clé primaire, la seconde table relationnelle comporte des colonnes qui contiennent le décalage et la valeur des éléments du tableau.

# AWS Systèmes de type Glue
<a name="glue-types"></a>

 AWS Glue utilise plusieurs types de systèmes pour fournir une interface polyvalente sur des systèmes de données qui stockent les données de manières très différentes. Ce document met fin à l'ambiguïté des systèmes de type AWS Glue et des normes de données.

## AWS Types de catalogues de données Glue
<a name="glue-types-catalog"></a>

Le catalogue de données est un metastore, un registre de tables et de champs stockés dans divers systèmes de données. Lorsque les composants AWS Glue, tels que les robots AWS Glue et les tâches AWS Glue with Spark, écrivent dans le catalogue de données, ils le font à l'aide d'un système de typage interne permettant de suivre les types de champs. Ces valeurs sont affichées dans la colonne **Type de données** du schéma de table de la console AWS Glue. Ce système de types est basé sur le système de types d'Apache Hive. Pour plus d'informations sur le système de types Apache Hive, veuillez consulter la rubrique [Types](https://cwiki.apache.org/confluence/display/hive/languagemanual+types) du wiki Apache Hive. Pour plus d'informations sur les types spécifiques et leur support, des exemples sont fournis dans la console AWS Glue, dans le cadre du Schema Builder.

### Validation, compatibilité et autres utilisations
<a name="w2aac11c31b5b5"></a>

Le catalogue de données ne valide pas les types écrits dans des champs de type. Lorsque les composants de AWS Glue lisent et écrivent dans le catalogue de données, ils sont compatibles entre eux. AWS Les composants Glue visent également à préserver un haut degré de compatibilité avec les types Hive. Cependant, les composants AWS Glue ne garantissent pas la compatibilité avec tous les types de Hive. Cela permet l'interopérabilité avec des outils tels que les DDL Athena lorsque vous utilisez des tables dans le catalogue de données.

Le catalogue de données ne validant pas les types, d'autres services peuvent utiliser le catalogue de données pour suivre les types à l'aide de systèmes strictement conformes au système de types Hive ou à tout autre système. 

## Types dans les scripts AWS Glue with Spark
<a name="glue-types-spark"></a>

Lorsqu'un script AWS Glue with Spark interprète ou transforme un ensemble de données, nous fournissons `DynamicFrame` une représentation en mémoire de votre ensemble de données tel qu'il est utilisé dans votre script. L'objectif d'un `DynamicFrame` est similaire à celui du `DataFrame` Spark : il modélise votre jeu de données afin que Spark puisse planifier et exécuter des transformations sur vos données. Nous garantissons que la représentation du type de `DynamicFrame` est compatible avec un `DataFrame` en fournissant les méthodes `toDF` et `fromDF`.

Si les informations de type peuvent être déduites ou fournies à un `DataFrame`, elles peuvent être déduites ou fournies à un `DynamicFrame`, sauf indication contraire. Lorsque nous fournissons des lecteurs ou des rédacteurs optimisés pour des formats de données spécifiques, si Spark peut lire ou écrire vos données, les lecteurs et rédacteurs pourront le faire également, sous réserve de restrictions documentées. Pour plus d'informations sur les lecteurs et les rédacteurs, veuillez consulter la rubrique [Options de format pour les entrées et sorties dans AWS Glue pour Spark](aws-glue-programming-etl-format.md).

### Le type de choix
<a name="w2aac11c31b7b7"></a>

Les `DynamicFrames` fournissent un mécanisme pour modéliser les champs d'un jeu de données dont les valeurs peuvent présenter des types incohérents sur le disque entre les lignes. Par exemple, un champ peut contenir un nombre stocké sous forme de chaîne dans certaines lignes et un entier dans d'autres. Ce mécanisme est un type en mémoire appelé `Choice`. Nous proposons des transformations, telles que la `ResolveChoice` méthode, pour résoudre les colonnes Choice en un type concret. AWS Glue ETL n'écrit pas le type Choice dans le catalogue de données dans le cours normal des opérations ; les types Choice n'existent que dans le contexte des modèles de DynamicFrame mémoire des ensembles de données. Pour un exemple d'utilisation du type de choix, veuillez consulter la rubrique [Exemple de code : préparation des données à l'aide ResolveChoice de Lambda et ApplyMapping](aws-glue-programming-python-samples-medicaid.md).

## AWS Types de Glue Crawler
<a name="glue-types-crawler"></a>

Les crawlers visent à produire un schéma cohérent et utilisable pour votre ensemble de données, puis à le stocker dans Data Catalog pour l'utiliser dans d'autres composants de AWS Glue et Athena. Les crawlers traitent les types comme indiqué dans la section précédente du catalogue de données, [AWS Types de catalogues de données Glue](#glue-types-catalog). Pour produire un type utilisable dans les scénarios de type « choix », où une colonne contient des valeurs de deux types ou plus, les Crawlers créeront un type `struct` qui modélise les types potentiels.