

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.

# Recommandations pour choisir le bon outil de préparation des données en SageMaker IA
<a name="data-prep"></a>

La préparation des données dans le cadre du machine learning fait référence au processus de collecte, de prétraitement et d’organisation des données brutes afin de les adapter pour l’analyse et la modélisation. Cette étape garantit que les données seront dans un format qui permettra aux algorithmes de machine learning d’apprendre réellement. Les tâches de préparation des données peuvent inclure le traitement des valeurs manquantes, la suppression des valeurs aberrantes, la mise à l’échelle des caractéristiques, le codage de variables catégorielles, l’évaluation des biais potentiels et la prise de mesures pour les atténuer, la division des données en ensembles d’entraînement et de test, l’étiquetage et les autres transformations nécessaires à l’optimisation de la qualité et de l’utilisabilité des données pour les tâches de machine learning ultérieures.

## Choix d’une fonctionnalité
<a name="data-prep-choose"></a>

Il existe 3 principaux cas d'utilisation pour la *préparation des données* avec Amazon SageMaker AI. Choisissez le [cas d’utilisation](#data-prep-choose-use-cases) qui correspond à vos besoins, puis reportez-vous à la [fonctionnalité recommandée](#data-prep-choose-recommended) correspondante.

### Cas d’utilisation
<a name="data-prep-choose-use-cases"></a>

Voici les principaux cas d’utilisation dans le cadre de la préparation des données pour le machine learning.
+ **Cas d'utilisation 1** : Pour ceux qui préfèrent une interface visuelle, l' SageMaker IA permet d'explorer, de préparer et de concevoir des fonctionnalités pour la formation des modèles dans un point-and-click environnement. 
+ **Cas d'utilisation 2** : Pour les utilisateurs habitués au codage qui souhaitent plus de flexibilité et de contrôle sur la préparation des données, l' SageMaker IA intègre des outils dans ses environnements de codage pour l'exploration, les transformations et l'ingénierie des fonctionnalités. 
+ **Cas d'utilisation 3** : Pour les utilisateurs axés sur la préparation évolutive des données, l' SageMaker IA propose des fonctionnalités sans serveur qui tirent parti de l'écosystème Hadoop/Spark pour le traitement distribué des mégadonnées.

### Fonctionnalités recommandées
<a name="data-prep-choose-recommended"></a>

Le tableau suivant décrit les principales considérations et les compromis relatifs aux fonctionnalités d' SageMaker IA liés à chaque cas d'utilisation de la préparation des données pour l'apprentissage automatique. Pour commencer, identifiez le cas d'utilisation qui correspond à vos besoins et accédez à la fonctionnalité d' SageMaker IA recommandée.


| Descripteur | Cas d’utilisation 1 | Cas d’utilisation 2 | Cas d’utilisation 3 | 
| --- | --- | --- | --- | 
| SageMaker Fonctionnalité d'IA | [Data Wrangler dans Amazon Canvas](canvas-data-prep.md) SageMaker  | [Préparation des données avec SQL dans Studio](sagemaker-sql-extension.md) | Applications [Préparation des données à l’aide d’EMR sans serveur](studio-notebooks-emr-serverless.md) dans Studio | 
| Description | SageMaker Canvas est un environnement visuel à faible code pour la création, la formation et le déploiement de modèles d'apprentissage automatique dans l' SageMaker IA. Son outil Data Wrangler intégré permet aux utilisateurs de combiner, de transformer et de nettoyer des ensembles de données par le biais d'interactions. point-and-click | L'extension SQL de Studio permet aux utilisateurs de se connecter à Amazon Redshift, Snowflake, Athena et Amazon S3 pour créer des requêtes SQL ad hoc et prévisualiser les résultats dans des blocs-notes. JupyterLab Le résultat de ces requêtes peut être manipulé en utilisant Python et Pandas pour un traitement, une visualisation et une transformation supplémentaires dans des formats utilisables pour le développement de modèles de machine learning. | L'intégration entre EMR Serverless et Amazon SageMaker Studio fournit un environnement sans serveur évolutif pour la préparation de données à grande échelle pour le machine learning à l'aide de frameworks open source tels qu'Apache Spark et Apache Hive. Les utilisateurs peuvent accéder directement aux applications et aux données EMR sans serveur depuis leurs blocs-notes Studio pour effectuer leurs tâches de préparation des données à grande échelle. | 
| Optimisé pour | Utilisation d’une interface visuelle dans laquelle vous pouvez : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-prep.html) Optimisé pour les tâches de données tabulaires telles que le traitement des valeurs manquantes, le codage de variables catégorielles et l’application de transformations de données.  | Pour les utilisateurs dont les données se trouvent dans Amazon Redshift, Snowflake, Athena ou [Amazon S3](studio-sqlexplorer-athena-s3-quickstart.md) et qui souhaitent associer le langage SQL exploratoire et Python pour l’analyse et à la préparation des données sans avoir besoin d’apprendre Spark. | Pour les utilisateurs qui préfèrent une expérience sans serveur avec provisionnement et arrêt automatiques des ressources pour faire évoluer des charges de travail interactives de courte durée ou intermittentes autour d'Apache Spark, tout en tirant parti des capacités d'apprentissage automatique de l' SageMaker IA. | 
| Considérations |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-prep.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-prep.html)  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-prep.html)  | 
| Environnement recommandé | [Commencer à utiliser SageMaker Canvas](canvas-getting-started.md) | [Lancer Studio](studio-updated-launch.md#studio-updated-launch-prereq) | [Lancer Studio](studio-updated-launch.md#studio-updated-launch-prereq) | 

### Options supplémentaires
<a name="data-prep-choose-additional"></a>

 SageMaker L'IA propose les options supplémentaires suivantes pour préparer vos données en vue de leur utilisation dans des modèles d'apprentissage automatique. 
+ [Préparation des données à l’aide d’Amazon EMR](studio-notebooks-emr-cluster.md): Pour les tâches de traitement de données de longue durée, gourmandes en calculs et à grande échelle, pensez à utiliser les clusters Amazon EMR de Studio. SageMaker Les clusters Amazon EMR sont conçus pour gérer une parallélisation massive et peuvent être mis à l’échelle vers des centaines ou des milliers de nœuds, ce qui les rend parfaitement adaptés aux charges de travail du big data qui nécessitent des cadres tels qu’Apache Spark, Hadoop, Hive et Presto. L'intégration d'Amazon EMR à SageMaker Studio vous permet de tirer parti de l'évolutivité et des performances d'Amazon EMR, tout en centralisant et en gérant l'intégralité de votre expérimentation du ML, de la formation des modèles et du déploiement au sein de l'environnement Studio. SageMaker 
+ [Préparez les données à l'aide de sessions interactives Glue](studio-notebooks-glue.md) : vous pouvez utiliser le moteur sans serveur basé sur Apache Spark à partir de sessions AWS Glue interactives pour agréger, transformer et préparer des données provenant de plusieurs sources dans Studio. SageMaker 
+ [Identifiez les biais dans les données de formation]() à l'aide des tâches de traitement Amazon SageMaker SageMaker Clarify : Clarify analyse vos données et détecte les biais potentiels sur de multiples aspects. Par exemple, vous pouvez utiliser l’API Clarify dans Studio pour détecter si vos données d’entraînement contiennent des représentations déséquilibrées ou des biais d’étiquetage entre des groupes tels que le sexe, la race ou l’âge. Clarify peut vous aider à identifier ces biais avant d’entraîner un modèle afin d’éviter de les propager dans les prédictions du modèle.
+ [Créez, stockez et partagez des fonctionnalités]() : Amazon SageMaker Feature Store optimise la découverte et la réutilisation de fonctionnalités sélectionnées pour le machine learning. Il fournit un référentiel centralisé pour stocker les données des caractéristiques qui peuvent être recherchées et extraites pour l’entraînement des modèles. Le stockage des fonctionnalités dans un format standardisé permet de les réutiliser dans les projets ML. Feature Store gère le cycle de vie complet des fonctionnalités, y compris le suivi de traçabilité, les statistiques et les pistes d’audit pour une ingénierie des caractéristiques de machine learning évolutive et gouvernée.
+ [Étiquetez les données avec un human-in-the-loop](data-label.md) : vous pouvez utiliser SageMaker Ground Truth pour gérer les flux de travail d'étiquetage des données de vos ensembles de données d'entraînement. 
+ [Utiliser l'API de SageMaker traitement](processing-job.md) : après avoir effectué une analyse exploratoire des données et créé les étapes de transformation de vos données, vous pouvez produire votre code de transformation à l'aide de [tâches de traitement par SageMaker IA](processing-job.md) et automatiser votre flux de préparation à l'aide de pipelines de [SageMaker modélisation](pipelines.md).

# Préparation des données avec SQL dans Studio
<a name="sagemaker-sql-extension"></a>

Amazon SageMaker Studio fournit une extension SQL intégrée. Cette extension permet aux data scientists d'effectuer des tâches telles que l'échantillonnage, l'analyse exploratoire et l'ingénierie des fonctionnalités directement dans leurs JupyterLab ordinateurs portables. Il tire parti des AWS Glue connexions pour gérer un catalogue de sources de données centralisé. Ce catalogue stocke les métadonnées relatives aux différentes sources de données. Grâce à cet environnement SQL, les scientifiques des données peuvent parcourir les catalogues de données, explorer leurs données, créer des requêtes SQL complexes et traiter ensuite les résultats dans Python. 

Cette section vous guide pour configurer l’extension SQL dans Studio. Il décrit les fonctionnalités activées par cette intégration SQL et fournit des instructions pour exécuter des requêtes SQL dans des JupyterLab blocs-notes. 

Pour activer l'analyse des données SQL, les administrateurs doivent d'abord configurer AWS Glue les connexions aux sources de données pertinentes. Ces connexions permettent aux data scientists d'accéder facilement aux ensembles de données autorisés depuis l'intérieur JupyterLab. 

Outre les AWS Glue connexions configurées par l'administrateur, l'extension SQL permet aux data scientists individuels de créer leurs propres connexions aux sources de données. Ces connexions créées par l’utilisateur peuvent être gérées indépendamment et adaptées au profil de l’utilisateur grâce à des politiques de contrôle d’accès basées sur des balises. Ce modèle de connexion à deux niveaux, avec des connexions configurées par l’administrateur et d’autres créées par l’utilisateur, permet aux scientifiques des données d’accéder plus largement aux données dont ils ont besoin pour leurs tâches d’analyse et de modélisation. Les utilisateurs peuvent configurer les connexions nécessaires à leurs propres sources de données dans l'interface utilisateur (UI) de JupyterLab l'environnement, sans se fier uniquement aux connexions centralisées établies par l'administrateur.

**Important**  
La fonctionnalité de création de connexions définies par l’utilisateur est disponible sous la forme d’un ensemble de bibliothèques autonomes dans PyPI. Pour utiliser cette fonctionnalité, vous devez installer les bibliothèques suivantes dans votre JupyterLab environnement :  
[amazon-sagemaker-sql-editor](https://pypi.org/project/amazon-sagemaker-sql-editor/)
[amazon-sagemaker-sql-execution](https://pypi.org/project/amazon-sagemaker-sql-execution/)
[amazon-sagemaker-sql-magic](https://pypi.org/project/amazon-sagemaker-sql-magic/)
Vous pouvez installer ces bibliothèques en exécutant les commandes suivantes dans votre JupyterLab terminal :  

```
pip install amazon-sagemaker-sql-editor>=0.1.13
pip install amazon-sagemaker-sql-execution>=0.1.6
pip install amazon-sagemaker-sql-magic>=0.1.3
```
Après avoir installé les bibliothèques, vous devez redémarrer le JupyterLab serveur pour que les modifications soient prises en compte.  

```
restart-jupyter-server
```

Une fois l'accès configuré, JupyterLab les utilisateurs peuvent :
+ afficher et parcourir les sources de données préconfigurées ;
+ rechercher, filtrer et inspecter les éléments d’information de base de données tels que les tables, les schémas et les colonnes ;
+ générer automatiquement les paramètres de connexion à une source de données ;
+ créer des requêtes SQL complexes à l’aide des fonctionnalités de coloration syntaxique, de saisie automatique et de mise en forme SQL de l’éditeur SQL de l’extension ;
+ Exécutez des instructions SQL à partir de cellules du JupyterLab bloc-notes.
+ Récupérez les résultats des requêtes SQL pandas DataFrames pour le traitement ultérieur, la visualisation et d'autres tâches d'apprentissage automatique.

Vous pouvez accéder à l'extension en choisissant l'icône de l'extension SQL (![\[Icon of the SQL extension feature in JupyterLab.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-icon.png)) dans le volet de navigation gauche de votre JupyterLab application dans Studio. Pointer sur cette icône permet d’afficher l’info-bulle *Découverte des données*.

**Important**  
L' JupyterLab image dans SageMaker Studio contient l'extension SQL par défaut, à partir de [SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution) 1.6. L'extension fonctionne uniquement avec Python et SparkMagic les noyaux.
L'interface utilisateur de l'extension permettant d'explorer les connexions et les données n'est disponible que JupyterLab dans Studio. Elle est compatible avec [Amazon Redshift](https://aws.amazon.com/redshift/), [Amazon Athena](https://aws.amazon.com/athena/) et [Snowflake](https://www.snowflake.com/en/).
+ Si vous êtes administrateur et que vous souhaitez créer des connexions génériques aux sources de données pour l’extension SQL, procédez comme suit :

  1. Activez la communication réseau entre votre domaine Studio et les sources de données auxquelles vous souhaitez vous connecter. Pour découvrir les exigences de mise en réseau, consultez [Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)](sagemaker-sql-extension-networking.md).

  1. Consultez les propriétés et les instructions de connexion pour créer un secret pour votre source de données dans [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md).

  1. Créez les AWS Glue connexions à vos sources de données dans[Création de AWS Glue connexions (pour les administrateurs)](sagemaker-sql-extension-datasources-glue-connection.md).

  1. Accordez au rôle d'exécution de votre SageMaker domaine ou de vos profils utilisateur les autorisations requises dans[Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)](sagemaker-sql-extension-datasources-connection-permissions.md).
+ Si vous êtes un scientifique des données et que vous souhaitez créer vos propres connexions aux sources de données pour l’extension SQL, procédez comme suit :

  1. Demandez à votre administrateur d’effectuer les opérations suivantes :
     + Activez la communication réseau entre votre domaine Studio et les sources de données auxquelles vous souhaitez vous connecter. Pour découvrir les exigences de mise en réseau, consultez [Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)](sagemaker-sql-extension-networking.md).
     + Accordez au rôle d'exécution de votre SageMaker domaine ou de vos profils utilisateur les autorisations requises dans[Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)](sagemaker-sql-extension-datasources-connection-permissions.md).
**Note**  
Les administrateurs peuvent restreindre l'accès des utilisateurs aux connexions créées dans l' JupyterLab application en configurant le [contrôle d'accès basé sur des balises](sagemaker-sql-extension-datasources-connection-permissions.md#user-defined-connections-permissions) dans le rôle d'exécution.

  1. Consultez les propriétés et les instructions de connexion pour créer un secret pour votre source de données dans [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md).

  1. Créez votre connexion dans l' JupyterLab interface utilisateur en suivant les instructions de[Création de connexions définies par l'utilisateur AWS Glue](sagemaker-sql-extension-datasources-glue-connection-user-defined.md).
+ Si vous êtes un scientifique des données et que vous souhaitez parcourir et interroger vos sources de données à l’aide de l’extension SQL, assurez-vous que vous ou votre administrateur avez préalablement configuré les connexions à vos sources de données. Ensuite, procédez comme suit :

  1. Créez un espace privé pour lancer votre JupyterLab application dans Studio à l'aide de l'image de SageMaker distribution version 1.6 ou supérieure.

  1. Si vous utilisez la version 1.6 de l'image de SageMaker distribution, chargez l'extension SQL dans un JupyterLab bloc-notes en l'exécutant `%load_ext amazon_sagemaker_sql_magic` dans une cellule du bloc-notes.

     Pour les utilisateurs des versions 1.7 et ultérieures de l'image de SageMaker distribution, aucune action n'est nécessaire, l'extension SQL se charge automatiquement.

  1. Familiarisez-vous avec les fonctionnalités de l’extension SQL dans [Fonctionnalités et utilisation de l’extension SQL](sagemaker-sql-extension-features.md).

**Topics**
+ [Démarrage rapide : interrogation des données dans Amazon S3](studio-sqlexplorer-athena-s3-quickstart.md)
+ [Fonctionnalités et utilisation de l’extension SQL](sagemaker-sql-extension-features.md)
+ [Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)](sagemaker-sql-extension-networking.md)
+ [Connexions aux sources de données de l’extension SQL](sagemaker-sql-extension-datasources-connection.md)
+ [Questions fréquentes (FAQ)](sagemaker-sql-extension-faqs.md)
+ [Paramètres de connexion](sagemaker-sql-extension-connection-properties.md)

# Démarrage rapide : interrogation des données dans Amazon S3
<a name="studio-sqlexplorer-athena-s3-quickstart"></a>

Les utilisateurs peuvent analyser les données stockées dans Amazon S3 en exécutant des requêtes SQL à partir de JupyterLab blocs-notes à l'aide de l'extension SQL. L’extension s’intègre à Athena pour activer la fonctionnalité des données dans Amazon S3 en quelques étapes supplémentaires.

Cette section explique les étapes à suivre pour charger des données depuis Amazon S3 dans Athena, puis interroger ces données à JupyterLab l'aide de l'extension SQL. Vous allez créer une source de données Athena et un AWS Glue robot d'exploration pour indexer vos données Amazon S3, configurer les autorisations IAM appropriées pour permettre l'accès JupyterLab à Athena et vous connecter à Athena pour interroger les JupyterLab données. En suivant ces quelques étapes, vous serez en mesure d'analyser les données Amazon S3 à l'aide de l'extension SQL dans les JupyterLab blocs-notes.

**Conditions préalables**  
Connectez-vous à la console de AWS gestion à l'aide d'un compte utilisateur Gestion des identités et des accès AWS (IAM) doté d'autorisations d'administrateur. Pour en savoir plus sur la façon de s’inscrire à un compte AWS et de créer un utilisateur doté d’un accès administratif, consultez [Compléter les prérequis SageMaker relatifs à Amazon AI](gs-set-up.md).
Disposez d'un domaine SageMaker AI et d'un profil utilisateur pour accéder à SageMaker Studio. Pour plus d'informations sur la configuration d'un environnement d' SageMaker IA, consultez[Utiliser la configuration rapide pour Amazon SageMaker AI](onboard-quick-start.md).
Disposez d'un compartiment et d'un dossier Amazon S3 pour stocker les résultats des requêtes Athena, en utilisant la même AWS région et le même compte que votre environnement d' SageMaker IA. Pour en savoir plus sur la façon de créer un compartiment dans Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans la documentation d’Amazon S3. Vous allez configurer ce compartiment et ce dossier pour qu’ils soient l’emplacement de sortie de vos requêtes.

**Topics**
+ [Étape 1 : configurer une source de données Athena et un AWS Glue robot d'exploration pour vos données Amazon S3](#studio-sqlexplorer-athena-s3-quickstart-setup)
+ [Étape 2 : Octroi à Studio des autorisations d’accès à Athena](#studio-sqlexplorer-athena-s3-quickstart-permissions)
+ [Étape 3 : activer la connexion par défaut d'Athena dans JupyterLab](#studio-sqlexplorer-athena-s3-quickstart-connect)
+ [Étape 4 : interroger des données dans Amazon S3 à partir de JupyterLab blocs-notes à l'aide de l'extension SQL](#studio-sqlexplorer-athena-s3-quickstart-query)

## Étape 1 : configurer une source de données Athena et un AWS Glue robot d'exploration pour vos données Amazon S3
<a name="studio-sqlexplorer-athena-s3-quickstart-setup"></a>

Suivez ces étapes pour indexer vos données dans Amazon S3 et créer des tables dans Athena.

**Note**  
Pour éviter les collisions entre les noms de tables provenant de différents emplacements Amazon S3, créez une source de données et un robot distincts pour chaque emplacement. Chaque source de données crée une table nommée d’après le dossier qui les contient, sauf si elle est préfixée.

1. Configurez un emplacement de résultats de requêtes.

   1. Accédez à la console Athena :. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)

   1. Dans le menu de gauche, choisissez **Groupes de travail**.

   1. Suivez le lien du groupe de travail `primary` et choisissez **Modifier**.

   1. Dans la section **Configuration des résultats de requêtes**, entrez le chemin Amazon S3 pour votre répertoire de sortie, puis choisissez **Enregistrer les modifications**.

1. Créez une source de données Athena pour vos données Amazon S3.

   1. Dans le menu de gauche de la console Athena, choisissez **Sources de données**, puis **Créer une source de données**. 

   1. Choisissez **S3 - Catalogue AWS Glue de données**, puis **Next**. 

   1. Laissez le **catalogue de données AWS Glue par défaut dans ce compte**, choisissez **Créer un analyseur dans AWS Glue**, puis **Créer dans AWS Glue**. Cela ouvre la AWS Glue console. 

1.  AWS Glue À utiliser pour explorer votre source de données

   1. Saisissez le nom et la description de votre nouveau robot, puis choisissez **Suivant**. 

   1. Sous **Sources de données**, choisissez **Ajouter une source de données**.

      1. Si le compartiment Amazon Amazon S3 contenant vos données se trouve dans un AWS compte différent de celui de votre environnement d' SageMaker IA, choisissez **Dans un autre compte** pour l'**emplacement des données S3**.

      1. Entrez le chemin d’accès à votre jeu de données dans Amazon S3. Par exemple :

         ```
         s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/
         ```

      1. Conservez toutes les autres valeurs par défaut, puis choisissez **Ajouter une source de données Amazon S3**. Vous devriez voir une nouvelle source de données Amazon S3 dans la table des sources de données.

      1. Choisissez **Suivant**.

       

   1. Configurez le rôle IAM permettant au robot d’accéder à vos données.
**Note**  
Chaque rôle est limité à la source de données que vous spécifiez. Lorsque vous réutilisez un rôle, modifiez la politique JSON pour ajouter toute nouvelle ressource à laquelle vous souhaitez accorder l’accès ou créez un nouveau rôle pour cette source de données.

      1. Choisissez **Créer un nouveau rôle IAM**.

      1. Saisissez le nom du rôle, puis choisissez **Suivant**.

1. Créez ou sélectionnez une base de données pour vos tables.

   1. Si vous n’avez pas de base de données existante dans Athena, choisissez **Ajouter une base de données**, puis **Créer une base de données**.

   1. De retour dans l’onglet précédent de création de votre robot, dans **Configuration de sortie**, choisissez le bouton **Actualiser**. Vous devez maintenant voir votre base de données nouvellement créée dans la liste.

   1. Sélectionnez votre base de données, ajoutez un préfixe facultatif dans **Préfixe de nom de table**, puis choisissez **Suivant**.
**Note**  
Dans l’exemple précédent où vos données figurent dans `s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/`, l’ajout du préfixe `taxi-ride-` créera une table nommée `taxi-ride-year_2019`. L’ajout d’un préfixe permet d’éviter les collisions de noms de table lorsque plusieurs emplacements de données ont des dossiers du même nom.

1. Choisissez **Créer un robot**.

1. Exécutez votre robot pour indexer vos données. Attendez que l’exécution du robot atteigne le statut `Completed`, ce qui peut prendre quelques minutes.

Pour vous assurer qu'une nouvelle table a été créée, allez dans le menu de gauche AWS Glue et choisissez **Bases de données** puis **Tables**. Vous devriez maintenant voir une nouvelle table contenant vos données. 

## Étape 2 : Octroi à Studio des autorisations d’accès à Athena
<a name="studio-sqlexplorer-athena-s3-quickstart-permissions"></a>

Dans les étapes suivantes, vous accordez au rôle d’exécution de votre profil utilisateur les autorisations d’accès à Athena.

1. Récupérez l’ARN du rôle d’exécution associé à votre profil utilisateur.

   1. Accédez à la console SageMaker AI [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et choisissez **Domaines** dans le menu de gauche.

   1. Suivez le nom pour votre nom de domaine.

   1. Dans la liste **Profils utilisateur**, suivez le nom de votre profil utilisateur.

   1. Sur la page **Détails de l’utilisateur**, copiez l’ARN du rôle d’exécution.

1. Mettez à jour la politique de votre rôle d’exécution.

   1. Trouvez votre AWS région et votre numéro de compte en haut à droite de la console SageMaker AI. Utilisez ces valeurs et le nom de votre base de données pour mettre à jour les espaces réservés dans la politique JSON suivante, dans un éditeur de texte.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "GetS3AndDataSourcesMetadata",
                  "Effect": "Allow",
                  "Action": [
                      "glue:GetDatabases",
                      "glue:GetSchema",
                      "glue:GetTables",
                      "s3:ListBucket",
                      "s3:GetObject",
                      "s3:GetBucketLocation",
                      "glue:GetDatabase",
                      "glue:GetTable",
                      "glue:ListSchemas",
                      "glue:GetPartitions"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*",
                      "arn:aws:glue:us-east-1:111122223333:catalog",
                      "arn:aws:glue:us-east-1:111122223333:database/db-name"
                  ]
              },
              {
                  "Sid": "ExecuteAthenaQueries",
                  "Effect": "Allow",
                  "Action": [
                      "athena:ListDataCatalogs",
                      "athena:ListDatabases",
                      "athena:ListTableMetadata",
                      "athena:StartQueryExecution",
                      "athena:GetQueryExecution",
                      "athena:RunQuery",
                      "athena:StartSession",
                      "athena:GetQueryResults",
                      "athena:ListWorkGroups",
                      "s3:ListMultipartUploadParts",
                      "s3:ListBucket",
                      "s3:GetBucketLocation",
                      "athena:GetDataCatalog",
                      "s3:AbortMultipartUpload",
                      "s3:GetObject",
                      "s3:PutObject",
                      "athena:GetWorkGroup"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              },
              {
                  "Sid": "GetGlueConnectionsAndSecrets",
                  "Effect": "Allow",
                  "Action": [
                      "glue:GetConnections",
                      "glue:GetConnection"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

------

   1. Accédez à la console IAM : [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)et choisissez **Rôles** dans le menu de gauche.

   1. Recherchez votre rôle par nom de rôle.
**Note**  
Vous pouvez extraire le nom d’un rôle d’exécution à partir de son Amazon Resource Name (ARN) en divisant l’ARN sur `'/'` et en prenant le dernier élément. Par exemple, dans l’exemple d’ARN suivant, `arn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole`, le nom du rôle d’exécution est `SageMakerStudio-SQLExtension-ExecutionRole`.

   1. Suivez le lien correspondant à votre rôle.

   1. Dans l’onglet **Autorisations**, choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Choisissez le format `JSON` dans la section **Éditeur de politique**.

   1. Copiez la politique ci-dessus, puis choisissez **Suivant**. Assurez-vous d’avoir remplacé tous les `account-id`, `region-name` et `db-name` par leurs valeurs.

   1. Saisissez un nom pour votre politique, puis choisissez **Créer une politique**.

## Étape 3 : activer la connexion par défaut d'Athena dans JupyterLab
<a name="studio-sqlexplorer-athena-s3-quickstart-connect"></a>

Dans les étapes suivantes, vous allez activer un `default-athena-connection` dans votre JupyterLab application. La connexion Athena par défaut permet d'exécuter des requêtes SQL dans Athena directement depuis JupyterLab, sans qu'il soit nécessaire de créer manuellement une connexion.

Pour activer la connexion Athena par défaut

1. Accédez à la console SageMaker AI [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et choisissez **Studio** dans le menu de gauche. À l’aide de votre domaine et de votre profil utilisateur, lancez Studio.

1. Choisissez l' JupyterLab application. 

1. Si vous n'avez pas créé d'espace pour votre JupyterLab application, choisissez **Créer un JupyterLab espace**. Entrez un nom pour cet espace, conservez-le comme **Privé**, puis choisissez **Créer un espace**. Gérez votre espace à l'aide de la dernière version de l'image SageMaker AI Distribution.

   Sinon, choisissez **Exécuter l'espace** sur votre espace pour lancer une JupyterLab application.

1. Activez la connexion par défaut d’Athena :

   1. Dans votre JupyterLab application, accédez au menu **Paramètres** dans la barre de navigation supérieure et ouvrez le menu de l'**éditeur de paramètres**.

   1. Choisissez **Découverte des données**.

   1. Cochez la case **Activer la connexion Athena par défaut**.

   1. Dans votre JupyterLab application, cliquez sur l'icône de l'extension SQL (![\[Purple circular icon with a clock symbol representing time or scheduling.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-icon.png)) dans le volet de navigation de gauche pour ouvrir l'extension SQL.

   1.  Choisissez le bouton **Actualiser** en bas du panneau de découverte de données. Vous devriez voir une `default-athena-connection` dans la liste des connexions.

## Étape 4 : interroger des données dans Amazon S3 à partir de JupyterLab blocs-notes à l'aide de l'extension SQL
<a name="studio-sqlexplorer-athena-s3-quickstart-query"></a>

Vous êtes prêt à interroger vos données à l'aide de SQL dans vos JupyterLab blocs-notes.

1. Ouvrez la connexion, `default-athena-connection` puis **AWS DataCatalog**.

1. Accédez à votre base de données et choisissez l’icône à trois points (![\[SQL extension three dots icon.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-3dots-icon.png)) sur sa droite. Sélectionnez **Requête dans le bloc-notes**.

   Cela remplit automatiquement une cellule du bloc-notes JupyterLab avec la commande `%%sm_sql` magique appropriée pour se connecter à la source de données. Cela ajoute également un exemple d’instruction SQL pour vous aider à exécuter des requêtes immédiatement. 
**Note**  
Assurez-vous de charger l’extension dans la cellule supérieure avant d’exécuter une requête SQL.

   Vous pouvez affiner encore la requête SQL à l’aide des fonctionnalités de saisie automatique et de surlignage de l’extension. Consultez [Fonctionnalités de l'extension JupyterLab SQL relatives à l'éditeur SQL](sagemaker-sql-extension-features-editor.md) pour plus d’informations sur l’utilisation de l’éditeur SQL de l’extension SQL.

# Fonctionnalités et utilisation de l’extension SQL
<a name="sagemaker-sql-extension-features"></a>

Cette section décrit les différentes fonctionnalités de l'extension JupyterLab SQL dans Studio et fournit des instructions sur leur utilisation. Avant de pouvoir utiliser l'extension SQL pour accéder aux données de vos JupyterLab blocs-notes et les interroger, un administrateur doit d'abord configurer la connexion à vos sources de données. Pour en savoir plus sur la manière dont les administrateurs peuvent créer des connexions aux sources de données, consultez [Connexions aux sources de données de l’extension SQL](sagemaker-sql-extension-datasources-connection.md).

**Note**  
Pour utiliser l'extension SQL, votre JupyterLab application doit s'exécuter sur une image [de distribution SageMaker AI](https://github.com/aws/sagemaker-distribution/blob/main/README.md) version 1.6 ou supérieure. L'extension est préinstallée sur ces SageMaker images.

L’extension fournit deux composants pour vous aider à accéder aux données provenant de sources de données préconfigurées, à les découvrir, à les interroger et à les analyser.
+ Utilisez l’*interface utilisateur* de l’extension SQL pour découvrir et explorer vos sources de données. Les capacités de l’interface utilisateur peuvent encore être divisées entre les sous-catégories suivantes.
  + Grâce à l’élément d’interface utilisateur d’**exploration des données**, vous pouvez parcourir vos sources de données et explorer leurs tables, colonnes et métadonnées. Pour obtenir des détails sur les fonctionnalités d’exploration des données de l’extension SQL, consultez [Navigation dans les données à l’aide de l’extension SQL](sagemaker-sql-extension-features-data-discovery.md).
  + L’élément de **mise en cache des connexions** met en cache les connexions pour un accès rapide. Pour obtenir des détails sur la mise en cache des connexions dans l’extension SQL, consultez [Mise en cache des connexions aux extensions SQL](sagemaker-sql-extension-features-connection-caching.md).
+ Utilisez l’*éditeur SQL et l’exécuteur* pour écrire, modifier et exécuter des requêtes SQL sur des sources de données connectées.
  + L'élément **éditeur SQL** vous permet d'écrire, de formater et de valider des instructions SQL dans les blocs-notes de votre JupyterLab application dans Studio. Pour obtenir des détails sur les fonctionnalités de l’éditeur SQL, consultez [Fonctionnalités de l'extension JupyterLab SQL relatives à l'éditeur SQL](sagemaker-sql-extension-features-editor.md).
  + Avec l'élément **d'exécution SQL**, vous pouvez exécuter vos requêtes SQL et visualiser leurs résultats depuis les blocs-notes de votre JupyterLab application dans Studio. Pour obtenir des détails sur les fonctionnalités d’exécution SQL, consultez [Fonctionnalités d'exécution SQL de l'extension JupyterLab SQL](sagemaker-sql-extension-features-sql-execution.md).

# Navigation dans les données à l’aide de l’extension SQL
<a name="sagemaker-sql-extension-features-data-discovery"></a>

Pour ouvrir l'interface utilisateur (UI) de l'extension SQL, cliquez sur l'icône de l'extension SQL (![\[Purple circular icon with a clock symbol representing time or scheduling.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-icon.png)) dans le volet de navigation de votre JupyterLab application dans Studio. La vue de découverte des données du panneau de gauche s’étend et affiche toutes les connexions de magasin de données préconfigurées à Amazon Athena, Amazon Redshift et Snowflake.

À partir de là, vous pouvez effectuer les actions suivantes :
+ Développer une connexion spécifique pour explorer ses bases de données, ses schémas, ses tables ou ses vues, ainsi que ses colonnes.
+ Rechercher une connexion spécifique à l’aide du champ de recherche de l’interface utilisateur de l’extension SQL. La recherche renvoie les bases de données, les schémas, les tables ou les vues qui correspondent partiellement à la chaîne que vous entrez.

**Note**  
Si Athena est déjà configurée dans votre AWS compte, vous pouvez en activer une `default-athena-connection` dans votre JupyterLab application. Cela vous permet d’exécuter des requêtes Athena sans avoir à créer manuellement la connexion. Pour activer la connexion Athena par défaut :  
Vérifiez auprès de votre administrateur que votre rôle d'exécution dispose des autorisations requises pour accéder à Athena et au AWS Glue catalogue. Pour obtenir des détails sur les autorisations requises, consultez [Configuration d'une AWS Glue connexion pour Athena](sagemaker-sql-extension-datasources-glue-connection.md#sagemaker-sql-extension-athena-glue-connection-config).
Dans votre JupyterLab application, accédez au menu **Paramètres** dans la barre de navigation supérieure et ouvrez le menu de l'**éditeur de paramètres**.
Choisissez **Découverte des données**.
Cochez la case **Activer la connexion Athena par défaut**.
Vous pouvez mettre à jour la valeur par défaut `primary` WorkGroup si nécessaire.

Pour interroger une base de données, un schéma ou une table dans un JupyterLab bloc-notes, à partir d'une connexion donnée dans le volet d'extension SQL :
+ Choisissez l’icône à trois points (![\[SQL extension three dots icon.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-3dots-icon.png)) sur le côté droit d’une base de données, d’un schéma ou d’une table quelconque.
+ Sélectionnez **Requête dans le bloc-notes** dans le menu.

  Cela remplit automatiquement une cellule du bloc-notes JupyterLab avec la commande `%%sm_sql` magique appropriée pour se connecter à la source de données. Cela ajoute également un exemple d’instruction SQL pour vous aider à exécuter des requêtes immédiatement. Vous pouvez affiner encore la requête SQL à l’aide des fonctionnalités de saisie automatique et de surlignage de l’extension. Consultez [Fonctionnalités de l'extension JupyterLab SQL relatives à l'éditeur SQL](sagemaker-sql-extension-features-editor.md) pour plus d’informations sur l’utilisation de l’éditeur SQL de l’extension SQL.

Au niveau de la table, l’icône à trois points fournit l’option supplémentaire permettant de choisir de **prévisualiser** les métadonnées d’une table.

Le contenu des cellules du JupyterLab bloc-notes ci-dessous montre un exemple de ce qui est généré automatiquement lorsque vous sélectionnez le menu **Requête dans le bloc-notes** sur une source de `redshift-connection` données dans le volet d'extension SQL.

```
%%sm_sql --metastore-id redshift-connection --metastore-type GLUE_CONNECTION

-- Query to list tables from schema 'dev.public'
SHOW TABLES
FROM
  SCHEMA "dev"."public"
```

Utilisez le symbole *inférieur à* (![\[Icon to clear the SQL extension search box.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/sqlexplorer/sqlexplorer-search-clear.png)) en haut du volet de l’extension SQL pour effacer le champ de recherche ou revenir à la liste de vos connexions.

**Note**  
L’extension met en cache vos résultats d’exploration pour un accès rapide. Si les résultats mis en cache sont périmés ou si une connexion est absente de votre liste, vous pouvez actualiser manuellement le cache en choisissant le bouton **Actualiser** en bas du panneau d’extension SQL. Pour plus d’informations sur la mise en cache des connexions, consultez [Mise en cache des connexions aux extensions SQL](sagemaker-sql-extension-features-connection-caching.md).

# Fonctionnalités de l'extension JupyterLab SQL relatives à l'éditeur SQL
<a name="sagemaker-sql-extension-features-editor"></a>

L'extension SQL fournit des commandes magiques qui activent les fonctionnalités de l'éditeur SQL dans les cellules de votre JupyterLab bloc-notes.

Si vous utilisez la version 1.6 de l'image de SageMaker distribution, vous devez charger la bibliothèque magique de l'extension SQL en l'exécutant `%load_ext amazon_sagemaker_sql_magic` dans un JupyterLab bloc-notes. Cela active les fonctionnalités d’édition SQL.

Pour les utilisateurs des versions 1.7 et ultérieures de l'image de SageMaker distribution, aucune action n'est nécessaire, l'extension SQL se charge automatiquement.

Une fois l’extension chargée, ajoutez la commande magique `%%sm_sql` au début d’une cellule pour activer les fonctionnalités suivantes de l’éditeur SQL.
+ **Liste déroulante de sélection des connexions** : lorsque vous ajoutez une commande magique `%%sm_sql` à une cellule, un menu déroulant apparaît en haut de la cellule avec vos connexions aux sources de données disponibles. Sélectionnez une connexion pour renseigner automatiquement les paramètres nécessaires pour interroger cette source de données. Voici un exemple de chaîne de commande magique `%%sm_sql` générée en sélectionnant la connexion nommée `connection-name`. 

  ```
  %%sm_sql --metastore-type GLUE_CONNECTION --metastore-id connection-name
  ```

  Utilisez les fonctionnalités de l’éditeur SQL ci-dessous pour générer vos requêtes SQL, puis exécutez la requête en exécutant la cellule. Pour plus d’informations sur les capacités d’exécution de SQL, consultez [Fonctionnalités d'exécution SQL de l'extension JupyterLab SQL](sagemaker-sql-extension-features-sql-execution.md).
+ **Liste déroulante des résultats de la requête** : vous pouvez spécifier le mode de rendu des résultats de la requête en sélectionnant un type de résultat dans le menu déroulant situé à côté de votre menu déroulant de sélection de connexion. Choisissez l’une des deux options suivantes :
  + **Sortie de cellule** : (par défaut) cette option affiche le résultat de votre requête dans la zone de sortie de cellule du bloc-notes.
  + **Pandas Dataframe** : cette option remplit un pandas DataFrame avec les résultats de la requête. Une zone de saisie supplémentaire vous permet de nommer le DataFrame lorsque vous choisissez cette option.
+ **Mise en évidence de la syntaxe SQL** : la cellule distingue automatiquement visuellement les mots clés SQL, les clauses, les opérateurs, etc., par coloration et mise en forme. Cela rend le code SQL plus facile à lire et à comprendre. Les mots clés tels que `SELECT`, `FROM` et `WHERE`, et les fonctions intégrées telles que `SUM` et `COUNT`, ou les clauses telles que `GROUP BY` et plus encore sont surlignés dans une couleur différente et dans un style gras.
+ **Mise en forme SQL** : vous pouvez appliquer des retraits, des majuscules, des espacements et des sauts de ligne cohérents pour regrouper ou séparer des instructions et des clauses SQL de l’une des manières suivantes. Cela rend le code SQL plus facile à lire et à comprendre.
  + Cliquez avec le bouton droit sur la cellule SQL et choisissez **Formater SQL**.
  + Lorsque la cellule SQL est sélectionnée, utilisez le raccourci *ALT \$1 F* sous Windows ou *Option \$1 F* sous macOS.
+ **Saisie automatique SQL** : l’extension fournit des suggestions automatiques et complète automatiquement les mots clés SQL, les fonctions, les noms de tables, les noms de colonnes, etc., au fur et à mesure que vous tapez. Lorsque vous commencez à taper un mot clé SQL tel que `SELECT` ou `WHERE`, l’extension affiche une fenêtre contextuelle contenant des suggestions pour compléter automatiquement le reste du mot. Par exemple, lorsque vous tapez des noms de table ou de colonne, elle suggère de faire correspondre les noms de table et de colonne définis dans le schéma de base de données.
**Important**  
Pour activer l'auto-complétion SQL dans les JupyterLab blocs-notes, les utilisateurs de l'image de distribution SageMaker AI version 1.6 doivent exécuter la `npm install -g vscode-jsonrpc sql-language-server` commande suivante dans un terminal. Une fois l'installation terminée, redémarrez le JupyterLab serveur en exécutant`restart-jupyter-server`.  
Pour les utilisateurs des versions 1.7 et ultérieures de l'image de SageMaker distribution, aucune action n'est requise.

  La cellule propose deux méthodes de saisie automatique des mots clés SQL reconnus :
  + Invocation explicite (recommandée) : choisissez la touche **Tab** pour lancer le menu de suggestions contextuel, puis choisissez **Entrée** pour accepter l’élément suggéré.
  + Suggestions continues : la cellule suggère automatiquement des compléments au fur et à mesure que vous tapez.
**Note**  
La saisie automatique n’est déclenchée que si les mots clés SQL sont en majuscules. Par exemple, la saisie de `SEL` fait apparaître `SELECT`, alors que la saisie de `sel` ne le fait pas.
La première fois que vous vous connectez à une source de données, la saisie automatique SQL indexe les métadonnées de la source de données. Ce processus d’indexation peut prendre un certain temps en fonction de la taille de vos bases de données.

# Fonctionnalités d'exécution SQL de l'extension JupyterLab SQL
<a name="sagemaker-sql-extension-features-sql-execution"></a>

Vous pouvez exécuter des requêtes SQL sur vos sources de données connectées dans l'extension SQL de JupyterLab. Les sections suivantes décrivent les paramètres les plus courants pour exécuter des requêtes SQL dans des JupyterLab blocs-notes :
+ Créez une connexion simple dans [Création d’une chaîne de connexion à une commande magique simple](sagemaker-sql-extension-features-sql-execution-create-connection.md).
+ Enregistrez les résultats de votre requête dans un pandas DataFrame dans[Enregistrer les résultats des requêtes SQL dans un pandas DataFrame](sagemaker-sql-extension-features-sql-execution-save-dataframe.md).
+ Remplacez ou ajoutez aux propriétés de connexion définies par votre administrateur dans [Remplacement des propriétés de connexion](sagemaker-sql-extension-features-sql-execution-override-connection.md).
+ [Utilisation de paramètres de requête pour fournir des valeurs dynamiques dans les requêtes SQL](sagemaker-sql-extension-features-sql-execution-query-parameters.md).

Lorsque vous exécutez une cellule avec la commande magique `%%sm_sql`, le moteur d’extension SQL exécute la requête SQL dans la cellule par rapport à la source de données spécifiée dans les paramètres de la commande magique.

Pour voir les détails des paramètres des commandes magiques et des formats pris en charge, exécutez `%%sm_sql?`.

**Important**  
Pour utiliser Snowflake, les utilisateurs de la version 1.6 de l'image de SageMaker distribution doivent installer la dépendance Python Snowflake en exécutant la commande `micromamba install snowflake-connector-python -c conda-forge` suivante dans un terminal de leur application. JupyterLab Redémarrez le JupyterLab serveur en l'exécutant `restart-jupyter-server` dans le terminal une fois l'installation terminée.  
Pour les versions 1.7 et ultérieures de l'image de SageMaker distribution, la dépendance Snowflake est préinstallée. Aucune action n’est nécessaire.

# Création d’une chaîne de connexion à une commande magique simple
<a name="sagemaker-sql-extension-features-sql-execution-create-connection"></a>

Si votre administrateur a configuré les connexions à vos sources de données, procédez comme suit pour créer facilement une chaîne de connexion dans une cellule de bloc-notes :

1. Ouvrez une cellule de bloc-notes qui utilise `%%sm_sql`.

1. Sélectionnez une connexion préconfigurée à la source de données de votre choix dans le menu déroulant des connexions situé au-dessus de la cellule.

1. Cela renseignera automatiquement les paramètres nécessaires pour interroger cette source de données.

Vous pouvez sinon spécifier les propriétés de connexion en ligne dans la cellule.

Le choix d’une connexion dans le menu déroulant insère les deux paramètres suivants dans la chaîne de commande magique par défaut. Les paramètres contiennent les informations de connexion configurées par votre administrateur.
+ `--metastore-id` : nom de l’objet de connexion qui contient vos paramètres de connexion.
+ `--metastore-type` : type de méta-magasin correspondant à `--metastore-id`. L'extension SQL utilise AWS Glue les connexions comme méta-magasin de connexions. Cette valeur est automatiquement définie sur `GLUE_CONNECTION`.

Par exemple, la chaîne de connexion à un magasin de données Amazon Athena préconfiguré ressemble à ce qui suit :

```
%%sm_sql --metastore-id athena-connection-name --metastore-type GLUE_CONNECTION 
```

# Enregistrer les résultats des requêtes SQL dans un pandas DataFrame
<a name="sagemaker-sql-extension-features-sql-execution-save-dataframe"></a>

Vous pouvez stocker les résultats de votre requête SQL dans un pandas DataFrame. Le moyen le plus simple de générer les résultats d'une requête dans un DataFrame est d'utiliser le menu déroulant des [Fonctionnalités de l'extension JupyterLab SQL relatives à l'éditeur SQL](sagemaker-sql-extension-features-editor.md) résultats de requête et de choisir l'option de trame de données **Pandas**.

Vous pouvez également ajouter le paramètre `--output '{"format": "DATAFRAME", "dataframe_name": "dataframe_name"}'` à votre chaîne de connexion.

Par exemple, la requête suivante extrait les détails des clients ayant le solde le plus élevé de la table `Customer` de la base de données `TPCH_SF1` de Snowflake, en utilisant à la fois pandas et SQL :
+ Dans cet exemple, nous extrayons toutes les données de la table des clients et les enregistrons sous un DataFrame nom`all_customer_data`.

  ```
  %%sm_sql --output '{"format": "DATAFRAME", "dataframe_name": "all_customer_data"}' --metastore-id snowflake-connection-name --metastore-type GLUE_CONNECTION
  SELECT * FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
  ```

  ```
  Saved results to all_customer_data
  ```
+ Ensuite, nous extrayons les détails du solde de compte le plus élevé du DataFrame.

  ```
  all_customer_data.loc[all_customer_data['C_ACCTBAL'].idxmax()].values
  ```

  ```
  array([61453, 'Customer#000061453', 'RxNgWcyl5RZD4qOYnyT3', 15,
  '25-819-925-1077', Decimal('9999.99'), 'BUILDING','es. carefully regular requests among the blithely pending requests boost slyly alo'],
  dtype=object)
  ```

# Remplacement des propriétés de connexion
<a name="sagemaker-sql-extension-features-sql-execution-override-connection"></a>

Les définitions de connexion prédéfinies de votre administrateur ne contiennent peut-être pas les paramètres exacts dont vous avez besoin pour vous connecter à un magasin de données spécifique. Vous pouvez ajouter ou remplacer des paramètres dans la chaîne de connexion à l’aide de l’argument `--connection-properties`.

Les arguments sont appliqués dans l’ordre de priorité suivant :

1. Propriétés de connexion remplacées fournies sous forme d’arguments en ligne.

1. Propriétés de connexion présentes dans le AWS Secrets Manager.

1. Propriétés de connexion dans la AWS Glue connexion.

Si la même propriété de connexion est présente dans les trois (argument de ligne de commande, Secrets Manager et connexion), la valeur fournie dans l’argument de ligne de commande est prioritaire.

Pour plus d’informations sur les propriétés de connexion disponibles par source de données, consultez les [Paramètres de connexion](sagemaker-sql-extension-connection-properties.md).

L’exemple suivant illustre un argument de propriété de connexion qui définit le nom du schéma pour Amazon Athena.

```
%%sm_sql --connection-properties '{"schema_name": "athena-db-name"}' --metastore-id athena-connection-name --metastore-type GLUE_CONNECTION
```

# Utilisation de paramètres de requête pour fournir des valeurs dynamiques dans les requêtes SQL
<a name="sagemaker-sql-extension-features-sql-execution-query-parameters"></a>

Les paramètres de requête peuvent être utilisés pour fournir des valeurs dynamiques dans les requêtes SQL.

Dans l’exemple suivant, nous transmettons un paramètre de requête à la clause `WHERE` de la requête.

```
# How to use '--query-parameters' with ATHENA as a data store
%%sm_sql --metastore-id athena-connection-name --metastore-type GLUE_CONNECTION --query-parameters '{"parameters":{"name_var": "John Smith"}}'
SELECT * FROM my_db.my_schema.my_table WHERE name = (%(name_var)s);
```

# Mise en cache des connexions aux extensions SQL
<a name="sagemaker-sql-extension-features-connection-caching"></a>

L’extension SQL met par défaut les connexions en cache afin d’empêcher la création de plusieurs connexions pour le même ensemble de propriétés de connexion. Les connexions mises en cache peuvent être gérées à l’aide de la commande magique `%sm_sql_manage`.

Les rubriques suivantes décrivent comment gérer vos connexions mises en cache.

**Topics**
+ [Création de connexions mises en cache](sagemaker-sql-extension-features-create-cached-connection.md)
+ [Établissement de la liste des connexions mises en cache](sagemaker-sql-extension-features-list-cached-connection.md)
+ [Effacement des connexions mises en cache](sagemaker-sql-extension-features-clear-cached-connection.md)
+ [Désactivation des connexions mises en cache](sagemaker-sql-extension-features-disable-cached-connection.md)

# Création de connexions mises en cache
<a name="sagemaker-sql-extension-features-create-cached-connection"></a>

Vous pouvez créer des connexions mises en cache en spécifiant un nom de connexion dans le paramètre `--connection-name` de votre chaîne de connexion. Cela est particulièrement utile lorsque plusieurs propriétés de connexion sont remplacées pour un cas d’utilisation spécifique et qu’il est nécessaire de réutiliser les mêmes propriétés sans les retaper.

Par exemple, le code ci-dessous enregistre une connexion Athena avec une propriété de connexion au schéma remplacée en utilisant le nom `--connection-name my_athena_conn_with_schema`, puis la réutilise dans une autre cellule :

```
%%sm_sql --connection-name my_athena_conn_with_schema --connection-properties '{"schema_name": "sm-sql-private-beta-db"}' --metastore-id sm-sql-private-beta-athena-connection --metastore-type GLUE_CONNECTION 
SELECT * FROM "covid_table" LIMIT 2
```

```
%%sm_sql --connection-name my_athena_conn_with_schema
SELECT * FROM "covid_table" LIMIT 2
```

# Établissement de la liste des connexions mises en cache
<a name="sagemaker-sql-extension-features-list-cached-connection"></a>

Vous pouvez répertorier vos connexions mises en cache en exécutant la commande suivante :

```
%sm_sql_manage --list-cached-connections
```

# Effacement des connexions mises en cache
<a name="sagemaker-sql-extension-features-clear-cached-connection"></a>

Pour effacer toutes les connexions mises en cache, exécutez la commande suivante :

```
%sm_sql_manage --clear-cached-connections
```

# Désactivation des connexions mises en cache
<a name="sagemaker-sql-extension-features-disable-cached-connection"></a>

Pour désactiver la mise en cache des connexions, exécutez la commande suivante :

```
%sm_sql_manage --set-connection-reuse False
```

# Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)
<a name="sagemaker-sql-extension-networking"></a>

Cette section fournit des informations sur la manière dont les administrateurs peuvent configurer un réseau pour permettre la communication entre Amazon SageMaker Studio et [Amazon Redshift](https://aws.amazon.com/redshift/) ou [Amazon Athena](https://aws.amazon.com/athena/), au sein d'un Amazon VPC privé ou via Internet. Les instructions de mise en réseau varient si le domaine Studio et le magasin de données sont déployés au sein d’un [cloud privé virtuel (VPC) Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) privé ou s’ils communiquent via Internet.

Par défaut, Studio s'exécute dans un VPC AWS géré avec [accès à Internet](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default). Lorsque vous utilisez une connexion Internet, Studio accède à AWS des ressources, telles que les compartiments Amazon S3, via Internet. Toutefois, si vous avez des exigences de sécurité pour contrôler l’accès à vos données et à vos conteneurs de tâches, nous vous recommandons de configurer Studio et votre magasin de données (Amazon Redshift ou Athena) de manière à ce que vos données et vos conteneurs ne soient pas accessibles via Internet. Pour contrôler l'accès à vos ressources ou exécuter Studio sans accès public à Internet, vous pouvez spécifier le type d'accès au `VPC only` réseau lorsque vous vous connectez au [domaine Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html). Dans ce scénario, Studio établit des connexions avec d’autres services AWS via des [points de terminaison de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) privés. Pour en savoir plus sur la configuration de Studio en mode `VPC only`, consultez [Connexion de Studio à des ressources externes dans un VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only).

**Note**  
Pour se connecter à Snowflake, le VPC du domaine Studio doit avoir accès à Internet.

Les deux premières sections décrivent comment garantir la communication entre votre domaine Studio et votre magasin de données VPCs sans accès public à Internet. La dernière section explique comment garantir la communication entre Studio et votre magasin de données à l’aide d’une connexion Internet. Avant de connecter Studio à votre magasin de données sans accès à Internet, assurez-vous d'établir des points de terminaison pour Amazon Simple Storage Service, Amazon Redshift ou Athena SageMaker , AI, et pour CloudWatch Amazon et (journalisation AWS CloudTrail et surveillance).
+ Si Studio et le magasin de données se trouvent dans des comptes différents VPCs, que ce soit dans le même AWS compte ou dans des comptes distincts, voir[Studio et le magasin de données sont déployés séparément VPCs](#sagemaker-sql-extension-networking-cross-vpc).
+ Si Studio et le magasin de données se trouvent dans le même VPC, consultez [Studio et le magasin de données sont déployés dans le même VPC](#sagemaker-sql-extension-networking-same-vpc).
+ Si vous avez choisi de connecter Studio et le magasin de données via le réseau Internet public, consultez [Studio et le magasin de données communiquent via le réseau Internet public](#sagemaker-sql-extension-networking-internet).

## Studio et le magasin de données sont déployés séparément VPCs
<a name="sagemaker-sql-extension-networking-cross-vpc"></a>

Pour autoriser la communication entre Studio et un magasin de données déployé dans différents environnements VPCs :

1. Commencez par vous connecter VPCs via une connexion d'appairage VPC.

1. Mettez à jour les tables de routage de chaque VPC pour autoriser le trafic réseau bidirectionnel entre les sous-réseaux Studio et les sous-réseaux du magasin de données. 

1. Configurez vos groupes de sécurité pour autoriser le trafic entrant et sortant.

Les étapes de configuration sont les mêmes, que Studio et le magasin de données soient déployés dans un seul AWS compte ou sur différents AWS comptes.

1. 

**Appairage de VPC**

   Créez une [connexion d'appairage VPC](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html) pour faciliter la mise en réseau entre les deux VPCs (Studio et le magasin de données).

   1. Depuis le compte Studio, sur le tableau de bord du VPC, choisissez **Connexions d’appairage**, puis **Créer une connexion d’appairage**.

   1. Créez votre demande pour appairer le VPC Studio avec le VPC du magasin de données. Lorsque vous demandez le peering sur un autre AWS compte, choisissez **Another account** dans **Select another VPC to peer with**.

      Pour l’appairage entre comptes, l’administrateur doit accepter la demande émanant du compte du moteur SQL.

      Lors de l’appairage de sous-réseaux privés, vous devez activer la résolution DNS IP privée au niveau de la connexion d’appairage de VPC.

1. 

**Tables de routage**

   Configurez le routage pour autoriser le trafic réseau entre Studio et les sous-réseaux VPC du magasin de données dans les deux sens.

   Une fois que vous avez établi la connexion d'appairage, l'administrateur (sur chaque compte pour l'accès entre comptes) peut ajouter des itinéraires aux tables de routage des sous-réseaux privés pour acheminer le trafic entre Studio et les sous-réseaux du magasin de données VPCs. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC.

1. 

**Groupes de sécurité**

   Enfin, le groupe de sécurité du VPC du domaine Studio doit autoriser le trafic sortant, et le groupe de sécurité du VPC du magasin de données doit autoriser le trafic entrant sur le port de votre magasin de données en provenance du groupe de sécurité du VPC de Studio.

## Studio et le magasin de données sont déployés dans le même VPC
<a name="sagemaker-sql-extension-networking-same-vpc"></a>

 Si Studio et le magasin de données se trouvent dans des sous-réseaux privés différents du même VPC, ajoutez des routes dans la table de routage de chaque sous-réseau privé. Ces routes doivent permettre au trafic de circuler entre les sous-réseaux Studio et les sous-réseaux du magasin de données. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC. Si vous avez déployé Studio et le magasin de données dans le même VPC et le même sous-réseau, vous n’avez pas besoin de router le trafic.

Indépendamment des mises à jour des tables de routage, le groupe de sécurité du VPC du domaine Studio doit autoriser le trafic sortant, et le groupe de sécurité du VPC du magasin de données doit autoriser le trafic entrant sur son port en provenance du groupe de sécurité du VPC de Studio.

## Studio et le magasin de données communiquent via le réseau Internet public
<a name="sagemaker-sql-extension-networking-internet"></a>

Par défaut, Studio fournit une interface réseau qui permet de communiquer avec Internet via une passerelle Internet dans le VPC associé au domaine Studio. Si vous choisissez de vous connecter à votre magasin de données via le réseau Internet public, votre magasin de données doit accepter le trafic entrant sur son port.

Une [passerelle NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) doit être utilisée pour permettre aux instances situées dans des sous-réseaux privés de plusieurs de VPCs partager une seule adresse IP publique fournie par la [passerelle Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) lors de l'accès à Internet.

**Note**  
Chaque port ouvert pour le trafic entrant représente un risque de sécurité potentiel. Vérifiez attentivement les groupes de sécurité personnalisés pour vous assurer de réduire les failles de sécurité.

# Connexions aux sources de données de l’extension SQL
<a name="sagemaker-sql-extension-datasources-connection"></a>

Avant d'utiliser l'extension SQL dans les JupyterLab blocs-notes, les administrateurs ou les utilisateurs doivent créer des AWS Glue connexions à leurs sources de données. L’extension SQL permet de se connecter à des sources de données telles qu’Amazon Redshift, Amazon Athena ou Snowflake.

Pour configurer les connexions, les administrateurs doivent d’abord s’assurer que leur configuration réseau autorise la communication entre Studio et les sources de données, puis accorder les autorisations IAM nécessaires pour permettre à Studio d’accéder aux sources de données. Pour en savoir plus sur la manière dont les administrateurs peuvent configurer la mise en réseau, consultez [Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)](sagemaker-sql-extension-networking.md). Pour en savoir plus sur les politiques à configurer, consultez [Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)](sagemaker-sql-extension-datasources-connection-permissions.md). Une fois les connexions établies, les data scientists peuvent utiliser l'extension SQL dans leurs JupyterLab blocs-notes pour parcourir et interroger les sources de données connectées.

**Note**  
Nous vous recommandons de stocker vos informations d’identification et d’accès à la base de données en tant que secret dans Secrets Manager. Pour découvrir comment créer des secrets pour stocker les informations d’identification et d’accès à Amazon Redshift ou Snowflake, consultez [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md).

Cette section explique comment configurer une AWS Glue connexion et répertorie les autorisations IAM requises pour que l' JupyterLab application Studio puisse accéder aux données via la connexion. 

**Note**  
[Amazon SageMaker Assets](sm-assets.md) intègre [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html) à Studio. Il inclut un plan d' SageMaker intelligence artificielle permettant aux administrateurs de créer des environnements Studio à partir de DataZone projets Amazon au sein d'un DataZone domaine Amazon.  
Les utilisateurs d'une JupyterLab application lancée à partir d'un domaine Studio créé avec le plan peuvent accéder automatiquement aux AWS Glue connexions aux actifs de données de leur DataZone catalogue Amazon lorsqu'ils utilisent l'extension SQL. Cela permet d’interroger ces sources de données sans configurer manuellement les connexions.

**Topics**
+ [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md)
+ [Création de AWS Glue connexions (pour les administrateurs)](sagemaker-sql-extension-datasources-glue-connection.md)
+ [Création de connexions définies par l'utilisateur AWS Glue](sagemaker-sql-extension-datasources-glue-connection-user-defined.md)
+ [Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)](sagemaker-sql-extension-datasources-connection-permissions.md)

# Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager
<a name="sagemaker-sql-extension-glue-connection-secrets"></a>

Avant de créer votre connexion, nous vous recommandons de stocker vos informations d'accès à la base de données sous forme de code secret dans AWS Secrets Manager. Vous pouvez également générer des informations d'identification de base de données temporaires en fonction des autorisations accordées par le biais d'une politique d'autorisation Gestion des identités et des accès AWS (IAM) afin de gérer l'accès de vos utilisateurs à votre base de données. Pour plus d’informations, consultez [Utilisation de l’authentification IAM pour générer des informations d’identification de l’utilisateur de base de données](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html).

## Création d’un secret pour les informations d’identification et d’accès Amazon Redshift
<a name="sagemaker-sql-extension-redshift-secret"></a>

**Pour stocker les informations Amazon Redshift dans Secrets Manager AWS**

1. À partir du AWS Management Console, accédez à Secrets Manager.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, choisissez **Informations d’identification pour Amazon Redshift**.

1. Entrez le nom d’utilisateur et le mot de passe de l’administrateur configurés lors du lancement du cluster Amazon Redshift. 

1. Sélectionnez le cluster Amazon Redshift associé aux secrets.

1. Donnez un nom à votre secret.

1. Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire. 

1. Créez le secret et extrayez son ARN.

## Création d’un secret pour les informations d’identification et d’accès Amazon Redshift sans serveur
<a name="sagemaker-sql-extension-redshift-serverless-secret"></a>

**Si vous devez vous connecter à Amazon Redshift sans serveur, procédez comme suit**

1. À partir du AWS Management Console, accédez à Secrets Manager.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, choisissez **Autre type de secret**.

1. Dans **Paires clé-valeur**, choisissez **Texte brut**, puis copiez le contenu JSON suivant. Remplacez l’utilisateur et le mot de passe par leurs valeurs réelles : 

   ```
   {
     "user": "redshift_user",
     "password": "redshift_password"
   }
   ```

1. Créez le secret et extrayez son ARN.

1. Lorsque vous créez une nouvelle connexion dans l'extension SQL in JupyterLab, fournissez tous les autres paramètres de connexion Amazon Redshift selon vos besoins.

## Création d’un secret pour les informations d’identification et d’accès Snowflake
<a name="sagemaker-sql-extension-snowflake-secret"></a>

Cette section fournit des détails sur les propriétés de secret et de connexion dans les fichiers de définition JSON spécifiques à Snowflake. Avant de créer votre connexion, nous vous recommandons de stocker vos informations d’identification et d’accès Snowflake en tant que secret dans Secrets Manager.

**Pour stocker les informations Amazon Redshift dans Secrets Manager**

1. À partir du AWS Management Console, accédez à Secrets Manager.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, choisissez **Autre type de secret**.

1. Dans la paire clé-valeur, choisissez **Texte brut**, puis copiez le contenu JSON suivant. Remplacez `user`, `password` et `account` par leurs valeurs.

   ```
   {
       "user":"snowflake_user",
       "password":"snowflake_password",
       "account":"account_id"
   }
   ```

1. Nommez le secret.

1. Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire.

1. Créez le secret et extrayez son ARN.

# Création de AWS Glue connexions (pour les administrateurs)
<a name="sagemaker-sql-extension-datasources-glue-connection"></a>

Pour utiliser des sources de données avec l'extension SQL, les administrateurs peuvent configurer AWS Glue des connexions pour chaque source de données. Ces connexions stockent les détails de configuration nécessaires pour accéder aux sources de données et interagir avec elles. Une fois les connexions créées et les [autorisations appropriées](sagemaker-sql-extension-datasources-connection-permissions.md) accordées, les connexions deviennent visibles pour tous les utilisateurs des [Espaces Amazon SageMaker Studio](studio-updated-spaces.md) qui partagent le même rôle d’exécution.

Pour créer ces connexions :
+ En premier lieu, créez un fichier JSON qui définit les propriétés de connexion pour chaque source de données. Le fichier JSON inclut des détails tels que l'identifiant de la source de données, les informations d'identification d'accès et d'autres paramètres de configuration pertinents pour accéder aux sources de données via les AWS Glue connexions.
+ Utilisez ensuite le AWS Command Line Interface (AWS CLI) pour créer la AWS Glue connexion, en passant le fichier JSON en paramètre. La AWS CLI commande lit les détails de connexion dans le fichier JSON et établit la connexion appropriée.
**Note**  
L’extension SQL prend en charge la création de connexions à l’aide de l’ AWS CLI uniquement.

Avant de créer AWS Glue des connexions, assurez-vous de suivre les étapes suivantes :
+ Installez et configurez le AWS Command Line Interface (AWS CLI). Pour plus d'informations sur l'installation et la configuration du AWS CLI, voir [À propos de AWS CLI la version 2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html). Assurez-vous que les clés d'accès et les jetons de l'utilisateur ou du rôle IAM utilisés pour les configurer AWS CLI disposent des autorisations requises pour créer des AWS Glue connexions. Ajoutez une politique autorisant l’action `glue:CreateConnection` autrement.
+ Comprenez comment l'utiliser AWS Secrets Manager. Nous vous recommandons d’utiliser Secrets Manager pour fournir des informations d’identification de connexion et toute autre information sensible pour votre magasin de données. Pour plus d'informations sur l'utilisation de Secrets Manager pour stocker les informations d'identification, consultez la section [Stockage des informations d'identification de connexion dans AWS Secrets Manager](https://docs.aws.amazon.com/glue/latest/dg/connection-properties-secrets-manager.html).

## Création d’un fichier JSON de définition de connexion
<a name="sagemaker-sql-extension-glue-connection-config"></a>

Pour créer un fichier de définition de AWS Glue connexion, créez un fichier JSON pour définir les détails de connexion sur la machine sur laquelle vous avez installé et configuré le AWS CLI. Pour cet exemple, nommez le fichier `sagemaker-sql-connection.json`.

Le fichier de définition de connexion doit respecter le format général suivant :
+ **Name** est le nom de la connexion.
+ **Description** est une description textuelle de la connexion.
+ **ConnectionType**est le type de connexion. Choisissez `REDSHIFT`, `ATHENA` ou `SNOWFLAKE`.
+ **ConnectionProperties**est une carte de paires clé-valeur pour les propriétés de connexion, telles que l'ARN de votre AWS secret ou le nom de votre base de données.

```
{
    "ConnectionInput": {
        "Name": <GLUE_CONNECTION_NAME>,
        "Description": <GLUE_CONNECTION_DESCRIPTION>,
        "ConnectionType": "REDSHIFT | ATHENA | SNOWFLAKE",
        "ConnectionProperties": {
            "PythonProperties": "{\"aws_secret_arn\": <SECRET_ARN>, \"database\": <...>}"
        }
    }
}
```

**Note**  
Les propriétés au sein de la clé `ConnectionProperties` sont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (`\`).
Toutes les propriétés disponibles dans Secrets Manager peuvent également être fournies directement via `PythonProperties`. Toutefois, il n’est pas recommandé d’inclure des champs sensibles tels que les mots de passe dans `PythonProperties`. L’approche préférée consiste plutôt à utiliser Secrets Manager.

Les fichiers de définition de connexion spécifiques aux différents magasins de données se trouvent dans les sections suivantes.

Les fichiers de définition de connexion pour chaque source de données contiennent les propriétés et la configuration spécifiques requises pour se connecter à ces magasins de données à partir de l’extension SQL. Reportez-vous à la section appropriée pour obtenir des détails sur la définition des connexions à cette source.
+ Pour créer une AWS Glue connexion pour Amazon Redshift, consultez le fichier de définition d'exemple dans. [Configurer une AWS Glue connexion pour Amazon Redshift](#sagemaker-sql-extension-redshift-glue-connection-config)
+ Pour créer une AWS Glue connexion pour Amazon Athena, consultez le fichier de définition d'exemple dans. [Configuration d'une AWS Glue connexion pour Athena](#sagemaker-sql-extension-athena-glue-connection-config)
+ Pour créer une AWS Glue connexion pour Snowflake, consultez l'exemple de fichier de définition dans. [Configurer une AWS Glue connexion pour Snowflake](#sagemaker-sql-extension-snowflake-glue-connection-config)

### Configurer une AWS Glue connexion pour Amazon Redshift
<a name="sagemaker-sql-extension-redshift-glue-connection-config"></a>

Cette section fournit des détails sur les propriétés de secret et de connexion dans les fichiers de définition JSON spécifiques à Amazon Redshift. Avant de créer votre fichier de configuration de connexion, nous vous recommandons de stocker vos informations d’identification et d’accès Amazon Redshift en tant que secret dans Secrets Manager. Vous pouvez également générer des informations d'identification de base de données temporaires en fonction des autorisations accordées par le biais d'une politique d'autorisation Gestion des identités et des accès AWS (IAM) afin de gérer l'accès de vos utilisateurs à votre base de données Amazon Redshift. Pour plus d’informations, consultez [Utilisation de l’authentification IAM pour générer des informations d’identification de l’utilisateur de base de données](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html).

#### Création d’un secret pour les informations d’identification et d’accès Amazon Redshift
<a name="sagemaker-sql-extension-redshift-secret"></a>

**Pour stocker les informations Amazon Redshift dans Secrets Manager AWS**

1. Depuis la AWS console, accédez à Secrets Manager.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, choisissez **Informations d’identification pour Amazon Redshift**.

1. Entrez le nom d’utilisateur et le mot de passe de l’administrateur configurés lors du lancement du cluster Amazon Redshift. 

1. Sélectionnez le cluster Amazon Redshift associé aux secrets.

1. Donnez un nom à votre secret.

1. Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire. 

1. Créez le secret et extrayez son ARN.

#### Configurer une AWS Glue connexion pour Amazon Redshift
<a name="sagemaker-sql-extension-redshift-glue-connection-creation"></a>

L'extension SQL se connecte aux sources de données à l'aide de AWS Glue connexions personnalisées. Pour obtenir des informations générales sur la création de AWS Glue connexions pour connecter une source de données, consultez[Création de AWS Glue connexions (pour les administrateurs)](#sagemaker-sql-extension-datasources-glue-connection). L'exemple suivant est un exemple de définition de AWS Glue connexion pour la connexion à Amazon Redshift.

Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
+ Les propriétés au sein de la clé `PythonProperties` sont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (`\`).
+ Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, remplacez l’ARN du secret dans `aws_secret_arn` par l’ARN du secret créé précédemment.
+ Assurez-vous que la base de données déclarée par son nom dans la définition de connexion ci-dessus correspond à la base de données du cluster. Vous pouvez vérifier cela en accédant à la page des détails du cluster sur la [console Amazon Redshift](https://console.aws.amazon.com/redshiftv2/) et en vérifiant le nom de la base de données sous **Configurations de base de données** dans la section **Propriétés**.
+ Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Amazon Redshift dans [Paramètres de connexion Amazon Redshift](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-redshift). 
**Note**  
Par défaut, le connecteur de l’extension SQL pour Python exécute toutes les requêtes d’une transaction, sauf si `auto_commit` est défini sur `true` dans les propriétés de connexion. 
Vous pouvez ajouter tous les paramètres de connexion, y compris le nom `database`, à un secret.

```
{
  "ConnectionInput": {
      "Name": "Redshift connection name",
      "Description": "Redshift connection description",
      "ConnectionType": "REDSHIFT",
      "ConnectionProperties": {
          "PythonProperties":"{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"database\":\"database_name\", \"database_metadata_current_db_only\": false}"
      }
  }
}
```

Une fois votre fichier de définition mis à jour, suivez les étapes décrites [Créez des AWS Glue connexions](#sagemaker-sql-extension-datasources-glue-connection-creation) pour créer votre AWS Glue connexion.

### Configuration d'une AWS Glue connexion pour Athena
<a name="sagemaker-sql-extension-athena-glue-connection-config"></a>

Cette section fournit des détails sur les propriétés de connexion dans les fichiers de définition JSON spécifiques à Athena.

#### Configuration d'une AWS Glue connexion pour Athena
<a name="sagemaker-sql-extension-athena-glue-connection-creation"></a>

L'extension SQL se connecte aux sources de données à l'aide de AWS Glue connexions personnalisées. Pour obtenir des informations générales sur la création de AWS Glue connexions pour connecter une source de données, consultez[Création de AWS Glue connexions (pour les administrateurs)](#sagemaker-sql-extension-datasources-glue-connection). L'exemple suivant est un exemple de définition de AWS Glue connexion pour la connexion à Athena.

Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
+ Les propriétés au sein de la clé `ConnectionProperties` sont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (`\`). 
+ Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, remplacez `catalog_name` par le nom de votre catalogue, `s3_staging_dir` par l’URI (Uniform Resource Identifier) Amazon S3 de votre répertoire de sortie dans votre compartiment Amazon S3 et `region_name` par la région de votre compartiment Amazon S3.
+ Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Athena dans [Paramètres de connexion à Athena](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-athena). 
**Note**  
Vous pouvez ajouter tous les paramètres de connexion, y compris `catalog_name` ou `s3_staging_dir`, à un secret.
Si vous spécifiez un `workgroup`, il n’est pas nécessaire de spécifier `s3_staging_dir`.

```
{
    "ConnectionInput": {
        "Name": "Athena connection name",
        "Description": "Athena connection description",
        "ConnectionType": "ATHENA",
        "ConnectionProperties": {
            "PythonProperties": "{\"catalog_name\": \"catalog_name\",\"s3_staging_dir\": \"s3://amzn-s3-demo-bucket_in_same_region/output_query_results_dir/\", \"region_name\": \"region\"}"
        }
    }
}
```

Une fois votre fichier de définition mis à jour, suivez les étapes décrites [Créez des AWS Glue connexions](#sagemaker-sql-extension-datasources-glue-connection-creation) pour créer votre AWS Glue connexion.

### Configurer une AWS Glue connexion pour Snowflake
<a name="sagemaker-sql-extension-snowflake-glue-connection-config"></a>

Cette section fournit des détails sur les propriétés de secret et de connexion dans les fichiers de définition JSON spécifiques à Snowflake. Avant de créer votre fichier de configuration de connexion, nous vous recommandons de stocker vos informations d’identification et d’accès Snowflake en tant que secret dans Secrets Manager.

#### Création d’un secret pour les informations d’identification et d’accès Snowflake
<a name="sagemaker-sql-extension-snowflake-secret"></a>

**Pour stocker les informations Amazon Redshift dans Secrets Manager**

1. Depuis la AWS console, accédez à AWS Secrets Manager.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Sous **Type de secret**, choisissez **Autre type de secret**.

1. Dans la paire clé-valeur, choisissez **Texte brut**, puis copiez le contenu JSON suivant. Remplacez `user`, `password` et `account` par leurs valeurs.

   ```
   {
       "user":"snowflake_user",
       "password":"snowflake_password",
       "account":"account_id"
   }
   ```

1. Nommez le secret.

1. Les autres paramètres peuvent être conservés à leurs valeurs par défaut lors de la création initiale du secret, ou personnalisés si nécessaire.

1. Créez le secret et extrayez son ARN.

#### Configurer une AWS Glue connexion pour Snowflake
<a name="sagemaker-sql-extension-snowflake-glue-connection-creation"></a>

L'extension SQL se connecte aux sources de données à l'aide de AWS Glue connexions personnalisées. Pour obtenir des informations générales sur la création de AWS Glue connexions pour connecter une source de données, consultez[Création de AWS Glue connexions (pour les administrateurs)](#sagemaker-sql-extension-datasources-glue-connection). L'exemple suivant est un exemple de définition de AWS Glue connexion pour la connexion à Snowflake.

Avant de créer une nouvelle connexion, tenez compte des recommandations suivantes :
+ Les propriétés au sein de la clé `ConnectionProperties` sont constituées de paires clé-valeur sous forme de chaînes. Échappez les guillemets doubles utilisés dans les clés ou les valeurs à l’aide d’une barre oblique inverse (`\`). 
+ Dans le fichier de définition de connexion, entrez le nom et la description de la connexion, puis remplacez l’ARN du secret dans `aws_secret_arn` par l’ARN du secret créé précédemment, et votre identifiant de compte dans `account`.
+ Pour des paramètres supplémentaires, consultez la liste des propriétés de connexion prises en charge par Snowflake dans [Paramètres de connexion à Snowflake](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-snowflake).
**Note**  
Vous pouvez ajouter tous les paramètres de connexion, y compris le `account`, à un secret.

```
{
    "ConnectionInput": {
        "Name": "Snowflake connection name",
        "Description": "Snowflake connection description",
        "ConnectionType": "SNOWFLAKE",
        "ConnectionProperties": {
            "PythonProperties":  "{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"account\":\"account_id\"}"}"
        }
    }
}
```

Une fois votre fichier de définition mis à jour, suivez les étapes décrites [Créez des AWS Glue connexions](#sagemaker-sql-extension-datasources-glue-connection-creation) pour créer votre AWS Glue connexion.

## Créez des AWS Glue connexions
<a name="sagemaker-sql-extension-datasources-glue-connection-creation"></a>

Pour créer une AWS Glue connexion via le AWS CLI, utilisez votre fichier de définition de connexion et exécutez cette AWS CLI commande. Remplacez l'`region`espace réservé par le nom de votre AWS région et indiquez le chemin local vers votre fichier de définition.

**Note**  
Le chemin d’accès à votre fichier de définition de configuration doit être précédé de `file://`.

```
aws --region region glue create-connection --cli-input-json file://path_to_file/sagemaker-sql-connection.json
```

Vérifiez que la AWS Glue connexion a été créée en exécutant la commande suivante et vérifiez le nom de votre connexion.

```
aws --region region glue get-connections
```

Vous pouvez également mettre à jour une AWS Glue connexion existante comme suit :
+ Modifiez le fichier de définition de AWS Glue connexion selon vos besoins.
+ Exécutez la commande suivante pour mettre à jour la connexion.

  ```
  aws --region region glue update-connection --name glue_connection_name --cli-input-json file://path_to_file/sagemaker-sql-connection.json
  ```

# Création de connexions définies par l'utilisateur AWS Glue
<a name="sagemaker-sql-extension-datasources-glue-connection-user-defined"></a>

**Note**  
Toutes les AWS Glue connexions créées par les utilisateurs via l'interface utilisateur de l'extension SQL sont automatiquement étiquetées avec les balises suivantes :  
`UserProfile: user-profile-name`
`AppType: "JL"`
Ces balises appliquées aux AWS Glue connexions créées via l'interface utilisateur de l'extension SQL ont deux objectifs. La `"UserProfile": user-profile-name` balise permet d'identifier le profil utilisateur spécifique qui a créé la AWS Glue connexion, offrant ainsi une visibilité sur l'utilisateur responsable de la connexion. La `"AppType": "JL"` balise classe la provenance de la connexion en l'associant à l' JupyterLab application. Cela permet de différencier ces connexions de celles qui peuvent avoir été créées par d’autres moyens, tels que l’ AWS CLI. 

## Conditions préalables
<a name="sagemaker-sql-extension-datasources-glue-connection-user-defined-prerequisites"></a>

Avant de créer une AWS Glue connexion à l'aide de l'interface utilisateur de l'extension SQL, assurez-vous d'avoir effectué les tâches suivantes : 
+ Demandez à votre administrateur d’effectuer les opérations suivantes :
  + Activez la communication réseau entre votre domaine Studio et les sources de données auxquelles vous souhaitez vous connecter. Pour découvrir les exigences de mise en réseau, consultez [Configuration de l’accès réseau entre Studio et les sources de données (pour les administrateurs)](sagemaker-sql-extension-networking.md).
  + S’assurer que les autorisations IAM nécessaires sont configurées pour gérer les connexions AWS Glue et l’accès à Secrets Manager. Pour en savoir plus sur les autorisations nécessaires, consultez [Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)](sagemaker-sql-extension-datasources-connection-permissions.md).
**Note**  
Les administrateurs peuvent restreindre l'accès des utilisateurs aux seules connexions créées par un utilisateur dans l' JupyterLab application. Cela peut être fait en configurant un [contrôle d’accès basé sur des balises](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-sql-extension-datasources-connection-permissions.html#user-defined-connections-permissions) limité au profil utilisateur.
+ Consultez les propriétés et les instructions de connexion pour créer un secret pour votre source de données dans [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md).

## Flux de travail utilisateur
<a name="sagemaker-sql-extension-datasources-glue-connection-user-defined-steps"></a>

Les étapes suivantes fournissent le flux de travail utilisateur lors de la création de connexions utilisateur :

1. **Sélectionnez le type de source de données** : en choisissant l’icône *Ajouter une nouvelle connexion*, un formulaire s’ouvre, invitant l’utilisateur à sélectionner le type de source de données auquel il souhaite se connecter, comme Amazon Redshift, Athena ou Snowflake.

1. **Fournissez les propriétés de connexion** : en fonction de la source de données sélectionnée, les propriétés de connexion pertinentes sont chargées dynamiquement. Le formulaire indique quels champs sont obligatoires ou facultatifs pour la source de données choisie. Pour en savoir plus sur les propriétés disponibles pour votre source de données, consultez [Paramètres de connexion](sagemaker-sql-extension-connection-properties.md).

1. **Sélectionnez votre AWS Secrets Manager ARN** : pour les sources de données Amazon Redshift et Snowflake, l'utilisateur est invité à sélectionner l'ARN Secrets AWS Manager qui stocke des informations sensibles telles que le nom d'utilisateur et le mot de passe. Pour en savoir plus sur la création d’un secret pour votre source de données, consultez [Création de secrets pour les informations d’identification et d’accès à la base de données dans Secrets Manager](sagemaker-sql-extension-glue-connection-secrets.md).

1. **Enregistrez les détails de votre connexion** : lorsque vous cliquez sur **Créer**, les propriétés de connexion fournies sont enregistrées en tant que connexion AWS Glue . 

1. **Testez votre connexion** : si la connexion est établie, les bases de données et les tables associées deviennent visibles dans l’explorateur. En cas d’échec de la connexion, un message d’erreur s’affiche, invitant l’utilisateur à vérifier et à corriger les informations de connexion.

1. **Familiarisez-vous avec les fonctionnalités de l’extension SQL** : pour en savoir plus sur les fonctionnalités de l’extension, consultez les [Fonctionnalités et utilisation de l’extension SQL](sagemaker-sql-extension-features.md).

1. **(Facultatif) Mettez à jour ou supprimez les connexions créées par l’utilisateur** : à condition que l’utilisateur dispose des autorisations nécessaires, il peut mettre à jour ou supprimer les connexions qu’il a créées. Pour en savoir plus sur les autorisations nécessaires, consultez [Autorisations IAM requises par les connexions définies par l’utilisateur](sagemaker-sql-extension-datasources-connection-permissions.md#user-defined-connections-permissions).

# Configuration des autorisations IAM pour accéder aux sources de données (pour les administrateurs)
<a name="sagemaker-sql-extension-datasources-connection-permissions"></a>

Les administrateurs doivent s'assurer que le rôle d'exécution utilisé par les JupyterLab applications dispose des autorisations AWS IAM nécessaires pour accéder aux données via les AWS Glue connexions configurées. 
+ **Connexions créées par les administrateurs à l'aide** de AWS CLI : Pour afficher les AWS Glue connexions [créées par les administrateurs](sagemaker-sql-extension-datasources-glue-connection.md) et accéder à leurs données, les utilisateurs doivent demander à leur administrateur d'attribuer des autorisations spécifiques au rôle d'exécution SageMaker AI utilisé par leur JupyterLab application dans Studio. Cela inclut l'accès à AWS Glue Secrets Manager et les autorisations spécifiques à la base de données. Les connexions créées par les administrateurs sont visibles par toutes les applications partageant le rôle d’exécution autorisé à consulter des catalogues AWS Glue ou des bases de données spécifiques. Pour en savoir plus sur la liste des autorisations requises par type de source de données, consultez les autorisations de connexion définies par l’administrateur dans [Autorisations IAM requises par les connexions définies par l’administrateur](#admin-defined-connections-permissions). 
+ Les **connexions créées par les utilisateurs à l'aide de l'interface utilisateur de l'extension SQL dans JupyterLab** [: Les connexions créées par des profils utilisateur](sagemaker-sql-extension-datasources-glue-connection-user-defined.md) partageant le même rôle d'exécution seront également répertoriées, sauf si la visibilité de leurs connexions est limitée à celles créées par l'utilisateur. Les connexions créées par les utilisateurs sont balisées avec le profil utilisateur qui les a créées. Pour limiter la possibilité d’afficher, de mettre à jour ou de supprimer ces connexions créées par l’utilisateur uniquement à l’utilisateur qui les a créées, les administrateurs peuvent ajouter des restrictions de contrôle d’accès supplémentaires basées sur les balises aux autorisations IAM du rôle d’exécution. Pour en savoir plus sur le contrôle d’accès supplémentaire requis, basé sur les balises, consultez [Autorisations IAM requises par les connexions définies par l’utilisateur](#user-defined-connections-permissions).

## Autorisations IAM requises par les connexions définies par l’administrateur
<a name="admin-defined-connections-permissions"></a>

Pour accorder au rôle d'exécution SageMaker AI utilisé par votre JupyterLab application dans Studio l'accès à une source de données par le biais d'une AWS Glue connexion, associez la politique intégrée suivante au rôle.

Pour consulter les détails des autorisations et des politiques spécifiques à chaque source de données ou méthode d’authentification, choisissez le type de connexion approprié ci-dessous.

**Note**  
Nous vous recommandons de limiter les autorisations de votre politique aux seules ressources et actions requises.  
Pour définir les politiques et accorder le moindre privilège d'accès, remplacez le caractère générique `"Resource": ["*"]` dans votre politique par un code spécifique ARNs aux ressources exactes ayant besoin d'un accès. Pour plus d’informations sur la manière de contrôler l’accès à vos ressources, consultez [Affinez l'accès aux AWS ressources grâce à des autorisations ARN granulaires](#resource-access-control).

### Tous les types de connexion
<a name="datasources-connection-permissions-all"></a>

**Note**  
Nous recommandons vivement de limiter cette politique aux seules actions et ressources requises.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:glue:us-east-1:111122223333:catalog",
    "arn:aws:glue:us-east-1:111122223333:connection/*"
            ]
        },
        {
            "Sid": "ExecuteQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:us-east-1:111122223333:workgroup/workgroup-name"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:cluster:cluster-name"
            ]
        }
    ]
}
```

------

### Athena
<a name="datasources-connection-permissions-athena"></a>

**Note**  
Nous recommandons vivement de limiter cette politique aux seules ressources requises.

Pour plus d’informations, consultez *Exemples de politiques d’autorisation IAM* dans la [documentation d’Athena](https://docs.aws.amazon.com/athena/latest/ug/federated-query-iam-access.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",                
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "ExecuteAthenaQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:us-east-2:111122223333:workgroup/workgroup-name"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"       
            ]
        }
    ]
}
```

------

### Amazon Redshift et Amazon Redshift sans serveur (authentification par nom d’utilisateur et mot de passe)/Snowflake
<a name="datasources-connection-permissions-snowflake-redshift-user-password"></a>

**Note**  
Nous recommandons vivement de limiter cette politique aux seules ressources requises.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"            
            ]
        }
    ]
}
```

------

### Amazon Redshift (authentification IAM)
<a name="datasources-connection-permissions-redshift-iam"></a>

**Note**  
Nous recommandons vivement de limiter cette politique aux seules ressources requises.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:connection/*",
                "arn:aws:glue:us-east-1:111122223333:connection/connection-name"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name",
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name-with-suffix"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:cluster:cluster-name",
                "arn:aws:redshift:us-east-1:111122223333:dbuser:cluster-name/db-user-name"
            ]
        }
    ]
}
```

------

### Amazon Redshift sans serveur (authentification IAM)
<a name="datasources-connection-permissions-redshift-serverless-iam"></a>

**Note**  
Nous recommandons vivement de limiter cette politique aux seules ressources requises.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"         
            ]
        },
        {
            "Sid": "GetRedshiftServerlessCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetCredentials"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-2:111122223333:namespace/namespace-id"           
            ]
        }
    ]
}
```

------

## Autorisations IAM requises par les connexions définies par l’utilisateur
<a name="user-defined-connections-permissions"></a>

Les autorisations de politique IAM accordées à un utilisateur peuvent tenir compte de la présence de la `UserProfile` balise sur les ressources de AWS Glue connexion.
+ **Pour visualiser AWS Glue les connexions** :
  + Les utilisateurs peuvent visualiser toutes les connexions dépourvues de la balise `UserProfile` (créées par un administrateur). 
  + Les utilisateurs peuvent visualiser les connexions dotées de la balise `UserProfile` ayant la même valeur que le nom de leur profil utilisateur. 
  + Les utilisateurs ne peuvent pas visualiser les connexions dotées de la balise `UserProfile` ayant une valeur différente du nom de leur profil utilisateur. 
+ **Pour mettre à jour ou supprimer AWS Glue des connexions** :
  + Les utilisateurs peuvent mettre à jour ou supprimer une connexion dotée de la balise `UserProfile` ayant la même valeur que le nom de leur profil utilisateur. 
  + Les utilisateurs ne peuvent pas mettre à jour ni supprimer une connexion dotée de la balise `UserProfile` ayant une valeur différente du nom de leur profil utilisateur. 
  + Les utilisateurs ne peuvent pas mettre à jour ni supprimer les connexions dépourvues de la balise `UserProfile`. 

Pour ce faire, les administrateurs doivent accorder au rôle d'exécution utilisé par l' JupyterLab application du profil utilisateur des autorisations supplémentaires au-delà de leurs autorisations de [connexion définies par l'administrateur](#admin-defined-connections-permissions) existantes. Plus précisément, outre les autorisations requises pour accéder aux AWS Glue connexions définies par l'administrateur, les deux autorisations IAM supplémentaires suivantes doivent être accordées au rôle d'exécution de l'utilisateur :
+ Autorisation de créer AWS Glue des connexions et d'associer le `UserProfile` tag à la valeur du nom de profil de l'utilisateur.
+ Autorisation d'afficher, de mettre à jour et de supprimer AWS Glue les connexions dont le `UserProfile` tag correspond au nom de profil de l'utilisateur.

Cette autorisation restreint l'accès aux AWS Glue connexions en fonction d'une valeur de balise de profil utilisateur spécifique. Mettez à jour la valeur de la balise `UserProfile` avec le nom de profil de l’utilisateur que vous souhaitez cibler.

```
"Action": [
    "glue:GetConnection",
    "glue:GetConnections"    
],
"Resource": [
    "arn:aws:glue:region:account_id:connection/*"
],
"Condition": {
    "StringEqualsIfExists": {
        "aws:ResourceTag/UserProfile": "user_profile_name"
    }
}
```

Cette autorisation limite la capacité à créer, mettre à jour et supprimer des connexions créées par l’utilisateur aux seules connexions créées par le profil utilisateur avec la valeur de balise `UserProfile` spécifiée.

```
"Action": [
    "glue:DeleteConnection",
    "glue:UpdateConnection",
    "glue:CreateConnection",
    "glue:TagResource"
],
"Resource": [
    "arn:aws:glue:region:account_id:connection/*"
],
"Condition": {
    "StringEquals": {
        "aws:ResourceTag/UserProfile": "user_profile"
    }
}
```

## Affinez l'accès aux AWS ressources grâce à des autorisations ARN granulaires
<a name="resource-access-control"></a>

Pour un contrôle plus précis de l'accès à vos AWS ressources, remplacez la ressource générique `"Resource": ["*"]` dans vos politiques par les Amazon Resource Names (ARNs) spécifiques aux seules ressources nécessitant un accès. L'utilisation de l'exact ARNs plutôt que d'un caractère générique limite l'accès aux ressources prévues. 
+ **Utiliser un compartiment Amazon S3 spécifique ARNs**

  Par exemple, `"arn:aws:s3:::bucket-name"` ou ` "arn:aws:s3:::bucket-name/*"` pour les opérations au niveau du compartiment ou au niveau de l’objet.

  Pour en savoir plus sur tous les types de ressources dans Amazon S3, consultez [Types de ressources définis par Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies).
+ **Utiliser une base de AWS Glue données spécifique ARNs**

  Par exemple, ` "arn:aws:glue:region:account-id:catalog"` ou ` "arn:aws:glue:region:account-id:database/db-name"`. Pour plus d'informations sur tous les types de ressources dans AWS Glue, consultez la section [Types de ressources définis par AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-resources-for-iam-policies).
+ **Utiliser un groupe de travail Athena spécifique ARNs**

  Par exemple `"arn:aws:athena:region:account-id:workgroup/workgroup-name"`. Pour en savoir plus sur les types de ressources dans Athena, consultez [Types de ressources définis par Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html#amazonathena-resources-for-iam-policies).
+ **Utiliser un AWS secret spécifique de Secrets Manager ARNs**

  Par exemple `"arn:aws:secretsmanager:region:account-id:secret:secret-name"`. Pour plus d'informations sur tous les types de ressources dans AWS Secrets Manager, voir [Types de ressources définis par AWS Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-resources-for-iam-policies)
+ **Utiliser un cluster Amazon Redshift spécifique ARNs**

  Par exemple `"arn:aws:redshift:region:account-id:cluster:cluster-name"`. Pour en savoir plus sur les types de ressources dans Amazon Redshift, consultez [Types de ressources définis par Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html#amazonredshift-resources-for-iam-policies). Pour en savoir plus sur tous les types de ressources dans Redshift sans serveur, consultez [Types de ressources définis par Redshift sans serveur](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html#amazonredshiftserverless-resources-for-iam-policies).

# Questions fréquentes (FAQ)
<a name="sagemaker-sql-extension-faqs"></a>

Les informations suivantes FAQs répondent aux questions générales les plus fréquemment posées sur l'extension SQL dans JupyterLab.

## Q : Où puis-je trouver les journaux de l’extension SQL ?
<a name="sagemaker-sql-extension-faqs-0"></a>

R : L'extension SQL écrit son journal dans le fichier journal général de votre JupyterLab application dans Studio. Vous pouvez trouver ces journaux dans `/var/log/apps/app_container.log`.

## Q : Je reçois un message d'erreur : « UsageError : Cell magic `%%s\$1sql` introuvable. »
<a name="sagemaker-sql-extension-faqs-1"></a>

R : Créez une nouvelle cellule et chargez à nouveau l’extension en utilisant `%load_ext amazon_sagemaker_sql_magic`.

## Q : Comment puis-je répertorier les différents paramètres de ma commande `%%sm_sql` ?
<a name="sagemaker-sql-extension-faqs-2"></a>

R : Utilisez `%%sm_sql?` pour obtenir le contenu d’aide de la commande.

## Q : Je ne vois pas la vue de découverte des données sur le panneau de droite.
<a name="sagemaker-sql-extension-faqs-3"></a>

R : Assurez-vous que votre espace utilise une image SageMaker de distribution version 1.6 ou supérieure. Ces SageMaker images sont préinstallées avec l'extension. 

Si vous avez mis à jour l'image de votre espace d' JupyterLab application dans Studio, actualisez votre navigateur.

## Q : Le panneau de droite ne reflète pas exactement les AWS Glue connexions configurées.
<a name="sagemaker-sql-extension-faqs-4"></a>

R : Essayez d’actualiser le panneau de droite à l’aide du bouton **Actualiser** situé dans le coin inférieur droit de l’interface utilisateur de l’extension SQL dans votre bloc-notes.

## Q : Les instructions SQL ne s’exécutent pas comme prévu ou ne s’exécutent pas correctement.
<a name="sagemaker-sql-extension-faqs-5"></a>

R : Essayez d’effacer les connexions mises en cache en exécutant la commande magique suivante `%sm_sql_manage --clear-cached-connections`.

## Q : Le message d’erreur suivant s’affiche : « Actual statement count 2 did not match the desired statement count 1. »
<a name="sagemaker-sql-extension-faqs-6"></a>

R : L’extension SQL prend en charge uniquement l’exécution d’une seule requête SQL à la fois.

## Flocon de neige FAQs
<a name="sagemaker-sql-extension-faqs-snowflake"></a>

Les informations suivantes FAQs répondent aux questions générales fréquemment posées aux utilisateurs de l'extension SQL utilisant Snowflake comme source de données.

### Q : Le message d’erreur suivant s’affiche : « No active warehouse selected in the current session. Select an active warehouse with the ’use warehouse’ command. »
<a name="sagemaker-sql-extension-faqs-snowflake-1"></a>

R : Cela peut se produire si l’entrepôt par défaut d’un utilisateur n’est pas sélectionné. Exécutez la commande `USE WAREHOUSE warehouse_name` pour chaque session.

### Q : Je reçois un message d'erreur : « l'objet '*foo*' n'existe pas ou n'est pas autorisé. »
<a name="sagemaker-sql-extension-faqs-snowflake-2"></a>

R : Assurez-vous que votre utilisateur Snowflake a accès à l’objet donné.

# Paramètres de connexion
<a name="sagemaker-sql-extension-connection-properties"></a>

Les tableaux suivants détaillent les propriétés Python prises en charge pour AWS Glue les connexions par magasin de données.

## Paramètres de connexion Amazon Redshift
<a name="sagemaker-sql-extension-connection-properties-redshift"></a>

Les paramètres de connexion Python suivants sont pris en charge par AWS Glue les connexions à Amazon Redshift.


| Clé | Type | Description | Constaintes | Obligatoire | 
| --- | --- | --- | --- | --- | 
| auto\$1create | Type : boolean | Indique si l’utilisateur doit être créé, s’il n’existe pas. La valeur par défaut est false . | true, false | Non | 
| aws\$1secret\$1arn | Type : string | ARN du secret utilisé pour extraire les paramètres supplémentaires pour la connexion. | ARN valide | Non | 
| cluster\$1identifier | Type : string – longueur maximale : 63 | Identifiant du cluster Amazon Redshift. | ^(?\$1.\$1—)[a-z][a-z0-9-]\$10,61\$1[a-z0-9]\$1 | Non | 
| database | Type : string – longueur maximale : 127 | Le nom de la base de données à laquelle se connecter. |  | Non | 
| database\$1metadata\$1current\$1db\$1only | Type : boolean | Indique si l’application prend en charge les catalogues d’unités de partage des données à plusieurs bases de données. La valeur par défaut true indique que l’application ne prend pas en charge les catalogues d’unités de partage des données à plusieurs bases de données pour la rétrocompatibilité. | true, false | Non | 
| db\$1groups | Type : string | Une liste séparée par des virgules des noms de groupes de bases de données existants auxquels db\$1user se joint pour la session en cours. |  | Non | 
| db\$1user | Type : string | L’ID utilisateur à utiliser avec Amazon Redshift. |  | Non | 
| host | Type : string – longueur maximale : 256 | Nom d’hôte du cluster Amazon Redshift. |  | Non | 
| iam | Type : boolean | Indicateur permettant d’activer ou de désactiver l’authentification basée sur IAM pour une connexion. La valeur par défaut est false . | true, false | Non | 
| iam\$1disable\$1cache | Type : boolean | Cette option spécifie si les informations d’identification IAM sont mises en cache. La valeur par défaut est true . Cela améliore les performances lorsque les demandes envoyées à API Gateway sont limitées. | true, false | Non | 
| max\$1prepared\$1statements | Type : integer | Nombre maximal d’instructions préparées pouvant être ouvertes à la fois. |  | Non | 
| numeric\$1to\$1float | Décimal vers flottant | Spécifie si les valeurs de type de données NUMERIC seront converties au format décimal. Par défaut, les valeurs NUMERIC sont reçues sous forme d’objets Python decimal.Decimal. L’activation de cette option n’est pas recommandée pour les cas d’utilisation qui préfèrent une précision maximale, car les résultats peuvent être arrondis. Consultez la documentation Python sur [https://docs.python.org/3/library/decimal.html#decimal-objects](https://docs.python.org/3/library/decimal.html#decimal-objects) pour comprendre les compromis entre decimal.Decimal et float avant d’activer cette option. La valeur par défaut est false . | true, false | Non | 
| port | Type : integer | Numéro de port du cluster Amazon Redshift. | Plage 1 150 – 65 535 | Non | 
| profile | Type : string – longueur maximale : 256 | Nom du profil contenant les informations d’identification et le paramètre utilisés par l’ AWS CLI. |  | Non | 
| region | Type : string |  AWS Région dans laquelle se trouve le cluster. |  AWS Région valide | Non | 
| serverless\$1acct\$1id | Type : string – longueur maximale : 256 | L'ID de AWS compte associé à la ressource sans serveur Amazon Redshift. |  | Non | 
| serverless\$1work\$1group | Type : string – longueur maximale : 256 | Nom du groupe de travail pour le point de terminaison Amazon Redshift sans serveur. |  | Non | 
| ssl | Type : boolean | true si le protocole SSL est activé. | true, false | Non | 
| ssl\$1mode | Type : enum[verify-ca, verify-full, null]) | La sécurité de la connexion à Amazon Redshift. verify-ca (SSL doit être utilisé et le certificat de serveur doit être vérifié.) et verify-full (SSL doit être utilisé. Le certificat de serveur doit être vérifié et le nom d’hôte du serveur doit correspondre à l’attribut de nom d’hôte sur le certificat.) sont pris en charge. Pour plus d’informations, consultez [Configuration des options de sécurité des connexions](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-ssl-support.html) dans la documentation Amazon Redshift. La valeur par défaut est verify-ca . | verify-ca, verify-full | Non | 
| timeout | Type : integer | Le nombre de secondes avant que la connexion au serveur ne soit interrompue. | 0 | Non | 

## Paramètres de connexion à Athena
<a name="sagemaker-sql-extension-connection-properties-athena"></a>

Les paramètres de connexion Python suivants sont pris en charge par AWS Glue les connexions à Athena.


| Clé | Type | Description | Constaintes | Obligatoire | 
| --- | --- | --- | --- | --- | 
| aws\$1access\$1key\$1id | Type : string – longueur maximale : 256 | Spécifie une clé AWS d'accès associée à un compte IAM. Nous vous recommandons de stocker ces informations dans aws\$1secret. | Longueur de 16 à 128 | Non | 
| aws\$1secret\$1access\$1key | Type : string – longueur maximale : 256 | Partie secrète d'une clé AWS d'accès. Nous vous recommandons de stocker ces informations dans aws\$1secret. |  | Non | 
| aws\$1secret\$1arn | Type : string | ARN du secret utilisé pour extraire les paramètres supplémentaires pour la connexion. | ARN valide | Non | 
| catalog\$1name | Type : string – longueur maximale : 256 | Catalogue qui contient les bases de données et les tables auxquelles le pilote accède. Pour plus d'informations sur les catalogues, consultez [DataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_DataCatalog.html). |  | Non | 
| duration\$1seconds | Type : number | La durée de la session de rôle en secondes. La valeur de ce paramètre peut varier de 1 heure à 12 heures. Par défaut, la durée est définie à 3 600 secondes (1 heure).  | Comprise entre 900 secondes (15 minutes) et la valeur de durée de session maximale définie pour le rôle | Non | 
| encryption\$1option | Type : enum[SSE\$1S3, SSE\$1KMS, CSE\$1KMS, null]) | Chiffrement au repos pour Amazon S3. Consultez la section Chiffrement au repos du [guide Athena](https://docs.aws.amazon.com/athena/latest/ug/encryption.html). | SSE\$1S3, SSE\$1KMS, CSE\$1KMS | Non | 
| kms\$1key | Type : string – longueur maximale : 256 | AWS KMS touche en cas CSE\$1KMS d'utilisationencrytion\$1option. |  | Non | 
| poll\$1interval | Type : number | Intervalle en secondes pour interroger le statut des résultats de la requête dans Athena. |  | Non | 
| profile\$1name | Type : string – longueur maximale : 256 | Le nom du profil de AWS configuration dont les informations d'identification doivent être utilisées pour authentifier la demande adressée à Athena. |  | Non | 
| region\$1name | Type : string |  AWS Région dans laquelle les requêtes sont exécutées. |  AWS Région valide | Non | 
| result\$1reuse\$1enable | Type : boolean | Activez la réutilisation du résultat de la requête précédente. | true, false | Non | 
| result\$1reuse\$1minutes | Type : integer | Spécifie, en minutes, l’âge maximum d’un résultat de requête précédent qu’Athena doit envisager de réutiliser. La valeur par défaut est 60. | >=1 | Non | 
| role\$1arn | Type : string | Rôle à utiliser pour exécuter des requêtes. | ARN valide | Non | 
| schema\$1name | Type : string – longueur maximale : 256 | Nom du schéma par défaut à utiliser pour la base de données. |  | Non | 
| s3\$1staging\$1dir | Type : string – longueur maximale : 1024 | Emplacement dans Amazon S3 où les résultats de votre requête sont stockés. |  | L’élément s3\$1staging\$1dir ou work\$1group est requis. | 
| work\$1group | Type : string | Groupe de travail dans lequel les requêtes seront exécutées. Pour plus d'informations sur les groupes de travail, consultez [WorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html). | ^[a-zA-Z0-9.\$1-]\$11,128\$1\$1 | L’élément s3\$1staging\$1dir ou work\$1group est requis. | 

## Paramètres de connexion à Snowflake
<a name="sagemaker-sql-extension-connection-properties-snowflake"></a>

Les paramètres de connexion Python suivants sont pris en charge par AWS Glue les connexions à Snowflake.

Paramètres de connexion à Snowflake


| Clé | Type | Description | Constaintes | Obligatoire | 
| --- | --- | --- | --- | --- | 
| account | Type : string – longueur maximale : 256 | Identifiant du compte Snowflake. L’identifiant du compte n’inclut pas le suffixe snowflakecomputing.com. |  | Oui | 
| arrow\$1number\$1to\$1decimal | Type : boolean | False par défaut, ce qui signifie que les valeurs de la colonne NUMBER sont renvoyées sous forme de nombres à virgule flottante à double précision (float64). Définissez ce paramètre sur True pour renvoyer les valeurs de la colonne DECIMAL sous forme de nombres décimaux (decimal.Decimal) lors de l’appel des méthodes fetch\$1pandas\$1all() et fetch\$1pandas\$1batches(). | true, false | Non | 
| autocommit | Type : boolean | La valeur par défaut est false, qui honore le paramètre Snowflake AUTOCOMMIT. Affectez la valeur true ou false pour activer ou désactiver le mode autocommit dans la session, respectivement. | true, false | Non | 
| aws\$1secret\$1arn | Type : string | ARN du secret utilisé pour extraire les paramètres supplémentaires pour la connexion. | ARN valide | Non | 
| client\$1prefetch\$1threads | Type : integer | Nombre de threads utilisés pour télécharger les ensembles de résultats (4 par défaut). L’augmentation de la valeur améliore les performances d’extraction, mais nécessite davantage de mémoire. |  | Non | 
| database | Type : string – longueur maximale : 256 | Nom de la base de données à utiliser. |  | Non | 
| login\$1timeout | Type : integer | Délai d’attente en secondes de la demande de connexion. Par défaut, il est de 60 secondes. La demande de connexion est abandonnée après ce délai d’expiration si la réponse HTTP n’est pas success. |  | Non | 
| network\$1timeout | Type : integer | Délai en secondes pour toutes les autres opérations. La valeur par défaut est none (infini). Une demande générale est abandonnée après ce délai d’expiration si la réponse HTTP n’est pas success. |  | Non | 
| paramstyle | Type : string – longueur maximale : 256 | Syntaxes d’espace réservé utilisées pour la substitution de paramètres lors de l’exécution de requêtes SQL à partir de code Python. La valeur par défaut est pyformat pour la liaison côté client. Spécifiez qmark ou numeric pour modifier les formats des variables de liaison pour la liaison côté serveur. |  | Non | 
| role | Type : string – longueur maximale : 256 | Nom du rôle par défaut à utiliser. |  | Non | 
| schema | Type : string – longueur maximale : 256 | Nom du schéma par défaut à utiliser pour la base de données. |  | Non | 
| timezone | Type : string – longueur maximale : 128 | Aucun est la valeur par défaut, qui honore le paramètre Snowflake TIMEZONE. Définissez un fuseau horaire valide (tel que America/Los\$1Angeles) pour définir le fuseau horaire de la session. | Fuseau horaire dans un format similaire à America/Los\$1Angeles | Non | 
| validate\$1default\$1parameters | Type : boolean | Affectez la valeur true pour lever une exception si la base de données, le schéma ou l’entrepôt spécifié(e) n’existe pas. La valeur par défaut est false . |  | Non | 
| warehouse | Type : string – longueur maximale : 256 | Nom de l’entrepôt par défaut à utiliser. |  | Non | 

# Préparation des données à grande échelle à l’aide d’applications Amazon EMR sans serveur ou de clusters Amazon EMR dans Studio
<a name="studio-emr-data-preparation"></a>

Amazon SageMaker Studio et son ancienne version, Studio Classic, fournissent aux scientifiques des données et aux ingénieurs en apprentissage automatique (ML) des outils permettant d'analyser et de préparer des données à grande échelle. L’analyse, la transformation et la préparation de grandes quantités de données sont des étapes fondamentales de tout flux de travail de science des données et de ML. Studio et Studio Classic sont tous deux intégrés à Amazon EMR, ce qui permet aux utilisateurs de gérer des flux de travail interactifs de préparation des données et d'apprentissage automatique à grande échelle au sein de leurs JupyterLab ordinateurs portables.

[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) est une plateforme de mégadonnées gérée dotée de ressources pour vous aider à exécuter des tâches de traitement de données distribué à l'échelle de plusieurs pétaoctets à l'aide de frameworks d'analyse open source AWS tels qu'[Apache Spark, Apache](https://aws.amazon.com/emr/features/spark) [Hive](https://aws.amazon.com/emr/features/hive), [Presto](https://aws.amazon.com/emr/features/presto) et Flink, entre autres. HBase Grâce à l'intégration de Studio et Studio Classic à Amazon EMR, vous pouvez créer, parcourir, découvrir et vous connecter à des clusters Amazon EMR sans quitter votre bloc-notes JupyterLab ou celui de Studio Classic. Vous pouvez également surveiller et déboguer vos charges de travail Spark en accédant en un clic à l’interface utilisateur Spark depuis votre bloc-notes.

Vous devriez envisager les clusters Amazon EMR pour vos charges de travail de préparation des données si vous avez des exigences de traitement de données complexes, de longue durée ou à grande échelle, impliquant d’énormes quantités de données, si vous avez besoin d’une personnalisation et d’une intégration extensives avec d’autres services, si vous devez exécuter des applications personnalisées ou si vous envisagez d’exécuter un large éventail de cadres de traitement de données distribués au-delà d’Apache Spark. 

À l'aide [d'une image de SageMaker distribution](sagemaker-distribution.md) `1.10` ou d'une version supérieure, vous pouvez également vous connecter à des applications [EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html) interactives directement depuis vos JupyterLab ordinateurs portables dans AI Studio. SageMaker L’intégration de Studio avec EMR sans serveur vous permet d’exécuter des cadres d’analytique open source du big data, tels qu’[Apache Spark](https://aws.amazon.com/emr/features/spark) et [Apache Hive](https://aws.amazon.com/emr/features/hive) sans configurer, gérer ni mettre à l’échelle les clusters Amazon EMR. EMR sans serveur provisionne et gère automatiquement les ressources de calcul et de mémoire sous-jacentes en fonction des besoins de votre application EMR sans serveur. Il augmente ou réduit verticalement les ressources de manière dynamique, en vous facturant la quantité de ressources de vCPU, de mémoire et de stockage consommée par vos applications. Cette approche sans serveur vous permet d'[exécuter des charges de travail interactives de préparation des données](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html) à partir de vos JupyterLab ordinateurs portables sans vous soucier de la gestion du cluster, tout en optimisant le taux d'utilisation des instances et en optimisant les coûts.

Vous devriez envisager EMR sans serveur pour vos charges de travail interactives de préparation des données si vos charges de travail sont de courte durée ou intermittentes et ne nécessitent pas de cluster persistant ; si vous préférez une expérience sans serveur avec provisionnement et résiliation automatiques des ressources, évitant ainsi les frais de gestion de l’infrastructure ; ou si vos tâches interactives de préparation de données tournent principalement autour d’Apache Spark. 

**Topics**
+ [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md)
+ [Préparation des données à l’aide d’EMR sans serveur](studio-notebooks-emr-serverless.md)
+ [Préparation des données à l’aide d’Amazon EMR](studio-notebooks-emr-cluster.md)

# Configuration de l’accès réseau pour votre cluster Amazon EMR
<a name="studio-notebooks-emr-networking"></a>

Avant de commencer à utiliser Amazon EMR ou EMR sans serveur pour vos tâches de préparation des données dans Studio, assurez-vous que vous ou votre administrateur avez configuré votre réseau pour autoriser la communication entre Studio et Amazon EMR. Une fois cette communication activée, vous pouvez choisir de :
+ [Préparation des données à l’aide d’EMR sans serveur](studio-notebooks-emr-serverless.md)
+ [Préparation des données à l’aide d’Amazon EMR](studio-notebooks-emr-cluster.md)

**Note**  
Pour les utilisateurs d’EMR sans serveur, la configuration la plus simple consiste à créer votre application dans l’interface utilisateur de Studio sans modifier les paramètres par défaut de l’option **Cloud privé virtuel (VPC)**. Cette approche permet de créer l'application au sein du VPC de votre SageMaker domaine, éliminant ainsi le besoin de configuration réseau supplémentaire. Si vous choisissez cette option, vous pouvez ignorer la section suivante de configuration de la mise en réseau. 

Les instructions de mise en réseau varient selon que Studio et Amazon EMR sont déployés au sein d’un réseau [cloud privé virtuel (VPC) Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) privé ou communiquent via Internet.

Par défaut, Studio ou Studio Classic s'exécutent dans un VPC AWS géré avec [accès à Internet](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default). Lorsque vous utilisez une connexion Internet, Studio et Studio Classic accèdent à AWS des ressources, telles que les compartiments Amazon S3, via Internet. Toutefois, si vous avez des exigences de sécurité pour contrôler l’accès à vos données et à vos conteneurs de tâches, nous vous recommandons de configurer Studio ou Studio Classic et Amazon EMR afin que vos données et vos conteneurs ne soient pas accessibles via Internet. Pour contrôler l'accès à vos ressources ou exécuter Studio ou Studio Classic sans accès public à Internet, vous pouvez spécifier le type d'accès au `VPC only` réseau lorsque vous vous connectez au [domaine Amazon SageMaker AI](gs-studio-onboard.md). Dans ce scénario, Studio et Studio Classic établissent des connexions avec d'autres AWS services via des points de terminaison [VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) privés. Pour plus d'informations sur la configuration de Studio ou Studio Classic en `VPC only` mode, voir [Connecter des blocs-notes SageMaker Studio ou Studio Classic à des ressources externes dans un VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only). .

Les deux premières sections décrivent comment garantir la communication entre Studio ou Studio Classic et Amazon EMR VPCs sans accès public à Internet. La dernière section explique comment garantir la communication entre Studio ou Studio Classic et Amazon EMR à l’aide d’une connexion Internet. Avant de connecter Studio ou Studio Classic à Amazon EMR sans accès à Internet, assurez-vous d'établir des points de terminaison pour Amazon Simple Storage Service (stockage des données), Amazon (journalisation et surveillance) et Amazon SageMaker Runtime CloudWatch (contrôle d'accès détaillé basé sur les rôles (RBAC)).

Pour connecter Studio ou Studio Classic et Amazon EMR :
+ Si Studio ou Studio Classic et Amazon EMR sont connectés séparément VPCs, que ce soit sur le même AWS compte ou sur des comptes différents, consultez. [Studio et Amazon EMR sont séparés VPCs](#studio-notebooks-emr-networking-requirements-cross-vpc)
+ Si Studio ou Studio Classic et Amazon EMR sont dans le même VPC, consultez [Studio et Amazon EMR sont dans le même VPC](#studio-notebooks-emr-networking-requirements-same-vpc).
+ Si vous avez choisi de connecter Studio ou Studio Classic et Amazon EMR via le réseau Internet public, consultez [Studio et Amazon EMR communiquent via l’Internet public](#studio-notebooks-emr-networking-requirements-internet).

## Studio et Amazon EMR sont séparés VPCs
<a name="studio-notebooks-emr-networking-requirements-cross-vpc"></a>

Pour autoriser la communication entre Studio ou Studio Classic et Amazon EMR lorsqu'ils sont déployés séparément : VPCs

1. Commencez par vous connecter VPCs via une connexion d'appairage VPC.

1. Mettez à jour vos tables de routage dans chaque VPC pour router le trafic réseau entre les sous-réseaux Studio ou Studio Classic et les sous-réseaux Amazon EMR dans les deux sens.

1. Configurez vos groupes de sécurité pour autoriser le trafic entrant et sortant.

Les étapes pour connecter Studio ou Studio Classic et Amazon EMR sont les mêmes, que les ressources soient déployées sur un seul AWS compte (cas d'utilisation avec un seul compte) ou sur plusieurs AWS comptes (cas d'utilisation entre comptes).

1. 

**Appairage de VPC**

   Créez une [connexion d'appairage VPC](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html) pour faciliter la mise en réseau entre les deux VPCs (Studio ou Studio Classic et Amazon EMR).

   1. Depuis votre compte Studio ou Studio Classic, sur le tableau de bord VPC, choisissez **Connexions d’appairage**, puis **Créer une connexion d’appairage**.

   1. Créez votre demande pour appairer le VPC Studio ou Studio Classic avec le VPC Amazon EMR. Lorsque vous demandez le peering sur un autre AWS compte, choisissez **Another account** dans **Select another VPC to peer with**.

      Pour l’appairage entre comptes, l’administrateur doit accepter la demande émanant du compte Amazon EMR.

      Lors de l’appairage de sous-réseaux privés, vous devez activer la résolution DNS IP privée au niveau de la connexion d’appairage de VPC.

1. 

**Tables de routage**

   Envoyez le trafic réseau entre les sous-réseaux Studio ou Studio Classic et les sous-réseaux Amazon EMR dans les deux sens.

   Une fois que vous avez établi la connexion d’appairage, l’administrateur (sur chaque compte pour un accès intercompte) peut ajouter des routes aux tables de routage des sous-réseaux privés pour router le trafic entre Studio ou Studio Classic et les sous-réseaux Amazon EMR. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC.

   L’illustration suivante de la table de routage d’un sous-réseau de VPC Studio montre un exemple de route sortante du compte Studio vers la plage d’adresses IP du VPC Amazon EMR (ici `2.0.1.0/24`) via la connexion d’appairage.  
![\[La table de routage d’un sous-réseau de VPC Studio montre des routes sortantes entre le compte Studio et la plage d’adresses IP du VPC Amazon EMR (ici 2.0.1.0/24) via la connexion d’appairage.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-return-route.png)

   L’illustration suivante de la table de routage d’un sous-réseau de VPC Amazon EMR montre un exemple de route de retour entre le VPC Amazon EMR et la plage d’adresses IP du VPC Studio (ici `10.0.20.0/24`) via la connexion d’appairage.  
![\[Table de routage d’un sous-réseau de VPC Amazon EMR indiquant les routes de retour depuis le compte Amazon EMR vers la plage d’adresses IP du VPC Studio (ici 10.0.20.0/24) via la connexion d’appairage\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-outbound-route.png)

1. 

**Groupes de sécurité**

   Enfin, le groupe de sécurité de votre domaine Studio ou Studio Classic doit autoriser le trafic sortant, et le groupe de sécurité du nœud primaire Amazon EMR doit autoriser le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis le groupe de sécurité d’instance Studio ou Studio Classic. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

Le schéma suivant montre un exemple de configuration Amazon VPC qui permet aux JupyterLab blocs-notes Studio Classic de provisionner des clusters Amazon EMR à partir de modèles figurant dans CloudFormation le Service Catalog, puis de se connecter à un cluster Amazon EMR au sein du même compte. AWS Le schéma fournit une illustration supplémentaire des points de terminaison requis pour une connexion directe à divers AWS services, tels qu'Amazon S3 ou Amazon CloudWatch, lorsqu'ils n' VPCs ont pas accès à Internet. Une [passerelle NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) doit également être utilisée pour permettre aux instances situées dans des sous-réseaux privés de plusieurs de VPCs partager une seule adresse IP publique fournie par la [passerelle Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) lors de l'accès à Internet.

![\[Schéma architectural illustrant un exemple de configuration Amazon VPC simple qui permet aux blocs-notes Studio ou Studio Classic de provisionner des clusters Amazon EMR à partir de modèles figurant CloudFormation dans le Service Catalog, puis de se connecter à un cluster Amazon EMR au sein du même compte. AWS Le schéma fournit une illustration supplémentaire des points de terminaison requis pour une connexion directe à divers AWS services, tels qu'Amazon S3 ou Amazon CloudWatch, lorsqu'ils n' VPCs ont pas accès à Internet. Une passerelle NAT doit également être utilisée pour permettre aux instances situées dans des sous-réseaux privés de plusieurs de VPCs partager une seule adresse IP publique fournie par la passerelle Internet lors de l'accès à Internet.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-architecture-singleaccount-vpcendpoints.png)


## Studio et Amazon EMR sont dans le même VPC
<a name="studio-notebooks-emr-networking-requirements-same-vpc"></a>

Si Studio ou Studio Classic et Amazon EMR se trouvent dans des sous-réseaux différents, ajoutez des routes à la table de routage de chaque sous-réseau privé pour router le trafic entre Studio ou Studio Classic et les sous-réseaux Amazon EMR. Vous pouvez définir ces routes en accédant à la section **Tables de routage** de chaque VPC dans le tableau de bord du VPC. Si vous avez déployé Studio ou Studio Classic et Amazon EMR dans le même VPC et le même sous-réseau, vous n’avez pas besoin de router le trafic entre Studio et Amazon EMR.

Que vous deviez ou non mettre à jour vos tables de routage, le groupe de sécurité de votre domaine Studio ou Studio Classic doit autoriser le trafic sortant et le groupe de sécurité du nœud primaire Amazon EMR doit autoriser le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis le groupe de sécurité d’instance Studio ou Studio Classic. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

## Studio et Amazon EMR communiquent via l’Internet public
<a name="studio-notebooks-emr-networking-requirements-internet"></a>

Par défaut, Studio et Studio Classic fournissent une interface réseau qui permet de communiquer avec Internet via une passerelle Internet dans le VPC associé au SageMaker domaine. Si vous choisissez de vous connecter à Amazon EMR via le réseau Internet public, Amazon EMR doit accepter le trafic entrant sur les ports TCP *Apache Livy*, *Hive* ou *Presto* (respectivement `8998`, `10000` et `8889`) depuis sa passerelle Internet. [Apache Livy](https://livy.apache.org/) est un service qui permet d’interagir avec Amazon EMR via une interface REST.

Gardez à l’esprit que tout port sur lequel vous autorisez le trafic entrant représente une vulnérabilité de sécurité potentielle. Vérifiez attentivement les groupes de sécurité personnalisés pour vous assurer de réduire les failles de sécurité. Pour plus d'informations, consultez [Contrôle du trafic réseau avec des groupes de sécurité](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html).

Vous pouvez également consulter [Blogs et livres blancs](studio-notebooks-emr-resources.md) pour une présentation détaillée expliquant comment activer [Kerberos sur Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), configurer le cluster dans un sous-réseau privé et accéder au cluster à l’aide d’un [Network Load Balancer (NLB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) afin d’exposer uniquement des ports spécifiques, dont l’accès est contrôlé par des groupes de sécurité.

**Note**  
Lorsque vous vous connectez à votre point de terminaison Apache Livy via le réseau Internet public, nous vous recommandons de sécuriser les communications entre Studio ou Studio Classic et votre cluster Amazon EMR à l’aide du protocole TLS.  
Pour en savoir plus sur la configuration du protocole HTTPS avec Apache Livy, consultez [Activation du protocole HTTPS avec Apache Livy](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html). Pour en savoir plus sur la configuration d’un cluster Amazon EMR avec le chiffrement en transit activé, consultez [Fourniture de certificats pour le chiffrement des données en transit avec le chiffrement Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates). En outre, vous devez configurer Studio ou Studio Classic pour accéder à votre clé de certificat comme indiqué dans [Connexion à un cluster Amazon EMR via HTTPS](connect-emr-clusters.md#connect-emr-clusters-ssl).

# Préparation des données à l’aide d’EMR sans serveur
<a name="studio-notebooks-emr-serverless"></a>

À partir de [SageMaker la version d'image de distribution](sagemaker-distribution.md)`1.10`, Amazon SageMaker Studio s'intègre à EMR Serverless. Dans les JupyterLab ordinateurs portables de SageMaker Studio, les data scientists et les ingénieurs de données peuvent découvrir des applications EMR Serverless et s'y connecter, puis explorer, visualiser et préparer de manière interactive des charges de travail Apache Spark ou Apache Hive à grande échelle. Cette intégration permet d’effectuer un prétraitement interactif des données à grande échelle en préparation de l’entraînement et du déploiement du modèle ML.

Plus précisément, la version mise à jour de la version d'image de [distribution intégrée [https://pypi.org/project/sagemaker-studio-analytics-extension/](https://pypi.org/project/sagemaker-studio-analytics-extension/)à l'SageMaker IA](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1) `1.10` tire parti de l'intégration entre Apache Livy et EMR Serverless, permettant la connexion à un point de terminaison Apache Livy via des ordinateurs portables. JupyterLab Cette section suppose une connaissance préalable des [applications interactives EMR sans serveur](https://docs.aws.amazon.com/EMR-Serverless-UserGuide/interactive-workloads.html).

**Important**  
Lorsque vous utilisez Studio, vous pouvez uniquement découvrir et vous connecter aux applications EMR Serverless pour les JupyterLab applications lancées depuis des espaces privés. Assurez-vous que les applications EMR Serverless sont situées dans la même AWS région que votre environnement Studio.

## Conditions préalables
<a name="studio-set-up-emr-serverless-prerequisites"></a>

Avant de commencer à exécuter des charges de travail interactives avec EMR Serverless depuis JupyterLab vos ordinateurs portables, assurez-vous de remplir les conditions préalables suivantes :

1. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

1. Créez une application interactive EMR sans serveur avec Amazon EMR version `6.14.0` ou supérieure. Vous pouvez créer une application EMR sans serveur à partir de l’interface utilisateur de Studio en suivant les étapes décrites dans [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md).
**Note**  
Pour simplifier la configuration, vous pouvez créer votre application EMR sans serveur dans l’interface utilisateur de Studio sans modifier les paramètres par défaut de l’option **Cloud privé virtuel (VPC)**. Cela permet de créer l’application au sein de votre VPC de domaine sans nécessiter de configuration réseau. Dans ce cas, vous pouvez ignorer l’étape de configuration de mise en réseau suivante.

1. Passez en revue les exigences de mise en réseau et de sécurité dans [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md). En particulier, vérifiez que vous :
   + Établissez une connexion d’appairage de VPC entre votre compte Studio et votre compte EMR sans serveur.
   + Ajoutez des routes aux tables de routage des sous-réseaux privés dans les deux comptes. 
   + Configurez le groupe de sécurité attaché à votre domaine Studio pour autoriser le trafic sortant et configurez le groupe de sécurité du VPC où vous envisagez d’exécuter les applications EMR sans serveur pour autoriser le trafic TCP entrant depuis le groupe de sécurité de l’instance Studio.

1. Pour accéder à vos applications interactives sur EMR Serverless et exécuter des charges de travail soumises depuis vos JupyterLab blocs-notes dans SageMaker Studio, vous devez attribuer des autorisations et des rôles spécifiques. Reportez-vous à la section [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md) pour obtenir des détails sur les rôles et autorisations nécessaires.

**Topics**
+ [Conditions préalables](#studio-set-up-emr-serverless-prerequisites)
+ [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md)
+ [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md)
+ [Connexion à une application EMR sans serveur depuis Studio](connect-emr-serverless-application.md)
+ [Arrêt ou suppression d’une application EMR sans serveur depuis l’interface utilisateur de Studio](terminate-emr-serverless-application.md)

# Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker
<a name="studio-emr-serverless-permissions"></a>

Dans cette section, nous détaillons les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis SageMaker Studio, en prenant en compte les scénarios dans lesquels Studio et les applications EMR Serverless sont déployés dans le même AWS compte ou sur différents comptes.

Les rôles auxquels vous devez ajouter les autorisations nécessaires varient selon que Studio et vos applications EMR Serverless résident sur le même AWS compte (*compte unique*) ou sur des comptes distincts (comptes *croisés*). Deux types de rôles sont concernés :
+ Rôle d’exécution :
  + Rôles [d'exécution d'exécution (rôles](https://docs.aws.amazon.com/http://emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults-executionRoleArn) de contrôle d'accès basés sur les rôles) utilisés par EMR Serverless : il s'agit des rôles IAM utilisés par les environnements d'exécution de tâches EMR Serverless pour accéder à d'autres AWS services et ressources nécessaires pendant l'exécution, tels qu'Amazon S3 pour l'accès aux données, pour la journalisation, l'accès au catalogue de données ou à d'autres services en fonction de AWS Glue vos exigences en matière de charge de travail. CloudWatch Nous vous recommandons de créer ces rôles dans le compte sur lequel les applications EMR sans serveur sont exécutées.

    Pour en savoir plus sur les rôles d’exécution, consultez [Rôles d’exécution des tâches](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) dans le *Guide de l’utilisateur EMR sans serveur*.
**Note**  
Vous pouvez définir plusieurs rôles RBAC pour votre application EMR sans serveur. Ces rôles peuvent être basés sur les responsabilités et les niveaux d’accès requis par les différents utilisateurs ou groupes au sein de votre organisation. Pour plus d’informations sur les autorisations RBAC, consultez [Bonnes pratiques de sécurité pour Amazon EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-best-practices.html#security-practice-rbac).
  + SageMaker Rôle d'exécution de l'IA : rôle d'exécution permettant à l' SageMaker IA d'effectuer certaines tâches, telles que la lecture de données à partir de compartiments Amazon S3, l'écriture de journaux et l'accès à CloudWatch d'autres AWS services dont votre flux de travail pourrait avoir besoin. Le rôle d'exécution SageMaker AI dispose également de l'autorisation spéciale appelée `iam:PassRole` qui permet à l' SageMaker IA de transmettre des rôles d'exécution temporaires aux applications EMR Serverless. Ces rôles confèrent aux applications EMR Serverless les autorisations dont elles ont besoin pour interagir avec d'autres AWS ressources pendant leur exécution.
+ Rôles assumables (également appelés *rôles d’accès aux services*) :
  + Il s'agit des rôles IAM que le rôle d'exécution de l' SageMaker IA peut assumer pour effectuer des opérations liées à la gestion des applications EMR sans serveur. Ces rôles définissent les autorisations et les stratégies d’accès requises lors de l’établissement de la liste, de la connexion ou de la gestion des applications EMR sans serveur. Ils sont généralement utilisés dans des scénarios entre comptes, dans lesquels les applications EMR Serverless sont situées dans un compte AWS différent de celui SageMaker du domaine AI. Le fait de disposer d'un rôle IAM dédié pour vos applications EMR sans serveur permet de respecter le principe du moindre privilège et de garantir qu'Amazon EMR dispose uniquement des autorisations requises pour exécuter vos tâches tout en protégeant les autres ressources de votre compte. AWS 

En comprenant et en configurant correctement ces rôles, vous pouvez vous assurer que SageMaker Studio dispose des autorisations nécessaires pour interagir avec les applications EMR Serverless, qu'elles soient déployées dans le même compte ou sur différents comptes.

## Compte unique
<a name="studio-set-up-emr-serverless-permissions-singleaccount"></a>

Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans le même compte. AWS 

![\[Le diagramme montre les rôles et les autorisations nécessaires pour répertorier et connecter les applications EMR Serverless depuis Studio lorsque Studio et les applications se trouvent dans le même compte. AWS\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-singleaccount.png)


Si vos applications Amazon EMR et Studio sont déployés sur le même AWS compte, procédez comme suit :

1. **Étape 1** : extrayez l’ARN du compartiment Amazon S3 que vous utilisez pour les sources de données et le stockage des données de sortie dans la [console Amazon S3](https://console.aws.amazon.com/S3).

   Pour savoir comment trouver un compartiment par son nom, consultez [Accès à un compartiment Amazon S3 et établissement de la liste des compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). 

1. **Étape 2** : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (`EMRServerlessRuntimeExecutionRoleA` dans le schéma du cas d’utilisation *Compte unique* ci-dessus). Choisissez **Politique d’approbation personnalisée** comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez **Créer une politique**.

      Vous pouvez consulter [Rôles d’exécution des tâches pour EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) pour trouver des exemples de politiques d’exécution pour un rôle d’exécution EMR sans serveur.

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Dans la page **Ajouter des autorisations**, ajoutez la politique que vous avez créée, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `EMRServerlessAppRuntimeRoleA`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
**Note**  
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.

1. **Étape 3** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).
**Note**  
 Les utilisateurs qui découvrent l' SageMaker IA peuvent également simplifier leur processus de configuration en créant automatiquement un nouveau rôle d'exécution de l' SageMaker IA avec les autorisations appropriées. Dans ce cas, passez aux étapes 3 et 4. À la place, les utilisateurs peuvent :  
Choisissez l'option **Configurer pour les organisations** lors de la création d'un nouveau domaine dans le menu **Domaine** dans le menu de navigation de gauche de la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).
créer un nouveau rôle d’exécution à partir du menu **Gestionnaire de rôles** de la console, puis associer le rôle à un domaine ou à un profil utilisateur existant.
Lors de la création du rôle, choisissez l’option **Exécuter les applications EMR sans serveur de Studio** dans **Quelles activités ML les utilisateurs effectueront-ils ?** Indiquez ensuite le nom de votre compartiment Amazon S3 et le rôle d’exécution des tâches que vous souhaitez que votre application EMR sans serveur utilise (étape 2).  
Le gestionnaire de rôles ajoute automatiquement au nouveau SageMaker rôle d'exécution les autorisations nécessaires à l'exécution et à la connexion aux applications EMR sans serveur au nouveau [SageMaker rôle d'exécution. À l'aide du gestionnaire]() de rôles, vous ne pouvez attribuer qu'un seul rôle d'exécution à votre application EMR sans serveur, et l'application doit s'exécuter sur le même compte où Studio est déployé, à l'aide d'un rôle d'exécution créé dans ce même compte.

1. **Étape 4** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/).

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez *Politiques EMR sans serveur* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez *region*, *accountID* et le ou les éléments *EMRServerlessAppRuntimeRole* transmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. 
**Note**  
Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique `SageMakerUpdateResourcesPolicy`, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez *region* et *accountID* par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

1. **Étape 5** :

   Associez la liste des rôles d'exécution à votre profil utilisateur ou à votre domaine afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la [connexion à une application EMR Serverless depuis](connect-emr-serverless-application.md). JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
**Important**  
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.

------
#### [ SageMaker AI console ]

   Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles d'exécution à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles d'exécution à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez les rôles d'exécution ARNs de votre EMR Serverless Runtime.

   1. Sélectionnez **Soumettre**.

   Lors de votre prochaine connexion à une application EMR Serverless via JupyterLab, les rôles d'exécution devraient apparaître dans un menu déroulant pour être sélectionnés.

------
#### [ Python script ]

   Dans une JupyterLab application démarrée depuis un espace privé à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `studio-accountID` et `EMRServerlessRuntimeExecutionRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (`client.update_user_profile`) ou des paramètres de domaine (`client.update_domain`) spécifiques, en associant spécifiquement les rôles d’exécution EMR sans serveur à l’exécution que vous avez créés précédemment.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"]
           }
           
       }
   })
   resp = client.describe_domain(DomainId="domainID")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Compte croisé
<a name="studio-set-up-emr-serverless-permissions-crossaccount"></a>

Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans différents comptes. AWS 

![\[Le diagramme montre les rôles et les autorisations nécessaires pour répertorier et connecter les applications EMR Serverless depuis Studio lorsque Studio et les applications se trouvent dans des comptes différents. AWS\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-crossaccount.png)


Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) Création d'un rôle IAM (console).

Avant de commencer : 
+ Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé. Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md). Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Extrayez l’ARN du compartiment Amazon S3 que vous utiliserez pour les sources de données et le stockage des données de sortie dans la [console Amazon S3](https://console.aws.amazon.com/S3).

  Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). Pour savoir comment trouver un compartiment par son nom, consultez [Accès à un compartiment Amazon S3 et établissement de la liste des compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html).

Si Studio et vos applications EMR sans serveur sont déployés dans des comptes AWS distincts, vous configurez les autorisations sur les deux comptes. 

### Sur le compte EMR sans serveur
<a name="studio-set-up-emr-serverless-permissions-crossaccount-emraccount"></a>

Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où votre application EMR sans serveur s’exécute, également appelé *compte d’approbation* :

1. **Étape 1** : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (`EMRServerlessRuntimeExecutionRoleB` dans le diagramme *Compte croisé* ci-dessus). Choisissez **Politique d’approbation personnalisée** comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez **Créer une politique**.

      Pour des exemples de politiques d’exécution d’un rôle d’exécution EMR sans serveur, consultez [Rôles d’exécution de tâches pour Amazon EMR sans serveur](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Dans la page **Ajouter des autorisations**, ajoutez la politique que vous avez créée, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `EMRServerlessAppRuntimeRoleB`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
**Note**  
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires (politiques Amazon EMR sans serveur) à `AssumableRole` pour autoriser l’accès aux ressources EMR sans serveur. Ce rôle est également connu en tant que *rôle d’accès*.
   + Relation de confiance : configurez la politique d’approbation pour `AssumableRole` afin de permettre d’assumer le rôle d’exécution (`SageMakerExecutionRole` dans le diagramme entre comptes) depuis le compte Studio qui nécessite un accès.

   En assumant ce rôle, Studio peut obtenir un accès temporaire aux autorisations dont il a besoin dans le compte EMR sans serveur.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau compte `AssumableRole` dans votre AWS compte EMR Serverless, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez *Politiques EMR sans serveur* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez `region`, `accountID` et le ou les éléments `EMRServerlessAppRuntimeRole` transmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.
**Note**  
L’élément `EMRServerlessAppRuntimeRole` ici est le rôle d’exécution de tâches créé à l’étape 1 (`EMRServerlessAppRuntimeRoleB` dans le diagramme *Compte croisé* ci-dessus). Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules. 

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation `EMRServerlessAppRuntimeRoleB` que vous avez créée à l’étape 2, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez [Création d'un rôle IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)

### Sur le compte Studio
<a name="studio-set-up-emr-serverless-permissions-crossaccount-studioaccount"></a>

Sur le compte sur lequel Studio est déployé, également appelé *compte sécurisé*, mettez à jour le rôle d'exécution SageMaker AI accédant à vos applications EMR Serverless avec les autorisations requises pour accéder aux ressources du compte de confiance.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.

   1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/). 

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez la politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique `SageMakerUpdateResourcesPolicy`, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](#studio-set-up-emr-serverless-permissions-reference). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique accordant au rôle d’exécution les autorisations permettant d’assumer `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle.

      Remplacez `emr-account` par l’ID du compte Amazon EMR sans serveur et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR sans serveur.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "AllowSTSToAssumeAssumableRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/AssumableRole"
          }
      }
      ```

------

1. **Étape 3** :

   Associez la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la [connexion à une application EMR Serverless depuis](connect-emr-serverless-application.md). JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
**Important**  
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.

------
#### [ SageMaker AI console ]

   Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles d'exécution à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles d'exécution à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez et les rôles d'exécution d'exécution EMR Serverless.

   1. Sélectionnez **Soumettre**.

   Lors de votre prochaine connexion à une application EMR Serverless via JupyterLab, les rôles d'exécution devraient apparaître dans un menu déroulant pour être sélectionnés.

------
#### [ Python script ]

    Dans une JupyterLab application démarrée depuis un espace privé à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `studio-accountID` et `EMRServerlessRuntimeExecutionRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres de profil utilisateur pour un profil utilisateur (`client.update_user_profile`) ou des paramètres de domaine () spécifiques au sein d'un domaine SageMaker AI. `client.update_domain` Plus précisément, il définit les rôles d’exécution à l’exécution pour Amazon EMR sans serveur, que vous avez créés précédemment. Cela permet également à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des applications EMR sans serveur au sein du compte Amazon EMR.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
               'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"]
           }
           
       }
   })
   resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Politiques de référence
<a name="studio-set-up-emr-serverless-permissions-reference"></a>
+ **Politiques EMR sans serveur** : cette politique permet de gérer les applications EMR sans serveur, notamment de les répertorier, de les créer (avec les balises SageMaker AI requises), de les démarrer, de les arrêter, d'obtenir des informations, de les supprimer, d'accéder aux points de terminaison Livy et de créer des tableaux de bord d'exécution des tâches. Cela permet également de transmettre le rôle d’exécution d’application EMR sans serveur requis au service.
  + `EMRServerlessListApplications`: autorise l' ListApplications action sur toutes les ressources EMR Serverless de la région et du compte spécifiés. AWS 
  + `EMRServerlessPassRole`: Permet de transmettre le ou les rôles d'exécution spécifiés dans le AWS compte fourni, mais uniquement lorsque le rôle est transmis au`emr-serverless.amazonaws.com service`. 
  + `EMRServerlessCreateApplicationAction`: autorise les TagResource actions CreateApplication et sur les ressources EMR sans serveur dans la région et le compte spécifiés. AWS Toutefois, cela nécessite que les ressources créées ou balisées aient des clés de balise spécifiques (`sagemaker:domain-arn`, `sagemaker:user-profile-arn` et `sagemaker:space-arn`) présentes avec des valeurs non null.
  + `EMRServerlessDenyTaggingAction`: les UntagResource actions TagResource et sur les ressources EMR Serverless dans la région et le AWS compte spécifiés si aucune des clés de balise spécifiées (`sagemaker:domain-arn`,`sagemaker:user-profile-arn`, et`sagemaker:space-arn`) n'est définie pour les ressources.
  + `EMRServerlessActions` : autorise diverses actions (`StartApplication`, `StopApplication`, `GetApplication`, `DeleteApplication`, `AccessLivyEndpoints` et `GetDashboardForJobRun`) sur les ressources EMR sans serveur, mais uniquement si les clés de balise spécifiées (`sagemaker:domain-arn`, `sagemaker:user-profile-arn` et `sagemaker:space-arn`) des ressources sont définies avec des valeurs non null.

  La politique IAM définie dans le document JSON fourni accorde ces autorisations, mais limite cet accès à la présence de balises SageMaker AI spécifiques sur les applications EMR Serverless afin de garantir que seules les ressources Amazon EMR Serverless associées à un domaine AI, un profil utilisateur et un espace SageMaker particuliers peuvent être gérées. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "EMRServerlessListApplications",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:ListApplications"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*"
          },
          {
              "Sid": "EMRServerlessPassRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/EMRServerlessAppRuntimeRole",
              "Condition": {
                  "StringLike": {
                      "iam:PassedToService": "emr-serverless.amazonaws.com"
                  }
              }
          },
          {
              "Sid": "EMRServerlessCreateApplicationAction",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:CreateApplication",
                  "emr-serverless:TagResource"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*",
              "Condition": {
                  "ForAllValues:StringEquals": {
                      "aws:TagKeys": [
                          "sagemaker:domain-arn",
                          "sagemaker:user-profile-arn",
                          "sagemaker:space-arn"
                      ]
                  },
                  "Null": {
                      "aws:RequestTag/sagemaker:domain-arn": "false",
                      "aws:RequestTag/sagemaker:user-profile-arn": "false",
                      "aws:RequestTag/sagemaker:space-arn": "false"
                  }
              }
          },
          {
              "Sid": "EMRServerlessDenyTaggingAction",
              "Effect": "Deny",
              "Action": [
                  "emr-serverless:TagResource",
                  "emr-serverless:UntagResource"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "true",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "true",
                      "aws:ResourceTag/sagemaker:space-arn": "true"
                  }
              }
          },
          {
              "Sid": "EMRServerlessActions",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:StartApplication",
                  "emr-serverless:StopApplication",
                  "emr-serverless:GetApplication",
                  "emr-serverless:DeleteApplication",
                  "emr-serverless:AccessLivyEndpoints",
                  "emr-serverless:GetDashboardForJobRun"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/applications/*",
              "Condition": {
                  "Null": {
                      "aws:ResourceTag/sagemaker:domain-arn": "false",
                      "aws:ResourceTag/sagemaker:user-profile-arn": "false",
                      "aws:ResourceTag/sagemaker:space-arn": "false"
                  }
              }
          }
      ]
  }
  ```

------
+ **Politique relative aux actions de mise à jour du domaine, du profil utilisateur et de l'espace** : La politique suivante autorise la mise à jour des domaines SageMaker AI, des profils utilisateur et des espaces dans la région et le AWS compte spécifiés.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------

# Création d’applications EMR sans serveur depuis Studio
<a name="create-emr-serverless-application"></a>

Les scientifiques des données et les ingénieurs de données peuvent créer des applications EMR sans serveur directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir configuré les autorisations nécessaires, comme décrit dans la section [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md). Ces autorisations permettent à Studio de créer, de démarrer, de visualiser et de résilier les applications, ainsi que d’y accéder.

Pour créer une application EMR sans serveur depuis Studio :

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.

1. Choisissez le bouton **Créer une application sans serveur** dans le coin supérieur droit. Cela ouvre une page **Créer une application** semblable à celle que vous pouvez voir dans la [console EMR sans serveur](https://console.aws.amazon.com/emrserverless) lorsque vous choisissez **Utilisez des paramètres personnalisés** dans les **options de configuration de l’application**.

1. Fournissez les informations nécessaires pour votre application, y compris un nom et les paramètres configurables spécifiques que vous souhaitez définir, puis choisissez **Créer une application**.  
![\[Formulaire de création d’une application EMR sans serveur depuis Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-create-app.png)

   Tous les paramètres de configuration ont des valeurs par défaut et leur modification est facultative. Pour obtenir des informations détaillées sur chaque paramètre disponible, consultez [Configuration d’une application](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/application-capacity.html) dans le Guide de l’utilisateur EMR sans serveur.
**Note**  
Au cours du processus de création de l’application dans l’interface utilisateur de Studio, vous pouvez **créer une application** ou **créer et démarrer une application**. En fonction de votre choix, l’application présentera l’état `Creating` ou `Starting` respectivement.  
Si vous choisissez de créer l’application sans la démarrer immédiatement, assurez-vous que l’option **Démarrer automatiquement l’application lors de la soumission de la tâche** reste sélectionnée. Cela garantira que l’application passera automatiquement à l’état `Starting` lorsque vous soumettrez ultérieurement une tâche à exécuter dessus. 
Pour la configuration la plus simple, nous vous recommandons de laisser l’option **Cloud privé virtuel (VPC)** définie sur sa valeur par défaut, à savoir **Aucune connectivité réseau aux ressources de votre VPC**, dans la section **Connexions réseau**. Cela permet de créer l’application au sein de votre VPC de domaine sans nécessiter de configuration réseau supplémentaire.  
 Dans tous les autres cas, veillez à effectuer les étapes suivantes :   
Regardez votre VPCs.
Ajoutez des routes dans les tables de routage de vos sous-réseaux privés.
Configurez vos groupes de sécurité comme indiqué dans [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md).
Cela garantit la configuration de mise en réseau appropriée pour votre application, au-delà de l’option **Aucune connectivité réseau** par défaut.
Pour les applications créées à partir de l’interface utilisateur de Studio Classic, la configuration suivante est automatiquement appliquée :  
Un point de terminaison Apache Livy activé.
L’application est balisée avec les éléments suivants :  
sagemaker : user-profile-arn
sagemaker:domain-arn
sagemaker:space-arn
Si vous créez une application en dehors de Studio, veillez à activer manuellement le point de terminaison Apache Livy et à appliquer le même ensemble de balises à l’application.

Une fois l’application créée, l’interface utilisateur de Studio Classic affiche un message *L’application a été créée avec succès* et la nouvelle application apparaît dans la liste des **applications sans serveur**.

Pour vous connecter à votre application EMR sans serveur, consultez [Connexion à une application EMR sans serveur depuis Studio](connect-emr-serverless-application.md).

# Connexion à une application EMR sans serveur depuis Studio
<a name="connect-emr-serverless-application"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir une application EMR sans serveur et s’y connecter directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir créé une application EMR sans serveur en suivant les instructions fournies dans [Création d’applications EMR sans serveur depuis Studio](create-emr-serverless-application.md).

Vous pouvez connecter une application EMR Serverless à un nouveau JupyterLab bloc-notes directement depuis l'interface utilisateur de Studio, ou choisir d'établir la connexion dans le bloc-notes d'une application en cours d'exécution. JupyterLab 

**Important**  
Lorsque vous utilisez Studio, vous pouvez uniquement découvrir et vous connecter aux applications EMR Serverless pour les JupyterLab applications lancées depuis des espaces privés. Assurez-vous que les applications EMR Serverless sont situées dans la même AWS région que votre environnement Studio. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

**Pour connecter une application EMR Serverless à un nouveau JupyterLab bloc-notes depuis l'interface utilisateur de Studio :**

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.
**Note**  
Si vous ou votre administrateur avez configuré les autorisations pour autoriser l’accès intercompte aux applications EMR sans serveur, vous pouvez visualiser une liste consolidée des applications pour tous les comptes auxquels vous avez accordé l’accès à Studio.

1. Sélectionnez une application EMR sans serveur que vous souhaitez connecter à un nouveau bloc-notes, puis choisissez **Attacher à un bloc-notes**. Cela ouvre une fenêtre modale affichant la liste de vos JupyterLab espaces.

1. 
   + Sélectionnez l'espace privé à partir duquel vous souhaitez lancer une JupyterLab application, puis choisissez **Ouvrir un bloc-notes**. Cela lance une JupyterLab application depuis l'espace que vous avez choisi et ouvre un nouveau bloc-notes.
   + Vous pouvez également créer un nouvel espace privé en choisissant le bouton **Créer un nouvel espace** en haut de la fenêtre modale. Entrez un nom pour votre espace, puis choisissez **Créer l’espace et ouvrir le bloc-notes**. Cela crée un espace privé avec le type d'instance par défaut et SageMaker la dernière image de distribution disponible, lance une JupyterLab application et ouvre un nouveau bloc-notes.

1. Choisissez le nom du rôle d’exécution IAM à l’exécution que votre application EMR sans serveur peut assumer pour l’exécution de la tâche. Après cette sélection, une commande de connexion remplit la première cellule de votre bloc-notes et initie la connexion avec l’application EMR sans serveur.
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à une application EMR Serverless, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Une fois la connexion établie, un message confirme la connexion, démarre votre application EMR sans serveur et lance votre session Spark.
**Note**  
Lorsque vous vous connectez à une application EMR sans serveur, son statut passe de `Stopped` ou `Created` à `Started`.

**Vous pouvez également vous connecter à un cluster à partir d'un JupyterLab bloc-notes.**

1. Choisissez le bouton **Cluster** en haut à droite de votre bloc-notes. Cela ouvre une fenêtre modale répertoriant les applications EMR sans serveur auxquelles vous pouvez accéder. Vous pouvez voir les applications dans l’onglet **Applications sans serveur**.

1. Sélectionnez l’application à laquelle vous souhaitez vous connecter, puis choisissez **Connecter**.

1. EMR sans serveur prend en charge les rôles IAM d’exécution qui ont été préchargés lors de la définition des autorisations requises, comme indiqué dans [Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker](studio-emr-serverless-permissions.md). Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Vous pouvez sélectionner votre rôle dans le menu déroulant du **rôle d’exécution Amazon EMR**. Lorsque vous vous connectez à EMR sans serveur, Studio ajoute un bloc de code à une cellule active de votre bloc-notes pour établir la connexion.

1. Une cellule active se remplit et s’exécute. Cette cellule contient la commande magique de connexion permettant de connecter votre bloc-notes à votre application.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark. Vous pouvez commencer à soumettre vos tâches de traitement des données à votre application EMR sans serveur.

# Arrêt ou suppression d’une application EMR sans serveur depuis l’interface utilisateur de Studio
<a name="terminate-emr-serverless-application"></a>

Vous pouvez arrêter (passer à l’état `Stopped`) ou supprimer (passer à l’état `Deleted`) une application EMR sans serveur de la liste des applications de l’interface utilisateur de Studio. 

**Pour arrêter ou supprimer une application, accédez à la liste des applications EMR sans serveur disponibles.**

1. Dans l’interface utilisateur de Studio, accédez au panneau de gauche et sélectionnez le nœud **Données** dans le menu de navigation de gauche. Ensuite, faites défiler la page et choisissez l’option **Applications et clusters Amazon EMR**. Cela ouvre une page qui affiche les applications Amazon EMR auxquelles vous pouvez accéder depuis l’environnement Studio, sous l’onglet **Applications sans serveur**.

1. Sélectionnez le nom de l’application que vous souhaitez arrêter ou supprimer, puis choisissez le bouton **Arrêter** ou **Supprimer** correspondant.

1. Un message de confirmation vous informe que toute tâche en attente sera définitivement perdue. 

# Préparation des données à l’aide d’Amazon EMR
<a name="studio-notebooks-emr-cluster"></a>

**Important**  
Amazon SageMaker Studio et Amazon SageMaker Studio Classic sont deux des environnements d'apprentissage automatique que vous pouvez utiliser pour interagir avec l' SageMaker IA.  
Si votre domaine a été créé après le 30 novembre 2023, Studio est votre expérience par défaut.  
Si votre domaine a été créé avant le 30 novembre 2023, Amazon SageMaker Studio Classic est votre expérience par défaut. Pour utiliser Studio si Amazon SageMaker Studio Classic est votre expérience par défaut, consultez[Migration depuis Amazon SageMaker Studio Classic](studio-updated-migrate.md).  
Lorsque vous migrez d'Amazon SageMaker Studio Classic vers Amazon SageMaker Studio, il n'y a aucune perte de disponibilité des fonctionnalités. Studio Classic existe également sous forme d'application au sein d'Amazon SageMaker Studio pour vous aider à exécuter vos anciens flux de travail d'apprentissage automatique.

Amazon SageMaker Studio et Studio Classic sont intégrés à [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). [Dans les blocs-notes JupyterLab et Studio Classic, les data scientists et les ingénieurs de données peuvent découvrir et se connecter aux clusters Amazon EMR existants, puis explorer, visualiser et préparer de manière interactive des données à grande échelle pour le machine learning à l'[aide d'Apache Spark, Apache](https://aws.amazon.com/emr/features/spark)[Hive ou Presto](https://aws.amazon.com/emr/features/hive).](https://aws.amazon.com/emr/features/presto) En un seul clic, ils peuvent accéder à l’interface utilisateur de Spark pour surveiller le statut et les métriques de leurs tâches Spark sans quitter leur bloc-notes.

Les administrateurs peuvent créer des [modèles CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) qui définissent les clusters Amazon EMR. Ils peuvent ensuite mettre ces modèles de cluster à disposition des utilisateurs de Studio et de Studio Classic dans [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/userguide/end-user-console.html) pour qu’ils puissent les lancer. Les scientifiques des données peuvent ensuite choisir un modèle prédéfini pour auto-provisionner un cluster Amazon EMR directement depuis leur environnement Studio. Les administrateurs peuvent paramétrer davantage les modèles pour permettre aux utilisateurs de choisir les aspects du cluster dans le cadre de valeurs prédéfinies. Par exemple, les utilisateurs peuvent souhaiter spécifier le nombre de nœuds principaux ou sélectionner le type d’instance d’un nœud dans un menu déroulant.

Les administrateurs peuvent ainsi contrôler l'organisation, la sécurité et la configuration réseau des clusters Amazon EMR. CloudFormation Les scientifiques des données et les ingénieurs de données peuvent ensuite personnaliser ces modèles pour leurs charges de travail afin de créer des clusters Amazon EMR à la demande directement depuis Studio et Studio Classic sans configurer de configurations complexes. Les utilisateurs peuvent résilier les clusters Amazon EMR après utilisation.
+ **Si vous êtes administrateur** :

  Assurez-vous d’avoir activé la communication entre Studio ou Studio Classic et les clusters Amazon EMR. Pour obtenir des instructions, consultez la section [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md). Une fois cette communication activée, vous pouvez :
  + [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md)
  + [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md)
+ **Si vous êtes un scientifique des données ou un ingénieur de données**, vous pouvez :
  + [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md)
  + [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)
  + [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md)
  + [Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic](terminate-emr-clusters.md)
  + [Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic](studio-notebooks-access-spark-ui.md)

**Topics**
+ [Démarrage rapide : création d'un domaine sandbox SageMaker AI pour lancer des clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-quickstart.md)
+ [Guide de l’administrateur](studio-emr-admin-guide.md)
+ [Guide de l’utilisateur](studio-emr-user-guide.md)
+ [Blogs et livres blancs](studio-notebooks-emr-resources.md)
+ [Résolution des problèmes](studio-notebooks-emr-troubleshooting.md)

# Démarrage rapide : création d'un domaine sandbox SageMaker AI pour lancer des clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-quickstart"></a>

Cette section explique comment configurer rapidement un environnement de test complet dans Amazon SageMaker Studio. Vous allez créer un nouveau domaine Studio qui permettra aux utilisateurs de lancer de nouveaux clusters Amazon EMR directement depuis Studio. Cette procédure fournit un exemple de bloc-notes que vous pouvez connecter à un cluster Amazon EMR pour commencer à exécuter des charges de travail Spark. À l'aide de ce bloc-notes, vous allez créer un système de génération augmentée (RAG) à l'aide du traitement distribué Amazon EMR Spark et de la base de données vectorielle. OpenSearch 

**Note**  
Pour commencer, connectez-vous à la console de AWS gestion à l'aide d'un compte utilisateur Gestion des identités et des accès AWS (IAM) doté d'autorisations d'administrateur. Pour en savoir plus sur la façon de s’inscrire à un compte AWS et de créer un utilisateur doté d’un accès administratif, consultez [Compléter les prérequis SageMaker relatifs à Amazon AI](gs-set-up.md).

**Pour configurer votre environnement de test Studio et commencer à exécuter des tâches Spark :**
+ [Étape 1 : créer un domaine SageMaker AI pour lancer des clusters Amazon EMR dans Studio](#studio-notebooks-emr-cluster-quickstart-setup)
+ [Étape 2 : Lancement d’un nouveau cluster Amazon EMR depuis l’interface utilisateur de Studio](#studio-notebooks-emr-cluster-quickstart-launch)
+ [Étape 3 : Connecter un JupyterLab bloc-notes au cluster Amazon EMR](#studio-notebooks-emr-cluster-quickstart-connect)
+ [Étape 4 : Nettoyez votre CloudFormation pile](#studio-notebooks-emr-cluster-quickstart-clean-stack)

## Étape 1 : créer un domaine SageMaker AI pour lancer des clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-quickstart-setup"></a>

Dans les étapes suivantes, vous appliquez une CloudFormation pile pour créer automatiquement un nouveau domaine d' SageMaker IA. La pile crée également un profil utilisateur et configure l’environnement et les autorisations nécessaires. Le domaine SageMaker AI est configuré pour vous permettre de lancer directement des clusters Amazon EMR depuis Studio. Dans cet exemple, les clusters Amazon EMR sont créés dans le même AWS compte que SageMaker AI sans authentification. [Vous pouvez trouver des CloudFormation piles supplémentaires prenant en charge diverses méthodes d'authentification telles que Kerberos dans le référentiel getting\$1started.](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 

**Note**  
SageMaker L'IA autorise 5 domaines Studio par AWS compte et Région AWS par défaut. Avant de créer votre pile, assurez-vous que votre compte ne comporte pas plus de 4 domaines dans votre région.

**Suivez ces étapes pour configurer un domaine SageMaker AI afin de lancer des clusters Amazon EMR depuis Studio.**

1. Téléchargez le fichier brut de ce [CloudFormation modèle](https://github.com/aws-samples/sagemaker-studio-foundation-models/blob/main/workshop-artifacts/cfn/workshop-cfn.yaml) depuis le `sagemaker-studio-emr` GitHub référentiel.

1. Accédez à la CloudFormation console : [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. Choisissez **Créer une pile** et sélectionnez **Avec de nouvelles ressources (standard)** dans le menu déroulant.

1. À l’**Étape 1** :

   1. Dans la section **Préparer le modèle**, sélectionnez **Choisir un modèle existant**.

   1. Dans la section **Spécifier un modèle**, sélectionnez **Charger un modèle de fichier**.

   1. Téléchargez le CloudFormation modèle téléchargé et choisissez **Next**.

1. À **l'étape 2**, entrez un **nom de pile **SageMakerDomainName****, puis choisissez **Next**.

1. À l’**Étape 3**, conservez toutes les valeurs par défaut et choisissez **Suivant**.

1. À l’**Étape 4**, cochez la case pour accuser réception de la création de ressources et choisissez **Créer une pile**. Cela crée un domaine Studio dans votre compte et dans votre région.

## Étape 2 : Lancement d’un nouveau cluster Amazon EMR depuis l’interface utilisateur de Studio
<a name="studio-notebooks-emr-cluster-quickstart-launch"></a>

Dans les étapes suivantes, vous allez créer un nouveau cluster Amazon EMR à partir de l’interface utilisateur de Studio.

1. Accédez à la console SageMaker AI [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et choisissez **Domaines** dans le menu de gauche.

1. Cliquez sur votre nom de domaine **Generative AIDomain** pour ouvrir la page des **détails du domaine**.

1. Lancez Studio depuis le profil utilisateur `genai-user`.

1. Dans le volet de navigation de gauche, accédez à **Données** puis à **Clusters Amazon EMR**.

1. Sur la page Clusters Amazon EMR, choisissez **Créer**. **Sélectionnez le modèle **SageMaker Studio Domain No Auth EMR** créé par CloudFormation la pile, puis choisissez Next.**

1. Entrez un nom pour le nouveau cluster Amazon EMR. Mettez éventuellement à jour d’autres paramètres tels que le type d’instance des nœuds principaux, le délai d’inactivité ou le nombre de nœuds principaux.

1. Choisissez **Créer une ressource** pour lancer le nouveau cluster Amazon EMR. 

   Après avoir créé le cluster Amazon EMR, suivez le statut sur la page **Clusters EMR**. Lorsque le statut passe à `Running/Waiting`, votre cluster Amazon EMR est prêt à être utilisé dans Studio.

## Étape 3 : Connecter un JupyterLab bloc-notes au cluster Amazon EMR
<a name="studio-notebooks-emr-cluster-quickstart-connect"></a>

Dans les étapes suivantes, vous allez connecter un bloc-notes JupyterLab à votre cluster Amazon EMR en cours d'exécution. Dans cet exemple, vous importez un bloc-notes vous permettant de créer un système RAG (Retrieval Augmented Generation) à l'aide du traitement distribué Amazon EMR Spark et de la base de données vectorielle. OpenSearch 

1. 

**Lancement JupyterLab**

   Depuis Studio, lancez l' JupyterLab application.

1. 

**Création d’un espace privé**

   Si vous n'avez pas créé d'espace pour votre JupyterLab application, choisissez **Créer un JupyterLab espace**. Entrez un nom pour cet espace et conservez l’espace comme **Privé**. Laissez tous les autres paramètres à leurs valeurs par défaut, puis choisissez **Créer un espace**. 

   Sinon, exécutez votre JupyterLab espace pour lancer une JupyterLab application.

1. 

**Déploiement de votre LLM et de vos modèles de vectorisation à des fins d’inférence**
   + Dans le menu supérieur, choisissez **Fichier**, **Nouveau**, puis **Terminal**.
   + Dans le terminal, exécutez la commande suivante.

     ```
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb
     mkdir AWSGuides
     cd AWSGuides
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf
     ```

     Cela permet d’extraire le bloc-notes `Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb` dans votre répertoire local et de télécharger trois fichiers PDF dans un dossier `AWSGuides` local.
   + Ouvrez `lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb`, conservez le noyau `Python 3 (ipykernel)` et exécutez chaque cellule.
**Avertissement**  
Dans la section **Contrat de licence Llama 2**, veillez à accepter le CLUF Llama2 avant de continuer.  
Le bloc-notes déploie deux modèles, `Llama 2` et `all-MiniLM-L6-v2 Models`, sur `ml.g5.2xlarge` pour inférence.

     Le déploiement des modèles et la création des points de terminaison peuvent prendre un certain temps.

1. 

**Ouverture de votre bloc-notes principal**

   Dans JupyterLab, ouvrez votre terminal et exécutez la commande suivante.

   ```
   cd ..
   wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb
   ```

   Vous devriez voir le `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` bloc-notes supplémentaire dans le panneau de gauche de JupyterLab.

1. 

**Choix d’un noyau `PySpark`**

   Ouvrez votre bloc-notes `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` et assurez-vous d’utiliser le noyau `SparkMagic PySpark`. Vous pouvez changer de noyau en haut à droite de votre bloc-notes. Choisissez le nom actuel du noyau pour ouvrir une fenêtre modale de sélection de noyau, puis choisissez `SparkMagic PySpark`.

1. 

**Connexion de votre bloc-notes au cluster**

   1. En haut à droite de votre bloc-notes, choisissez **Cluster**. Cette action ouvre une fenêtre modale qui répertorie tous les clusters en cours d’exécution auxquels vous avez l’autorisation d’accéder. 

   1. Sélectionnez votre cluster, puis choisissez **Se connecter**. Une nouvelle fenêtre modale de sélection du type d’informations d’identification s’ouvre.

   1. Choisissez **Aucune information d’identification**, puis **Se connecter**.  
![\[Modal montrant la sélection des informations d'identification Amazon EMR pour les JupyterLab ordinateurs portables.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-credential-selection.png)

   1. Une cellule de bloc-notes est remplie et exécutée automatiquement. La cellule de bloc-notes charge l’extension `sagemaker_studio_analytics_extension.magics`, qui fournit des fonctionnalités permettant de se connecter au cluster Amazon EMR. Elle utilise ensuite la commande magique `%sm_analytics` pour établir la connexion à votre cluster Amazon EMR et à l’application Spark.
**Note**  
Assurez-vous que le type d’authentification de la chaîne de connexion à votre cluster Amazon EMR est défini sur `None`. Ceci est illustré par la valeur `--auth-type None` dans l’exemple suivant. Vous pouvez modifier le champ, si nécessaire.  

      ```
      %load_ext sagemaker_studio_analytics_extension.magics
      %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
      ```

   1. Une fois que vous avez établi la connexion, le message de sortie de votre cellule de connexion devrait afficher vos informations `SparkSession`, notamment l’identifiant de votre cluster, l’identifiant de l’application `YARN` et un lien vers l’interface utilisateur Spark pour surveiller vos tâches Spark.

Vous êtes prêt à utiliser le bloc-notes `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb`. Cet exemple de bloc-notes exécute des PySpark charges de travail distribuées pour créer un système RAG à l'aide LangChain de et. OpenSearch

## Étape 4 : Nettoyez votre CloudFormation pile
<a name="studio-notebooks-emr-cluster-quickstart-clean-stack"></a>

Une fois que vous avez terminé, assurez-vous de résilier vos deux points de terminaison et de supprimer votre pile CloudFormation pour éviter des frais ultérieurs. La suppression de la pile nettoie toutes les ressources provisionnées par la pile.

**Pour supprimer votre CloudFormation pile lorsque vous en avez terminé**

1. Accédez à la CloudFormation console : [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez la pile que vous voulez supprimer. Vous pouvez la rechercher par son nom ou la trouver dans la liste des piles.

1. Cliquez sur le bouton **Supprimer** pour finaliser la suppression de la pile, puis sur **Supprimer** à nouveau pour confirmer que toutes les ressources créées par la pile seront supprimées.

   Attendez que la suppression de la pile se termine. Cela peut prendre quelques minutes. CloudFormation nettoie automatiquement toutes les ressources définies dans le modèle de pile.

1. Vérifiez que toutes les ressources créées par la pile ont été supprimées. Par exemple, vérifiez s’il n’y a pas de cluster Amazon EMR restant.

**Pour supprimer les points de terminaison d’API d’un modèle**

1. Accédez à la console SageMaker AI : [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation, choisissez **Inférence**, puis **Points de terminaison**.

1. Sélectionnez le point de terminaison `hf-allminil6v2-embedding-ep`, puis choisissez **Supprimer** dans la liste déroulante **Actions**. Répétez l’étape pour le point de terminaison `meta-llama2-7b-chat-tg-ep`.

# Guide de l’administrateur
<a name="studio-emr-admin-guide"></a>

Cette section fournit les conditions préalables et les instructions de mise en réseau pour autoriser la communication entre Studio ou Studio Classic et les clusters Amazon EMR. Il couvre différents scénarios de déploiement : lorsque Studio et Amazon EMR sont fournis au sein d'Amazon privé VPCs sans accès public à Internet, ou lorsqu'ils doivent communiquer via Internet.

Il explique comment les administrateurs peuvent utiliser les modèles pour mettre des CloudFormation modèles AWS Service Catalog à la disposition de Studio, permettant ainsi aux data scientists de découvrir et de provisionner eux-mêmes les clusters Amazon EMR directement depuis Studio. Cela implique de créer un portefeuille Service Catalog, d’accorder les autorisations requises, de référencer les modèles Amazon EMR et de les paramétrer pour permettre des personnalisations lors de la création du cluster.

Enfin, elle fournit des conseils sur la configuration de la découvrabilité des clusters Amazon EMR en cours d’exécution existants à partir de Studio et de Studio Classic, couvrant les scénarios d’accès à un seul compte et intercompte, ainsi que les autorisations IAM nécessaires.

**Topics**
+ [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md)
+ [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md)
+ [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md)
+ [Politiques de référence](studio-set-up-emr-permissions-reference.md)

# Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog
<a name="studio-notebooks-set-up-emr-templates"></a>

Cette rubrique part du principe que les administrateurs connaissent bien [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)les [portefeuilles et les produits](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-portfolio.html) qu' AWS Service Catalog il contient, ainsi qu'[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html).

Pour simplifier la création de clusters Amazon EMR à partir de Studio, les administrateurs peuvent enregistrer un [ CloudFormation modèle Amazon EMR](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html) en tant que produit dans un portefeuille. [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) Pour mettre le modèle à la disposition des data scientists, ils doivent associer le portefeuille au rôle d'exécution de l' SageMaker IA utilisé dans Studio ou Studio Classic. Enfin, pour permettre aux utilisateurs de découvrir des modèles, de provisionner des clusters et de se connecter aux clusters Amazon EMR depuis Studio ou Studio Classic, les administrateurs doivent définir les autorisations d’accès appropriées.

Les CloudFormation modèles Amazon EMR peuvent permettre aux utilisateurs finaux de personnaliser différents aspects du cluster. Par exemple, les administrateurs peuvent définir une liste approuvée de types d’instances parmi lesquels les utilisateurs peuvent choisir lors de la création d’un cluster.

Les instructions suivantes utilisent des end-to-end [CloudFormation piles](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) pour configurer un domaine Studio ou Studio Classic, un profil utilisateur, un portefeuille Service Catalog et remplir un modèle de lancement Amazon EMR. Les étapes suivantes mettent en évidence les paramètres spécifiques que les administrateurs doivent appliquer à leur end-to-end stack pour permettre à Studio ou Studio Classic d'accéder aux produits Service Catalog et de provisionner des clusters Amazon EMR.

**Note**  
Le GitHub référentiel [aws-samples/ sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) contient des exemples de end-to-end CloudFormation piles qui déploient les rôles IAM, le réseau, le domaine, le profil SageMaker utilisateur, le portefeuille Service Catalog nécessaires et ajoutent un modèle de lancement Amazon EMR. CloudFormation Les modèles proposent différentes options d’authentification entre Studio ou Studio Classic et le cluster Amazon EMR. Dans ces exemples de modèles, la CloudFormation pile parent transmet les paramètres du VPC SageMaker AI, du groupe de sécurité et du sous-réseau au modèle de cluster Amazon EMR.  
Le référentiel [sagemaker-studio-emr/cloudformation/emr\$1servicecatalog\$1templates](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/emr_servicecatalog_templates) contient plusieurs exemples de modèles de lancement Amazon CloudFormation EMR, notamment des options pour les déploiements à compte unique et multicompte.  
Consultez [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md) pour plus d’informations sur les méthodes d’authentification que vous pouvez utiliser pour vous connecter à un cluster Amazon EMR.

Pour permettre aux data scientists de découvrir les CloudFormation modèles Amazon EMR et de provisionner des clusters depuis Studio ou Studio Classic, procédez comme suit.

## Étape 0 : Vérifiez votre réseau et préparez votre CloudFormation stack
<a name="studio-set-up-emr-prereq"></a>

Avant de commencer :
+ Assurez-vous d’avoir passé en revue les exigences de mise en réseau et de sécurité dans [Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md).
+ Vous devez disposer d'une end-to-end CloudFormation pile existante prenant en charge la méthode d'authentification de votre choix. Vous trouverez des exemples de tels CloudFormation modèles dans le dépôt [sagemaker-studio-emr GitHub aws-samples/](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started). Les étapes suivantes mettent en évidence les configurations spécifiques de votre end-to-end stack pour permettre l'utilisation de modèles Amazon EMR dans Studio ou Studio Classic. 

## Étape 1 : associez votre portefeuille Service Catalog à l' SageMaker IA
<a name="studio-set-up-emr-service-catalog-portfolio"></a>

**Dans votre portefeuille Service Catalog**, associez votre ID de portefeuille au rôle d'exécution SageMaker AI accédant à votre cluster.

Pour ce faire, ajoutez la section suivante (ici au format YAML) à votre pile. Cela permet au rôle d'exécution SageMaker AI d'accéder au portefeuille Service Catalog spécifié contenant des produits tels que les modèles Amazon EMR. Cela permet aux rôles assumés par l' SageMaker IA de lancer ces produits.

 Remplacez *SageMakerExecutionRole.Arn* et *SageMakerStudioEMRProductPortfolio.ID* par leurs valeurs réelles.

```
SageMakerStudioEMRProductPortfolioPrincipalAssociation:
    Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation
    Properties:
      PrincipalARN: SageMakerExecutionRole.Arn
      PortfolioId: SageMakerStudioEMRProductPortfolio.ID
      PrincipalType: IAM
```

Pour plus de détails sur l’ensemble d’autorisations IAM requis, consultez la section sur les [autorisations](#studio-emr-permissions).

## Étape 2 : Référencement d’un modèle Amazon EMR dans un produit Service Catalog
<a name="studio-set-up-emr-service-catalog-product"></a>

**Dans un produit Service Catalog de votre portefeuille**, référencez une ressource de modèle Amazon EMR et garantissez sa visibilité dans Studio ou Studio Classic. 

Pour cela, référencez la ressource du modèle Amazon EMR dans la définition du produit Service Catalog, puis ajoutez la clé de balise `"sagemaker:studio-visibility:emr"` suivante, définie sur la valeur `"true"` (voir l’exemple au format YAML).

Dans la définition du produit Service Catalog, le CloudFormation modèle du cluster est référencé via une URL. La balise supplémentaire définie sur true garantit la visibilité des modèles Amazon EMR dans Studio ou Studio Classic. 

**Note**  
Le modèle Amazon EMR référencé par l’URL fournie dans l’exemple n’impose aucune exigence d’authentification lors de son lancement. Cette option est destinée à des fins de démonstration et d’apprentissage. Elle n’est pas recommandée dans un environnement de production.

```
SMStudioEMRNoAuthProduct:
    Type: AWS::ServiceCatalog::CloudFormationProduct
    Properties:
      Owner: AWS
      Name: SageMaker Studio Domain No Auth EMR
      ProvisioningArtifactParameters:
        - Name: SageMaker Studio Domain No Auth EMR
          Description: Provisions a SageMaker domain and No Auth EMR Cluster
          Info:
            LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml
      Tags:
        - Key: "sagemaker:studio-visibility:emr"
          Value: "true"
```

## Étape 3 : paramétrer le modèle Amazon EMR CloudFormation
<a name="studio-set-up-emr-cfn-template"></a>

**Le CloudFormation modèle utilisé pour définir le cluster Amazon EMR dans le produit Service Catalog** permet aux administrateurs de spécifier des paramètres configurables. Les administrateurs peuvent définir des valeurs `Default` et des plages `AllowedValues` pour ces paramètres dans la section `Parameters` du modèle. Au cours du processus de lancement du cluster, les scientifiques des données peuvent fournir des entrées personnalisées ou effectuer des sélections parmi ces options prédéfinies pour personnaliser certains aspects de leur cluster Amazon EMR.

L’exemple suivant illustre les paramètres de saisie supplémentaires que les administrateurs peuvent définir lors de la création d’un modèle Amazon EMR.

```
"Parameters": {
    "EmrClusterName": {
      "Type": "String",
      "Description": "EMR cluster Name."
    },
    "MasterInstanceType": {
      "Type": "String",
      "Description": "Instance type of the EMR master node.",
      "Default": "m5.xlarge",
      "AllowedValues": [
        "m5.xlarge",
        "m5.2xlarge",
        "m5.4xlarge"
      ]
    },
    "CoreInstanceType": {
      "Type": "String",
      "Description": "Instance type of the EMR core nodes.",
      "Default": "m5.xlarge",
      "AllowedValues": [
        "m5.xlarge",
        "m5.2xlarge",
        "m5.4xlarge",
        "m3.medium",
        "m3.large",
        "m3.xlarge",
        "m3.2xlarge"
      ]
    },
    "CoreInstanceCount": {
      "Type": "String",
      "Description": "Number of core instances in the EMR cluster.",
      "Default": "2",
      "AllowedValues": [
        "2",
        "5",
        "10"
      ]
    },
    "EmrReleaseVersion": {
      "Type": "String",
      "Description": "The release version of EMR to launch.",
      "Default": "emr-5.33.1",
      "AllowedValues": [
        "emr-5.33.1",
        "emr-6.4.0"
      ]
    }
  }
```

Une fois que les administrateurs ont mis les CloudFormation modèles Amazon EMR à disposition dans Studio, les data scientists peuvent les utiliser pour auto-provisionner des clusters Amazon EMR. La section `Parameters` définie dans le modèle se traduit par des champs de saisie sur le formulaire de création de cluster dans Studio ou Studio Classic. Pour chaque paramètre, les scientifiques des données peuvent entrer une valeur personnalisée dans la zone de saisie ou sélectionner l’une des options prédéfinies répertoriées dans un menu déroulant, qui correspond aux valeurs `AllowedValues` spécifiées dans le modèle.

L'illustration suivante montre le formulaire dynamique assemblé à partir d'un modèle CloudFormation Amazon EMR pour créer un cluster Amazon EMR dans Studio ou Studio Classic.

![\[Illustration d'un formulaire dynamique assemblé à partir d'un modèle CloudFormation Amazon EMR pour créer un cluster Amazon EMR à partir de Studio ou Studio Classic.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-cluster-creation.png)


Consultez [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md) pour découvrir comment lancer un cluster depuis Studio ou Studio Classic à l’aide de ces modèles Amazon EMR.

## Étape 4 : Configuration des autorisations pour activer l’établissement d’une liste et le lancement des clusters Amazon EMR à partir de Studio
<a name="studio-emr-permissions"></a>

Enfin, attachez les autorisations IAM requises pour permettre de répertorier les clusters Amazon EMR en cours d’exécution existants et d’auto-provisionner de nouveaux clusters à partir de Studio ou de Studio Classic.

Le ou les rôles auxquels vous devez ajouter ces autorisations dépendent du fait que Studio ou Studio Classic et Amazon EMR sont déployés dans le même compte (choisissez *Compte unique*) ou dans des comptes différents (choisissez *Compte croisé*).

**Important**  
Vous pouvez uniquement découvrir et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio.

### Compte unique
<a name="studio-set-up-emr-permissions-singleaccount"></a>

Si vos clusters Amazon EMR et Studio ou Studio Classic sont déployés dans le même AWS compte, associez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre cluster.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/). 

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique accordant au rôle d’exécution les autorisations nécessaires pour provisionner de nouveaux clusters Amazon EMR à l’aide de modèles CloudFormation . Pour plus de détails sur le document de politique, consultez *Create Amazon EMRclusters policies* dans[Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

**Note**  
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à [Configuration de l’authentification du rôle d’exécution lorsque votre cluster Amazon EMR et Studio sont sur le même compte](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-same). 

### Compte croisé
<a name="studio-set-up-emr-permissions-crossaccount"></a>

Avant de commencer, récupérez l'ARN du rôle d'exécution de l' SageMaker IA utilisé par votre espace privé.

Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

Si vos clusters Amazon EMR et Studio ou Studio Classic sont déployés dans des AWS comptes distincts, vous configurez les autorisations sur les deux comptes.

**Note**  
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à [Configuration de l’authentification du rôle d’exécution lorsque votre cluster et Studio sont dans des comptes différents](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-diff). 

#### Sur le compte des clusters Amazon EMR
<a name="studio-set-up-emr-permissions-crossaccount-emraccount"></a>

Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où Amazon EMR est déployé, également appelé *compte d’approbation* :

1. **Étape 1** : extrayez l’ARN du [rôle de service de votre cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html). 

   Pour découvrir comment trouver l’ARN du rôle de service d’un cluster, consultez [Configuration des rôles de service IAM pour les autorisations Amazon EMR aux services et ressources AWS](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html#emr-iam-role-landing).

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires à `AssumableRole` pour autoriser l’accès aux ressources Amazon EMR. Ce rôle est également appelé *rôle d’accès* dans les scénarios impliquant un accès intercompte.
   + Relation de confiance : configurez la politique d’approbation pour `AssumableRole` afin d’autoriser l’endossement du rôle d’exécution (`SageMakerExecutionRole` dans le diagramme entre comptes) depuis le compte Studio qui nécessite un accès.

   En assumant ce rôle, Studio ou Studio Classic peut obtenir un accès temporaire aux autorisations dont il a besoin dans Amazon EMR.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau `AssumableRole` compte sur votre AWS compte Amazon EMR, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ For users of Studio and JupyterLab ]

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------
#### [ For users of Studio Classic ]

      Remplacez `studio-account` par l’ID de compte Studio Classic.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:root"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation que vous venez de créer, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Pour plus d’informations sur la création d’un rôle sur un compte AWS , consultez [Création d’un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

#### Sur le compte Studio
<a name="studio-set-up-emr-permissions-crossaccount-studioaccount"></a>

Sur le compte sur lequel Studio est déployé, également appelé *compte de confiance*, mettez à jour le rôle d'exécution de l' SageMaker IA accédant à vos clusters avec les autorisations requises pour accéder aux ressources du compte de confiance.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/). 

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez la politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique accordant au rôle d’exécution les autorisations permettant d’assumer `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle. Remplacez `emr-account` par l’ID du compte Amazon EMR et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowRoleAssumptionForCrossAccountDiscovery",
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole",
                  "Resource": [
                      "arn:aws:iam::111122223333:role/AssumableRole"
                  ]
              }
          ]
      }
      ```

------

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique accordant au rôle d’exécution les autorisations nécessaires pour provisionner de nouveaux clusters Amazon EMR à l’aide de modèles CloudFormation . Pour plus de détails sur le document de politique, consultez *Create Amazon EMRclusters policies* dans[Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. (Facultatif) Pour permettre de répertorier les clusters Amazon EMR déployés dans le même compte que Studio, ajoutez une politique en ligne supplémentaire à votre rôle d’exécution Studio, tel que défini dans *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). 

1. **Étape 3** : associez vos rôles supposables (rôle d'accès) à votre domaine ou à votre profil utilisateur. JupyterLab les utilisateurs de Studio peuvent utiliser la console SageMaker AI ou le script fourni.

    Choisissez l’onglet qui correspond à votre cas d’utilisation.

------
#### [ Associate your assumable roles in JupyterLab using the SageMaker AI console ]

   Pour associer vos rôles supposés à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI, procédez comme suit :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre domaine : dans l'onglet **Configurations de l'application** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateurs, sélectionnez le profil utilisateur** à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez (rôle d'accès).

   1. Sélectionnez **Soumettre**.

------
#### [ Associate your assumable roles in JupyterLab using a Python script ]

    Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez les valeurs `domainID`, `user-profile-name`, `emr-accountID` et `AssumableRole` (`EMRServiceRole` pour les [rôles d’exécution RBAC]()) par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (utilisation`client.update_userprofile`) ou des paramètres de domaine (utilisation`client.update_domain`) spécifiques au sein d'un domaine SageMaker AI. Plus précisément, cela permet à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des clusters Amazon EMR au sein du compte Amazon EMR.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_userprofile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
               'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServiceRole", 
                                "arn:aws:iam::emr-accountID:role/AnotherServiceRole"]
           }
           
       }
   })
   resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------
#### [ For users of Studio Classic ]

   Fournissez l’ARN de `AssumableRole` à votre rôle d’exécution Studio Classic. L’ARN est chargé par le serveur Jupyter au lancement. Le rôle d’exécution utilisé par Studio assume ce rôle entre comptes pour découvrir et se connecter aux clusters Amazon EMR dans le *compte d’approbation*.

   Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

   Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

   ```
   # This script creates the file that informs Studio Classic that the role "arn:aws:iam::emr-account:role/AssumableRole" in remote account "emr-account" must be assumed to list and describe Amazon EMR clusters in the remote account.
   
   #!/bin/bash
   
   set -eux
   
   FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE"
   FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json"
   FILE="$FILE_DIRECTORY/$FILE_NAME"
   
   mkdir -p $FILE_DIRECTORY
   
   cat > "$FILE" <<- "EOF"
   {
     emr-cross-account1: "arn:aws:iam::emr-cross-account1:role/AssumableRole",
     emr-cross-account2: "arn:aws:iam::emr-cross-account2:role/AssumableRole"
   }
   EOF
   ```

    Une fois le LCC exécuté et les fichiers écrits, le serveur lit le fichier `/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json` et stocke l’ARN entre comptes.

------

# Configuration de la liste des clusters Amazon EMR
<a name="studio-notebooks-configure-discoverability-emr-cluster"></a>

Les administrateurs peuvent configurer des autorisations pour le rôle d'exécution de SageMaker Studio afin de permettre aux utilisateurs de consulter la liste des clusters Amazon EMR auxquels ils ont accès, leur permettant ainsi de se connecter à ces clusters. Les clusters auxquels vous souhaitez accéder peuvent être déployés dans le même AWS compte que Studio (choisissez *Compte unique*) ou dans des comptes distincts (choisissez *Compte croisé*). La page suivante explique comment accorder les autorisations permettant de visualiser les clusters Amazon EMR depuis Studio ou Studio Classic.

**Important**  
Vous pouvez uniquement découvrir et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio.

Pour permettre aux data scientists de découvrir Amazon puis de s'y connecter EMRclusters depuis Studio ou Studio Classic, procédez comme suit.

## Compte unique
<a name="studio-set-up-emr-permissions-singleaccount-list-clusters"></a>

Si vos clusters Amazon EMR et Studio ou Studio Classic sont déployés dans le même AWS compte, associez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre cluster.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/). 

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

**Note**  
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à [Configuration de l’authentification du rôle d’exécution lorsque votre cluster Amazon EMR et Studio sont sur le même compte](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-same). 

## Compte croisé
<a name="studio-set-up-emr-permissions-crossaccount-list-clusters"></a>

Avant de commencer, récupérez l'ARN du rôle d'exécution de l' SageMaker IA utilisé par votre espace privé.

Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

Si vos clusters Amazon EMR et Studio ou Studio sont déployés dans des comptes AWS différents, vous configurez les autorisations sur les deux comptes.

**Note**  
Les utilisateurs de la connectivité de contrôle d’accès en fonction du rôle (RBAC) aux clusters Amazon EMR doivent également se référer à [Configuration de l’authentification du rôle d’exécution lorsque votre cluster et Studio sont dans des comptes différents](studio-notebooks-emr-cluster-rbac.md#studio-notebooks-emr-cluster-iam-diff). 

**Sur le compte des clusters Amazon EMR**

Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où Amazon EMR est déployé, également appelé *compte d’approbation* :

1. **Étape 1** : extrayez l’ARN du [rôle de service de votre cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html). 

   Pour découvrir comment trouver l’ARN du rôle de service d’un cluster, consultez [Configuration des rôles de service IAM pour les autorisations Amazon EMR aux services et ressources AWS](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html#emr-iam-role-landing).

1. **Étape 2** : créez un rôle IAM personnalisé nommé `AssumableRole` avec la configuration suivante :
   + Autorisations : accordez les autorisations nécessaires à `AssumableRole` pour autoriser l’accès aux ressources Amazon EMR. Ce rôle est également appelé *rôle d’accès* dans les scénarios impliquant un accès intercompte.
   + Relation de confiance : configurez la politique d’approbation pour `AssumableRole` afin d’autoriser l’endossement du rôle d’exécution (`SageMakerExecutionRole` dans le diagramme entre comptes) depuis le compte Studio qui nécessite un accès.

   En assumant ce rôle, Studio ou Studio Classic peut obtenir un accès temporaire aux autorisations dont il a besoin dans Amazon EMR.

   Pour obtenir des instructions détaillées sur la façon de créer un nouveau `AssumableRole` compte sur votre AWS compte Amazon EMR, procédez comme suit :

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Dans le volet de navigation de gauche, choisissez **Politique**, puis **Créer une politique**.

   1. Dans l’onglet **JSON**, ajoutez les autorisations Amazon EMR autorisant l’accès et les opérations Amazon EMR. Pour plus de détails sur le document de politique, consultez *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Dans le volet de navigation de gauche, choisissez **Rôles**, puis **Créer un rôle**.

   1. Sur la page **Créer un rôle**, choisissez **Politique d’approbation personnalisée** comme entité de confiance.

   1. Collez le document JSON suivant dans la section **Politique d’approbation personnalisée**, puis choisissez **Suivant**.

------
#### [ For users of Studio and JupyterLab ]

      `studio-account`Remplacez-le par l'ID du compte Studio et `AmazonSageMaker-ExecutionRole` par le rôle d'exécution utilisé par votre JupyterLab espace.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------
#### [ For users of Studio Classic ]

      Remplacez `studio-account` par l’ID de compte Studio Classic.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:root"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

------

   1. Dans la page **Ajouter des autorisations**, ajoutez l’autorisation que vous venez de créer, puis choisissez **Suivant**.

   1. Sur la page **Vérifier**, entrez un nom pour le rôle, tel que `AssumableRole`, et une description facultative.

   1. Passez en revue les détails du rôle, puis choisissez **Créer un rôle**.

   Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez [Création d'un rôle IAM (console).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)

**Sur le compte Studio**

Sur le compte sur lequel Studio est déployé, également appelé *compte de confiance*, mettez à jour le rôle d'exécution de l' SageMaker IA accédant à vos clusters avec les autorisations requises pour accéder aux ressources du compte de confiance.

1. **Étape 1** : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.

   Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultez[Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

   Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultez[Obtention de votre rôle d’exécution](sagemaker-roles.md#sagemaker-roles-get-execution-role).

1. **Étape 2** : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à vos clusters Amazon EMR.

   1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

   1. Choisissez **Rôles**, puis recherchez votre rôle d’exécution par son nom dans le champ **Rechercher**. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/). 

   1. Suivez le lien correspondant à votre rôle.

   1. Choisissez **Ajouter des autorisations**, puis **Créer une politique en ligne**.

   1. Dans l’onglet **JSON**, ajoutez la politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique, consultez *Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). Remplacez `region` et `accountID` par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.

   1. Choisissez **Suivant**, puis fournissez un **nom de politique**.

   1. Choisissez **Create Policy** (Créer une politique).

   1. Répétez l’étape **Créer une politique en ligne** pour ajouter une autre politique accordant au rôle d’exécution les autorisations permettant d’assumer `AssumableRole` puis d’exécuter les actions autorisées par la stratégie d’accès du rôle. Remplacez `emr-account` par l’ID du compte Amazon EMR et `AssumableRole` par le nom du rôle assumable créé dans le compte Amazon EMR.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowRoleAssumptionForCrossAccountDiscovery",
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole",
                  "Resource": [
                      "arn:aws:iam::111122223333:role/AssumableRole"
                  ]
              }
          ]
      }
      ```

------

   1. (Facultatif) Pour permettre de répertorier les clusters Amazon EMR déployés dans le même compte que Studio, ajoutez une politique en ligne supplémentaire à votre rôle d’exécution Studio, tel que défini dans *Politiques Amazon EMR de liste* dans [Politiques de référence](studio-set-up-emr-permissions-reference.md). 

1. **Étape 3** : associez vos rôles supposables (rôle d'accès) à votre domaine ou à votre profil utilisateur. JupyterLables utilisateurs de Studio peuvent utiliser la console SageMaker AI ou le script fourni.

    Choisissez l’onglet qui correspond à votre cas d’utilisation.

------
#### [ Associate your assumable roles in JupyterLab using the SageMaker AI console ]

   Pour associer vos rôles supposés à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI, procédez comme suit :

   1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

   1. 
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre domaine : dans l'onglet **Configurations de l'application** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
      + Pour ajouter vos rôles supposés (rôle d'accès) à votre profil utilisateur : sur la page des **détails du domaine**, choisissez l'onglet **Profils utilisateurs, sélectionnez le profil utilisateur** à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

   1. Choisissez **Modifier** et ajoutez le ARNs rôle que vous assumez (rôle d'accès).

   1. Sélectionnez **Soumettre**.

------
#### [ Associate your assumable roles in JupyterLab using a Python script ]

    Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez les valeurs `domainID`, `user-profile-name`, `emr-accountID` et `AssumableRole` (`EMRServiceRole` pour les [rôles d’exécution RBAC]()) par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres du profil utilisateur pour un profil utilisateur (utilisation`client.update_userprofile`) ou des paramètres de domaine (utilisation`client.update_domain`) spécifiques au sein d'un domaine SageMaker AI. Plus précisément, cela permet à l' JupyterLabapplication d'assumer un rôle IAM particulier (`AssumableRole`) pour exécuter des clusters Amazon EMR au sein du compte Amazon EMR.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_userprofile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
               'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServiceRole", 
                                "arn:aws:iam::emr-accountID:role/AnotherServiceRole"]
           }
           
       }
   })
   resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------
#### [ For users of Studio Classic ]

   Fournissez l’ARN de `AssumableRole` à votre rôle d’exécution Studio Classic. L’ARN est chargé par le serveur Jupyter au lancement. Le rôle d’exécution utilisé par Studio assume ce rôle entre comptes pour découvrir et se connecter aux clusters Amazon EMR dans le *compte d’approbation*.

   Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

   Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

   ```
   # This script creates the file that informs Studio Classic that the role "arn:aws:iam::emr-account:role/AssumableRole" in remote account "emr-account" must be assumed to list and describe Amazon EMR clusters in the remote account.
   
   #!/bin/bash
   
   set -eux
   
   FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE"
   FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json"
   FILE="$FILE_DIRECTORY/$FILE_NAME"
   
   mkdir -p $FILE_DIRECTORY
   
   cat > "$FILE" <<- "EOF"
   {
     emr-cross-account1: "arn:aws:iam::emr-cross-account1:role/AssumableRole",
     emr-cross-account2: "arn:aws:iam::emr-cross-account2:role/AssumableRole"
   }
   EOF
   ```

    Une fois le LCC exécuté et les fichiers écrits, le serveur lit le fichier `/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE/emr-discovery-iam-role-arns-DO_NOT_DELETE.json` et stocke l’ARN entre comptes.

------

Consultez [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md) pour savoir comment découvrir des clusters Amazon EMR et vous y connecter depuis des blocs-notes Studio ou Studio Classic.

# Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio
<a name="studio-notebooks-emr-cluster-rbac"></a>

Lorsque vous vous connectez à un cluster Amazon EMR depuis vos blocs-notes Studio ou Studio Classic, vous pouvez parcourir visuellement une liste de rôles IAM, appelés rôles d’exécution et en sélectionner un à la volée. Par la suite, toutes vos tâches Apache Spark, Apache Hive ou Presto créées à partir de votre bloc-notes accèdent uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution. En outre, lorsque les données sont accessibles à partir de lacs de données gérés avec AWS Lake Formation, vous pouvez appliquer l'accès au niveau des tables et des colonnes à l'aide de politiques associées au rôle d'exécution.

Grâce à cette fonctionnalité, vous et vos collègues pouvez vous connecter au même cluster, chacun utilisant un rôle d'exécution assorti d'autorisations correspondant à votre niveau individuel d'accès aux données. Vos sessions sont également isolées les unes des autres sur le cluster partagé. 

Pour tester cette fonctionnalité à l'aide de Studio Classic, consultez [Appliquer des contrôles d'accès aux données précis avec AWS Lake Formation Amazon EMR depuis Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/apply-fine-grained-data-access-controls-with-aws-lake-formation-and-amazon-emr-from-amazon-sagemaker-studio/) Studio Classic. Ce billet de blog vous aide à configurer un environnement de démonstration dans lequel vous pouvez essayer d’utiliser des rôles d’exécution préconfigurés pour vous connecter aux clusters Amazon EMR.

## Conditions préalables
<a name="studio-notebooks-emr-cluster-rbac-prereq"></a>

Avant de démarrer, assurez-vous de répondre aux conditions préalables suivantes :
+ Utilisez Amazon EMR version 6.9 ou ultérieure.
+ **Pour les utilisateurs de Studio Classic** : utilisez JupyterLab la version 3 dans la configuration de l'application serveur Jupyter Studio Classic. Cette version prend en charge la connexion de Studio Classic aux clusters Amazon EMR à l’aide de rôles d’exécution.

  **Pour les utilisateurs de Studio** : utilisez une version [d'image de SageMaker distribution](sagemaker-distribution.md) `1.10` ou supérieure.
+ Autorisez l’utilisation de rôles d’exécution dans la configuration de sécurité de votre cluster. Pour plus d’informations, consultez [Rôles d’exécution pour les étapes d’Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html).
+ Créez un bloc-notes avec l’un des noyaux répertoriés dans [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels).
+ Veillez à passer en revue les instructions fournies dans [Configuration de Studio pour utiliser les rôles IAM d'exécution](#studio-notebooks-emr-cluster-iam) pour configurer vos rôles d’exécution.

## Scénarios de connexion entre comptes
<a name="studio-notebooks-emr-cluster-rbac-scen"></a>

L’authentification des rôles d’exécution prend en charge divers scénarios de connexion entre comptes lorsque vos données se trouvent en dehors de votre compte Studio. L’image suivante montre trois manières différentes d’attribuer votre cluster Amazon EMR, vos données et même votre rôle d’exécution Amazon EMR à l’exécution entre vos comptes Studio et de données : 

![\[Scénarios entre comptes pris en charge par l’authentification du rôle IAM d’exécution.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio-emr-rbac-scenarios.png)


Dans l’option 1, votre cluster Amazon EMR et votre rôle d’exécution Amazon EMR à l’exécution se trouvent dans un compte de données distinct du compte Studio. Vous définissez une politique d’autorisation distincte pour le rôle d’accès Amazon EMR (également appelée `Assumable role`) qui autorise le rôle d’exécution Studio ou Studio Classic à assumer le rôle d’accès Amazon EMR. Le rôle d’accès Amazon EMR appelle ensuite l’API Amazon EMR `GetClusterSessionCredentials` au nom de votre rôle d’exécution Studio ou Studio Classic, vous donnant ainsi accès au cluster.

Dans l’option 2, votre cluster Amazon EMR et votre rôle d’exécution Amazon EMR à l’exécution se trouvent dans votre compte Studio. Votre rôle d’exécution Studio est autorisé à utiliser l’API Amazon EMR `GetClusterSessionCredentials` pour accéder à votre cluster. Pour accéder au compartiment Amazon S3, accordez au rôle d’exécution Amazon EMR à l’exécution des autorisations d’accès intercompte au compartiment Amazon S3. Vous accordez ces autorisations au sein de votre stratégie de compartiment Amazon S3.

Dans l’option 3, vos clusters Amazon EMR sont dans votre compte Studio et le rôle d’exécution Amazon EMR à l’exécution se trouve dans le compte de données. Votre rôle d’exécution Studio ou Studio Classic est autorisé à utiliser l’API Amazon EMR `GetClusterSessionCredentials` pour accéder à votre cluster. Ajoutez le rôle d’exécution Amazon EMR à l’exécution dans le fichier JSON de configuration de rôle d’exécution. Vous pouvez ensuite sélectionner le rôle dans l’interface utilisateur lorsque vous choisissez votre cluster. Pour plus de détails sur la configuration du fichier JSON de configuration du rôle d'exécution, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

## Configuration de Studio pour utiliser les rôles IAM d'exécution
<a name="studio-notebooks-emr-cluster-iam"></a>

Pour établir l’authentification des rôles d’exécution pour vos clusters Amazon EMR, configurez les politiques IAM, le réseau et les améliorations de la facilité d’utilisation requises. Votre configuration dépend de votre capacité à gérer des accords entre comptes si vos clusters Amazon EMR, votre rôle d’exécution Amazon EMR à l’exécution, ou les deux, se trouvent en dehors de votre compte Studio. La section suivante explique les politiques à installer, comment configurer le réseau pour autoriser le trafic entre comptes croisés et le fichier de configuration local à configurer pour automatiser votre connexion Amazon EMR.

### Configuration de l’authentification du rôle d’exécution lorsque votre cluster Amazon EMR et Studio sont sur le même compte
<a name="studio-notebooks-emr-cluster-iam-same"></a>

Si votre cluster Amazon EMR réside dans votre compte Studio, procédez comme suit pour ajouter les autorisations nécessaires à votre politique d’exécution Studio :

1. Ajoutez la politique IAM requise pour vous connecter aux clusters Amazon EMR. Pour en savoir plus, consultez [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md).

1. Accordez l’autorisation d’appeler l’API Amazon EMR `GetClusterSessionCredentials` lorsque vous transmettez un ou plusieurs rôles d’exécution Amazon EMR à l’exécution autorisés, spécifiés dans la politique.

1. (Facultatif) Accordez l’autorisation de transmettre des rôles IAM conformes aux conventions de dénomination définies par l’utilisateur.

1. (Facultatif) Accordez l’autorisation d’accéder aux clusters Amazon EMR balisés avec des chaînes spécifiques définies par l’utilisateur.

1. Préchargez vos rôles IAM afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Pour plus d’informations sur le préchargement de vos rôles IAM, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

L’exemple de politique suivant autorise les rôles d’exécution Amazon EMR à l’exécution appartenant aux groupes de modélisation et d’entraînement à appeler `GetClusterSessionCredentials`. En outre, le titulaire de la politique peut accéder aux clusters Amazon EMR étiquetés avec les chaînes `modeling` ou `training`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "elasticmapreduce:ExecutionRoleArn": [
                        "arn:aws:iam::111122223333:role/emr-execution-role-ml-modeling*",
                        "arn:aws:iam::111122223333:role/emr-execution-role-ml-training*"
			]},
		"StringLike":{
                    "elasticmapreduce:ResourceTag/group": [
                        "*modeling*",
                        "*training*"
                    ]
                }
            }
        }
    ]
}
```

------

### Configuration de l’authentification du rôle d’exécution lorsque votre cluster et Studio sont dans des comptes différents
<a name="studio-notebooks-emr-cluster-iam-diff"></a>

Si votre cluster Amazon EMR ne figure pas dans votre compte Studio, autorisez votre rôle d'exécution SageMaker AI à assumer le rôle d'accès Amazon EMR entre comptes afin de pouvoir vous connecter au cluster. Procédez comme suit pour configurer votre configuration entre comptes :

1. Créez votre politique d'autorisation pour le rôle d'exécution SageMaker AI afin que le rôle d'exécution puisse assumer le rôle d'accès Amazon EMR. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAssumeCrossAccountEMRAccessRole",
               "Effect": "Allow",
               "Action": "sts:AssumeRole",
               "Resource": "arn:aws:iam::111122223333:role/emr-access-role-name"
           }
       ]
   }
   ```

------

1. Créez la politique de confiance pour spécifier quels comptes Studio IDs sont autorisés à assumer le rôle d'accès Amazon EMR. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
           "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole",
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::111122223333:role/studio_execution_role"
           },
           "Action": "sts:AssumeRole"
         }
       ]
   }
   ```

------

1. Créez la politique d’autorisation du rôle d’accès Amazon EMR, qui accorde au rôle d’exécution Amazon EMR à l’exécution les autorisations nécessaires pour réaliser les tâches prévues sur le cluster. Configurez le rôle d’accès Amazon EMR pour appeler l’API `GetClusterSessionCredentials` avec les rôles d’exécution Amazon EMR à l’exécution spécifiés dans la politique d’autorisation du rôle d’accès. Voici un exemple de politique :

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI",
               "Effect": "Allow",
               "Action": "elasticmapreduce:GetClusterSessionCredentials",
               "Resource": "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/cluster-id",
               "Condition": {
                   "StringLike": {
                       "elasticmapreduce:ExecutionRoleArn": [
                           "arn:aws:iam::111122223333:role/emr-execution-role-name"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Configurez le réseau entre comptes afin que le trafic puisse circuler entre vos comptes. Pour obtenir des instructions détaillées, consultez *[Configuration de l’accès réseau pour votre cluster Amazon EMR](studio-notebooks-emr-networking.md)*. Les étapes de cette section vous aident à effectuer les tâches suivantes :

   1. Appairez en VPC votre compte Studio et votre compte Amazon EMR pour établir une connexion.

   1. Ajoutez manuellement des routes aux tables de routage du sous-réseau privé dans les deux comptes. Cela permet de créer et de connecter des clusters Amazon EMR du compte Studio au sous-réseau privé du compte distant.

   1. Configurez le groupe de sécurité attaché à votre domaine Studio pour autoriser le trafic sortant et le groupe de sécurité du nœud primaire Amazon EMR pour autoriser le trafic TCP entrant depuis le groupe de sécurité de l’instance Studio.

1. Préchargez vos rôles IAM d’exécution afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Pour plus d’informations sur le préchargement de vos rôles IAM, consultez [Préchargement de vos rôles d’exécution dans Studio ou Studio Classic](#studio-notebooks-emr-cluster-iam-preload).

### Configuration de l'accès à Lake Formation
<a name="studio-notebooks-emr-cluster-iam-lf"></a>

Lorsque vous accédez à des données à partir de lacs de données gérés par AWS Lake Formation, vous pouvez appliquer l'accès au niveau des tables et des colonnes à l'aide des politiques associées à votre rôle d'exécution. Pour configurer l’autorisation d’accès à Lake Formation, consultez [Intégration d’Amazon EMR avec AWS Lake Formation](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-lake-formation.html).

### Préchargement de vos rôles d’exécution dans Studio ou Studio Classic
<a name="studio-notebooks-emr-cluster-iam-preload"></a>

Vous pouvez précharger vos rôles IAM d’exécution afin de pouvoir sélectionner le rôle à utiliser lorsque vous vous connectez à votre cluster Amazon EMR. Les utilisateurs d' JupyterLab in Studio peuvent utiliser la console SageMaker AI ou le script fourni.

------
#### [ Preload runtime roles in JupyterLab using the SageMaker AI console ]

Pour associer vos rôles d'exécution à votre profil utilisateur ou à votre domaine à l'aide de la console SageMaker AI :

1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation de gauche, choisissez le **domaine**, puis sélectionnez le domaine à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations.

1. 
   + Pour ajouter votre environnement d'exécution (et vos rôles d'accès pour les cas d'utilisation entre comptes) à votre domaine : dans l'onglet **Configurations des applications** de la page des **détails du domaine**, accédez à la **JupyterLab**section.
   + Pour ajouter votre environnement d'exécution (et vos rôles d'accès pour les cas d'utilisation entre comptes) à votre profil utilisateur : sur la page **Détails du domaine**, choisissez l'onglet **Profils utilisateur**, sélectionnez le profil utilisateur à l'aide du rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations. Dans l'onglet **Configurations de l'application**, accédez à la **JupyterLab**section.

1. Choisissez **Modifier** et ajoutez les rôles ARNs d'exécution de votre rôle d'accès (rôle assumé) et EMR Serverless Runtime.

1. Sélectionnez **Soumettre**.

Lors de votre prochaine connexion à un serveur Amazon EMR, les rôles d’exécution devraient apparaître pour sélection dans un menu déroulant.

------
#### [ Preload runtime roles in JupyterLab using a Python script ]

Dans une JupyterLab application démarrée depuis un espace utilisant le rôle d'exécution SageMaker AI dont vous avez mis à jour les autorisations, exécutez la commande suivante dans un terminal. Remplacez `domainID`, `user-profile-name`, `emr-accountID` et `EMRServiceRole` par leurs valeurs appropriées. Cet extrait de code met à jour les paramètres d'un profil utilisateur (`client.update_user_profile`) au sein d'un domaine SageMaker AI dans un cas d'utilisation entre comptes. Plus précisément, il définit les rôles de service pour Amazon EMR. Cela permet également à l' JupyterLab application d'assumer un rôle IAM particulier (`AssumableRole`ou`AccessRole`) pour exécuter Amazon EMR au sein du compte Amazon EMR.

Vous pouvez également utiliser `client.update_domain` pour mettre à jour les paramètres du domaine si votre espace utilise un rôle d’exécution défini au niveau du domaine.

```
import botocore.session
import json
sess = botocore.session.get_session()
client = sess.create_client('sagemaker')

client.update_user_profile(
DomainId="domainID", 
UserProfileName="user-profile-name",
UserSettings={
    'JupyterLabAppSettings': {
        'EmrSettings': {
            'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
            'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServiceRole", 
                             "arn:aws:iam::emr-accountID:role/AnotherServiceRole"]
        }
        
    }
})
resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name")

resp['CreationTime'] = str(resp['CreationTime'])
resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
print(json.dumps(resp, indent=2))
```

------
#### [ Preload runtime roles in Studio Classic ]

Fournissez l'ARN de `AccessRole` (`AssumableRole`) à votre rôle d'exécution SageMaker AI. L’ARN est chargé par le serveur Jupyter au lancement. Le rôle d’exécution utilisé par Studio assume ce rôle entre comptes pour découvrir et se connecter aux clusters Amazon EMR dans le *compte d’approbation*.

Vous pouvez spécifier ces informations à l’aide de scripts de configuration du cycle de vie (LCC). Vous pouvez attacher la configuration LCC à votre domaine ou à un profil utilisateur spécifique. Le script LCC que vous utilisez doit être une JupyterServer configuration. Pour plus d’informations sur la façon de créer un script LCC, consultez [Utilisation de configurations de cycle de vie avec Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). 

Voici un exemple de script LCC. Pour modifier le script, remplacez `AssumableRole` et `emr-account` par leurs valeurs respectives. Le nombre de comptes croisés est limité à cinq.

L’extrait suivant est un exemple de script bash LCC que vous pouvez appliquer si votre application Studio Classic et votre cluster se trouvent dans le même compte :

```
#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat << 'EOF' > "$FILE"
{
    "emr-execution-role-arns":
    {
      "123456789012": [
          "arn:aws:iam::123456789012:role/emr-execution-role-1",
          "arn:aws:iam::123456789012:role/emr-execution-role-2"
      ]
    }
}
EOF
```

Si votre application Studio Classic et vos clusters se trouvent dans des comptes différents, spécifiez les rôles d’accès Amazon EMR qui peuvent utiliser le cluster. Dans l'exemple de politique suivant, *123456789012* est l'ID du compte du cluster Amazon EMR, *et 212121212121 et* *434343434343* correspondent aux rôles d'accès Amazon EMR autorisés. ARNs 

```
#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat << 'EOF' > "$FILE"
{
    "emr-execution-role-arns":
    {
      "123456789012": [
          "arn:aws:iam::212121212121:role/emr-execution-role-1",
          "arn:aws:iam::434343434343:role/emr-execution-role-2"
      ]
    }
}
EOF

# add your cross-account EMR access role
FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE"
FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat << 'EOF' > "$FILE"
{
    "123456789012": "arn:aws:iam::123456789012:role/cross-account-emr-access-role"
}
EOF
```

------

# Politiques de référence
<a name="studio-set-up-emr-permissions-reference"></a>
+ **Politiques Amazon EMR de liste** : cette politique permet d’effectuer les actions suivantes :
  + `AllowPresignedUrl`permet de générer des documents pré-signés URLs pour accéder à l'interface utilisateur de Spark depuis Studio.
  + `AllowClusterDiscovery` et `AllowClusterDetailsDiscovery` permettent de répertorier et de décrire les clusters Amazon EMR dans la région et le compte fournis.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowPresignedUrl",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:CreatePersistentAppUI",
                  "elasticmapreduce:DescribePersistentAppUI",
                  "elasticmapreduce:GetPersistentAppUIPresignedURL",
                  "elasticmapreduce:GetOnClusterAppUIPresignedURL"
              ],
              "Resource": [
                  "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/*"
              ]
          },
          {
              "Sid": "AllowClusterDetailsDiscovery",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:DescribeCluster",
                  "elasticmapreduce:ListInstances",
                  "elasticmapreduce:ListInstanceGroups",
                  "elasticmapreduce:DescribeSecurityConfiguration"
              ],
              "Resource": [
                  "arn:aws:elasticmapreduce:us-east-1:111122223333:cluster/*"
              ]
          },
          {
              "Sid": "AllowClusterDiscovery",
              "Effect": "Allow",
              "Action": [
                  "elasticmapreduce:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ **Politiques de création de clusters Amazon EMR** : cette politique permet d’effectuer les actions suivantes :
  + `AllowEMRTemplateDiscovery` permet de rechercher des modèles Amazon EMR dans Service Catalog. Studio et Studio Classic l’utilisent pour montrer les modèles disponibles.
  + `AllowSagemakerProjectManagement` permet la création de [Qu'est-ce qu'un projet d' SageMaker IA ?](sagemaker-projects-whatis.md). Dans Studio ou Studio Classic, l'accès au AWS Service Catalog est géré via[Qu'est-ce qu'un projet d' SageMaker IA ?](sagemaker-projects-whatis.md).

  La politique IAM définie dans le code JSON fourni accorde ces autorisations. Remplacez *region* et *accountID* par les valeurs réelles de votre région et de votre numéro de AWS compte avant de copier la liste des relevés dans la politique intégrée de votre rôle.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllowEMRTemplateDiscovery",
              "Effect": "Allow",
              "Action": [
                  "servicecatalog:SearchProducts"
              ],
              "Resource": "*"
          },
          {
              "Sid": "AllowSagemakerProjectManagement",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:CreateProject",
                  "sagemaker:DeleteProject"
              ],
              "Resource": "arn:aws:sagemaker:us-east-1:111122223333:project/*"
          }
      ]
  }
  ```

------
+ **Politique relative aux actions de mise à jour du domaine, du profil utilisateur et de l'espace** : La politique suivante autorise la mise à jour des domaines SageMaker AI, des profils utilisateur et des espaces dans la région et le AWS compte spécifiés.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------

# Guide de l’utilisateur
<a name="studio-emr-user-guide"></a>

Cette section explique comment les scientifiques des données et les ingénieurs de données peuvent lancer, découvrir, résilier un cluster Amazon EMR et s’y connecter depuis Studio ou Studio Classic.

Avant que les utilisateurs puissent répertorier ou lancer les clusters, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre le provisionnement automatique et l’établissement de la liste des clusters Amazon EMR, consultez [Guide de l’administrateur](studio-emr-admin-guide.md).

**Topics**
+ [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](#studio-notebooks-emr-cluster-connect-kernels)
+ [Apporter votre propre image](#studio-notebooks-emr-byoi)
+ [Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic](studio-notebooks-launch-emr-cluster-from-template.md)
+ [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)
+ [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md)
+ [Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic](terminate-emr-clusters.md)
+ [Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic](studio-notebooks-access-spark-ui.md)

## Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="studio-notebooks-emr-cluster-connect-kernels"></a>

Les images et noyaux suivants sont fournis avec [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/)l' JupyterLab extension qui se connecte à un cluster Spark (Amazon EMR) distant via la bibliothèque à [SparkMagic](https://github.com/jupyter-incubator/sparkmagic)l'[aide](https://livy.apache.org/) d'Apache Livy.
+ **Pour les utilisateurs de Studio :** SageMaker Distribution est un environnement Docker pour la science des données utilisé comme image par défaut des instances de JupyterLab bloc-notes. Toutes les versions d'[SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution) sont `sagemaker-studio-analytics-extension` préinstallées.
+ **Pour les utilisateurs de Studio Classic :** les images suivantes sont fournies avec `sagemaker-studio-analytics-extension` préinstallé :
  + DataScience — Noyau Python 3
  + DataScience 2.0 — Noyau Python 3
  + DataScience 3.0 — Noyau Python 3
  + SparkAnalytics 1.0 — SparkMagic et PySpark noyaux
  + SparkAnalytics 2.0 — SparkMagic et PySpark noyaux
  + SparkMagic — SparkMagic et PySpark cerneaux
  + PyTorch 1.8 — Noyaux Python 3
  + TensorFlow 2.6 — Noyau Python 3
  + TensorFlow 2.11 — Noyau Python 3

Pour vous connecter à des clusters Amazon EMR à l’aide d’une autre image intégrée ou de votre propre image, suivez les instructions fournies dans [Apporter votre propre image](#studio-notebooks-emr-byoi).

## Apporter votre propre image
<a name="studio-notebooks-emr-byoi"></a>

Pour importer votre propre image dans Studio ou Studio Classic et permettre à vos ordinateurs portables de se connecter aux clusters Amazon EMR, installez l'extension [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/)suivante sur votre noyau. Il permet de connecter les blocs-notes SageMaker Studio ou Studio Classic aux clusters Spark (Amazon EMR) via [SparkMagic](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-magics.html)la bibliothèque.

```
pip install sparkmagic
pip install sagemaker-studio-sparkmagic-lib
pip install sagemaker-studio-analytics-extension
```

En outre, pour vous connecter à Amazon EMR avec l’authentification [Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), vous devez installer le client kinit. Selon votre système d’exploitation, la commande d’installation du client kinit peut varier. Pour apporter une image Ubuntu (basée sur Debian), utilisez la commande `apt-get install -y -qq krb5-user`.

Pour plus d'informations sur l'importation de votre propre image dans SageMaker Studio ou Studio Classic, voir [Apporter votre propre SageMaker image](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).

# Lancement d’un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="studio-notebooks-launch-emr-cluster-from-template"></a>

Les data scientists et les ingénieurs de données peuvent provisionner eux-mêmes les clusters Amazon EMR depuis Studio ou Studio Classic à CloudFormation l'aide de modèles définis par leurs administrateurs. Avant que les utilisateurs puissent lancer un cluster, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre le provisionnement automatique des clusters Amazon EMR, consultez [Configuration des CloudFormation modèles Amazon EMR dans le Service Catalog](studio-notebooks-set-up-emr-templates.md).

Pour provisionner un nouveau cluster Amazon EMR depuis Studio ou Studio Classic :

1. Dans le panneau de gauche de l’interface utilisateur de Studio ou de Studio Classic, sélectionnez le nœud **Données** dans le menu de navigation de gauche. Accédez à **Clusters Amazon EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder depuis Studio ou Studio Classic.

1. Choisissez le bouton **Créer** dans le coin supérieur droit. Une nouvelle fenêtre modale s’ouvre, répertoriant les modèles de cluster à votre disposition.

1. Sélectionnez un modèle de cluster en choisissant un nom de modèle, puis choisissez **Suivant**.

1. Entrez les détails du cluster, tels que le nom du cluster et tout paramètre configurable spécifique défini par votre administrateur, puis choisissez **Créer un cluster**. La création du cluster peut prendre quelques minutes.  
![\[Formulaire de création d’un cluster Amazon EMR depuis Studio ou Studio Classic.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-cluster-creation.png)

Une fois le cluster provisionné, l’interface utilisateur de Studio ou Studio Classic affiche un message *Le cluster a été créé*.

Pour vous connecter à votre cluster, consultez [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md).

# Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic
<a name="discover-emr-clusters"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir les clusters Amazon EMR, puis s’y connecter depuis Studio. Les clusters Amazon EMR peuvent se trouver sur le même AWS compte que Studio ou sur un autre AWS compte.

Avant que les utilisateurs puissent répertorier les clusters ou s’y connecter, les administrateurs doivent avoir configuré les paramètres nécessaires dans l’environnement Studio. Pour obtenir des informations sur la manière dont les administrateurs peuvent configurer un environnement Studio afin de permettre la découverte des clusters Amazon EMR en cours d’exécution, consultez [Guide de l’administrateur](studio-emr-admin-guide.md). Si votre administrateur a effectué la [configuration de la découverte entre comptes des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md), vous pouvez visualiser une liste consolidée des clusters. La liste inclut les clusters provenant du AWS compte utilisé par Studio ainsi que les clusters provenant de comptes distants auxquels vous avez obtenu l'accès.

Pour afficher la liste des clusters Amazon EMR disponibles dans Studio :

1. Dans le menu de navigation de gauche de l’interface utilisateur de Studio, faites défiler l’écran vers le bas jusqu’à **Clusters EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder.

   La liste affiche les clusters dans les phases suivantes : **Amorçage**, **Démarrage en cours**, **En cours d’exécution**, **En attente**. Vous pouvez réduire le nombre de clusters affichés en fonction de leur statut actuel à l’aide de l’icône de filtre. 

1. Choisissez un cluster **En cours d’exécution** particulier auquel vous souhaitez vous connecter, puis référez-vous à [Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic](connect-emr-clusters.md).

# Connectez-vous à un cluster Amazon EMR depuis SageMaker Studio ou Studio Classic
<a name="connect-emr-clusters"></a>

Les scientifiques des données et les ingénieurs de données peuvent découvrir un cluster Amazon EMR et s’y connecter directement depuis l’interface utilisateur de Studio. Avant de commencer, assurez-vous d’avoir configuré les autorisations nécessaires, comme décrit dans la section [Étape 4 : Configuration des autorisations pour activer l’établissement d’une liste et le lancement des clusters Amazon EMR à partir de Studio](studio-notebooks-set-up-emr-templates.md#studio-emr-permissions). Ces autorisations permettent à Studio de créer, démarrer, afficher et résilier les clusters, ainsi que d’y accéder.

Vous pouvez connecter un cluster Amazon EMR à un nouveau JupyterLab bloc-notes directement depuis l'interface utilisateur de Studio, ou choisir d'établir la connexion dans le bloc-notes d'une application en cours d'exécution JupyterLab .

**Important**  
Vous pouvez uniquement découvrir et vous connecter aux clusters Amazon EMR JupyterLab et aux applications Studio Classic lancées depuis des espaces privés. Assurez-vous que les clusters Amazon EMR sont situés dans la même AWS région que votre environnement Studio. Votre JupyterLab espace doit utiliser une version image de SageMaker distribution `1.10` ou supérieure.

## Connexion à un cluster Amazon EMR à l’aide de l’interface utilisateur de Studio
<a name="connect-emr-clusters-ui-options"></a>

Pour vous connecter à votre cluster à l'aide de l'interface utilisateur de Studio ou de Studio Classic, vous pouvez établir une connexion à partir de la liste des clusters auxquels vous accédez ou à partir d'un bloc-notes dans SageMaker Studio ou Studio Classic. [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)

**Pour connecter un cluster Amazon EMR à un nouveau JupyterLab bloc-notes depuis l'interface utilisateur de Studio :**

1. Dans le panneau de gauche de l’interface utilisateur de Studio, sélectionnez le nœud **Données** dans le menu de navigation de gauche. Accédez à **Applications et clusters Amazon EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder depuis Studio dans l’onglet **Clusters Amazon EMR**.
**Note**  
Si vous ou votre administrateur avez configuré les autorisations pour autoriser l’accès intercompte aux clusters Amazon EMR, vous pouvez visualiser une liste consolidée des clusters pour tous les comptes auxquels vous avez accordé l’accès à Studio.

1. Sélectionnez un cluster Amazon EMR que vous souhaitez connecter à un nouveau bloc-notes, puis choisissez **Attacher à un bloc-notes**. Cela ouvre une fenêtre modale affichant la liste de vos JupyterLab espaces.

1. 
   + Sélectionnez l'espace à partir duquel vous souhaitez lancer une JupyterLab application, puis choisissez **Ouvrir le bloc-notes**. Cela lance une JupyterLab application depuis l'espace que vous avez choisi et ouvre un nouveau bloc-notes.
**Note**  
Les utilisateurs de Studio Classic doivent sélectionner une image et un noyau. Pour obtenir la liste des images prises en charge, consultez [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels) ou référez-vous à [Apporter votre propre image](studio-emr-user-guide.md#studio-notebooks-emr-byoi).
   + Vous pouvez également créer un nouvel espace privé en choisissant le bouton **Créer un nouvel espace** en haut de la fenêtre modale. Entrez un nom pour votre espace, puis choisissez **Créer l’espace et ouvrir le bloc-notes**. Cela crée un espace privé avec le type d'instance par défaut et SageMaker la dernière image de distribution disponible, lance une JupyterLab application et ouvre un nouveau bloc-notes.

1. Si le cluster que vous sélectionnez n’utilise pas Kerberos, LDAP ou l’authentification par [rôle d’exécution](), Studio vous invite à sélectionner le type d’informations d’identification. Choisissez entre **Authentification de base HTTP** ou **Aucune information d’identification**, puis entrez vos informations d’identification, le cas échéant.

   Si le cluster que vous sélectionnez prend en charge les rôles d’exécution, choisissez le nom du rôle IAM que votre cluster Amazon EMR peut assumer pour l’exécution de la tâche. 
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à un cluster Amazon EMR prenant en charge les rôles d'exécution, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Après sélection, une commande de connexion remplit la première cellule de votre bloc-notes et initie la connexion avec le cluster Amazon EMR.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark.

**Vous pouvez également vous connecter à un cluster à partir d'un bloc-notes JupyterLab ou d'un bloc-notes Studio Classic.**

1. Choisissez le bouton **Cluster** en haut de votre bloc-notes. Une fenêtre modale s’ouvre répertoriant les clusters Amazon EMR dans un état `Running` auquel vous pouvez accéder. Vous pouvez voir les clusters Amazon EMR `Running` dans l’onglet **Clusters Amazon EMR**.
**Note**  
Pour les utilisateurs de Studio Classic, **Cluster** n’est visible que lorsque vous utilisez un noyau depuis [Images et noyaux pris en charge pour se connecter à un cluster Amazon EMR depuis Studio ou Studio Classic](studio-emr-user-guide.md#studio-notebooks-emr-cluster-connect-kernels) ou [Apporter votre propre image](studio-emr-user-guide.md#studio-notebooks-emr-byoi). Si vous ne voyez pas **Cluster** en haut de votre bloc-notes, assurez-vous que votre administrateur a [configuré la découvrabilité de vos clusters](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-configure-discoverability-emr-cluster.html) et passez à un noyau compatible.

1. Sélectionnez le cluster auquel vous souhaitez vous connecter, puis choisissez **Connecter**.

1. Si vous avez configuré vos clusters Amazon EMR pour prendre en charge les [rôles IAM d’exécution](studio-notebooks-emr-cluster-rbac.md), vous pouvez sélectionner votre rôle dans le menu déroulant **Rôle d’exécution Amazon EMR**. 
**Important**  
Pour connecter correctement un JupyterLab bloc-notes à un cluster Amazon EMR prenant en charge les rôles d'exécution, vous devez d'abord associer la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur, comme indiqué dans. [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md) Si vous n’effectuez pas cette étape, vous ne pourrez pas établir la connexion. 

   Sinon, si le cluster que vous choisissez n’utilise pas Kerberos, LDAP ou l’authentification par rôle d’exécution, Studio ou Studio Classic vous invite à sélectionner le type d’informations d’identification. Vous pouvez sélectionner **Authentification de base HTTP** ou **Pas d’informations d’identification**.

1. Studio ajoute puis exécute un bloc de code dans une cellule active pour établir la connexion. Cette cellule contient la commande magique de connexion permettant de connecter votre bloc-notes à votre application en fonction de votre type d’authentification.

   Une fois la connexion établie, un message confirme la connexion et le démarrage de l’application Spark.

## Connexion à un cluster Amazon EMR à l’aide d’une commande de connexion
<a name="connect-emr-clusters-manually"></a>

Pour établir une connexion à un cluster Amazon EMR, vous pouvez exécuter des commandes de connexion dans une cellule de bloc-notes.

Lorsque vous établissez la connexion, vous pouvez vous authentifier à l’aide de [Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html), du protocole [LDAP (Lightweight Directory Access Protocol)](https://docs.aws.amazon.com/) ou d’une authentification par [rôle IAM à l’exécution](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster-rbac.html). La méthode d’authentification que vous choisissez dépend de la configuration de votre cluster. 

Vous pouvez vous référer à cet exemple [Access Apache Livy using a Network Load Balancer on a Kerberos-enabled Amazon EMR cluster](https://aws.amazon.com/blogs/big-data/access-apache-livy-using-a-network-load-balancer-on-a-kerberos-enabled-amazon-emr-cluster/) pour configurer un cluster Amazon EMR qui utilise l’authentification Kerberos. [Vous pouvez également explorer les CloudFormation exemples de modèles utilisant l'authentification Kerberos ou LDAP dans le référentiel aws-samples/. sagemaker-studio-emr](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 

Si votre administrateur a activé l'accès entre comptes, vous pouvez vous connecter à votre cluster Amazon EMR depuis un bloc-notes Studio Classic, que votre application Studio Classic et votre cluster résident sur le AWS même compte ou sur des comptes différents.

Pour chacun des types d’authentification suivants, utilisez la commande spécifiée pour vous connecter à votre cluster depuis votre bloc-notes Studio ou Studio Classic.
+ **Kerberos**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Kerberos --language python 
  [--assumable-role-arn EMR_access_role_ARN ] 
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **LDAP**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Basic_Access --language python 
  [--assumable-role-arn EMR_access_role_ARN ]
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **NoAuth**

  Ajoutez l’argument `--assumable-role-arn` si vous avez besoin d’un accès Amazon EMR entre comptes. Ajoutez l’argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS.

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type None --language python
  [--assumable-role-arn EMR_access_role_ARN ]
  [--verify-certificate /home/user/certificateKey.pem]
  ```
+ **Rôles IAM d'exécution**

  Ajoutez l'argument `--assumable-role-arn` si vous avez besoin d'un accès Amazon EMR entre comptes. Ajoutez l'argument `--verify-certificate` si vous vous connectez à votre cluster via HTTPS. 

  Pour plus d'informations sur la connexion à un cluster Amazon EMR à l'aide de rôles IAM d'exécution, consultez [Configuration des rôles d’exécution IAM pour l’accès aux clusters Amazon EMR dans Studio](studio-notebooks-emr-cluster-rbac.md).

  ```
  %load_ext sagemaker_studio_analytics_extension.magics
  %sm_analytics emr connect --cluster-id cluster_id \
  --auth-type Basic_Access \
  --emr-execution-role-arn arn:aws:iam::studio_account_id:role/emr-execution-role-name
  [--assumable-role-arn EMR_access_role_ARN]
  [--verify-certificate /home/user/certificateKey.pem]
  ```

## Connexion à un cluster Amazon EMR via HTTPS
<a name="connect-emr-clusters-ssl"></a>

Si vous avez configuré votre cluster Amazon EMR avec le chiffrement en transit activé et le serveur Apache Livy pour HTTPS et que vous souhaitez que Studio ou Studio Classic communique avec Amazon EMR via HTTPS, vous devez configurer Studio ou Studio Classic pour accéder à votre clé de certificat.

Pour les certificats autosignés ou signés par l’autorité de certification (CA) locale, vous pouvez procéder en deux étapes :

1. Téléchargez le fichier PEM de votre certificat sur votre système de fichiers local à l'aide de l'une des options suivantes :
   + Fonction de téléchargement de fichiers intégrée à Jupyter.
   + Cellule de bloc-notes.
   + (Pour les utilisateurs de Studio Classic uniquement) Script de configuration de cycle de vie (LCC).

     Pour en savoir plus sur l’utilisation d’un script LCC, consultez [Personnalisation d’une instance de bloc-notes à l’aide d’un script de configuration du cycle de vie](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).

1. Activez la validation du certificat en fournissant le chemin d'accès à votre certificat dans l'argument `--verify-certificate` de votre commande de connexion.

   ```
   %sm_analytics emr connect --cluster-id cluster_id \
   --verify-certificate /home/user/certificateKey.pem ...
   ```

Pour les certificats publics émis par une autorité de certification, définissez la validation du certificat en définissant le paramètre `--verify-certificate` comme `true`.

Vous pouvez également désactiver la validation du certificat en définissant le paramètre `--verify-certificate` comme `false`.

Vous pouvez trouver la liste des commandes de connexion disponibles pour un cluster Amazon EMR dans [Connexion à un cluster Amazon EMR à l’aide d’une commande de connexion](#connect-emr-clusters-manually).

# Résiliation d’un cluster Amazon EMR depuis Studio ou Studio Classic
<a name="terminate-emr-clusters"></a>

La procédure suivante montre comment résilier un cluster Amazon EMR depuis un bloc-notes Studio ou Studio Classic.

**Pour résilier un cluster dans un état `Running`, accédez à la liste des clusters Amazon EMR disponibles.**

1. Dans l’interface utilisateur de Studio, faites défiler l’écran jusqu’au nœud **Données** dans le menu de navigation de gauche.

1. Accédez au nœud **Clusters EMR**. Une page s’ouvre répertoriant les clusters Amazon EMR auxquels vous pouvez accéder.

1. Sélectionnez le nom du cluster que vous souhaitez résilier, puis choisissez **Résilier**.

1. Cela ouvre une fenêtre de confirmation vous informant que toute tâche en cours ou données de votre cluster seront définitivement perdues après la fin du cluster. Confirmez en choisissant à nouveau **Résilier**.

# Accès à l’interface utilisateur de Spark depuis Studio ou Studio Classic
<a name="studio-notebooks-access-spark-ui"></a>

Les sections suivantes fournissent des instructions pour accéder à l'interface utilisateur Spark depuis les blocs-notes SageMaker AI Studio ou Studio Classic. L’interface utilisateur Spark vous permet de surveiller et de déboguer vos tâches Spark soumises pour s’exécuter sur Amazon EMR à partir de blocs-notes Studio ou Studio Classic. Le tunneling SSH et le pré-signé URLs sont deux moyens d'accéder à l'interface utilisateur de Spark.

## Configurer le tunneling SSH pour l'accès à l'interface utilisateur Spark
<a name="studio-notebooks-emr-ssh-tunneling"></a>

Pour configurer le tunneling SSH pour accéder à l’interface utilisateur Spark, suivez l’une des deux options de cette section.

Options de configuration du tunnel SSH :
+ [Option 1 : Configuration d'un tunnel SSH vers le nœud maître à l'aide du réacheminement de port local](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel-local.html)
+ [Option 2, partie 1 : Configuration d'un tunnel SSH vers le nœud maître à l'aide du réacheminement de port dynamique](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ssh-tunnel.html)

  [Option 2, partie 2 : Configuration des paramètres de proxy pour afficher les sites web hébergés sur le nœud maître](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-proxy.html)

Pour plus d'informations sur l'affichage des interfaces web hébergées sur les clusters Amazon EMR, consultez [Afficher les interfaces Web hébergées sur des clusters Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html). Vous pouvez également visiter votre console Amazon EMR pour accéder à l'interface utilisateur Spark.

**Note**  
Vous pouvez configurer un tunnel SSH même si les tunnels présignés ne URLs sont pas disponibles. 

## Présigné URLs
<a name="studio-notebooks-emr-spark-ui-presigned-urls"></a>

Pour créer en un clic URLs l'accès à l'interface utilisateur Spark sur Amazon EMR SageMaker à partir de blocs-notes Studio ou Studio Classic, vous devez activer les autorisations IAM suivantes. Choisissez l’option qui s’applique à votre cas : 
+ **Pour les clusters Amazon EMR qui se trouvent dans le même compte que le bloc-notes SageMaker Studio ou Studio Classic : ajoutez les autorisations suivantes au rôle d'exécution SageMaker Studio ou Studio Classic IAM.**
+ **Pour les clusters Amazon EMR qui se trouvent sur un autre compte (et non sur un bloc-notes SageMaker Studio ou Studio Classic) : ajoutez les autorisations suivantes au rôle multicompte pour lequel vous avez créé. [Établissement de la liste des clusters Amazon EMR depuis Studio ou Studio Classic](discover-emr-clusters.md)**

**Note**  
Vous pouvez accéder à la version présignée URLs depuis la console dans les régions suivantes :  
Région US East (N. Virginia)
Région US West (N. California)
Région Canada (Centre)
Région Europe (Francfort)
Région Europe (Stockholm)
Région Europe (Irlande)
Région Europe (Londres)
Région Europe (Paris)
Région Asia Pacific (Tokyo)
Région Asia Pacific (Seoul)
Région Asie-Pacifique (Sydney)
Région Asie-Pacifique (Mumbai)
Région Asie-Pacifique (Singapour)
Amérique du Sud (São Paulo)

 La politique suivante donne accès à des fichiers présignés URLs pour votre rôle d'exécution. 

```
{
        "Sid": "AllowPresignedUrl",
        "Effect": "Allow",
        "Action": [
            "elasticmapreduce:DescribeCluster",
            "elasticmapreduce:ListInstanceGroups",
            "elasticmapreduce:CreatePersistentAppUI",
            "elasticmapreduce:DescribePersistentAppUI",
            "elasticmapreduce:GetPersistentAppUIPresignedURL",
            "elasticmapreduce:GetOnClusterAppUIPresignedURL"
        ],
        "Resource": [
            "arn:aws:elasticmapreduce:region:account-id:cluster/*"
        ]
}
```

# Blogs et livres blancs
<a name="studio-notebooks-emr-resources"></a>

Les blogs suivants utilisent une étude de cas sur la prédiction des sentiments pour une critique de film afin d’illustrer le processus d’exécution d’un flux de travail complet de machine learning. Cela inclut la préparation des données, la surveillance des tâches Spark, ainsi que l’entraînement et le déploiement d’un modèle ML pour obtenir des prédictions directement depuis votre bloc-notes Studio ou Studio Classic.
+ [Créez et gérez des clusters Amazon EMR depuis SageMaker Studio ou Studio Classic pour exécuter des charges de travail interactives Spark et ML](https://aws.amazon.com/blogs/machine-learning/part-1-create-and-manage-amazon-emr-clusters-from-sagemaker-studio-to-run-interactive-spark-and-ml-workloads/).
+ Pour étendre le cas d'utilisation à une configuration entre comptes dans laquelle SageMaker Studio ou Studio Classic et votre cluster Amazon EMR sont déployés dans des comptes AWS distincts, [consultez Créer et gérer des clusters Amazon EMR SageMaker depuis Studio ou Studio Classic pour exécuter des charges de travail interactives Spark et ML -](https://aws.amazon.com/blogs/machine-learning/part-2-create-and-manage-amazon-emr-clusters-from-sagemaker-studio-to-run-interactive-spark-and-ml-workloads/) Partie 2.

Voir aussi : 
+ Présentation de la configuration d’[Accès à Apache Livy à l’aide d’un Network Load Balancer sur un cluster Amazon EMR compatible avec Kerberos](https://aws.amazon.com/blogs/big-data/access-apache-livy-using-a-network-load-balancer-on-a-kerberos-enabled-amazon-emr-cluster/)
+ AWS livres blancs sur les [meilleures pratiques de SageMaker Studio ou de Studio Classic](https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/sagemaker-studio-admin-best-practices.html).

# Résolution des problèmes
<a name="studio-notebooks-emr-troubleshooting"></a>

Lorsque vous travaillez avec des clusters Amazon EMR à partir de bloc-notes Studio ou Studio Classic, vous pouvez rencontrer divers problèmes ou défis potentiels au cours du processus de connexion ou d’utilisation. Pour vous aider à résoudre ces erreurs, cette section fournit des conseils sur les problèmes courants qui peuvent survenir. 

Voici des erreurs courantes susceptibles de se produire lors de la connexion ou de l’utilisation de clusters Amazon EMR à partir de blocs-notes Studio ou Studio Classic.

## Résolution des problèmes de blocage ou d’échec des connexions Livy
<a name="studio-notebooks-emr-troubleshooting.memoryerror"></a>

Voici des problèmes de connectivité à Livy susceptibles de se produire lors de l’utilisation de clusters Amazon EMR à partir de blocs-notes Studio ou Studio Classic.
+ **Votre cluster Amazon EMR a rencontré une out-of-memory erreur.**

  Une connexion Livy peut se bloquer ou échouer si votre cluster Amazon EMR a rencontré out-of-memory une erreur. `sparkmagic` 

  Par défaut, le paramètre de configuration Java du pilote Apache Spark, `spark.driver.defaultJavaOptions`, est défini sur `-XX:OnOutOfMemoryError='kill -9 %p'`. Cela signifie que l'action par défaut effectuée lorsque le programme pilote rencontre une `OutOfMemoryError` est de résilier le programme pilote en envoyant un signal SIGKILL. Lorsque le pilote Apache Spark est résilié, toute connexion Livy via `sparkmagic` dépend du blocage ou de l'échec de ce pilote. Cela est dû au fait que le pilote Spark est responsable de la gestion des ressources de l'application Spark, notamment de la planification et de l'exécution des tâches. Sans le pilote, l'application Spark ne peut pas fonctionner et toute tentative d'interaction avec celui-ci échoue.

  Si vous pensez que votre cluster Spark rencontre des problèmes de mémoire, vous pouvez consulter les [journaux Amazon EMR.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html) Les conteneurs tués en raison d' out-of-memoryerreurs sortent généralement avec un code de`137`. Dans ce cas, vous devez redémarrer l'application Spark et établir une nouvelle connexion Livy pour reprendre l'interaction avec le cluster Spark.

  Vous pouvez vous référer à l'article de la base de connaissances [Comment résoudre l'erreur « Conteneur tué par YARN pour dépassement des limites de mémoire » dans Spark on Amazon EMR](https://repost.aws/knowledge-center/emr-spark-yarn-memory-limit) ? AWS re:Post pour en savoir plus sur les différentes stratégies et paramètres qui peuvent être utilisés pour résoudre un out-of-memory problème.

  Nous vous recommandons de consulter les [Guides de bonnes pratiques Amazon EMR](https://aws.github.io/aws-emr-best-practices/) pour connaître les bonnes pratiques et les conseils de réglage relatifs à l'exécution des charges de travail Apache Spark sur vos clusters Amazon EMR.
+ **Votre session Livy expire lorsque vous vous connectez à un cluster Amazon EMR pour la première fois.**

  Lorsque vous vous connectez pour la première fois à un cluster Amazon EMR à l'aide d'Apache Livy [sagemaker-studio-analytics-extension](https://pypi.org/project/sagemaker-studio-analytics-extension/), qui permet la connexion à un cluster Spark (Amazon EMR) distant via la [SparkMagic](https://github.com/jupyter-incubator/sparkmagic)bibliothèque à l'aide d'[Apache Livy](https://livy.apache.org/), vous pouvez rencontrer une erreur de délai de connexion :

  `An error was encountered: Session 0 did not start up in 60 seconds.`

  Si votre cluster Amazon EMR nécessite l'initialisation d'une application Spark lors de l'établissement d'une connexion, il y a un risque accru de voir apparaître des erreurs de délai de connexion.

  Pour réduire les risques de délais d'attente lors de la connexion à un cluster Amazon EMR à l'aide de Livy via l'extension d'analyse `sagemaker-studio-analytics-extension` version `0.0.19`, remplacez le délai d'expiration de session du serveur par défaut par `120` secondes au lieu du délai par défaut de `sparkmagic` de `60` secondes.

  Nous vous recommandons de mettre à jour votre extension `0.0.18` en exécutant la commande de mise à niveau suivante.

  ```
  pip install --upgrade sagemaker-studio-analytics-extension
  ```

  Notez que lorsque vous fournissez une configuration de délai d'expiration personnalisée dans `sparkmagic`, `sagemaker-studio-analytics-extension` respecte cette dérogation. Cependant, la définition du délai d’expiration de session sur `60` secondes déclenche automatiquement le délai d’expiration de session du serveur par défaut de `120` secondes dans `sagemaker-studio-analytics-extension`.

# Préparation des données à l'aide de sessions AWS Glue interactives
<a name="studio-notebooks-glue"></a>

Les [sessions interactives AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/interactive-sessions-overview.html) sont un service sans serveur que vous pouvez utiliser pour collecter, transformer, nettoyer et préparer des données en vue de leur stockage dans vos lacs de données et vos pipelines de données. Les sessions interactives AWS Glue fournissent un environnement d’exécution Apache Spark à la demande et sans serveur que vous pouvez initialiser en quelques secondes sur une unité de traitement des données (DPU) dédiée sans avoir à provisionner et à gérer une infrastructure complexe de clusters de calcul. Après l'initialisation, vous pouvez parcourir le catalogue de AWS Glue données, exécuter des requêtes volumineuses, accéder aux données régies par AWS Lake Formation, analyser et préparer les données de manière interactive à l'aide de Spark, directement dans vos blocs-notes Studio ou Studio Classic. Vous pouvez ensuite utiliser les données préparées pour entraîner, ajuster et déployer des modèles à l'aide des outils de machine learning spécialement conçus dans SageMaker Studio ou Studio Classic. Vous devriez envisager des sessions AWS Glue interactives pour vos charges de travail de préparation des données lorsque vous souhaitez un service Spark sans serveur avec un contrôle modéré de la configurabilité et de la flexibilité.

Vous pouvez lancer une session AWS Glue interactive en démarrant un JupyterLab bloc-notes dans Studio ou Studio Classic. Lorsque vous démarrez votre bloc-notes, choisissez le noyau `Glue PySpark and Ray` ou `Glue Spark` intégré. Cela démarre automatiquement une session Spark interactive et sans serveur. Vous n’avez pas besoin de provisionner ni de gérer un cluster ou une infrastructure de calcul. Après l’initialisation, vous pouvez explorer vos données et interagir avec elles depuis vos blocs-notes Studio ou Studio Classic.

Avant de démarrer votre session AWS Glue interactive dans Studio ou Studio Classic, vous devez définir les rôles et les politiques appropriés. En outre, vous devrez peut-être fournir l’accès à des ressources supplémentaires, telles qu’un compartiment de stockage Amazon S3. Pour plus d’informations sur les politiques IAM requises, consultez [Autorisations pour les sessions AWS Glue interactives dans Studio ou Studio Classic](getting-started-glue-sm.md#glue-sm-iam).

Studio et Studio Classic fournissent une configuration par défaut pour votre session AWS Glue interactive, mais vous pouvez utiliser AWS Glue le catalogue complet des commandes magiques de Jupyter pour personnaliser davantage votre environnement. Pour plus d'informations sur les magies Jupyter par défaut et supplémentaires que vous pouvez utiliser dans votre session AWS Glue interactive, consultez. [Configuration de votre session AWS Glue interactive dans Studio ou Studio Classic](getting-started-glue-sm.md#glue-sm-magics)
+ Les utilisateurs de Studio Classic qui lancent une session AWS Glue interactive peuvent choisir parmi les images et les noyaux suivants :
  + Images : `SparkAnalytics 1.0`, `SparkAnalytics 2.0`
  + Noyau : `Glue Python [PySpark and Ray]` et `Glue Spark`
+ Pour les utilisateurs de Studio, utilisez l'[image SageMaker de distribution](https://github.com/aws/sagemaker-distribution) par défaut et sélectionnez un `Glue Python [PySpark and Ray]` ou un `Glue Spark` noyau.

# Commencez avec des sessions AWS Glue interactives
<a name="getting-started-glue-sm"></a>

Dans ce guide, vous apprendrez à lancer une session AWS Glue interactive dans SageMaker AI Studio Classic et à gérer votre environnement avec Jupyter magics.

## Autorisations pour les sessions AWS Glue interactives dans Studio ou Studio Classic
<a name="glue-sm-iam"></a>

Cette section répertorie les politiques requises pour exécuter des sessions AWS Glue interactives dans Studio ou Studio Classic et explique comment les configurer. Elle explique notamment comment :
+ Associez la politique `AwsGlueSessionUserRestrictedServiceRole` gérée à votre rôle d'exécution de l' SageMaker IA.
+ Créez une politique personnalisée en ligne pour votre rôle d'exécution de l' SageMaker IA.
+ Modifiez la relation de confiance de votre rôle d'exécution de l' SageMaker IA.

**Pour associer la politique gérée par `AwsGlueSessionUserRestrictedServiceRole` à votre rôle d’exécution**

1. Ouvrez la [console IAM](https://console.aws.amazon.com/iam/).

1. Sélectionnez **Roles** (Rôles) dans le panneau de gauche.

1. Recherchez le rôle d’exécution de Studio Classic utilisé par votre profil utilisateur. Pour en savoir plus sur la manière de visualiser un profil utilisateur, consultez [Visualisation des profils utilisateur dans un domaine](domain-user-profile-view.md).

1. Choisissez le nom de votre rôle pour accéder à la page récapitulative du rôle.

1. Sous l’onglet **Permissions** (Autorisations), sélectionnez **Attach policies** (Attacher des politiques) dans le menu déroulant **Add Permissions** (Ajouter des autorisations).

1. Cochez la case à côté de la politique gérée `AwsGlueSessionUserRestrictedServiceRole`.

1. Choisissez **Attacher des politiques**. 

   La page récapitulative affiche les politiques gérées que vous venez d’ajouter.

   

**Pour créer une politique personnalisée intégrée à votre rôle d'exécution**

1. Sélectionnez **Create inline policy** (Créer une politique en ligne) dans le menu déroulant **Add Permissions** (Ajouter des autorisations).

1. Sélectionnez l’onglet **JSON**.

1. Copiez-collez ce contenu dans la politique suivante.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "uniqueStatementId",
   
               "Effect": "Allow",
               "Action": [
   	     "iam:GetRole",
                   "iam:PassRole",
                   "sts:GetCallerIdentity"
               ],
               "Resource": "arn:aws:iam::*:role/GlueServiceRole*"
           }
       ]
   }
   ```

------

1. Choisissez **Examiner une politique**.

1. Entrez un **nom** et choisissez **Create policy** (Créer une politique). 

   La page récapitulative affiche la politique personnalisée que vous venez d’ajouter.

   

**Pour modifier la relation d'approbation de votre rôle d'exécution**

1. Sélectionnez l’onglet **Relations d’approbation**.

1. Choisissez **Edit trust policy** (Modifier la politique d'approbation).

1. Copiez-collez ce contenu dans la politique suivante.

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Service": [
                   "glue.amazonaws.com",
                   "sagemaker.amazonaws.com"
               ]
           },
           "Action": "sts:AssumeRole"
       }
   ]
   }
   ```

------

1. Choisissez **Mettre à jour une politique**.

Vous pouvez ajouter des rôles et des politiques supplémentaires si vous avez besoin d'accéder à d'autres ressources AWS . Pour une description des rôles et politiques supplémentaires que vous pouvez inclure, consultez les [sessions interactives avec IAM](https://docs.aws.amazon.com/glue/latest/dg/glue-is-security.html) dans la AWS Glue documentation.

## Propagation de balises
<a name="glue-sm-tag-propagation"></a>

Les balises sont couramment utilisées pour suivre et répartir les coûts, contrôler l’accès à votre session, isoler vos ressources, etc. Pour en savoir plus sur l’ajout de métadonnées à vos ressources AWS à l’aide du balisage, ou pour plus de détails sur les cas d’utilisation courants, consultez [Informations supplémentaires](#more-information).

Vous pouvez activer la propagation automatique des AWS balises vers les nouvelles sessions AWS Glue interactives créées depuis l'interface utilisateur de Studio ou de Studio Classic. Lorsqu'une session AWS Glue interactive est créée à partir de Studio ou Studio Classic, toutes les [balises définies par](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html) l'utilisateur associées au profil utilisateur ou à l'espace partagé sont transférées vers la nouvelle session AWS Glue interactive. En outre, Studio et Studio Classic ajoutent automatiquement deux balises internes AWS générées ((`sagemaker:user-profile-arn`et`sagemaker:domain-arn`) ou (`sagemaker:shared-space-arn`et)`sagemaker:domain-arn`) aux nouvelles sessions AWS Glue interactives créées à partir de leur interface utilisateur. Vous pouvez utiliser ces balises pour agréger les coûts entre des domaines, des profils utilisateur ou des espaces individuels.

### Activation de la propagation des balises
<a name="enable-propagation"></a>

Pour activer la propagation automatique des balises vers les nouvelles sessions AWS Glue interactives, définissez les autorisations suivantes pour votre rôle d'exécution SageMaker AI et le rôle IAM associé à votre AWS Glue session :

**Note**  
Par défaut, le rôle associé à la session AWS Glue interactive est le même que le rôle d'exécution de l' SageMaker IA. Vous pouvez définir un rôle d'exécution différent pour la session AWS Glue interactive à l'aide de la commande `%iam_role` magique. Pour en savoir plus sur les commandes magiques de Jupyter disponibles pour configurer des sessions interactives AWS Glue , consultez [Configuration de votre session AWS Glue interactive dans Studio ou Studio Classic](#glue-sm-magics).
+ *Sur votre rôle d'exécution d' SageMaker IA* : créez une nouvelle politique intégrée et collez le fichier JSON suivant. La politique accorde au rôle d'exécution l'autorisation de décrire (`DescribeUserProfile`,`DescribeSpace`,`DescribeDomain`) et de répertorier les balises (`ListTag`) définies sur les profils utilisateur, les espaces partagés et le domaine SageMaker AI.

  ```
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:ListTags"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:user-profile/*",
          "arn:aws:sagemaker:*:*:space/*"
      ]
  },
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeUserProfile"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:user-profile/*"
      ]
  },
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeSpace"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:space/*"
      ]
  }
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeDomain"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:domain/*"
      ]
  }
  ```
+ *Sur le rôle IAM de votre session AWS Glue * : créez une nouvelle politique intégrée et collez le fichier JSON suivant. La politique accorde à votre rôle l'autorisation d'associer des balises (`TagResource`) à votre session ou de récupérer sa liste de balises (`GetTags`).

  ```
  {
      "Effect": "Allow",
      "Action": [
          "glue:TagResource",
          "glue:GetTags"
      ],
      "Resource": [
          "arn:aws:glue:*:*:session/*"
      ]
  }
  ```

**Note**  
Les défaillances survenant lors de l'application de ces autorisations n'empêchent pas la création de sessions AWS Glue interactives. Vous trouverez des informations sur la raison de l'échec dans les [CloudWatch](https://docs.aws.amazon.com//sagemaker/latest/dg/monitoring-cloudwatch.html)journaux de Studio ou de Studio Classic.
Vous devez redémarrer le noyau de votre session AWS Glue interactive pour propager la mise à jour de la valeur d'une balise.

Il est important de noter les points suivants :
+ Une fois qu’une balise est attachée à une session, elle ne peut pas être supprimée par propagation.

  Vous pouvez supprimer des balises d'une session AWS Glue interactive directement via l' AWS CLI AWS Glue API ou le [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). Par exemple, à l'aide du AWS CLI, vous pouvez supprimer une balise en fournissant l'ARN de la session et les clés de balise que vous souhaitez supprimer comme suit :

  ```
  aws glue untag-resource \
  --resource-arn arn:aws:glue:region:account-id:session:session-name \
  --tags-to-remove tag-key1,tag-key2
  ```
+ Studio et Studio Classic ajoutent deux balises internes AWS générées ((`sagemaker:user-profile-arn`et`sagemaker:domain-arn`) ou (`sagemaker:shared-space-arn`et)`sagemaker:domain-arn`) aux nouvelles sessions AWS Glue interactives créées à partir de leur interface utilisateur. Ces balises sont prises en compte dans le cadre de la limite de 50 balises fixée pour toutes les AWS ressources. `sagemaker:user-profile-arn` et `sagemaker:shared-space-arn` contiennent l’ID de domaine auquel elles appartiennent.
+ Les balises, les touches commençant par `aws:``AWS:`, ou toute combinaison de lettres majuscules et minuscules comme préfixe pour les clés ne sont pas propagées et sont réservées à l'usage. AWS 

### Informations supplémentaires
<a name="more-information"></a>

Pour plus d'informations sur le balisage, consultez les ressources suivantes.
+ Pour en savoir plus sur l'ajout de métadonnées à vos AWS ressources grâce au balisage, consultez la section [Marquage des AWS](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) ressources.
+ Pour obtenir des informations sur le suivi des coûts à l’aide de balises, consultez [Analyse des coûts](https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/cost-attribution.html) dans les bonnes pratiques d’administration de Studio.
+ Pour plus d'informations sur le contrôle de l'accès AWS Glue en fonction des clés de balise, voir [ABAC with AWS Glue](glue/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-tags).

## Lancez votre session AWS Glue interactive sur Studio ou Studio Classic
<a name="glue-sm-launch"></a>

Après avoir créé les rôles, les politiques et le domaine SageMaker AI, vous pouvez lancer votre session AWS Glue interactive dans Studio ou Studio Classic.

1. Connectez-vous à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le volet de navigation de gauche, choisissez **Studio**.

1. Sur la page de destination de Studio, sélectionnez le domaine et le profil utilisateur pour lancer Studio.

1. Choisissez **Open Studio** et démarrez une application JupyterLab ou une application Studio Classic.

1. Dans la vue Jupyter, choisissez **File** (Fichier), puis **New** (Nouveau), puis **Notebook** (Bloc-notes).

1. Pour les utilisateurs de Studio Classic : dans le menu déroulant **Image**, sélectionnez **SparkAnalytics 1.0** ou **SparkAnalytics2.0**. Dans le menu déroulant **du noyau**, sélectionnez **Glue Spark** ou **Glue Python [PySpark and Ray]**. Choisissez **Select (Sélectionner)**.

   Pour les utilisateurs de Studio, sélectionnez un noyau **Glue Spark** ou **Glue Python [PySpark and Ray]**

1. (facultatif) Utilisez les commandes magiques Jupyter pour personnaliser votre environnement. Pour plus d'informations sur les commandes magiques Jupyter, consultez [Configuration de votre session AWS Glue interactive dans Studio ou Studio Classic](#glue-sm-magics).

1. Commencez à écrire vos scripts de traitement de données Spark. Le [bloc-notes](https://github.com/aws/amazon-sagemaker-examples/blob/main/use-cases/pyspark_etl_and_training/pyspark-etl-training.ipynb) suivant présente un end-to-end flux de travail pour l'ETL sur un grand ensemble de données à l'aide d'une session AWS Glue interactive, d'une analyse exploratoire des données, d'un prétraitement des données et, enfin, de l'entraînement d'un modèle sur les données traitées avec l'IA. SageMaker 

## Configuration de votre session AWS Glue interactive dans Studio ou Studio Classic
<a name="glue-sm-magics"></a>

**Note**  
Toutes les configurations magiques sont reportées aux sessions suivantes pendant toute la durée de vie du AWS Glue noyau.

Vous pouvez utiliser la magie de Jupyter dans votre session AWS Glue interactive pour modifier vos paramètres de session et de configuration. Les commandes magiques sont de courtes commandes préfixées par `%` au début des cellules Jupyter qui fournissent un moyen simple et rapide de vous aider à contrôler votre environnement. Dans votre session AWS Glue interactive, les magies suivantes sont configurées par défaut pour vous :


| Commande magique | Valeur par défaut | 
| --- | --- | 
| %glue\$1version |  3.0  | 
| %iam\$1role |  *execution role attached to your SageMaker AI domain*  | 
| %region |  votre région  | 

Vous pouvez utiliser les commandes magiques pour personnaliser davantage votre environnement. Par exemple, si vous souhaitez modifier le nombre de collaborateurs alloués à votre tâche du nombre 5 par défaut à 10, vous pouvez spécifier `%number_of_workers 10`. Si vous souhaitez configurer votre session pour qu’elle s’arrête après 10 minutes d’inactivité au lieu des 2 880 par défaut, vous pouvez spécifier `%idle_timeout 10`.

Toutes les magies Jupyter actuellement disponibles dans le AWS Glue sont également dans Studio ou Studio Classic. Pour la liste complète des AWS Glue magies disponibles, consultez [Configuration de sessions AWS Glue interactives pour les blocs-notes Jupyter et AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/interactive-sessions-magics.html).

# AWS Glue tarification des sessions interactives
<a name="glue-sm-pricing"></a>

Lorsque vous utilisez des sessions AWS Glue interactives sur des blocs-notes Studio ou Studio Classic, vous êtes facturé séparément pour l'utilisation des ressources sur les blocs-notes Studio AWS Glue et sur les blocs-notes Studio.

AWS les frais de session AWS Glue interactive sont calculés en fonction de la durée pendant laquelle la session est active et du nombre d'unités de traitement des données (DPU) utilisées. Un taux horaire vous est facturé en fonction du nombre d'heures DPUs utilisées pour exécuter vos charges de travail, facturé par tranches d'une seconde. AWS Glue les sessions interactives attribuent une valeur par défaut de cinq DPUs et en nécessitent un minimum de deux DPUs. Il existe également une durée de facturation minimale d’une minute pour chaque session interactive. Pour consulter les AWS Glue taux et les exemples de tarification, ou pour estimer vos coûts à l'aide du calculateur de AWS prix, consultez la section [AWS Glue tarification](https://aws.amazon.com/glue/pricing).

Votre bloc-notes Studio ou Studio Classic s’exécute sur une instance Amazon EC2 et vous êtes facturé pour le type d’instance que vous choisissez, en fonction de la durée d’utilisation. Studio Classic vous attribue un type d’instance EC2 par défaut de `ml-t3-medium` lorsque vous sélectionnez l’image `SparkAnalytics` et le noyau associé. Vous pouvez modifier le type d’instance de votre bloc-notes Studio en fonction de votre charge de travail. Pour plus d'informations sur les tarifs de Studio et de Studio Classic, consultez [ SageMaker les tarifs Amazon](https://aws.amazon.com/sagemaker/pricing).

# Préparez les données ML avec Amazon SageMaker Data Wrangler
<a name="data-wrangler"></a>

**Important**  
Amazon SageMaker Data Wrangler a été intégré à Amazon SageMaker Canvas. Dans la nouvelle expérience Data Wrangler de SageMaker Canvas, vous pouvez utiliser une interface en langage naturel pour explorer et transformer vos données en plus de l'interface visuelle. Pour plus d'informations sur Data Wrangler dans SageMaker Canvas, consultez. [Préparation des données](canvas-data-prep.md)

Amazon SageMaker Data Wrangler (Data Wrangler) est une fonctionnalité d'Amazon SageMaker Studio Classic qui fournit une end-to-end solution pour importer, préparer, transformer, présenter et analyser des données. Vous pouvez intégrer un flux de préparation de données Data Wrangler dans vos flux de travail de machine learning (ML) afin de simplifier et de rationaliser le prétraitement des données et l’ingénierie des caractéristiques en utilisant peu ou pas de codage. Vous pouvez également ajouter vos propres scripts et transformations Python pour personnaliser les flux de travail.

Data Wrangler fournit les principales fonctionnalités suivantes pour vous aider à analyser et à préparer les données pour les applications de machine learning. 
+ **Importation** — Connectez-vous et importez des données depuis Amazon Simple Storage Service (Amazon S3), Amazon Athena (Athena), Amazon Redshift, Snowflake et Databricks.
+ **Flux de données** : créez un flux de données permettant de définir une série d’étapes de préparation des données ML. Vous pouvez utiliser un flux pour combiner des jeux de données provenant de différentes sources de données, identifier le nombre et les types de transformations que vous souhaitez appliquer aux jeux de données, et définir un flux de préparation des données qui peut être intégré à un pipeline ML. 
+ **Transformation** : nettoyez et transformez votre jeu de données à l’aide de *transformations* standard, telles que les outils de formatage de chaînes, de vecteurs et de données numériques. Mettez en valeur vos données à l'aide de transformations telles que le texte, date/time l'intégration et le codage catégoriel.
+ **Generate Data Insights** (Générer une analyse de données) : vérifiez automatiquement la qualité des données et détectez des anomalies dans vos données grâce à Data Wrangler Data Insights and Quality Report. 
+ **Analyser** : analysez les caractéristiques de votre jeu de données à n’importe quel moment de votre flux. Data Wrangler dispose d’outils intégrés de visualisation des données, tels que des diagrammes de dispersion et des histogrammes, ainsi que d’outils d’analyse des données, tels que l’analyse des fuites de caractéristique cible et la modélisation rapide pour comprendre la corrélation des caractéristiques. 
+ **Export** (Exporter) : exportez votre flux de travail de préparation des données vers un autre emplacement. Voici des exemples d'emplacements : 
  + Compartiment Amazon Simple Storage Service (Amazon S3)
  + Amazon SageMaker Pipelines — Utilisez des pipelines pour automatiser le déploiement des modèles. Vous pouvez exporter les données que vous avez transformées directement vers les pipelines.
  + Amazon SageMaker Feature Store : stockez les fonctionnalités et leurs données dans un magasin centralisé.
  + Script Python : stockez les données et leurs transformations dans un script Python pour vos flux de travail personnalisés.

Pour commencer à utiliser Data Wrangler, consultez [Démarrer avec Data Wrangler](data-wrangler-getting-started.md).

**Important**  
Data Wrangler ne prend plus en charge la version 1 de Jupyter Lab (). JL1 Pour accéder aux dernières fonctionnalités et mises à jour, effectuez la mise à jour vers la version 3 de Jupyter Lab. Pour plus d’informations sur la mise à niveau, consultez [Afficher et mettre à jour la JupyterLab version d'une application depuis la console](studio-jl.md#studio-jl-view).

**Important**  
Les informations et les procédures de ce guide utilisent la dernière version d'Amazon SageMaker Studio Classic. Pour en savoir plus sur la mise à jour de Studio Classic vers la version la plus récente, consultez [Présentation de l'interface utilisateur Amazon SageMaker Studio Classic](studio-ui.md).

Vous devez utiliser la version 1.3.0 ou ultérieure de Studio Classic. Suivez la procédure ci-dessous pour ouvrir Amazon SageMaker Studio Classic et voir quelle version vous utilisez.

Pour ouvrir Studio Classic et vérifier sa version, consultez la procédure suivante.

1. Suivez les étapes ci-dessous [Conditions préalables](data-wrangler-getting-started.md#data-wrangler-getting-started-prerequisite) pour accéder à Data Wrangler via Amazon SageMaker Studio Classic.

1. En regard de l’utilisateur que vous souhaitez utiliser pour lancer Studio Classic, sélectionnez **Lancer l’application**.

1. Choisissez **Studio**.

1. Après le chargement de Studio Classic, sélectionnez **Fichier**, puis **Nouveau** et **Terminal**.  
![\[Options du menu contextuel de Studio Classic décrites à l’étape 4.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/terminal.png)

1. Une fois que vous avez lancé Studio Classic, sélectionnez **Fichier**, puis **Nouveau** et enfin **Terminal**.

1. Saisissez `cat /opt/conda/share/jupyter/lab/staging/yarn.lock | grep -A 1 "@amzn/sagemaker-ui-data-prep-plugin@"` pour afficher la version de votre instance Studio Classic. Vous devez disposer de Studio Classic version 1.3.0 pour utiliser Snowflake.   
![\[Une fenêtre de terminal s’est ouverte dans Studio Classic avec la commande de l’étape 6 copiée et collée.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/cat-command.png)

Vous pouvez mettre à jour Amazon SageMaker Studio Classic depuis le AWS Management Console. Pour plus d’informations sur la mise à jour de Studio Classic, consultez [Présentation de l'interface utilisateur Amazon SageMaker Studio Classic](studio-ui.md).

**Topics**
+ [Démarrer avec Data Wrangler](data-wrangler-getting-started.md)
+ [Importer](data-wrangler-import.md)
+ [Créer et utiliser un flux Data Wrangler](data-wrangler-data-flow.md)
+ [Obtention d’informations sur les données et la qualité des données](data-wrangler-data-insights.md)
+ [Entraînement automatique des modèles sur votre flux de données](data-wrangler-autopilot.md)
+ [Transformation de données](data-wrangler-transform.md)
+ [Analyse et visualisation](data-wrangler-analyses.md)
+ [Réutilisation de flux de données pour différents jeux de données](data-wrangler-parameterize.md)
+ [Exporter](data-wrangler-data-export.md)
+ [Utilisez un widget interactif de préparation des données dans un bloc-notes Amazon SageMaker Studio Classic pour obtenir des informations sur les données](data-wrangler-interactively-prepare-data-notebook.md)
+ [Sécurité et autorisations](data-wrangler-security.md)
+ [Notes de mise à jour](data-wrangler-release-notes.md)
+ [Dépannage](data-wrangler-trouble-shooting.md)
+ [Augmenter la limite d’instance Amazon EC2](data-wrangler-increase-instance-limit.md)
+ [Mettre à jour Data Wrangler](data-wrangler-update.md)
+ [Arrêter Data Wrangler](data-wrangler-shut-down.md)

# Démarrer avec Data Wrangler
<a name="data-wrangler-getting-started"></a>

Amazon SageMaker Data Wrangler est une fonctionnalité d'Amazon SageMaker Studio Classic. Cette section vous montre comment accéder à Data Wrangler et commencer à l’utiliser. Procédez comme suit :

1. Effectuez chaque étape dans [Conditions préalables](#data-wrangler-getting-started-prerequisite).

1. Suivez la procédure décrite dans [Accéder à Data Wrangler](#data-wrangler-getting-started-access) pour commencer à utiliser Data Wrangler.

## Conditions préalables
<a name="data-wrangler-getting-started-prerequisite"></a>

Pour utiliser Data Wrangler, vous devez satisfaire aux prérequis suivants. 

1. Pour utiliser Data Wrangler, vous devez accéder à une instance Amazon Elastic Compute Cloud (Amazon EC2). Pour plus d'informations sur les instances Amazon EC2 que vous pouvez utiliser, consultez [instances](data-wrangler-data-flow.md#data-wrangler-data-flow-instances). Pour savoir comment consulter vos quotas et, le cas échéant, demander leur augmentation, consultez [Quotas de service AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

1. Configurez les autorisations requises décrites dans [Sécurité et autorisations](data-wrangler-security.md). 

1. Si votre entreprise utilise un pare-feu qui bloque le trafic Internet, vous devez avoir accès aux éléments suivants URLs :
   + `https://ui.prod-1.data-wrangler.sagemaker.aws/`
   + `https://ui.prod-2.data-wrangler.sagemaker.aws/`
   + `https://ui.prod-3.data-wrangler.sagemaker.aws/`
   + `https://ui.prod-4.data-wrangler.sagemaker.aws/`

Pour utiliser Data Wrangler, vous avez besoin d’une instance Studio Classic active. Pour en savoir plus sur le lancement d’une nouvelle instance, consultez [Présentation du domaine Amazon SageMaker AI](gs-studio-onboard.md). Lorsque votre instance Studio Classic est **Prête**, utilisez les instructions fournies dans [Accéder à Data Wrangler](#data-wrangler-getting-started-access).

## Accéder à Data Wrangler
<a name="data-wrangler-getting-started-access"></a>

La procédure suivante suppose que vous avez terminé l’étape [Conditions préalables](#data-wrangler-getting-started-prerequisite).

Pour accéder à Data Wrangler dans Studio Classic, procédez comme suit.

1. Connectez-vous à Studio Classic. Pour de plus amples informations, veuillez consulter [Présentation du domaine Amazon SageMaker AI](gs-studio-onboard.md).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Vous pouvez également créer un flux Data Wrangler en procédant comme suit.

   1. Dans la barre de navigation supérieure, sélectionnez **File** (Fichier).

   1. Sélectionnez **New** (Nouveau).

   1. Sélectionnez **Data Wrangler Flow** (Flux Data Wrangler).  
![\[Onglet Accueil de la console Studio Classic.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/new-flow-file-menu.png)

1. (Facultatif) Renommez le nouveau répertoire et le fichier .flow.

1. Lorsque vous créez un nouveau fichier .flow dans Studio Classic, vous pouvez voir un carrousel qui vous présente Data Wrangler.

   **Cette opération peut prendre quelques minutes.**

   Ce message persiste tant que l'**KernelGateway**application sur votre page **d'informations utilisateur** est **en attente**. Pour connaître le statut de cette application, dans la console SageMaker AI de la page **Amazon SageMaker Studio Classic**, sélectionnez le nom de l'utilisateur que vous utilisez pour accéder à Studio Classic. Sur la page **Informations utilisateur**, vous pouvez voir une **KernelGateway**application sous **Applications**. Attendez que l'état de l'appli passe à **Ready (Prêt)** pour commencer à utiliser Data Wrangler. Cela peut prendre environ 5 minutes la première fois que vous lancez Data Wrangler.  
![\[Exemple montrant que l'état de KernelGatewayl'application est Prêt sur la page Informations utilisateur.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/gatewayKernel-ready.png)

1. Pour commencer, choisissez une source de données et utilisez-la pour importer un jeu de données. Pour en savoir plus, consultez [Importer](data-wrangler-import.md). 

   Lorsque vous importez un jeu de données, il apparaît dans votre flux de données. Pour en savoir plus, consultez [Créer et utiliser un flux Data Wrangler](data-wrangler-data-flow.md).

1. Après avoir importé un jeu de données, Data Wrangler déduit automatiquement le type de données dans chaque colonne. Cliquez sur **\$1** à côté de l'étape **Data types (Types de données)** et cliquez sur **Edit data types (Modification des types de données)**. 
**Important**  
Après avoir ajouté des transformations à l'étape **Data types (Types de données)**, vous ne pouvez pas mettre à jour en bloc les types de colonne en utilisant **Update types (Mise à jour des types)**. 

1. Utilisez le flux de données pour ajouter des transformations et des analyses. Pour en savoir plus, consultez les rubriques [Transformation de données](data-wrangler-transform.md) et [Analyse et visualisation](data-wrangler-analyses.md).

1. Pour exporter un flux de données complet, cliquez sur **Export (Exporter)** et choisissez une option d'exportation. Pour en savoir plus, consultez [Exporter](data-wrangler-data-export.md). 

1. Enfin, cliquez sur l'icône **Components and registries** (Composants et registres), puis sélectionnez **Data Wrangler** dans la liste déroulante pour afficher tous les fichiers .flow que vous avez créés. Vous pouvez utiliser ce menu pour rechercher des flux de données et passer d’un flux à l’autre.

Une fois que vous avez lancé Data Wrangler, vous pouvez utiliser la section suivante pour découvrir comment utiliser Data Wrangler afin de créer un flux de préparation de données ML. 

## Mettre à jour Data Wrangler
<a name="data-wrangler-update-studio-app"></a>

Nous recommandons de mettre régulièrement à jour l’application Data Wrangler Studio Classic pour accéder aux dernières fonctionnalités et mises à jour. Le nom de l'application Data Wrangler commence par. **sagemaker-data-wrang** Pour savoir comment mettre à jour une application Studio Classic, consultez [Arrêter et mettre à jour les applications Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).

## Démo : Démonstration du jeu de données Titanic de Data Wrangler
<a name="data-wrangler-getting-started-demo"></a>

Les sections suivantes fournissent une démonstration pour vous aider à débuter à l'aide de Data Wrangler. Cette démonstration présume que vous avez déjà suivi les étapes décrites dans [Accéder à Data Wrangler](#data-wrangler-getting-started-access) et que vous avez ouvert un nouveau fichier de flux de données que vous avez l’intention d’utiliser pour la démonstration. Vous pouvez renommer ce fichier .flow en `titanic-demo.flow`, par exemple.

Cette démonstration utilise le [jeu de données Titanic](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/walkthrough_titanic.csv). Il s'agit d'une version modifiée du [jeu de données Titanic](https://www.openml.org/d/40945) que vous pouvez importer plus facilement dans votre flux Data Wrangler. Ce jeu de données contient le statut de survie, l’âge, le sexe et la classe (qui sert de substitut au statut économique) des passagers à bord du voyage inaugural du *RMS Titanic* en 1912.

Dans ce tutoriel, vous exécuterez les étapes suivantes.

1. Effectuez l’une des actions suivantes :
   + Ouvrez votre flux Data Wrangler et choisissez **Use Sample Dataset** (Utiliser un exemple de jeu de données).
   + Chargez le [jeu de données Titanic](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/walkthrough_titanic.csv) sur Amazon Simple Storage Service (Amazon S3), puis importez-le dans Data Wrangler.

1. Analysez ce jeu de données à l'aide des analyses Data Wrangler. 

1. Définissez un flux de données à l'aide des transformations Data Wrangler.

1. Exportez votre flux vers un bloc-notes Jupyter que vous pouvez utiliser pour créer une tâche Data Wrangler. 

1. Traitez vos données et lancez un travail de SageMaker formation pour former un classificateur XGBoost binaire. 

### Charger un jeu de données vers S3 et l’importer
<a name="data-wrangler-getting-started-demo-import"></a>

Pour commencer, vous pouvez utiliser l'une des méthodes suivantes pour importer le jeu de données Titanic dans Data Wrangler :
+ Importation du jeu de données directement depuis le flux Data Wrangler
+ Chargement du jeu de données sur Amazon S3, suivi de son importation dans Data Wrangler

Pour importer le jeu de données directement dans Data Wrangler, ouvrez le flux et choisissez **Use Sample Dataset** (Utiliser un exemple de jeu de données).

Le chargement du jeu de données sur Amazon S3 et son importation dans Data Wrangler se rapprochent de l'expérience que vous connaissez en important vos propres données. Les informations suivantes vous indiquent comment charger votre jeu de données et l'importer.

Avant de commencer l'importation des données dans Data Wrangler, téléchargez le [jeu de données Titanic](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/walkthrough_titanic.csv) et chargez-le dans un compartiment Amazon S3 figurant dans la région AWS où vous souhaitez effectuer cette démonstration.

Si vous êtes un nouvel utilisateur d’Amazon S3, vous pouvez le faire en utilisant le glisser-déposer dans la console Amazon S3. Pour savoir comment procéder, consultez [Chargement de fichiers et de dossiers par glisser-déposer](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html#upload-objects-by-drag-and-drop) dans le Guide de l’utilisateur Amazon Simple Storage Service.

**Important**  
Téléchargez votre ensemble de données dans un compartiment S3 de la même AWS région que celle que vous souhaitez utiliser pour terminer cette démonstration. 

Lorsque votre jeu de données a été chargé avec succès sur Amazon S3, vous pouvez l'importer dans Data Wrangler.

**Importer le jeu de données Titanic dans Data Wrangler**

1. Cliquez sur le bouton **Import data** (Importer des données) dans l'onglet **Data flow** (Flux de données) ou choisissez l'onglet **Import** (Importer).

1. Cliquez sur **Amazon S3**.

1. Utilisez le tableau **Import a dataset from S3 (Importer un jeu de données depuis S3)** pour trouver le compartiment dans lequel vous avez ajouté le jeu de données Titanic. Choisissez le fichier CSV du jeu de données Titanic pour ouvrir la boîte de dialogue **Details (Détails)**.

1. Sous **(Details (Détails)**, le **File type (Type de fichier)** devrait être CSV. Cochez la case **First row is header** (La première ligne est un en-tête) pour spécifier que la première ligne du jeu de données est un en-tête. Vous pouvez également nommer le jeu de données de manière plus conviviale, par exemple **Titanic-train**.

1. Cliquez sur le bouton **Import** (Importer).

Lorsque votre jeu de données est importé dans Data Wrangler, il apparaît dans votre onglet **Data Flow** (Flux de données). Vous pouvez double-cliquer sur un nœud pour accéder à la vue détaillée du nœud, qui vous permet d'ajouter des transformations ou des analyses. Vous pouvez également utiliser l'icône « plus » pour naviguer rapidement. Dans la section suivante, vous utilisez ce flux de données pour ajouter des étapes d’analyse et de transformation.

### Flux de données
<a name="data-wrangler-getting-started-demo-data-flow"></a>

Dans la section dédiée au flux de données, les seules étapes du flux de données sont votre jeu de données récemment importé et une étape **Data type** (Type de données). Après avoir appliqué des transformations, vous pouvez revenir à cet onglet pour voir à quoi ressemble le flux de données. Maintenant, ajoutez quelques transformations de base sous les onglets **Prepare (Préparation)** et **Analyze (Analyse)**. 

#### Préparer et visualiser
<a name="data-wrangler-getting-started-demo-prep-visualize"></a>

Data Wrangler dispose de transformations et de visualisations intégrées que vous pouvez utiliser pour analyser, nettoyer et transformer vos données. 

L'onglet **Data** (Données) de la vue détaillée du nœud répertorie toutes les transformations intégrées dans le panneau de droite, qui contient également une zone dans laquelle vous pouvez ajouter des transformations personnalisées. Le cas d’utilisation suivant montre comment utiliser ces transformations.

Pour obtenir des informations susceptibles de vous aider dans l'exploration des données et l'ingénierie des fonctionnalités, créez un rapport d'informations et de qualité des données. Les informations de ce rapport peuvent vous aider à nettoyer et à traiter vos données. Il fournit des informations telles que le nombre de valeurs manquantes et le nombre de valeurs aberrantes. Si vous rencontrez des problèmes avec vos données, tels que des déséquilibres ou des fuites de caractéristique cible, le rapport d’informations peut signaler ces problèmes. Pour plus d'informations sur la création d'un rapport, consultez [Obtention d’informations sur les données et la qualité des données](data-wrangler-data-insights.md).

##### Exploration des données
<a name="data-wrangler-getting-started-demo-explore"></a>

D'abord, créez un tableau récapitulatif des données à l'aide d'une analyse. Procédez comme suit :

1. Cliquez sur **\$1** à côté de l'étape **Data type (Type de données)** dans votre flux de données et sélectionnez **Add analysis (Ajouter une analyse)**.

1. Dans la zone **Analyze (Analyse)**, sélectionnez **Table summary (Résumé du tableau)** dans la liste déroulante.

1. Donnez un **Name (Nom)** au résumé du tableau.

1. Sélectionnez **Preview (Aperçu)** pour avoir un aperçu du tableau qui sera créé.

1. Choisissez **Save** (Enregistrer) pour l'enregistrer dans votre flux de données. Il apparaît sous **All Analyses (Toutes les analyses)**.

En utilisant les statistiques que vous voyez, vous pouvez faire des observations similaires aux suivantes sur ce jeu de données : 
+ Le tarif moyen est d'environ 33 dollars, tandis que le tarif maximum est de plus de 500 dollars. Cette colonne comporte probablement des valeurs aberrantes. 
+ Ce jeu de données utilise *?* pour indiquer les valeurs manquantes. Un certain nombre de colonnes ont des valeurs manquantes : *cabin (cabine)*, *embarked (embarqué)*, et *home.dest (origine.destination)*
+ Il manque plus de 250 valeurs dans la catégorie d’âge.

Ensuite, nettoyez vos données en utilisant les informations obtenues grâce à ces statistiques. 

##### Supprimez les colonnes inutilisées
<a name="data-wrangler-getting-started-demo-drop-unused"></a>

À l'aide de l'analyse de la section précédente, nettoyez le jeu de données pour le préparer à l'entraînement. Pour ajouter une nouvelle transformation à votre flux de données, cliquez sur **\$1** à côté de l'étape **Data type (Type de données)** dans votre flux de données et choisissez **Add transform (Ajouter une transformation)**.

Supprimez d'abord les colonnes que vous ne souhaitez pas utiliser pour l'entraînement. Pour cela, vous pouvez utiliser la bibliothèque d'analyse de données [pandas](https://pandas.pydata.org/) ou utiliser l'une des transformations intégrées.

Suivez la procédure ci-dessous pour supprimer les colonnes inutilisées.

Pour supprimer les colonnes inutilisées.

1. Ouvrez le flux Data Wrangler.

1. Votre flux Data Wrangler comporte deux nœuds. Choisissez le **\$1** à droite du nœud **Data types** (Types de données).

1. Choisissez **Ajouter une transformation**.

1. Dans la colonne **All steps** (Toutes les étapes), choisissez **Add step** (Ajouter une étape).

1. Dans la liste des transformations **Standard**, choisissez **Manage Columns** (Gérer les colonnes). Les transformations standard sont des transformations intégrées prêtes à l'emploi. Assurez-vous que l'option **Drop column** (Supprimer la colonne) est sélectionnée.

1. Sous **Columns to drop** (Colonnes à supprimer), cochez les noms de colonne suivants :
   + cabin
   + ticket
   + name
   + sibsp
   + parch
   + home.dest
   + boat
   + body

1. Choisissez **Preview** (Aperçu).

1. Vérifiez que les colonnes ont été supprimées, puis cliquez sur **Add** (Ajouter).

Pour effectuer cela avec pandas, procédez comme suit.

1. Dans la colonne **All steps** (Toutes les étapes), choisissez **Add step** (Ajouter une étape).

1. Dans la liste de transformation **Custom** (Personnalisée), choisissez **Custom transform** (Transformation personnalisée).

1. Donnez un nom à votre transformation, puis sélectionnez **Python (Pandas)** dans la liste déroulante.

1. Saisissez le script Python suivant dans la zone de code.

   ```
   cols = ['name', 'ticket', 'cabin', 'sibsp', 'parch', 'home.dest','boat', 'body']
   df = df.drop(cols, axis=1)
   ```

1. Cliquez sur **Preview** (Aperçu) pour afficher un aperçu de la modification, puis cliquez sur **Add** (Ajouter) pour ajouter la transformation. 

##### Nettoyer les valeurs manquantes
<a name="data-wrangler-getting-started-demo-missing-vals"></a>

Maintenant, nettoyez les valeurs manquantes. Vous pouvez le faire avec le groupe de transformation **Handling missing values (Traitement des valeurs manquantes)**.

Un certain nombre de colonnes ont des valeurs manquantes. Parmi les autres colonnes, *age (âge)* et *fare (tarif)*contiennent des valeurs manquantes. Inspectez cela à l'aide d'une transformation **Custom Transform** (Transformation personnalisée).

En utilisant l’option **Python (Pandas)**, utilisez ce qui suit pour examiner rapidement le nombre d’entrées dans chaque colonne :

```
df.info()
```

![\[Exemple de vérification du nombre d’entrées dans chaque colonne.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/inspect-missing-pandas.png)


Pour supprimer des lignes avec des valeurs manquantes dans la catégorie *age (âge)*, procédez comme suit : 

1. Choisissez **Handle missing** (Gérer les valeurs manquantes). 

1. Choisissez **Drop missing (Supprimer les valeurs manquantes)** pour **Transformation**.

1. Choisissez *age (âge)* pour **Input column (Colonne d’entrée)**.

1. Cliquez sur **Preview (Aperçu)** pour voir le nouveau bloc de données, puis cliquez sur **Add (Ajouter)** pour ajouter la transformation à votre flux.

1. Répétez le même processus pour *fare (tarif)*. 

Vous pouvez utiliser `df.info()` dans la section **Custom Transformation (Transformation personnalisée)** pour confirmer que toutes les lignes ont désormais 1 045 valeurs.

##### Pandas personnalisé : encodage
<a name="data-wrangler-getting-started-demo-encode"></a>

Essayez l'encodage plat à l'aide de Pandas. Le codage des données catégorielles est le processus de création d’une représentation numérique pour les catégories. Par exemple, si vos catégories sont `Dog` et `Cat`, vous pouvez encoder ces informations en deux vecteurs : `[1,0]` pour représenter `Dog`, et `[0,1]` pour représenter `Cat`.

1. Dans la section **Custom Transform (Transformation personnalisée)**, sélectionnez **Python (Pandas)** dans la liste déroulante.

1. Saisissez le texte suivant dans la zone de code.

   ```
   import pandas as pd
   
   dummies = []
   cols = ['pclass','sex','embarked']
   for col in cols:
       dummies.append(pd.get_dummies(df[col]))
       
   encoded = pd.concat(dummies, axis=1)
   
   df = pd.concat((df, encoded),axis=1)
   ```

1. Cliquez sur **Preview (Aperçu)** pour afficher un aperçu de la modification. La version encodée de chaque colonne est ajoutée au jeu de données. 

1. Cliquez sur **Add (Ajouter)** pour ajouter la transformation. 

#### SQL personnalisé : colonnes SELECT
<a name="data-wrangler-getting-started-demo-sql"></a>

Maintenant, sélectionnez les colonnes que vous voulez conserver en utilisant SQL. Pour cette démonstration, sélectionnez les colonnes listées dans l'instruction `SELECT` suivante. Etant donné que *survived (a survécu)* est votre colonne cible pour l'entraînement, mettez cette colonne en premier.

1. Dans la section **Transformation personnalisée**, sélectionnez **SQL (PySpark SQL)** dans la liste déroulante.

1. Saisissez le texte suivant dans la zone de code.

   ```
   SELECT survived, age, fare, 1, 2, 3, female, male, C, Q, S FROM df;
   ```

1. Cliquez sur **Preview (Aperçu)** pour afficher un aperçu de la modification. Les colonnes énumérées dans votre instruction `SELECT` sont les seules colonnes restantes.

1. Cliquez sur **Add (Ajouter)** pour ajouter la transformation. 

### Exportation vers un bloc-notes Data Wrangler
<a name="data-wrangler-getting-started-export"></a>

Lorsque vous avez terminé de créer un flux de données, vous disposez de plusieurs options d’exportation. La section suivante explique comment exporter vers un bloc-notes de tâches Data Wrangler. Une tâche Data Wrangler est utilisée pour traiter vos données en suivant les étapes définies dans votre flux de données. Pour en savoir plus sur toutes les options d’exportation, consultez [Exporter](data-wrangler-data-export.md).

#### Exporter vers un bloc-notes de tâches Data Wrangler
<a name="data-wrangler-getting-started-export-notebook"></a>

Lorsque vous exportez votre flux de données à l’aide d’une **tâche Data Wrangler**, le processus crée automatiquement un bloc-notes Jupyter. Ce bloc-notes s'ouvre automatiquement dans votre instance Studio Classic et est configuré pour exécuter une tâche de SageMaker traitement afin d'exécuter votre flux de données Data Wrangler, appelée tâche Data Wrangler. 

1. Sauvegardez votre flux de données. Sélectionnez **File (Fichier)** et cliquez sur **Save Data Wrangler Flow (Enregistrer le flux Data Wrangler)**.

1. Revenez à l'onglet **Data Flow** (Flux de données), sélectionnez la dernière étape de votre flux de données (SQL), puis cliquez sur le **\$1** pour ouvrir la navigation.

1. Choisissez **Export** (Exporter) et **Amazon S3 (via Jupyter Notebook)** (Amazon S3 (via le bloc-notes Jupyter)). Un bloc-notes Jupyter s’ouvre.  
![\[Exemple montrant comment ouvrir la navigation dans l’onglet Flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/export-select-step.png)

1. Choisissez n’importe quel noyau **Python 3 (Science des données)** pour **Kernel (Noyau)**. 

1. Lorsque le noyau démarre, exécutez les cellules du bloc-notes jusqu'à **Kick off SageMaker Training Job (facultatif)**. 

1. Vous pouvez éventuellement exécuter les cellules dans **Kick off SageMaker Training Job (facultatif)** si vous souhaitez créer une tâche de formation en SageMaker IA pour former un XGBoost classificateur. Vous trouverez le coût d'une SageMaker formation [sur Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/). 

   Vous pouvez également ajouter les blocs de code trouvés dans [XGBoost Classificateur d'entraînement](#data-wrangler-getting-started-train-xgboost) le bloc-notes et les exécuter pour utiliser la bibliothèque [XGBoost](https://xgboost.readthedocs.io/en/latest/)open source afin de former un XGBoost classificateur. 

1. Décommentez, exécutez la cellule sous **Cleanup** et exécutez-la pour rétablir la version d'origine du SDK SageMaker Python.

Vous pouvez surveiller l'état de votre tâche Data Wrangler dans la console SageMaker AI, dans l'onglet **Traitement**. En outre, vous pouvez surveiller votre travail avec Data Wrangler à l'aide d'Amazon. CloudWatch Pour plus d'informations, consultez [Surveiller les tâches de SageMaker traitement Amazon à l'aide de CloudWatch journaux et de métriques](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html#processing-job-cloudwatch). 

Si vous avez lancé une tâche de formation, vous pouvez suivre son statut à l'aide de la console SageMaker AI sous **Tâches de formation** dans la **section Formation**.

#### XGBoost Classificateur d'entraînement
<a name="data-wrangler-getting-started-train-xgboost"></a>

Vous pouvez entraîner un classificateur XGBoost binaire à l'aide d'un bloc-notes Jupyter ou d'un pilote automatique Amazon. SageMaker Vous pouvez utiliser Autopilot pour entraîner et régler automatiquement les modèles sur les données que vous avez transformées directement à partir de votre flux Data Wrangler. Pour obtenir des informations sur Autopilot, consultez [Entraînement automatique des modèles sur votre flux de données](data-wrangler-autopilot.md).

Dans le bloc-notes qui a lancé le travail de Data Wrangler, vous pouvez extraire les données et entraîner un classificateur XGBoost binaire en utilisant les données préparées avec un minimum de préparation des données. 

1. Tout d’abord, mettez à niveau les modules nécessaires en utilisant `pip` et supprimez le fichier \$1SUCCESS (ce dernier fichier est problématique lors de l’utilisation de `awswrangler`).

   ```
   ! pip install --upgrade awscli awswrangler boto sklearn
   ! aws s3 rm {output_path} --recursive  --exclude "*" --include "*_SUCCESS*"
   ```

1. Lisez les données depuis Amazon S3. Vous pouvez utiliser `awswrangler` pour lire récursivement tous les fichiers CSV dans le préfixe S3. Les données sont ensuite divisées en ressources et en étiquettes. L'étiquette est la première colonne du dataframe.

   ```
   import awswrangler as wr
   
   df = wr.s3.read_csv(path=output_path, dataset=True)
   X, y = df.iloc[:,:-1],df.iloc[:,-1]
   ```
   + Enfin, créez DMatrices (la structure XGBoost primitive des données) et effectuez une validation croisée à l'aide de la classification XGBoost binaire.

     ```
     import xgboost as xgb
     
     dmatrix = xgb.DMatrix(data=X, label=y)
     
     params = {"objective":"binary:logistic",'learning_rate': 0.1, 'max_depth': 5, 'alpha': 10}
     
     xgb.cv(
         dtrain=dmatrix, 
         params=params, 
         nfold=3,
         num_boost_round=50,
         early_stopping_rounds=10,
         metrics="rmse", 
         as_pandas=True, 
         seed=123)
     ```

#### Arrêter Data Wrangler
<a name="data-wrangler-getting-started-shut-down"></a>

Lorsque vous avez terminé d'utiliser Data Wrangler, nous vous recommandons d'arrêter l'instance sur laquelle il s'exécute pour éviter d'encourir des frais supplémentaires. Pour savoir comment arrêter l’appli Data Wrangler et l’instance associée, consultez [Arrêter Data Wrangler](data-wrangler-shut-down.md). 

# Importer
<a name="data-wrangler-import"></a>

Vous pouvez utiliser Amazon SageMaker Data Wrangler pour importer des données à partir des *sources de données* suivantes : Amazon Simple Storage Service (Amazon S3), Amazon Athena, Amazon Redshift et Snowflake. Le jeu de données que vous importez peut contenir jusqu'à 1 000 colonnes.

**Topics**
+ [Importer des données depuis Amazon S3](#data-wrangler-import-s3)
+ [Importer des données depuis Athena](#data-wrangler-import-athena)
+ [Importer des données depuis Amazon Redshift](#data-wrangler-import-redshift)
+ [Importer des données depuis Amazon EMR](#data-wrangler-emr)
+ [Importer des données depuis Databricks (JDBC)](#data-wrangler-databricks)
+ [Importer des données depuis Salesforce Data Cloud](#data-wrangler-import-salesforce-data-cloud)
+ [Importer des données depuis Snowflake](#data-wrangler-snowflake)
+ [Importer des données à partir de plateformes de logiciel en tant que service (SaaS)](#data-wrangler-import-saas)
+ [Stockage des données importées](#data-wrangler-import-storage)

Certaines sources de données vous permettent d’ajouter plusieurs *connexions de données* :
+ Vous pouvez vous connecter à plusieurs clusters Amazon Redshift. Chaque cluster devient une source de données. 
+ Vous pouvez interroger n'importe quelle base de données Athena de votre compte pour importer des données à partir de cette base de données.



Lorsque vous importez un jeu de données à partir d'une source de données, il apparaît dans votre flux de données. Data Wrangler déduit automatiquement le type de données de chaque colonne de votre jeu de données. Pour modifier ces types, sélectionnez l’étape **Data types (Types de données)** et sélectionnez **Edit data types (Modifier les types de données)**.

Lorsque vous importez des données depuis Athena ou Amazon Redshift, les données importées sont automatiquement stockées dans le compartiment AI S3 SageMaker par défaut de AWS la région dans laquelle vous utilisez Studio Classic. En outre, Athena stocke les données que vous prévisualisez dans Data Wrangler dans ce compartiment. Pour en savoir plus, consultez [Stockage des données importées](#data-wrangler-import-storage).

**Important**  
Le compartiment Amazon S3 par défaut peut ne pas avoir les paramètres de sécurité les moins permissifs, tels que la politique de compartiment et le chiffrement côté serveur (SSE). Nous vous recommandons vivement d’[ajouter une stratégie de compartiment pour restreindre l’accès aux jeux de données importés dans Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-security.html#data-wrangler-security-bucket-policy). 

**Important**  
En outre, si vous utilisez la politique gérée pour l' SageMaker IA, nous vous recommandons vivement de la limiter à la politique la plus restrictive qui vous permet de réaliser votre cas d'utilisation. Pour de plus amples informations, veuillez consulter [Accorder à un rôle IAM l’autorisation d’utiliser Data Wrangler](data-wrangler-security.md#data-wrangler-security-iam-policy).

Toutes les sources de données, à l'exception d'Amazon Simple Storage Service (Amazon S3) nécessitent que vous spécifiiez une requête SQL pour importer vos données. Pour chaque requête, vous devez spécifier les informations suivantes :
+ **Data catalog** (Catalogue de données)
+ **Base de données**
+ **Tableau **

Vous pouvez spécifier le nom de la base de données ou du catalogue de données dans les menus déroulants ou dans la requête. Voici quelques exemples de requêtes :
+ `select * from example-data-catalog-name.example-database-name.example-table-name` - Pour son exécution, la requête n'utilise aucun élément spécifié dans les menus déroulants de l'interface utilisateur (UI). Elle interroge `example-table-name` dans `example-database-name` dans `example-data-catalog-name`.
+ `select * from example-database-name.example-table-name` - La requête utilise le catalogue de données que vous avez spécifié dans le menu déroulant **Data catalog** (Catalogue de données) pour s'exécuter. Elle interroge `example-table-name` dans `example-database-name` dans le catalogue de données que vous avez spécifié.
+ `select * from example-table-name` - La requête vous oblige à sélectionner des champs pour les menus déroulants **Data catalog** (Catalogue de données) et **Database name** (Nom de la base de données). Elle interroge `example-table-name` dans le catalogue de données que vous avez spécifié.

La liaison entre Data Wrangler et la source de données est une *connexion*. Elle vous permet d'importer des données à partir de votre source de données.

Il existe les types de connexions suivants :
+ Direct (Directe)
+ Cataloged (Cataloguée)

Data Wrangler a toujours accès aux données les plus récentes via une connexion directe. Si les données de la source de données ont été mises à jour, vous pouvez utiliser la connexion pour importer les données. Par exemple, si quelqu'un ajoute un fichier à l'un de vos compartiments Amazon S3, vous pouvez importer le fichier.

Une connexion cataloguée est le résultat d'un transfert de données. Les données de la connexion cataloguée ne contiennent pas nécessairement les données les plus récentes. Par exemple, vous pouvez configurer un transfert de données entre Salesforce et Amazon S3. Si les données Salesforce sont mises à jour, vous devez les transférer à nouveau. Vous pouvez automatiser le processus de transfert des données. Pour plus d’informations sur les rôles d’utilisateur, consultez [Importer des données à partir de plateformes de logiciel en tant que service (SaaS)](#data-wrangler-import-saas).

## Importer des données depuis Amazon S3
<a name="data-wrangler-import-s3"></a>

Vous pouvez utiliser Amazon Simple Storage Service (Amazon S3) pour stocker et récupérer n'importe quelle quantité de données, à tout moment, de n'importe où sur le Web. Vous pouvez accomplir ces tâches à l' AWS Management Console aide de l'interface Web simple et intuitive et de l'API Amazon S3. Si vous avez stocké votre jeu de données localement, nous vous recommandons de l'ajouter à un compartiment S3 pour l'importer dans Data Wrangler. Pour savoir comment procéder, consultez la rubrique [Chargement d'un objet dans un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html) dans le Guide de l'utilisateur Amazon Simple Storage Service. 

Data Wrangler utilise [S3 Select](https://aws.amazon.com/s3/features/#s3-select) pour vous permettre de prévisualiser vos fichiers Amazon S3 dans Data Wrangler. Vous engagez des frais standard pour chaque aperçu de fichier. Pour en savoir plus sur la tarification, consultez l’onglet **Demandes et sorties de données** de la page [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/). 

**Important**  
Si vous envisagez d'exporter un flux de données et de lancer une tâche Data Wrangler, d'ingérer des données dans un feature SageMaker store d'intelligence artificielle ou de créer un pipeline d' SageMaker intelligence artificielle, sachez que ces intégrations nécessitent que les données d'entrée Amazon S3 soient situées dans la même région. AWS 

**Important**  
Si vous importez un fichier CSV, assurez-vous qu’il répond aux exigences suivantes :  
Tout registre dans votre jeu de données ne peut pas dépasser une ligne.
La barre oblique inverse (`\`) est le seul caractère d'échappement valide.
Votre jeu de données doit utiliser l'un des délimiteurs suivants :  
Virgule – `,`
Deux-points – `:`
Point-virgule – `;`
Barre verticale – `|`
Tab – `[TAB]`
Pour économiser de l'espace, vous pouvez importer des fichiers CSV compressés.

Data Wrangler vous permet d’importer l’intégralité du jeu de données ou d’en échantillonner une partie. Pour Amazon S3, il fournit les options d'échantillonnage suivantes :
+ Aucun : importez l’intégralité du jeu de données.
+ First K (K premières lignes) : échantillonnez les K premières lignes du jeu de données, où K est un entier que vous spécifiez.
+ Randomized (Aléatoire) : prélève un échantillon aléatoire d'une taille que vous spécifiez.
+ Stratifié : prélève un échantillon aléatoire stratifié. Un échantillon stratifié conserve le rapport des valeurs dans une colonne.

Une fois que vous avez importé vos données, vous pouvez également utiliser le transformeur d’échantillonnage pour prélever un ou plusieurs échantillons de votre jeu de données. Pour plus d’informations sur le transformeur d’échantillonnage, consultez [Echantillonnage](data-wrangler-transform.md#data-wrangler-transform-sampling).

Vous pouvez utiliser l'un des identificateurs de ressources suivants pour importer vos données :
+ Une URI Amazon S3 utilisant un compartiment Amazon S3 ou un point d'accès Amazon S3
+ Un alias de points d'accès Amazon S3
+ Une Amazon Resource Name (ARN) utilisant un point d'accès Amazon S3 ou un compartiment Amazon S3

Les points d'accès Amazon S3 sont appelés points de terminaison réseau attachés aux compartiments. Chaque point d'accès dispose d'autorisations et de contrôles réseau que vous pouvez configurer. Pour plus d’informations sur les points d’accès, consultez [Gestion de l’accès aux données avec les points d’accès Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html).

**Important**  
Si vous utilisez un Amazon Resource Name (ARN) pour importer vos données, il doit s'agir d'une ressource située dans le même nom Région AWS que celui que vous utilisez pour accéder à Amazon SageMaker Studio Classic.

Vous pouvez importer un seul fichier ou plusieurs fichiers en tant que jeu de données. Vous pouvez utiliser l'opération d'importation de plusieurs fichiers lorsque vous disposez d'un jeu de données partitionné dans des fichiers distincts. Elle prend tous les fichiers d’un répertoire Amazon S3 et les importe en tant que jeu de données unique. Pour plus d'informations sur les types de fichiers que vous pouvez importer et sur la façon de les importer, reportez-vous aux sections suivantes.

------
#### [ Single File Import ]

Vous pouvez importer des fichiers uniques dans les formats suivants :
+ Valeurs séparées par des virgules (CSV)
+ Parquet
+ JavaScript Object Notation (JSON)
+ Optimized Row Columnar (ORC)
+ Image : Data Wrangler utilise OpenCV pour importer des images. Pour plus d'informations sur les formats d'image pris en charge, consultez [Lecture et écriture de fichiers image](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Pour les fichiers au format JSON, Data Wrangler prend en charge les lignes JSON (.jsonl) et les documents JSON (.json). Lorsque vous prévisualisez vos données, le fichier JSON est automatiquement affiché sous forme de tableau. Pour les documents JSON imbriqués de plus de 5 Mo, Data Wrangler affiche le schéma de la structure et les tableaux sous forme de valeurs dans le jeu de données. Utilisez les opérateurs **Flatten structured** (Aplatir structuré) et **Explode array** (Éclater le tableau) pour afficher les valeurs imbriquées sous forme de tableau. Pour plus d’informations, consultez [Annulation de l'imbrication des données JSON](data-wrangler-transform.md#data-wrangler-transform-flatten-column) et [Éclatement du tableau](data-wrangler-transform.md#data-wrangler-transform-explode-array).

Lorsque vous choisissez un jeu de données, vous pouvez le renommer, spécifier le type de fichier et identifier la première ligne comme en-tête.

Vous pouvez importer un jeu de données que vous avez partitionné en plusieurs fichiers dans un compartiment Amazon S3 en une seule étape d'importation.

**Pour importer un jeu de données dans Data Wrangler à partir d'un fichier unique que vous avez stocké dans Amazon S3 :**

1. Si vous n’êtes pas sur l’onglet **Importer**, choisissez **Importer**.

1. Sous **Disponible**, choisissez **Amazon S3**.

1. Dans **Importer des données tabulaires, d'images ou de séries temporelles depuis S3**, effectuez l'une des opérations suivantes :
   + Choisissez un compartiment Amazon S3 dans la vue tabulaire et accédez au fichier que vous importez.
   + Pour **Source S3**, spécifiez un compartiment Amazon S3 ou une URI Amazon S3 et sélectionnez **Aller**. L'Amazon S3 URIs peut être dans l'un des formats suivants :
     + `s3://amzn-s3-demo-bucket/example-prefix/example-file`
     + *example-access-point*- *aqfqprnstn7aefdfbarligizwgyfouse1a* -s3alias/ensembles de données/ *example-file*
     + `s3://arn:aws:s3:AWS-Region:111122223333:accesspoint/example-prefix/example-file`

1. Choisissez le jeu de données pour ouvrir le volet **Paramètres d'importation**.

1. Si votre fichier CSV comporte un en-tête, cochez la case en regard de **Add header to table** (Ajouter un en-tête à une table).

1. Utilisez la table **Preview (Aperçu)** pour visualiser votre jeu de données. Cette table affiche jusqu'à 100 lignes. 

1. Dans le volet **Details (Détails)**, vérifiez ou modifiez les paramètres **Name (Nom)** et **File Type (Type de fichier)** de votre jeu de données. Si vous ajoutez un **Name** (Nom) qui contient des espaces, ces derniers sont remplacés par des traits de soulignement lorsque votre jeu de données est importé. 

1. Spécifiez la configuration d’échantillonnage que vous souhaitez utiliser. 

1. Choisissez **Importer**.

------
#### [ Multifile Import ]

Les exigences suivantes sont requises pour importer plusieurs fichiers :
+ Les fichiers doivent se trouver dans la même dossier de votre compartiment Amazon S3.
+ Les fichiers doivent soit partager le même en-tête, soit ne pas avoir d'en-tête.

Chaque fichier doit être dans l’un des formats suivants :
+ CSV
+ Parquet
+ Optimized Row Columnar (ORC)
+ Image : Data Wrangler utilise OpenCV pour importer des images. Pour plus d'informations sur les formats d'image pris en charge, consultez [Lecture et écriture de fichiers image](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Utilisez la procédure suivante pour importer plusieurs fichiers.

**Pour importer un jeu de données dans Data Wrangler à partir de plusieurs fichiers que vous avez stockés dans un répertoire Amazon S3**

1. Si vous n’êtes pas sur l’onglet **Importer**, choisissez **Importer**.

1. Sous **Disponible**, choisissez **Amazon S3**.

1. Dans **Importer des données tabulaires, d'images ou de séries temporelles depuis S3**, effectuez l'une des opérations suivantes :
   + Choisissez un compartiment Amazon S3 dans la vue tabulaire et accédez au dossier contenant les fichiers que vous importez.
   + Pour **Source S3**, spécifiez le compartiment Amazon S3 ou une URI Amazon S3 avec vos fichiers et sélectionnez **Aller**. Les éléments suivants sont valides URIs :
     + `s3://amzn-s3-demo-bucket/example-prefix/example-prefix`
     + `example-access-point-aqfqprnstn7aefdfbarligizwgyfouse1a-s3alias/example-prefix/`
     + `s3://arn:aws:s3:AWS-Region:111122223333:accesspoint/example-prefix`

1. Sélectionnez le dossier contenant les fichiers que vous souhaitez importer. Chaque fichier doit être dans l'un des formats pris en charge. Vos fichiers doivent être du même type de données.

1. Si votre dossier contient des fichiers CSV avec des en-têtes, cochez la case à côté de **First row is header** (La première ligne est l'en-tête).

1. Si vos fichiers sont imbriqués dans d'autres dossiers, cochez la case à côté de **Include nested directories** (Inclure des répertoires imbriqués).

1. (Facultatif) Vous pouvez également sélectionner **Add filename column** (Ajouter une colonne de nom de fichier) pour ajouter une colonne au jeu de données qui affiche le nom de fichier de chaque observation.

1. (Facultatif) Par défaut, Data Wrangler ne vous affiche pas d'aperçu d'un dossier. Vous pouvez activer l'aperçu en sélectionnant le bouton bleu **Aperçu désactivé**. Un aperçu affiche les 10 premières lignes des 10 premiers fichiers du dossier.

1. Dans le volet **Details (Détails)**, vérifiez ou modifiez les paramètres **Name (Nom)** et **File Type (Type de fichier)** de votre jeu de données. Si vous ajoutez un **Name** (Nom) qui contient des espaces, ces derniers sont remplacés par des traits de soulignement lorsque votre jeu de données est importé. 

1. Spécifiez la configuration d'échantillonnage que vous souhaitez utiliser. 

1. Cliquez sur **Import dataset** (Importer le jeu de données).

------

Vous pouvez également utiliser des paramètres pour importer un sous-ensemble de fichiers correspondant à un modèle. Les paramètres vous permettent de sélectionner de manière plus sélective les fichiers à importer. Pour commencer à utiliser des paramètres, modifiez la source de données et appliquez-les au chemin que vous utilisez pour importer les données. Pour de plus amples informations, veuillez consulter [Réutilisation de flux de données pour différents jeux de données](data-wrangler-parameterize.md).

## Importer des données depuis Athena
<a name="data-wrangler-import-athena"></a>

Utilisez Amazon Athena pour importer vos données depuis Amazon Simple Storage Service (Amazon S3) dans Data Wrangler. Dans Athena, vous écrivez des requêtes SQL standard pour sélectionner les données que vous importez depuis Amazon S3. Pour plus d'informations, consultez [Qu'est-ce que Amazon Athena ?](https://docs.aws.amazon.com/athena/latest/ug/what-is.html).

Vous pouvez utiliser le AWS Management Console pour configurer Amazon Athena. Vous devez créer au moins une base de données dans Athena avant de commencer à exécuter des requêtes. Pour plus d'informations sur la mise en route avec Athena, consultez [Démarrer](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html).

Athena est directement intégré à Data Wrangler. Vous pouvez écrire des requêtes Athena sans avoir à quitter l'interface utilisateur de Data Wrangler.

En plus d'écrire des requêtes Athena simples dans Data Wrangler, vous pouvez également utiliser :
+ Groupes de travail Athena pour la gestion des résultats des requêtes. Pour plus d'informations sur les groupes de travail, consultez [Gestion des résultats de requêtes](#data-wrangler-import-manage-results).
+ Configurations du cycle de vie pour définir les périodes de conservation des données. Pour plus d'informations sur la conservation des données, consultez [Définition de la durée de conservation des données](#data-wrangler-import-athena-retention).

### Interroger Athena dans Data Wrangler
<a name="data-wrangler-import-athena-query"></a>

**Note**  
Data Wrangler ne prend pas en charge les requêtes fédérées.

Si vous l'utilisez AWS Lake Formation avec Athena, assurez-vous que vos autorisations IAM de Lake Formation ne remplacent pas les autorisations IAM pour la base de données. `sagemaker_data_wrangler`

Data Wrangler vous permet d’importer l’intégralité du jeu de données ou d’en échantillonner une partie. Pour Athena, il fournit les options d'échantillonnage suivantes :
+ Aucun : importez l’intégralité du jeu de données.
+ First K (K premières lignes) : échantillonnez les K premières lignes du jeu de données, où K est un entier que vous spécifiez.
+ Randomized (Aléatoire) : prélève un échantillon aléatoire d'une taille que vous spécifiez.
+ Stratifié : prélève un échantillon aléatoire stratifié. Un échantillon stratifié conserve le rapport des valeurs dans une colonne.

La procédure suivante montre comment importer un jeu de données d'Athena dans Data Wrangler.

**Pour importer un jeu de données dans Data Wrangler à partir d’Athena**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Available** (Disponible), sélectionnez **Amazon Athena**.

1. Pour **Catalogue de données**, choisissez un catalogue de données.

1. Utilisez la liste déroulante **Database (Base de données)** pour sélectionner la base de données que vous souhaitez interroger. Lorsque vous sélectionnez une base de données, vous pouvez prévisualiser toutes les tables de votre base de données en utilisant les **Table**s listées sous **Details (Détails)**.

1. (Facultatif) Choisissez Advanced configuration (Configuration avancée).

   1. Choisissez un **Groupe de travail**.

   1. Si votre groupe de travail n’a pas appliqué l’emplacement de sortie Amazon S3 ou si vous n’avez pas utilisé un groupe de travail, spécifiez une valeur pour **Emplacement Amazon S3 des résultats des requêtes**.

   1. (Facultatif) Pour la zone **Data retention period** (Durée de conservation des données), cochez la case permettant de définir une durée de conservation des données et spécifiez le nombre de jours pendant lesquels les données doivent être stockées avant leur suppression.

   1. (Facultatif) Par défaut, Data Wrangler enregistre la connexion. Vous pouvez choisir de désélectionner la case à cocher et de ne pas enregistrer la connexion.

1. Pour **Échantillonnage**, choisissez une méthode d’échantillonnage. Choisissez **Aucun** pour désactiver l’échantillonnage.

1. Saisissez votre requête dans l’éditeur de requête et utilisez le bouton **Exécuter** pour l’exécuter. Après une requête réussie, vous pouvez prévisualiser votre résultat sous l’éditeur.
**Note**  
Les données Salesforce utilisent le type `timestamptz`. Si vous interrogez la colonne d'horodatage que vous avez importée dans Athena depuis Salesforce, convertissez les données de la colonne au type `timestamp`. La requête suivante convertit la colonne d'horodatage au type approprié.  

   ```
   # cast column timestamptz_col as timestamp type, and name it as timestamp_col
   select cast(timestamptz_col as timestamp) as timestamp_col from table
   ```

1. Pour importer les résultats de votre requête, sélectionnez **Import** (Importer).

Une fois que vous avez terminé la procédure précédente, le jeu de données que vous avez interrogé et importé apparaît dans le flux Data Wrangler.

Par défaut, Data Wrangler enregistre les paramètres de connexion en tant que nouvelle connexion. Lorsque vous importez vos données, la requête que vous avez déjà spécifiée apparaît sous la forme d'une nouvelle connexion. Les connexions enregistrées stockent des informations sur les groupes de travail Athena et les compartiments Amazon S3 que vous utilisez. Lorsque vous vous reconnectez à la source de données, vous pouvez choisir la connexion enregistrée.

### Gestion des résultats de requêtes
<a name="data-wrangler-import-manage-results"></a>

Data Wrangler prend en charge l’utilisation de groupes de travail Athena pour gérer les résultats de requête dans un compte AWS . Vous pouvez spécifier un emplacement de sortie Amazon S3 pour chaque groupe de travail. Vous pouvez également spécifier si la sortie de la requête peut être envoyée à différents emplacements Amazon S3. Pour plus d’informations, consultez [Utilisation des groupes de travail pour contrôler l’accès aux requêtes et les coûts](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html).

Votre groupe de travail peut-être configuré pour appliquer l'emplacement de sortie des requêtes Amazon S3. Vous ne pouvez pas modifier l’emplacement de sortie des résultats de la requête pour ces groupes de travail.

Si vous n'utilisez pas de groupe de travail ou si vous ne spécifiez pas d'emplacement de sortie pour vos requêtes, Data Wrangler utilise le bucket Amazon S3 par défaut dans la même AWS région que celle dans laquelle se trouve votre instance Studio Classic pour stocker les résultats des requêtes Athena. Il crée des tables temporaires dans cette base de données pour déplacer la sortie de la requête vers ce compartiment Amazon S3. Il supprime ces tables une fois les données importées, mais la base de données `sagemaker_data_wrangler` persiste. Pour en savoir plus, consultez [Stockage des données importées](#data-wrangler-import-storage).

Pour utiliser les groupes de travail Athena, configurez la politique IAM qui donne accès aux groupes de travail. Si vous utilisez un `SageMaker AI-Execution-Role`, nous vous recommandons d’ajouter la politique au rôle. Pour plus d'informations sur les politiques IAM pour les groupes de travail, consultez [Politiques IAM pour l'accès aux groupes de travail](https://docs.aws.amazon.com/athena/latest/ug/workgroups-iam-policy.html). Pour obtenir des exemples de politiques de groupe de travail, consultez [Exemples de politiques de groupe de travail](https://docs.aws.amazon.com/athena/latest/ug/example-policies-workgroup.html).

### Définition de la durée de conservation des données
<a name="data-wrangler-import-athena-retention"></a>

Data Wrangler définit automatiquement une durée de conservation des données pour les résultats de la requête. Les résultats sont supprimés une fois cette durée écoulée. Par exemple, la durée de conservation par défaut est de cinq jours. Les résultats de la requête sont supprimés au bout de cinq jours. Cette configuration est conçue pour vous aider à nettoyer les données que vous n'utilisez plus. Le nettoyage de vos données empêche les utilisateurs non autorisés d'y accéder. Il permet également de contrôler les coûts de stockage de vos données sur Amazon S3.

Si vous ne définissez pas de durée de conservation, c'est la configuration du cycle de vie d'Amazon S3 qui détermine la durée de stockage des objets. La politique de conservation des données que vous avez spécifiée pour la configuration du cycle de vie supprime tous les résultats de requête antérieurs à la configuration du cycle de vie que vous avez spécifiée. Pour en savoir plus, consultez [Définition d’une configuration de cycle de vie sur un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

Data Wrangler utilise des configurations de cycle de vie Amazon S3 pour gérer la conservation et l’expiration des données. Vous devez accorder à votre rôle d'exécution Amazon SageMaker Studio Classic IAM les autorisations nécessaires pour gérer les configurations du cycle de vie des compartiments. Procédez comme suit pour accorder des autorisations.

Pour accorder les autorisations de gestion de la configuration du cycle de vie, procédez comme suit.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Sélectionnez **Rôles**.

1. Dans la barre de recherche, spécifiez le rôle d'exécution Amazon SageMaker AI utilisé par Amazon SageMaker Studio Classic.

1. Choisissez le rôle.

1. Choisissez **Ajouter des autorisations**.

1. Choisissez **Créer une politique en ligne**.

1. Pour **Service**, spécifiez **S3** et choisissez-le.

1. Dans la section **Lire**, choisissez **GetLifecycleConfiguration**.

1. Dans la section **Écrire**, choisissez **PutLifecycleConfiguration**.

1. Pour **Resources** (Ressources), choisissez **Specific** (Spécifique).

1. Pour **Actions**, sélectionnez l’icône en forme de flèche en regard de **Gestion des autorisations**.

1. Sélectionnez **PutResourcePolicy**.

1. Pour **Resources** (Ressources), choisissez **Specific** (Spécifique).

1. Cochez la case en regard de **Any in this account** (N'importe quelle ressource dans ce compte).

1. Choisissez **Review policy** (Examiner une politique).

1. Pour **Name** (Nom), spécifiez un nom.

1. Sélectionnez **Create policy** (Créer la stratégie).

## Importer des données depuis Amazon Redshift
<a name="data-wrangler-import-redshift"></a>

Amazon Redshift est un service d’entrepôt des données entièrement géré dans le cloud. La première étape pour créer un entrepôt de données consiste à lancer un ensemble de nœuds, appelé cluster Amazon Redshift. Après avoir alloué votre cluster, vous pouvez charger votre jeu de données, puis effectuer des requêtes d'analyse de données. 

Vous pouvez vous connecter à un ou plusieurs clusters Amazon Redshift et les interroger dans Data Wrangler. Pour utiliser cette option d'importation, vous devez créer au moins un cluster dans Amazon Redshift. Pour savoir comment procéder, consultez [Démarrer avec Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html).

Vous pouvez afficher les résultats de votre requête Amazon Redshift dans l'un des emplacements suivants :
+ Compartiment Amazon S3 par défaut
+ Emplacement de sortie Amazon S3 que vous spécifiez

Vous pouvez importer l'intégralité du jeu de données ou en échantillonner une partie. Pour Amazon Redshift, il fournit les options d'échantillonnage suivantes :
+ Aucun : importez l’intégralité du jeu de données.
+ First K (K premières lignes) : échantillonnez les K premières lignes du jeu de données, où K est un entier que vous spécifiez.
+ Randomized (Aléatoire) : prélève un échantillon aléatoire d'une taille que vous spécifiez.
+ Stratifié : prélève un échantillon aléatoire stratifié. Un échantillon stratifié conserve le rapport des valeurs dans une colonne.

Le compartiment Amazon S3 par défaut se trouve dans la même AWS région que celle dans laquelle se trouve votre instance Studio Classic pour stocker les résultats des requêtes Amazon Redshift. Pour de plus amples informations, veuillez consulter [Stockage des données importées](#data-wrangler-import-storage).

Pour le compartiment Amazon S3 par défaut ou le compartiment que vous spécifiez, vous disposez des options de chiffrement suivantes :
+ Le chiffrement AWS côté service par défaut avec une clé gérée Amazon S3 (SSE-S3)
+  Une clé AWS Key Management Service (AWS KMS) que vous spécifiez

Une AWS KMS clé est une clé de chiffrement que vous créez et gérez. Pour plus d'informations sur les clés KMS, consultez [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html).

Vous pouvez spécifier une AWS KMS clé en utilisant l'ARN de la clé ou l'ARN de votre AWS compte.

Si vous utilisez la politique gérée par IAM, `AmazonSageMakerFullAccess`, pour accorder à un rôle l’autorisation d’utiliser Data Wrangler dans Studio Classic, votre nom d’**utilisateur de base de données** doit avoir le préfixe `sagemaker_access`.

Découvrez comment ajouter un nouveau cluster à l’aide des procédures suivantes. 

**Note**  
Data Wrangler utilise l’API de données Amazon Redshift avec des informations d’identification temporaires. Pour en savoir plus sur cette API, consultez [Utilisation de l'API de données Amazon Redshift](https://docs.aws.amazon.com//redshift/latest/mgmt/data-api.html) dans le Guide de la gestion du cluster Amazon Redshift. 

**Pour vous connecter à un cluster Amazon Redshift**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Available** (Disponible), sélectionnez **Amazon Athena**.

1. Choisissez **Amazon Redshift**.

1. Choisissez **Temporary credentials (IAM) (Informations d'identification temporaires (IAM))** pour **Type**.

1. Saisissez un **Connection Name (Nom de la connexion)**. Il s'agit d'un nom utilisé par Data Wrangler pour identifier cette connexion. 

1. Saisissez le **Cluster Identifier (Identifiant du cluster)** pour spécifier à quel cluster vous souhaitez vous connecter. Remarque : saisissez uniquement l’identifiant de cluster et non le point de terminaison complet du cluster Amazon Redshift.

1. Saisissez le **Database Name** (Nom de base de données) de la base de données à laquelle vous souhaitez vous connecter.

1. Saisissez un **Database User (Utilisateur de base de données)** pour identifier l’utilisateur que vous souhaitez utiliser pour vous connecter à la base de données. 

1. Pour **UNLOAD IAM Role (Rôle IAM de DÉCHARGEMENT)**, saisissez l’ARN de rôle IAM du rôle que le cluster Amazon Redshift doit assumer pour déplacer et écrire des données dans Amazon S3. Pour plus d'informations sur ce rôle, consultez la section [Autoriser Amazon Redshift à accéder à AWS d'autres services en votre nom dans le](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) guide de gestion Amazon Redshift. 

1. Sélectionnez **Connect** (Connexion).

1. (Facultatif) Pour **Amazon S3 output location** (Emplacement de sortie Amazon S3), spécifiez l'URI S3 pour stocker les résultats de la requête.

1. (Facultatif) Pour **KMS key ID** (ID de clé KMS), spécifiez l'ARN de la clé AWS KMS ou de l'alias. L’image suivante montre où vous pouvez trouver l’une ou l’autre clé dans la AWS Management Console.  
![\[Emplacement de l'ARN de l' AWS KMS alias, du nom de l'alias et de l'ARN clé dans la AWS KMS console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/kms-alias-redacted.png)

L’image suivante montre tous les champs de la procédure précédente.

![\[Panneau Ajouter une connexion Amazon Redshift.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/redshift-connection.png)


Une fois votre connexion établie avec succès, elle apparaît en tant que source de données sous **Data Import (Importation de données)**. Sélectionnez cette source de données pour interroger votre base de données et importer des données.

**Pour interroger et importer des données à partir d'Amazon Redshift**

1. Sélectionnez la connexion à partir de laquelle vous souhaitez effectuer une requête dans **Data Source (Sources de données)**.

1. Sélectionnez un **Scheme (Schéma)**. Pour en savoir plus sur les schémas Amazon Redshift, consultez la rubrique [Schémas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) dans le Guide du développeur de la base de données Amazon Redshift.

1. (Facultatif) Sous **Advanced configuration** (Configuration avancée), spécifiez la méthode **Sampling** (Échantillonnage) que vous souhaitez utiliser.

1. Entrez votre requête dans l’éditeur de requête, puis choisissez **Run** (Exécuter) pour exécuter la requête. Après une requête réussie, vous pouvez prévisualiser votre résultat sous l’éditeur.

1. Sélectionnez **Import dataset (Importer un jeu de données)** pour importer le jeu de données interrogé. 

1. Saisissez un **Dataset name (Nom de jeu de données)**. Si vous ajoutez un **Dataset name (Nom de jeu de données)** qui contient des espaces, ces derniers sont remplacés par des traits de soulignement lorsque votre jeu de données est importé. 

1. Choisissez **Ajouter**.

Pour modifier un jeu de données, procédez comme suit.

1. Accédez à votre flux Data Wrangler.

1. Cliquez sur le signe \$1 à côté de **Source - Sampled** (Source - Échantillonnée).

1. Modifiez les données que vous importez.

1. Choisissez **Apply (Appliquer)**

## Importer des données depuis Amazon EMR
<a name="data-wrangler-emr"></a>

Vous pouvez utiliser Amazon EMR comme source de données pour votre flux Amazon SageMaker Data Wrangler. Amazon EMR est une plateforme de cluster gérée que vous pouvez utiliser pour traiter et analyser de grandes quantités de données. Pour plus d’informations sur Amazon EMR, consultez [Qu’est-ce qu’Amazon EMR ?](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Pour importer un jeu de données à partir d'EMR, vous devez vous y connecter et l'interroger. 

**Important**  
Vous devez remplir les conditions suivantes pour vous connecter à un cluster Amazon EMR :  
Vous disposez d'un Amazon VPC dans la région que vous utilisez pour lancer Amazon SageMaker Studio Classic et Amazon EMR.
Amazon EMR et Amazon SageMaker Studio Classic doivent tous deux être lancés dans des sous-réseaux privés. Ils peuvent se trouver dans le même sous-réseau ou dans des sous-réseaux différents.
Amazon SageMaker Studio Classic doit être en mode VPC uniquement.  
Pour en savoir plus sur la création d’un VPC, consultez [Créer un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC).  
Pour plus d'informations sur la création d'un VPC, voir [Connecter les blocs-notes classiques de SageMaker Studio dans un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/studio-notebooks-and-internet-access.html) à des ressources externes.
Les clusters Amazon EMR que vous exécutez doivent se trouver dans le même VPC Amazon.
Les clusters Amazon EMR et Amazon VPC doivent se trouver dans le même compte. AWS 
Vos clusters Amazon EMR exécutent Hive ou Presto.  
Les clusters Hive doivent autoriser le trafic entrant en provenance des groupes de sécurité Studio Classic sur le port 10000.
Les clusters Presto doivent autoriser le trafic entrant en provenance des groupes de sécurité Studio Classic sur le port 8889.  
Le numéro de port est différent pour les clusters Amazon EMR utilisant des rôles IAM. Accédez à la fin de la section des conditions préalables pour plus d’informations.
Amazon SageMaker Studio Classic doit exécuter Jupyter Lab version 3. Pour plus d’informations sur la mise à jour de la version de Jupyter Lab, consultez [Afficher et mettre à jour la JupyterLab version d'une application depuis la console](studio-jl.md#studio-jl-view).
Amazon SageMaker Studio Classic possède un rôle IAM qui contrôle l'accès des utilisateurs. Le rôle IAM par défaut que vous utilisez pour exécuter Amazon SageMaker Studio Classic ne comporte aucune politique vous permettant d'accéder aux clusters Amazon EMR. Vous devez attacher la politique d’octroi d’autorisations au rôle IAM. Pour de plus amples informations, veuillez consulter [Configuration de la liste des clusters Amazon EMR](studio-notebooks-configure-discoverability-emr-cluster.md).
La politique IAM suivante `secretsmanager:PutResourcePolicy` doit également être liée au rôle IAM.
Si vous utilisez un domaine Studio Classic que vous avez déjà créé, assurez-vous que son `AppNetworkAccessType` est en mode VPC uniquement. Pour plus d’informations sur la mise à jour d’un domaine pour utiliser le mode VPC uniquement, consultez [Arrêter et mettre à jour Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).
Hive ou Presto doit être installé sur votre cluster.
Amazon EMR doit être à la version 5.5.0 ou ultérieure.  
Amazon EMR prend en charge la terminaison automatique. La terminaison automatique empêche le fonctionnement des clusters inactifs, ce qui permet de réaliser des économies. Les versions qui prennent en charge la terminaison automatique sont les suivantes :  
Pour les versions 6.x, version 6.1.0 ou ultérieure.
Pour les versions 5.x, version 5.30.0 ou ultérieure.
Utilisez les pages suivantes pour configurer les rôles d'exécution IAM pour le cluster Amazon EMR. Vous devez activer le chiffrement en transit lorsque vous utilisez des rôles d'exécution :  
[Conditions préalables au lancement d'un cluster Amazon EMR doté d'un rôle d'exécution](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html#emr-steps-runtime-roles-configure)
[Lancez un cluster Amazon EMR avec un contrôle d'accès basé sur les rôles](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html#emr-steps-runtime-roles-launch)
Vous devez utiliser Lake Formation comme outil de gouvernance pour les données de vos bases de données. Vous devez également utiliser un filtrage de données externe pour le contrôle d'accès.  
Pour plus d'informations sur Lake Formation, voir [Qu'est-ce que c'est AWS Lake Formation ?](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html)
Pour plus d'informations sur l'intégration de Lake Formation dans Amazon EMR, consultez [Intégration de services tiers avec Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/Integrating-with-LakeFormation.html).
Le cluster doit être d'une version 6.9.0 ou ultérieure.
Accès à AWS Secrets Manager. Pour plus d’informations sur Secrets Manager, consultez [Qu’est-ce que AWS Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
Les clusters Hive doivent autoriser le trafic entrant en provenance des groupes de sécurité Studio Classic sur le port 10000.

Un Amazon VPC est un réseau virtuel isolé logiquement des autres réseaux du cloud. AWS Amazon SageMaker Studio Classic et votre cluster Amazon EMR n'existent qu'au sein d'Amazon VPC.

Suivez la procédure suivante pour lancer Amazon SageMaker Studio Classic dans un Amazon VPC.

Pour lancer Studio Classic dans un VPC, procédez comme suit.

1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Choisissez **Launch SageMaker Studio Classic**.

1. Choisissez **Standard setup** (Configuration standard).

1. Pour **Rôle d’exécution par défaut**, choisissez le rôle IAM pour configurer Studio Classic.

1. Choisissez le VPC sur lequel vous avez lancé les clusters Amazon EMR.

1. Dans **Subnet** (Sous-réseau), choisissez un sous-réseau privé.

1. Dans **Groupe(s) de sécurité**, spécifiez les groupes de sécurité que vous utilisez pour contrôler les échanges entre vos VPC.

1. Choisissez **VPC Only** (VPC uniquement).

1. (Facultatif) AWS utilise une clé de chiffrement par défaut. Vous pouvez spécifier une clé AWS Key Management Service pour chiffrer vos données.

1. Choisissez **Suivant**.

1. Sous **Studio settings** (Paramètres Studio), choisissez les configurations qui vous conviennent le mieux.

1. Choisissez **Next** pour ignorer les paramètres du SageMaker canevas.

1. Choisissez **Next** pour ignorer les RStudio paramètres.

Si vous n'avez pas de cluster Amazon EMR déjà prêt, procédez comme suit pour en créer un. Pour plus d’informations sur Amazon EMR, consultez [Qu’est-ce qu’Amazon EMR ?](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html).

Pour créer un cluster, procédez comme suit.

1. Accédez à AWS Management Console.

1. Dans la barre de recherche, spécifiez **Amazon EMR**.

1. Choisissez **Créer un cluster**.

1. Pour **Cluster name** (Nom du cluster), saisissez le nom de votre cluster.

1. Dans **Release** (Version), sélectionnez la version du cluster.
**Note**  
Amazon EMR prend en charge la terminaison automatique pour les versions suivantes :  
Pour les versions 6.x, version 6.1.0 ou ultérieure
Pour les versions 5.x, version 5.30.0 ou ultérieure
La terminaison automatique empêche le fonctionnement des clusters inactifs, ce qui permet de réaliser des économies.

1. (Facultatif) Pour **Applications**, choisissez **Presto**.

1. Choisissez l’application que vous exécutez sur le cluster.

1. Sous **Networking** (Mise en réseau), dans **Hardware configuration** (Configuration matérielle), spécifiez les paramètres de configuration matérielle.
**Important**  
Pour la **mise en réseau**, choisissez le VPC qui exécute Amazon SageMaker Studio Classic et choisissez un sous-réseau privé.

1. Sous **Security and access** (Sécurité et accès), définissez les paramètres de sécurité.

1. Choisissez **Créer**.

Pour consulter un didacticiel sur la création d’un cluster Amazon EMR, consultez [Démarrer avec Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html). Pour plus d’informations sur les bonnes pratiques de configuration d’un cluster, consultez [Considérations et bonnes pratiques](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ha-considerations.html).

**Note**  
Pour des raisons de sécurité optimales, Data Wrangler ne peut se connecter qu'à des VPCs sous-réseaux privés. Vous ne pouvez pas vous connecter au nœud principal sauf si vous l'utilisez AWS Systems Manager pour vos instances Amazon EMR. Pour plus d’informations, consultez [Sécuriser l’accès aux clusters EMR à l’aide de AWS Systems Manager](https://aws.amazon.com/blogs/big-data/securing-access-to-emr-clusters-using-aws-systems-manager/).

Vous pouvez actuellement utiliser les méthodes suivantes pour accéder à un cluster Amazon EMR :
+ Pas d’authentification
+ Protocole LDAP (Lightweight Directory Access Protocol)
+ IAM (rôle d'exécution)

Ne pas utiliser l'authentification ou utiliser LDAP peut vous obliger à créer plusieurs clusters et profils d'instance Amazon EC2. Si vous êtes administrateur, vous devrez peut-être fournir différents niveaux d'accès aux données aux groupes d'utilisateurs. Ces méthodes peuvent entraîner une surcharge administrative qui complique la gestion de vos utilisateurs.

Nous vous recommandons d'utiliser un rôle d'exécution IAM qui permet à plusieurs utilisateurs de se connecter au même cluster Amazon EMR. Un rôle d'exécution est un rôle IAM que vous pouvez attribuer à un utilisateur qui se connecte à un cluster Amazon EMR. Vous pouvez configurer le rôle IAM d'exécution pour qu'il dispose d'autorisations spécifiques à chaque groupe d'utilisateurs.

Utilisez les sections suivantes pour créer un cluster Presto ou Hive Amazon EMR avec LDAP activé.

------
#### [ Presto ]

**Important**  
À utiliser AWS Glue comme métastore pour les tables Presto, sélectionnez **Utiliser** pour les **métadonnées des tables Presto** pour stocker les résultats de vos requêtes Amazon EMR dans un catalogue de AWS Glue données lorsque vous lancez un cluster EMR. Le stockage des résultats de la requête dans un catalogue de AWS Glue données peut vous éviter des frais.  
Pour interroger de grands jeux de données sur des clusters Amazon EMR, vous devez ajouter les propriétés suivantes au fichier de configuration Presto de vos clusters Amazon EMR :  

```
[{"classification":"presto-config","properties":{
"http-server.max-request-header-size":"5MB",
"http-server.max-response-header-size":"5MB"}}]
```
Vous pouvez également modifier les paramètres de configuration lorsque vous lancez le cluster Amazon EMR.  
Le fichier de configuration de votre cluster Amazon EMR se trouve au chemin suivant : `/etc/presto/conf/config.properties`.

Utilisez la procédure suivante pour créer un cluster Presto avec LDAP activé.

Pour créer un cluster, procédez comme suit.

1. Accédez à AWS Management Console.

1. Dans la barre de recherche, spécifiez **Amazon EMR**.

1. Choisissez **Créer un cluster**.

1. Pour **Cluster name** (Nom du cluster), saisissez le nom de votre cluster.

1. Dans **Release** (Version), sélectionnez la version du cluster.
**Note**  
Amazon EMR prend en charge la terminaison automatique pour les versions suivantes :  
Pour les versions 6.x, version 6.1.0 ou ultérieure
Pour les versions 5.x, version 5.30.0 ou ultérieure
La terminaison automatique empêche le fonctionnement des clusters inactifs, ce qui permet de réaliser des économies.

1. Choisissez l'application que vous exécutez sur le cluster.

1. Sous **Networking** (Mise en réseau), dans **Hardware configuration** (Configuration matérielle), spécifiez les paramètres de configuration matérielle.
**Important**  
Pour la **mise en réseau**, choisissez le VPC qui exécute Amazon SageMaker Studio Classic et choisissez un sous-réseau privé.

1. Sous **Security and access** (Sécurité et accès), définissez les paramètres de sécurité.

1. Choisissez **Créer**.

------
#### [ Hive ]

**Important**  
À utiliser AWS Glue comme métastore pour les tables Hive, sélectionnez **Utiliser** pour les **métadonnées des tables Hive** pour stocker les résultats de vos requêtes Amazon EMR dans un catalogue de AWS Glue données lorsque vous lancez un cluster EMR. Le stockage des résultats de la requête dans un catalogue de AWS Glue données peut vous éviter des frais.  
Pour pouvoir interroger de grands jeux de données sur des clusters Amazon EMR, ajoutez les propriétés suivantes au fichier de configuration Hive de vos clusters Amazon EMR :  

```
[{"classification":"hive-site", "properties"
:{"hive.resultset.use.unique.column.names":"false"}}]
```
Vous pouvez également modifier les paramètres de configuration lorsque vous lancez le cluster Amazon EMR.  
Le fichier de configuration de votre cluster Amazon EMR se trouve au chemin suivant : `/etc/hive/conf/hive-site.xml`. Vous pouvez spécifier la propriété suivante et redémarrer le cluster :  

```
<property>
    <name>hive.resultset.use.unique.column.names</name>
    <value>false</value>
</property>
```

Utilisez la procédure suivante pour créer un cluster Hive avec LDAP activé.

Pour créer un cluster Hive avec LDAP activé, utilisez la procédure suivante.

1. Accédez à AWS Management Console.

1. Dans la barre de recherche, spécifiez **Amazon EMR**.

1. Choisissez **Créer un cluster**.

1. Choisissez **Accéder aux options avancées**.

1. Pour **Version**, sélectionnez une version d'Amazon EMR.

1. L'option de configuration **Hive** est sélectionnée par défaut. Assurez-vous que l'option **Hive** comporte une case à cocher à côté.

1. (Facultatif) Vous pouvez également sélectionner **Presto** comme option de configuration pour activer Hive et Presto sur votre cluster.

1. (Facultatif) Sélectionnez **Utiliser les métadonnées de la table Hive** pour stocker les résultats de vos requêtes Amazon EMR dans AWS Glue un catalogue de données. Le stockage des résultats de la requête dans un AWS Glue catalogue peut vous éviter des frais. Pour plus d'informations, consultez la section [Utilisation du catalogue de AWS Glue données comme métastore pour Hive](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-metastore-glue.html).
**Note**  
Le stockage des résultats de la requête dans un catalogue de données nécessite la version 5.8.0 ou ultérieure d'Amazon EMR.

1. Sous **Entrer la configuration**, spécifiez le JSON suivant :

   ```
   [
     {
       "classification": "hive-site",
       "properties": {
         "hive.server2.authentication.ldap.baseDN": "dc=example,dc=org",
         "hive.server2.authentication": "LDAP",
         "hive.server2.authentication.ldap.url": "ldap://ldap-server-dns-name:389"
       }
     }
   ]
   ```
**Note**  
Pour des raisons de sécurité, nous recommandons d'activer le protocole SSL pour HiveServer en ajoutant quelques propriétés dans le JSON du site de ruche précédent. Pour plus d'informations, consultez [Activer le protocole SSL sur HiveServer 2](https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/configuring-wire-encryption/content/enable_ssl_on_hiveserver2.html).

1. Spécifiez les paramètres de cluster restants et créez un cluster.

------

Utilisez les sections suivantes pour utiliser l'authentification LDAP pour les clusters Amazon EMR que vous avez déjà créés.

------
#### [ LDAP for Presto ]

L'utilisation de LDAP sur un cluster exécutant Presto nécessite un accès au coordinateur Presto via HTTPS. Procédez comme suit pour fournir l'accès :
+ Activez l'accès sur le port 636
+ Activez SSL pour le coordinateur Presto

Utilisez le modèle suivant pour configurer Presto :

```
- Classification: presto-config
     ConfigurationProperties:
        http-server.authentication.type: 'PASSWORD'
        http-server.https.enabled: 'true'
        http-server.https.port: '8889'
        http-server.http.port: '8899'
        node-scheduler.include-coordinator: 'true'
        http-server.https.keystore.path: '/path/to/keystore/path/for/presto'
        http-server.https.keystore.key: 'keystore-key-password'
        discovery.uri: 'http://master-node-dns-name:8899'
- Classification: presto-password-authenticator
     ConfigurationProperties:
        password-authenticator.name: 'ldap'
        ldap.url: !Sub 'ldaps://ldap-server-dns-name:636'
        ldap.user-bind-pattern: "uid=${USER},dc=example,dc=org"
        internal-communication.authentication.ldap.user: "ldap-user-name"
        internal-communication.authentication.ldap.password: "ldap-password"
```

Pour plus d’informations sur la configuration LDAP dans Presto, consultez les ressources suivantes :
+ [Authentification LDAP](https://prestodb.io/docs/current/security/ldap.html)
+ [Utilisation de l'authentification LDAP pour Presto sur Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-ldap.html)

**Note**  
Afin de vous aider à optimiser la sécurité, nous vous recommandons d'activer SSL pour Presto. Pour plus d’informations, consultez [Sécuriser les communications internes](https://prestodb.io/docs/current/security/internal-communication.html).

------
#### [ LDAP for Hive ]

Pour utiliser LDAP pour Hive pour un cluster que vous avez créé, suivez la procédure suivante pour [Reconfigurer un groupe d'instances dans la console](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html#emr-configure-apps-running-cluster-considerations).

Vous spécifiez le nom du cluster auquel vous vous connectez.

```
[
  {
    "classification": "hive-site",
    "properties": {
      "hive.server2.authentication.ldap.baseDN": "dc=example,dc=org",
      "hive.server2.authentication": "LDAP",
      "hive.server2.authentication.ldap.url": "ldap://ldap-server-dns-name:389"
    }
  }
]
```

------

Utilisez la procédure suivante pour importer des données à partir d’un cluster.

Pour importer des données à partir d'un cluster, procédez comme suit.

1. Ouvrez un flux Data Wrangler.

1. Choisissez **Create Connection** (Créer une connexion).

1. Choisissez **Amazon EMR**.

1. Effectuez l’une des actions suivantes :
   + (Facultatif) Pour **Secrets ARN**, spécifiez l'ARN (Amazon Resource Number) de la base de données au sein du cluster. Les secrets offrent une sécurité supplémentaire. Pour plus d'informations sur les secrets, voir [Qu'est-ce que c'est AWS Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) Pour plus d’informations sur la création d’un secret pour votre cluster, consultez [Création d'un AWS Secrets Manager secret pour votre cluster](#data-wrangler-emr-secrets-manager).
**Important**  
Vous devez spécifier un secret si vous utilisez un rôle d'exécution IAM pour l'authentification.
   + Dans le tableau déroulant, choisissez un cluster.

1. Choisissez **Suivant**.

1. Pour **Sélectionner un point de terminaison pour le *example-cluster-name* cluster**, choisissez un moteur de requête.

1. (Facultatif) Sélectionnez **Save connection** (Enregistrer la connexion).

1. Choisissez **Next, select login** (Ensuite, sélectionner la connexion) et choisissez l'une des options suivantes :
   + No authentication (Pas d'authentification)
   + LDAP
   + IAM

1. Pour **Se connecter au *example-cluster-name* cluster**, spécifiez le **nom d'utilisateur** et le **mot de passe** du cluster.

1. Choisissez **Se connecter**.

1. Dans l'éditeur de requêtes, spécifiez une requête SQL.

1. Cliquez sur **Exécuter**.

1. Choisissez **Importer**.

### Création d'un AWS Secrets Manager secret pour votre cluster
<a name="data-wrangler-emr-secrets-manager"></a>

Si vous utilisez un rôle d'exécution IAM pour accéder à votre cluster Amazon EMR, vous devez stocker les informations d'identification que vous utilisez pour accéder à Amazon EMR en tant que secret Secrets Manager. Vous stockez toutes les informations d'identification que vous utilisez pour accéder au cluster dans le secret.

Vous devez conserver les informations suivantes dans le secret :
+ Point de terminaison JDBC : `jdbc:hive2://`
+ Nom DNS : nom DNS de votre cluster Amazon EMR. Il s'agit soit du point de terminaison du nœud primaire, soit du nom d'hôte.
+ Port : `8446`

Vous pouvez également enregistrer les informations supplémentaires suivantes dans le secret :
+ Rôle IAM : rôle IAM que vous utilisez pour accéder au cluster. Data Wrangler utilise votre rôle d'exécution SageMaker AI par défaut.
+ Chemin truststore : par défaut, Data Wrangler crée un chemin truststore pour vous. Vous pouvez également utiliser votre propre chemin truststore. Pour plus d'informations sur les chemins Truststore, consultez la section [Chiffrement en transit en HiveServer 2](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/hs2-encryption-intransit.html).
+ Mot de passe truststore : par défaut, Data Wrangler crée un mot de passe truststore pour vous. Vous pouvez également utiliser votre propre chemin truststore. Pour plus d'informations sur les chemins Truststore, consultez la section [Chiffrement en transit en HiveServer 2](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/hs2-encryption-intransit.html).

Utilisez la procédure ci-dessous pour stocker les informations d'identification dans un secret Secrets Manager.

Pour stocker vos informations d'identification en tant que secret, procédez comme suit.

1. Accédez à AWS Management Console.

1. Dans la barre de recherche, spécifiez Secrets Manager.

1. Sélectionnez **AWS Secrets Manager**.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Pour **Secret type** (Type de secret), choisissez **Other type of secret** (Autre type de secret).

1. Sous **Paires clé/valeur**, sélectionnez **Texte brut**.

1. Pour les clusters exécutant Hive, vous pouvez utiliser le modèle suivant pour l'authentification IAM.

   ```
   {"jdbcURL": ""
    "iam_auth": {"endpoint": "jdbc:hive2://", #required
                   "dns": "ip-xx-x-xxx-xxx.ec2.internal", #required 
                   "port": "10000", #required
                 "cluster_id": "j-xxxxxxxxx", #required
                 "iam_role": "arn:aws:iam::xxxxxxxx:role/xxxxxxxxxxxx", #optional
                 "truststore_path": "/etc/alternatives/jre/lib/security/cacerts", #optional
                 "truststore_password": "changeit" #optional
                 
                 }}
   ```
**Note**  
Après avoir importé vos données, vous leur appliquez des transformations. Vous exportez ensuite les données que vous avez transformées vers un emplacement spécifique. Si vous utilisez un bloc-notes Jupyter pour exporter vos données transformées vers Amazon S3, vous devez utiliser le chemin truststore spécifié dans l'exemple précédent.

Un secret Secrets Manager enregistre l’URL JDBC du cluster Amazon EMR en tant que secret. L'utilisation d'un secret est plus sûre que la saisie directe de vos informations d'identification.

Utilisez la procédure suivante pour enregistrer l'URL JDBC en tant que secret.

Pour enregistrer l'URL JDBC en tant que secret, procédez comme suit.

1. Accédez à AWS Management Console.

1. Dans la barre de recherche, spécifiez Secrets Manager.

1. Sélectionnez **AWS Secrets Manager**.

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Pour **Secret type** (Type de secret), choisissez **Other type of secret** (Autre type de secret).

1. Pour les **Key/value pairs** (Paires clé/valeur), spécifiez `jdbcURL` en tant que clé et une URL JDBC valide en tant que valeur.

   Le format d'une URL JDBC valide varie selon que vous utilisez l'authentification et que vous utilisez Hive ou Presto comme moteur de requête. La liste suivante indique les formats d’URL JBDC valides pour les différentes configurations possibles.
   + Hive, aucune authentification : `jdbc:hive2://emr-cluster-master-public-dns:10000/;`
   + Hive, authentification LDAP : `jdbc:hive2://emr-cluster-master-public-dns-name:10000/;AuthMech=3;UID=david;PWD=welcome123;`
   + Pour Hive avec SSL activé, le format d'URL JDBC dépend de l'utilisation ou non d'un fichier keystore Java pour la configuration TLS. Le fichier keystore Java permet de vérifier l’identité du nœud principal du cluster Amazon EMR. Pour utiliser un fichier keystore Java, générez-le sur un cluster EMR et chargez-le dans Data Wrangler. Pour générer un fichier, utilisez la commande suivante sur le cluster Amazon EMR, `keytool -genkey -alias hive -keyalg RSA -keysize 1024 -keystore hive.jks`. Pour plus d’informations sur l’exécution de commandes sur un cluster Amazon EMR, consultez [Sécuriser l’accès aux clusters EMR à l’aide de AWS Systems Manager](https://aws.amazon.com/blogs/big-data/securing-access-to-emr-clusters-using-aws-systems-manager/). Pour charger un fichier, cliquez sur la flèche vers le haut dans le menu de navigation de gauche de l’interface utilisateur de Data Wrangler.

     Voici les formats d'URL JDBC valides pour Hive avec SSL activé :
     + Sans fichier keystore Java : `jdbc:hive2://emr-cluster-master-public-dns:10000/;AuthMech=3;UID=user-name;PWD=password;SSL=1;AllowSelfSignedCerts=1;`
     + Avec un fichier keystore Java - `jdbc:hive2://emr-cluster-master-public-dns:10000/;AuthMech=3;UID=user-name;PWD=password;SSL=1;SSLKeyStore=/home/sagemaker-user/data/Java-keystore-file-name;SSLKeyStorePwd=Java-keystore-file-passsword;`
   + Presto, aucune authentification — jdbc:presto : //:8889/ ; *emr-cluster-master-public-dns*
   + Pour Presto avec l'authentification LDAP et SSL activés, le format d'URL JDBC dépend de l'utilisation ou non d'un fichier keystore Java pour la configuration TLS. Le fichier keystore Java permet de vérifier l’identité du nœud principal du cluster Amazon EMR. Pour utiliser un fichier keystore Java, générez-le sur un cluster EMR et chargez-le dans Data Wrangler. Pour charger un fichier, cliquez sur la flèche vers le haut dans le menu de navigation de gauche de l'interface utilisateur de Data Wrangler. Pour plus d’informations sur la création d’un fichier keystore Java pour Presto, consultez [Fichier keystore Java pour TLS](https://prestodb.io/docs/current/security/tls.html#server-java-keystore). Pour plus d’informations sur l’exécution de commandes sur un cluster Amazon EMR, consultez [Sécuriser l’accès aux clusters EMR à l’aide de AWS Systems Manager](https://aws.amazon.com/blogs/big-data/securing-access-to-emr-clusters-using-aws-systems-manager/).
     + Sans fichier keystore Java : `jdbc:presto://emr-cluster-master-public-dns:8889/;SSL=1;AuthenticationType=LDAP Authentication;UID=user-name;PWD=password;AllowSelfSignedServerCert=1;AllowHostNameCNMismatch=1;`
     + Avec un fichier keystore Java - `jdbc:presto://emr-cluster-master-public-dns:8889/;SSL=1;AuthenticationType=LDAP Authentication;SSLTrustStorePath=/home/sagemaker-user/data/Java-keystore-file-name;SSLTrustStorePwd=Java-keystore-file-passsword;UID=user-name;PWD=password;`

Vous pouvez rencontrer des problèmes au cours du processus d'importation de données à partir d'un cluster Amazon EMR. Pour obtenir des informations sur la résolution de ces problèmes, consultez [Résolution de problèmes avec Amazon EMR](data-wrangler-trouble-shooting.md#data-wrangler-trouble-shooting-emr).

## Importer des données depuis Databricks (JDBC)
<a name="data-wrangler-databricks"></a>

Vous pouvez utiliser Databricks comme source de données pour votre flux Amazon SageMaker Data Wrangler. Pour importer un jeu de données à partir de Databricks, utilisez la fonctionnalité d'importation JDBC (Java Database Connectivity) pour accéder à votre base de données Databricks. Une fois que vous avez accès à la base de données, spécifiez une requête SQL pour obtenir les données et les importer.

Nous supposons que vous disposez d'un cluster Databricks en cours d'exécution et que vous y avez configuré votre pilote JDBC. Pour plus d'informations, consultez les pages suivantes de la documentation Databricks :
+ [Pilote JDBC](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-driver)
+ [Paramètres de configuration et de connexion JDBC](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters)
+ [Paramètres d'authentification](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#authentication-parameters)

Data Wrangler enregistre votre URL JDBC dans. AWS Secrets Manager Vous devez autoriser votre rôle d'exécution Amazon SageMaker Studio Classic IAM à utiliser Secrets Manager. Procédez comme suit pour accorder des autorisations.

Pour accorder des autorisations à Secrets Manager, procédez comme suit.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Sélectionnez **Rôles**.

1. Dans la barre de recherche, spécifiez le rôle d'exécution Amazon SageMaker AI utilisé par Amazon SageMaker Studio Classic.

1. Choisissez le rôle.

1. Choisissez **Ajouter des autorisations**.

1. Choisissez **Create inline policy** (Créer une politique en ligne).

1. Pour **Service**, spécifiez **Secrets Manager** et choisissez-le.

1. Pour **Actions**, sélectionnez l'icône en forme de flèche en regard de **Permissions management** (Gestion des autorisations).

1. Sélectionnez **PutResourcePolicy**.

1. Pour **Resources** (Ressources), choisissez **Specific** (Spécifique).

1. Cochez la case en regard de **Any in this account** (N'importe quelle ressource dans ce compte).

1. Choisissez **Review policy** (Examiner une politique).

1. Pour **Name** (Nom), spécifiez un nom.

1. Sélectionnez **Create policy** (Créer la stratégie).

Vous pouvez utiliser des partitions pour importer vos données plus rapidement. Les partitions permettent à Data Wrangler de traiter les données en parallèle. Par défaut, Data Wrangler utilise 2 partitions. Dans la plupart des cas d'utilisation, 2 partitions offrent des vitesses de traitement des données quasi optimales.

Si vous choisissez de spécifier plus de 2 partitions, vous pouvez également spécifier une colonne pour partitionner les données. Le type des valeurs de la colonne doit être numérique ou date.

Nous vous recommandons d’utiliser des partitions uniquement si vous comprenez la structure des données et la manière dont elles sont traitées.

Vous pouvez importer l'intégralité du jeu de données ou en échantillonner une partie. Pour une base de données Databricks, il fournit les options d'échantillonnage suivantes :
+ Aucun : importez l’intégralité du jeu de données.
+ First K (K premières lignes) : échantillonnez les K premières lignes du jeu de données, où K est un entier que vous spécifiez.
+ Randomized (Aléatoire) : prélève un échantillon aléatoire d'une taille que vous spécifiez.
+ Stratifié : prélève un échantillon aléatoire stratifié. Un échantillon stratifié conserve le rapport des valeurs dans une colonne.

Procédez comme suit pour importer vos données à partir d’une base de données Databricks.

Pour importer des données depuis Databricks, procédez comme suit.

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Dans l'onglet **Import data** (Importation de données) de votre flux Data Wrangler, choisissez **Databricks**.

1. Spécifiez les champs suivants :
   + **Dataset name** (Nom du jeu de données) : nom que vous souhaitez utiliser pour le jeu de données de votre flux Data Wrangler.
   + **Driver** (Pilote) : **com.simba.spark.jdbc.Driver**.
   + **JDBC URL** (URL JDBC) – URL de la base de données Databricks. Le format de l’URL peut varier d’une instance Databricks à l’autre. Pour plus d'informations sur la recherche de l'URL et sur la spécification des paramètres qu'elle contient, consultez [Paramètres de configuration et de connexion JDBC](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters). Voici un exemple de formatage d'une URL : jdbc:spark ://aws-sagemaker-datawrangler.cloud.databricks.com:443/default ; TransportMode=HTTP ; ssl=1 ; HttpPath= /3122619508517275/0909-200301-cut318 ; =3 ; UID= ; PWD=. sql/protocolv1/o AuthMech *token* *personal-access-token*
**Note**  
Vous pouvez spécifier un ARN secret contenant l'URL JDBC au lieu de spécifier l'URL JDBC elle-même. Le secret doit contenir une paire clé-valeur au format suivant : `jdbcURL:JDBC-URL`. Pour plus d'informations, consultez [Qu'est-ce que Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).

1. Spécifiez une instruction SQL SELECT.
**Note**  
Data Wrangler ne prend pas en charge les expressions de table communes (CTE) ou les tables temporaires au sein d'une requête.

1. Pour **Échantillonnage**, choisissez une méthode d’échantillonnage.

1. Cliquez sur **Exécuter**. 

1. (Facultatif) Pour **PREVIEW** (APERÇU), choisissez la roue dentée pour ouvrir **Partition settings** (Paramètres de partition). 

   1. Spécifiez le nombre de partitions. Vous pouvez partitionner par colonne si vous spécifiez le nombre de partitions :
     + **Enter number of partitions** (Saisissez le nombre de partitions) : spécifiez une valeur supérieure à 2.
     + (Facultatif) **Partition by column** (Partitionner par colonne) : renseignez les champs suivants. Vous ne pouvez partitionner par colonne que si vous avez spécifié une valeur dans le champ **Enter number of partitions** (Saisissez le nombre de partitions).
       + **Select column** (Sélectionner la colonne) – Sélectionnez la colonne que vous utilisez pour la partition de données. Le type de données de la colonne doit être numérique ou date.
       + **Upper bound** (Limite supérieure) – À partir des valeurs de la colonne que vous avez spécifiée, la limite supérieure est la valeur que vous utilisez dans la partition. La valeur que vous spécifiez ne modifie pas les données que vous importez. Elle n'affecte que la vitesse d'importation. Pour obtenir les meilleures performances, spécifiez une limite supérieure proche du maximum de la colonne.
       + **Lower bound** (Limite inférieure) – À partir des valeurs de la colonne que vous avez spécifiée, la limite inférieure est la valeur que vous utilisez dans la partition. La valeur que vous spécifiez ne modifie pas les données que vous importez. Elle n'affecte que la vitesse d'importation. Pour obtenir les meilleures performances, spécifiez une limite inférieure proche du minimum de la colonne.

1. Choisissez **Import** (Importer).

## Importer des données depuis Salesforce Data Cloud
<a name="data-wrangler-import-salesforce-data-cloud"></a>

Vous pouvez utiliser Salesforce Data Cloud comme source de données dans Amazon SageMaker Data Wrangler pour préparer les données de votre Salesforce Data Cloud à des fins d'apprentissage automatique.

Avec Salesforce Data Cloud comme source de données dans Data Wrangler, vous pouvez vous connecter rapidement à vos données Salesforce sans écrire une seule ligne de code. Vous pouvez joindre vos données Salesforce à des données provenant de toute autre source de données Data Wrangler.

Une fois connecté au cloud de données, vous pouvez effectuer les opérations suivantes :
+ Visualiser vos données à l'aide de visualisations intégrées
+ Comprendre les données et identifier les erreurs potentielles et les valeurs extrêmes
+ Transformer les données grâce à plus de 300 transformations intégrées
+ Exporter les données que vous avez transformées

**Topics**
+ [Configuration d’administrateur](#data-wrangler-import-salesforce-data-cloud-administrator)
+ [Guide des scientifiques des données](#data-wrangler-salesforce-data-cloud-ds)

### Configuration d’administrateur
<a name="data-wrangler-import-salesforce-data-cloud-administrator"></a>

**Important**  
Avant de commencer, assurez-vous que vos utilisateurs exécutent Amazon SageMaker Studio Classic version 1.3.0 ou ultérieure. Pour en savoir plus sur la vérification de la version de Studio Classic et sa mise à jour, consultez [Préparez les données ML avec Amazon SageMaker Data Wrangler](data-wrangler.md).

Lorsque vous configurez l’accès à Salesforce Data Cloud, vous devez effectuer les tâches suivantes :
+ Obtenir l'URL de votre domaine Salesforce. Salesforce désigne également l'URL du domaine comme l'URL de votre organisation.
+ Obtenir des OAuth informations d'identification auprès de Salesforce. 
+ Obtenir l'URL d'autorisation et l'URL du jeton pour votre domaine Salesforce.
+ Création d'un AWS Secrets Manager secret avec la OAuth configuration.
+ Créer une configuration du cycle de vie que Data Wrangler utilise pour lire les informations d'identification contenues dans le secret.
+ Permettre à Data Wrangler de lire le secret.

Après avoir effectué les tâches précédentes, vos utilisateurs peuvent se connecter au Salesforce Data Cloud à l'aide de OAuth.

**Note**  
Vos utilisateurs peuvent rencontrer des problèmes une fois que vous avez tout configuré. Pour en savoir plus sur la résolution des problèmes, consultez [Résolution des problèmes avec Salesforce](data-wrangler-trouble-shooting.md#data-wrangler-troubleshooting-salesforce-data-cloud).

Pour obtenir l'URL du domaine, procédez comme suit.

1. Accédez à la page de connexion de [Salesforce](login.salesforce.com).

1. Pour **Recherche rapide**, spécifiez **Mon domaine**.

1. Copiez la valeur de **URL actuelle de Mon domaine** dans un fichier texte.

1. Ajoutez `https://` au début de l'URL. 

Après avoir obtenu l'URL du domaine Salesforce, vous pouvez utiliser la procédure suivante pour obtenir les informations d'identification de connexion auprès de Salesforce et autoriser Data Wrangler à accéder à vos données Salesforce.

Pour obtenir les informations d'identification de connexion auprès de Salesforce et donner l'accès à Data Wrangler, procédez comme suit.

1. Accédez à l'URL de votre domaine Salesforce et connectez-vous à votre compte.

1. Choisissez l’icône d’engrenage.

1. Dans la barre de recherche qui apparaît, spécifiez **Gestionnaire d'applications**.

1. Sélectionnez **Nouvelle application connectée**.

1. Spécifiez les champs suivants :
   + Nom de l'application connectée : vous pouvez spécifier n'importe quel nom, mais nous vous recommandons de choisir un nom qui inclut Data Wrangler. Par exemple, vous pouvez spécifier **Intégration de Salesforce Data Cloud Data Wrangler**.
   + Nom de l'API : utilisez la valeur par défaut.
   + Adresse e-mail de contact : spécifiez votre adresse e-mail.
   + Sous le **titre API (Activer OAuth les paramètres)**, cochez la case pour activer OAuth les paramètres.
   + Pour l'**URL de rappel**, spécifiez l'URL Amazon SageMaker Studio Classic. Pour obtenir l'URL de Studio Classic, accédez-y à partir du AWS Management Console et copiez-la.

1. Sous **Étendue OAuth sélectionnée,** déplacez ce qui suit de la liste Étendue **disponible OAuth vers Étendue** **sélectionnée OAuth** :
   + Gérez les données utilisateur via APIs (`api`)
   + Exécuter les demandes à tout moment (`refresh_token`, `offline_access`)
   + Exécuter des requêtes SQL ANSI sur les données Salesforce Data Cloud (`cdp_query_api`)
   + Gérer les données de profil de Salesforce Customer Data Platform (`cdp_profile_api`)

1. Choisissez **Enregistrer**. Après avoir enregistré vos modifications, Salesforce ouvre une nouvelle page.

1. Choisissez **Continue**

1. Accédez à **Clé et secret du consommateur**.

1. Choisissez **Gérer les informations du consommateur**. Salesforce vous redirige vers une nouvelle page où vous devrez peut-être passer une authentification à deux facteurs.

1. 
**Important**  
Copiez la clé du consommateur et le secret du consommateur dans un éditeur de texte. Vous avez besoin de ces informations pour connecter le cloud de données à Data Wrangler.

1. Revenez à **Gérer les applications connectées**.

1. Accédez à **Nom de l'application connectée** et au nom de votre application.

1. Choisissez **Gérer**.

   1. Sélectionnez **Modifier les politiques**.

   1. Modifiez **Relaxation d'IP** pour **Assouplir les restrictions d'IP**.

   1. Choisissez **Enregistrer**.

Une fois que vous avez autorisé l'accès à votre Salesforce Data Cloud, vous devez fournir des autorisations à vos utilisateurs. Procédez comme suit pour leur accorder des autorisations.

Pour fournir des autorisations à vos utilisateurs, procédez comme suit.

1. Accédez à la page d'accueil de la configuration.

1. Dans la barre de navigation de gauche, recherchez **Utilisateurs** et choisissez l'élément de menu **Utilisateurs**.

1. Choisissez le lien hypertexte avec votre nom d'utilisateur.

1. Accédez à **Attributions d'un jeu d'autorisations**.

1. Choisissez **Modifier les attributions**.

1. Ajoutez les autorisations suivantes :
   + **Administrateur de la plateforme de données client**
   + **Spécialiste en connaissance des données de la plateforme de données client**

1. Choisissez **Enregistrer**.

Une fois que vous avez obtenu les informations relatives à votre domaine Salesforce, vous devez obtenir l'URL d'autorisation et l'URL du jeton pour le AWS Secrets Manager secret que vous créez.

Suivez la procédure ci-dessous pour obtenir l'URL d'autorisation et l'URL du jeton.

**Pour obtenir l'URL d'autorisation et l'URL du jeton**

1. Accédez à l'URL de votre domaine Salesforce.

1. Utilisez l'une des méthodes suivantes pour obtenir le URLs. Si vous utilisez une distribution Linux avec `curl` et `jq` installés, nous vous recommandons d'utiliser la méthode qui ne fonctionne que sous Linux.
   + (Linux uniquement) Spécifiez la commande suivante dans votre terminal.

     ```
     curl salesforce-domain-URL/.well-known/openid-configuration | \
     jq '. | { authorization_url: .authorization_endpoint, token_url: .token_endpoint }' | \
     jq '.  += { identity_provider: "SALESFORCE", client_id: "example-client-id", client_secret: "example-client-secret" }'
     ```
   + 

     1. Accédez à **example-org-URL*/.well-known/openid-configuration* dans votre navigateur.

     1. Copiez `authorization_endpoint` et `token_endpoint` dans un éditeur de texte.

     1. Créez l'objet JSON suivant :

        ```
        {
          "identity_provider": "SALESFORCE",
          "authorization_url": "example-authorization-endpoint", 
          "token_url": "example-token-endpoint",
          "client_id": "example-consumer-key",
          "client_secret": "example-consumer-secret"
        }
        ```

Après avoir créé l'objet OAuth de configuration, vous pouvez créer un AWS Secrets Manager secret qui le stocke. Utilisez la procédure suivante pour créer le secret.

Pour créer un secret, procédez comme suit.

1. Accédez à la [console AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

1. Choisissez **Stocker un secret**.

1. Sélectionnez **Autre type de secret**.

1. Sous **Paires clé/valeur**, sélectionnez **Texte brut**.

1. Remplacez le JSON vide par les paramètres de configuration suivants.

   ```
   {
     "identity_provider": "SALESFORCE",
     "authorization_url": "example-authorization-endpoint", 
     "token_url": "example-token-endpoint",
     "client_id": "example-consumer-key",
     "client_secret": "example-consumer-secret"
   }
   ```

1. Choisissez **Suivant**.

1. Dans **Nom du secret**, spécifiez le nom du secret.

1. Sous **Balises**, choisissez **Ajouter**.

   1. Pour **Clé**, spécifiez **sagemaker:partner**. Pour **Valeur**, nous vous recommandons de spécifier une valeur qui pourrait être utile pour votre cas d'utilisation. Toutefois, vous pouvez spécifier ce que vous voulez.
**Important**  
Vous devez créer la clé. Vous ne pouvez pas importer vos données depuis Salesforce sans la créer.

1. Choisissez **Suivant**.

1. Choisissez **Stocker**.

1. Choisissez le secret que vous avez créé.

1. Prenez en compte les champs suivants :
   + L'Amazon Resource Name (ARN) du secret
   + Le nom du secret

Après avoir créé le secret, vous devez ajouter des autorisations permettant à Data Wrangler de le lire. Procédez comme suit pour ajouter des autorisations.

Pour ajouter des autorisations de lecture pour Data Wrangler, procédez comme suit.

1. Accédez à la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Choisissez les **domaines**.

1. Choisissez le domaine que vous utilisez pour accéder à Data Wrangler.

1. Choisissez votre **Profil utilisateur**.

1. Sous **Détails**, recherchez le **Rôle d'exécution**. Son ARN est au format suivant : `arn:aws:iam::111122223333:role/example-role`. Notez le rôle d'exécution de l' SageMaker IA. Dans l’ARN, c’est tout ce qui suit `role/`.

1. Accédez à la [Console IAM](https://console.aws.amazon.com/iam).

1. Dans la barre **de recherche Search IAM**, spécifiez le nom du rôle d'exécution SageMaker AI.

1. Choisissez le rôle.

1. Choisissez **Ajouter des autorisations**.

1. Choisissez **Créer une politique en ligne**.

1. Sélectionnez l’onglet JSON.

1. Spécifiez la politique suivante dans l'éditeur.

------
#### [ JSON ]

****  

   ```
   {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:*:*:secret:*",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "aws:ResourceTag/sagemaker:partner": "*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:UpdateSecret"
            ],
            "Resource": "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*"
        }
    ]
   }
   ```

------

1. Choisissez **Review Policy (Examiner une stratégie)**.

1. Pour **Name** (Nom), spécifiez un nom.

1. Sélectionnez **Create policy** (Créer la stratégie).

Après avoir autorisé Data Wrangler à lire le secret, vous devez ajouter une configuration du cycle de vie utilisant votre secret Secrets Manager à votre profil utilisateur Amazon SageMaker Studio Classic.

Utilisez la procédure suivante pour créer une configuration de cycle de vie et l’ajouter au profil Studio Classic.

Pour créer une configuration de cycle de vie et l’ajouter au profil Studio Classic, procédez comme suit.

1. Accédez à la [console Amazon SageMaker AI](console.aws.amazon.com/sagemaker).

1. Choisissez les **domaines**.

1. Choisissez le domaine que vous utilisez pour accéder à Data Wrangler.

1. Choisissez votre **Profil utilisateur**.

1. Si vous voyez les applications suivantes, supprimez-les :
   + KernelGateway
   + JupyterKernel
**Note**  
La suppression des applications met à jour Studio Classic. Les mises à jour peuvent prendre un certain temps.

1. Pendant que vous attendez que les mises à jour soient effectuées, choisissez **Configurations de cycle de vie**.

1. Assurez-vous que la page sur laquelle vous vous trouvez indique **Configurations de cycle de vie Studio Classic**.

1. Choisissez **Créer une configuration**.

1. Assurez-vous qu'**Application Jupyter Server** a été sélectionnée.

1. Choisissez **Suivant**.

1. Pour **Nom**, spécifiez un nom pour la configuration.

1. Pour **Scripts**, spécifiez le script suivant :

   ```
   #!/bin/bash
   set -eux
   
   cat > ~/.sfgenie_identity_provider_oauth_config <<EOL
   {
       "secret_arn": "secrets-arn-containing-salesforce-credentials"
   }
   EOL
   ```

1. Sélectionnez **Soumettre**.

1. Dans le panneau de navigation de gauche, choisissez **domaines**.

1. Choisissez votre domaine.

1. Choisissez **Environnement**.

1. Sous **Configurations de cycle de vie pour les applications Studio Classic personnelles**, choisissez **Attacher**. 

1. Sélectionnez **Configuration existante**.

1. Sous **Configurations de cycle de vie Studio Classic**, sélectionnez la configuration de cycle de vie que vous avez créée.

1. Choisissez **Attacher au domaine**.

1. Cochez la case à côté de la configuration du cycle de vie que vous avez attachée.

1. Sélectionnez **Définir comme valeur par défaut**.

Vous pouvez rencontrer des problèmes lors de la configuration de votre cycle de vie. Pour en savoir plus sur leur débogage, consultez [Configurations du cycle de vie de débogage dans Amazon SageMaker Studio Classic](studio-lcc-debug.md).

### Guide des scientifiques des données
<a name="data-wrangler-salesforce-data-cloud-ds"></a>

Utilisez ce qui suit pour connecter Salesforce Data Cloud et accéder à vos données dans Data Wrangler.

**Important**  
Votre administrateur doit utiliser les informations des sections précédentes pour configurer Salesforce Data Cloud. Si vous rencontrez des problèmes, contactez-les pour obtenir de l’aide.

Pour ouvrir Studio Classic et vérifier sa version, consultez la procédure suivante.

1. Suivez les étapes ci-dessous [Conditions préalables](data-wrangler-getting-started.md#data-wrangler-getting-started-prerequisite) pour accéder à Data Wrangler via Amazon SageMaker Studio Classic.

1. En regard de l’utilisateur que vous souhaitez utiliser pour lancer Studio Classic, sélectionnez **Lancer l’application**.

1. Choisissez **Studio**.

**Pour créer un jeu de données dans Data Wrangler à partir des données de Salesforce Data Cloud**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Disponible**, choisissez **Salesforce Data Cloud**.

1. Dans **Nom de la connexion**, spécifiez le nom de votre connexion à Salesforce Data Cloud.

1. Pour **URL de l'org**, spécifiez l'URL de l'organisation dans votre compte Salesforce. Vous pouvez obtenir l'URL auprès de vos administrateurs.

1. Choisissez **Se connecter**.

1. Spécifiez vos informations d'identification pour vous connecter à Salesforce.

Vous pouvez commencer à créer un jeu de données à partir des données de Salesforce Data Cloud une fois que vous vous y êtes connecté.

Après avoir sélectionné une table, vous pouvez écrire des requêtes et les exécuter. La sortie de votre requête s'affichera sous **Résultats de la requête**.

Une fois que vous avez réglé la sortie de votre requête, vous pouvez l'importer dans un flux Data Wrangler pour effectuer des transformations de données. 

Après avoir créé un jeu de données, accédez à l'écran **Flux de données** pour commencer à transformer vos données.

## Importer des données depuis Snowflake
<a name="data-wrangler-snowflake"></a>

Vous pouvez utiliser Snowflake comme source de données dans Data Wrangler pour préparer SageMaker les données dans Snowflake à des fins d'apprentissage automatique.

Avec Snowflake comme source de données dans Data Wrangler, vous pouvez vous connecter rapidement à Snowflake sans écrire une seule ligne de code. Vous pouvez joindre vos données dans Snowflake à des données provenant de toute autre source de données Data Wrangler.

Une fois connecté, vous pouvez interroger de manière interactive les données stockées dans Snowflake, transformer les données avec plus de 300 transformations de données préconfigurées, comprendre les données et identifier les erreurs potentielles et les valeurs extrêmes grâce à un ensemble de modèles de visualisation préconfigurés robustes, identifier rapidement les incohérences dans votre flux de préparation des données, et diagnostiquer les problèmes avant que les modèles soient déployés en production. Enfin, vous pouvez exporter votre flux de travail de préparation des données vers Amazon S3 pour l'utiliser avec d'autres fonctionnalités d' SageMaker IA telles qu'Amazon SageMaker Autopilot, Amazon SageMaker Feature Store et Amazon Pipelines. SageMaker 

Vous pouvez chiffrer le résultat de vos requêtes à l'aide d'une AWS Key Management Service clé que vous avez créée. Pour plus d'informations sur AWS KMS, voir [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html).

**Topics**
+ [Guide de l’administrateur](#data-wrangler-snowflake-admin)
+ [Guide des scientifiques des données](#data-wrangler-snowflake-ds)

### Guide de l’administrateur
<a name="data-wrangler-snowflake-admin"></a>

**Important**  
Pour en savoir plus sur le contrôle d’accès détaillé et les bonnes pratiques, consultez [Contrôle d’accès de sécurité](https://docs.snowflake.com/en/user-guide/security-access-control.html). 

Cette section est destinée aux administrateurs Snowflake qui configurent l'accès à Snowflake depuis Data Wrangler. SageMaker 

**Important**  
Vous êtes responsable de la gestion et de la surveillance du contrôle d'accès dans Snowflake. Data Wrangler n’ajoute pas de couche de contrôle d’accès par rapport à Snowflake.   
Le contrôle d'accès inclut les éléments suivants :  
Les données auxquelles un utilisateur accède
(Facultatif) L'intégration du stockage qui permet à Snowflake d'écrire les résultats des requêtes dans un compartiment Amazon S3
Les requêtes qu'un utilisateur peut exécuter

#### (Facultatif) Configurer les autorisations d'importation de données Snowflake
<a name="data-wrangler-snowflake-admin-config"></a>

Par défaut, Data Wrangler interroge les données dans Snowflake sans en créer de copie dans un emplacement Amazon S3. Utilisez les informations suivantes si vous configurez une intégration de stockage avec Snowflake. Vos utilisateurs peuvent utiliser une intégration de stockage pour stocker les résultats de leurs requêtes dans un emplacement Amazon S3.

Vos utilisateurs peuvent avoir différents niveaux d'accès aux données sensibles. Pour une sécurité optimale des données, fournissez à chaque utilisateur sa propre intégration de stockage. Chaque intégration de stockage doit avoir sa propre politique de gouvernance des données.

Cette fonctionnalité n’est actuellement pas disponible dans les régions d’adhésion.

Snowflake a besoin des autorisations suivantes sur un compartiment et un répertoire S3 pour pouvoir accéder aux fichiers du répertoire :
+ `s3:GetObject`
+ `s3:GetObjectVersion`
+ `s3:ListBucket`
+ `s3:ListObjects`
+ `s3:GetBucketLocation`

**Créer une politique IAM**

Vous devez créer une politique IAM pour configurer les autorisations d'accès permettant à Snowflake de charger et de décharger des données depuis un compartiment Amazon S3.

Le document de politique JSON que vous utilisez pour créer la politique est le suivant :

```
# Example policy for S3 write access
# This needs to be updated
{
"Version": "2012-10-17",		 	 	 
"Statement": [
  {
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion"
    ],
    "Resource": "arn:aws:s3:::bucket/prefix/*"
  },
  {
    "Effect": "Allow",
    "Action": [
        "s3:ListBucket"
    ],
    "Resource": "arn:aws:s3:::bucket/",
    "Condition": {
        "StringLike": {
            "s3:prefix": ["prefix/*"]
        }
    }
  }
 ]
}
```

Pour obtenir des informations et des procédures relatives à la création de politiques à l'aide de documents de politique, consultez [Création de politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).

Pour une documentation qui fournit une vue d'ensemble de l'utilisation des autorisations IAM avec Snowflake, consultez les ressources suivantes :
+ [En quoi consiste IAM ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)
+ [Créez le rôle IAM dans AWS](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html#step-2-create-the-iam-role-in-aws)
+ [Créer une intégration de stockage dans le cloud dans Snowflake](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html#step-3-create-a-cloud-storage-integration-in-snowflake)
+ [Récupérez l'utilisateur AWS IAM pour votre compte Snowflake](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html#step-4-retrieve-the-aws-iam-user-for-your-snowflake-account)
+ [Accordez à l’utilisateur IAM les autorisations d’accès au compartiment.](https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html#step-5-grant-the-iam-user-permissions-to-access-bucket-objects).

Pour accorder à l'intégration de stockage l'autorisation d'utiliser le rôle Snowflake du scientifique des données, vous devez exécuter `GRANT USAGE ON INTEGRATION integration_name TO snowflake_role;`.
+ `integration_name` est le nom de votre intégration de stockage.
+ `snowflake_role` est le nom du [rôle Snowflake](https://docs.snowflake.com/en/user-guide/security-access-control-overview.html#roles) par défaut donné au scientifique des données.

#### Configuration de Snowflake Access OAuth
<a name="data-wrangler-snowflake-oauth-setup"></a>

Au lieu de demander à vos utilisateurs d'entrer directement leurs informations d'identification dans Data Wrangler, vous pouvez leur demander d'utiliser un fournisseur d'identité pour accéder à Snowflake. Vous trouverez ci-dessous des liens vers la documentation Snowflake qui répertorient les fournisseurs d'identité pris en charge par Data Wrangler.
+ [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
+ [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
+ [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

Utilisez la documentation des liens précédents pour configurer l'accès à votre fournisseur d'identité. Les informations et les procédures dans cette section vous aident à comprendre comment utiliser correctement la documentation pour accéder à Snowflake dans Data Wrangler.

Votre fournisseur d'identité doit reconnaître Data Wrangler en tant qu'application. Pour enregistrer Data Wrangler comme application dans le fournisseur d'identité, procédez comme suit :

1. Sélectionnez la configuration qui lance le processus d'enregistrement de Data Wrangler en tant qu'application.

1. Fournissez aux utilisateurs du fournisseur d'identité l'accès à Data Wrangler.

1. Activez l'authentification OAuth du client en stockant les informations d'identification du client sous forme de AWS Secrets Manager secret.

1. Spécifiez une URL de redirection au format suivant : https ://*domain-ID*.studio. *Région AWS*.sagemaker. aws/jupyter/default/lab
**Important**  
Vous spécifiez l'ID de domaine Amazon SageMaker AI Région AWS que vous utilisez pour exécuter Data Wrangler.
**Important**  
Vous devez enregistrer une URL pour chaque domaine Amazon SageMaker AI et pour chaque domaine Région AWS où vous exécutez Data Wrangler. Les utilisateurs d'un domaine pour Région AWS lesquels aucune redirection n'est URLs configurée ne pourront pas s'authentifier auprès du fournisseur d'identité pour accéder à la connexion Snowflake.

1. Assurez-vous que le code d'autorisation et les types d'octroi de jetons d'actualisation sont autorisés pour l'application Data Wrangler.

Au sein de votre fournisseur d'identité, vous devez configurer un serveur qui envoie OAuth des jetons à Data Wrangler au niveau de l'utilisateur. Le serveur envoie les jetons avec Snowflake comme public.

Snowflake utilise le concept de rôles distincts des rôles utilisés par les rôles IAM. AWS Vous devez configurer le fournisseur d'identité pour qu'il utilise n'importe quel rôle afin d'utiliser le rôle par défaut associé au compte Snowflake. Par exemple, si un utilisateur a le rôle `systems administrator` par défaut dans son profil Snowflake, la connexion entre Data Wrangler et Snowflake utilise `systems administrator` comme rôle.

Suivez la procédure ci-dessous pour configurer le serveur.

Pour configurer le serveur, procédez comme suit. Vous travaillez dans Snowflake pour toutes les étapes sauf la dernière.

1. Commencez à configurer le serveur ou l'API.

1. Configurez le serveur d'autorisation pour utiliser le code d'autorisation et actualiser les types d'octroi de jetons.

1. Spécifiez la durée de vie du jeton d'accès.

1. Définissez le délai d'inactivité du jeton d'actualisation. Le délai d'inactivité est la durée au cours de laquelle le jeton d'actualisation expire s'il n'est pas utilisé.
**Note**  
Si vous planifiez des tâches dans Data Wrangler, nous recommandons que le délai d'inactivité soit supérieur à la fréquence de la tâche de traitement. Dans le cas contraire, certaines tâches de traitement risquent d'échouer car le jeton d'actualisation a expiré avant qu'elles n'aient pu être exécutées. Lorsque le jeton d'actualisation expire, l'utilisateur doit s'authentifier à nouveau en accédant à la connexion qu'il a établie avec Snowflake via Data Wrangler.

1. Spécifiez `session:role-any` comme nouvelle portée.
**Note**  
Pour Azure AD, copiez l'identifiant unique de la portée. Data Wrangler vous demande de lui fournir l'identifiant.

1. 
**Important**  
Dans l'intégration OAuth de sécurité externe pour Snowflake, activez. `external_oauth_any_role_mode`

**Important**  
Data Wrangler ne prend pas en charge la rotation des jetons d'actualisation. L'utilisation de jetons d'actualisation en rotation peut entraîner des échecs d'accès ou la nécessité pour les utilisateurs de se connecter fréquemment.

**Important**  
Si le jeton d'actualisation expire, vos utilisateurs doivent s'authentifier à nouveau en accédant à la connexion qu'ils ont établie avec Snowflake via Data Wrangler.

Après avoir configuré le OAuth fournisseur, vous fournissez à Data Wrangler les informations dont il a besoin pour se connecter au fournisseur. Vous pouvez utiliser la documentation de votre fournisseur d'identité pour obtenir des valeurs pour les champs suivants :
+ URL du jeton : URL du jeton que le fournisseur d'identité envoie à Data Wrangler.
+ URL d'autorisation : URL du serveur d'autorisation du fournisseur d'identité.
+ ID client : ID du fournisseur d'identité.
+ Secret du client : secret que seul le serveur d'autorisation ou l'API reconnaît.
+ (Azure AD uniquement) Les informations d'identification du OAuth scope que vous avez copiées.

Vous stockez les champs et les valeurs dans un AWS Secrets Manager secret et vous les ajoutez à la configuration du cycle de vie Amazon SageMaker Studio Classic que vous utilisez pour Data Wrangler. Une configuration du cycle de vie est un script shell. Utilisez-la pour rendre l'Amazon Resource Name (ARN) du secret accessible à Data Wrangler. Pour plus d'informations sur la création de secrets, voir [Déplacer des secrets codés en dur vers AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/hardcoded.html). Pour en savoir plus sur l’utilisation des configurations de cycle de vie dans Studio Classic, consultez [Utilisez les configurations du cycle de vie pour personnaliser Amazon SageMaker Studio Classic](studio-lcc.md).

**Important**  
Avant de créer un secret Secrets Manager, assurez-vous que le rôle d'exécution SageMaker AI que vous utilisez pour Amazon SageMaker Studio Classic est autorisé à créer et à mettre à jour des secrets dans Secrets Manager. Pour plus d’informations sur l’ajout d’autorisations, consultez [Exemple : Autorisation de créer des secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_create).

Pour Okta et Ping Federate, le secret doit avoir le format suivant :

```
{
    "token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
    "client_id":"example-client-id",
    "client_secret":"example-client-secret",
    "identity_provider":"OKTA"|"PING_FEDERATE",
    "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize"
}
```

Pour Azure AD, le format du secret est le suivant :

```
{
    "token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
    "client_id":"example-client-id",
    "client_secret":"example-client-secret",
    "identity_provider":"AZURE_AD",
    "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize",
    "datasource_oauth_scope":"api://appuri/session:role-any)"
}
```

Vous devez disposer d'une configuration du cycle de vie qui utilise le secret Secrets Manager que vous avez créé. Vous pouvez soit créer la configuration du cycle de vie, soit en modifier une qui a déjà été créée. La configuration doit utiliser le script suivant.

```
#!/bin/bash

set -eux

## Script Body

cat > ~/.snowflake_identity_provider_oauth_config <<EOL
{
    "secret_arn": "example-secret-arn"
}
EOL
```

Pour en savoir plus sur les configurations du cycle de vie, consultez [Création et association d'une configuration de cycle de vie avec Amazon SageMaker Studio Classic](studio-lcc-create.md). Au cours du processus de configuration, procédez comme suit :
+ Définissez le type d’application de la configuration sur `Jupyter Server`.
+ Associez la configuration au domaine Amazon SageMaker AI qui contient vos utilisateurs.
+ Exécutez la configuration par défaut. Elle doit s’exécuter chaque fois qu’un utilisateur se connecte à Studio Classic. Dans le cas contraire, les informations d’identification enregistrées dans la configuration ne seront pas accessibles à vos utilisateurs lorsqu’ils utiliseront Data Wrangler.
+ La configuration du cycle de vie crée un fichier portant le nom `snowflake_identity_provider_oauth_config` dans le dossier de base de l'utilisateur. Le fichier contient le secret Secrets Manager. Assurez-vous qu'il se trouve dans le dossier de base de l'utilisateur chaque fois que l'instance du serveur Jupyter est initialisée.

#### Connectivité privée entre Data Wrangler et Snowflake via AWS PrivateLink
<a name="data-wrangler-security-snowflake-vpc"></a>

Cette section explique comment AWS PrivateLink établir une connexion privée entre Data Wrangler et Snowflake. Les étapes sont expliquées dans les sections suivantes. 

##### Création d’un VPC
<a name="data-wrangler-snowflake-snowflake-vpc-setup"></a>

Si vous n'avez pas de VPC configuré, suivez les instructions [Create a new VPC (Créer un VPC)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html#create_vpc) pour en créer un.

Une fois que vous avez choisi le VPC que vous souhaitez utiliser pour établir une connexion privée, fournissez les informations d’identification suivantes à votre administrateur Snowflake pour activer AWS PrivateLink :
+ ID du VPC
+ AWS Identifiant du compte
+ URL de votre compte correspondant que vous utilisez pour accéder à Snowflake.

**Important**  
Comme indiqué dans la documentation de Snowflake, l'activation de votre compte Snowflake peut prendre jusqu'à deux jours ouvrés. 

##### Configurer l'intégration de Snowflake AWS PrivateLink
<a name="data-wrangler-snowflake-snowflake-vpc-privatelink-setup"></a>

Une fois AWS PrivateLink activé, récupérez la AWS PrivateLink configuration de votre région en exécutant la commande suivante dans une feuille de calcul Snowflake. Connectez-vous à votre console Snowflake et, sous **Worksheets** (Feuilles de calcul), saisissez les éléments suivants : `select SYSTEM$GET_PRIVATELINK_CONFIG();` 

1. Récupérez les valeurs pour les éléments suivants : `privatelink-account-name`, `privatelink_ocsp-url`, `privatelink-account-url` et `privatelink_ocsp-url` de l’objet JSON résultant. Des exemples de chaque valeur sont repris dans l'extrait suivant. Conservez-les en vue d'une utilisation ultérieure.

   ```
   privatelink-account-name: xxxxxxxx.region.privatelink
   privatelink-vpce-id: com.amazonaws.vpce.region.vpce-svc-xxxxxxxxxxxxxxxxx
   privatelink-account-url: xxxxxxxx.region.privatelink.snowflakecomputing.com
   privatelink_ocsp-url: ocsp.xxxxxxxx.region.privatelink.snowflakecomputing.com
   ```

1. Accédez à votre AWS console et accédez au menu VPC.

1. Dans le volet latéral gauche, cliquez sur le lien **Endpoints** (Points de terminaison) pour accéder à la configuration **VPC Endpoints** (Points de terminaison d'un VPC).

   Une fois là, sélectionner **Create Endpoint** (Créer un point de terminaison). 

1. Sélectionnez la case d’option pour **Rechercher un service par nom**, comme illustré dans la capture d’écran suivante.   
![\[Section Créer un point de terminaison dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-radio.png)

1. Dans le champ **Nom du service**, collez la valeur pour `privatelink-vpce-id` que vous avez récupérée à l’étape précédente et sélectionnez **Vérifier**. 

   Si la connexion est établie, une alerte verte indiquant **Service name found** (Nom du service trouvé) s'affiche sur votre écran et les options **VPC**et **Subnet** (Sous-réseau) sont développées automatiquement, comme illustré dans la capture d'écran suivante. Selon la région ciblée, l’écran résultant peut afficher un autre nom de région AWS .   
![\[Section Créer un point de terminaison dans la console, indiquant que la connexion est réussie.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-service-name-found.png)

1. Sélectionnez le même ID de VPC que celui que vous avez envoyé à Snowflake depuis la liste déroulante **VPC**.

1. Si vous n'avez pas encore créé de sous-réseau, suivez l'ensemble d'instructions suivant lié à la création d'un sous-réseau. 

1. Sélectionnez **Subnets** (Sous-réseaux) depuis la liste déroulante **VPC**. Sélectionnez ensuite **Create subnet** (Créer un sous-réseau) et suivez les invites pour créer un sous-ensemble dans votre VPC. Assurez-vous de sélectionner l’ID du VPC que vous avez envoyé à Snowflake. 

1. Sous **Security Group Configuration** (Configuration du groupe de sécurité), sélectionnez **Create New Security Group** (Créer un nouveau groupe de sécurité) pour ouvrir l'écran par défaut **Security Group** (Groupe de sécurité) dans un nouvel onglet. Dans ce nouvel onglet, sélectionnez **Create Security Group** (Créer un groupe de sécurité). 

1. Donnez un nom au nouveau groupe de sécurité (comme `datawrangler-doc-snowflake-privatelink-connection`) et une description. Assurez-vous de sélectionner l’ID de VPC que vous avez utilisé lors des étapes précédentes. 

1. Ajoutez deux règles pour autoriser le trafic depuis votre VPC vers ce point de terminaison de VPC. 

   Accédez à votre VPC sous **Votre VPCs** dans un onglet séparé, et récupérez le bloc CIDR pour votre VPC. Puis, sélectionnez **Add Rule** (Ajouter une règle) dans la section **Inbound Rules** (Règles entrantes). Sélectionnez `HTTPS` pour le type, laissez la **Source** sur **Custom** (Personnalisé) dans la forme, et collez la valeur extraite de l'appel `describe-vpcs` précédent (comme `10.0.0.0/16`). 

1. Sélectionnez **Create Security Group** (Créer un groupe de sécurité). Récupérez le **Security Group ID** (ID du groupe de sécurité) du groupe de sécurité que vous venez de créer (comme `sg-xxxxxxxxxxxxxxxxx`).

1. Dans l’écran de configuration **Point de terminaison de VPC**, supprimez le groupe de sécurité par défaut. Collez l’ID du groupe de sécurité dans le champ de recherche et cochez la case.  
![\[Section Groupe de sécurité dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-security-group.png)

1. Sélectionnez **Create Endpoint** (Créer un point de terminaison). 

1. Si la création du point de terminaison est réussie, vous voyez apparaître une page contenant un lien vers la configuration de votre point de terminaison de VPC, spécifié par l'ID du VPC. Cliquez sur le lien pour afficher la configuration dans son intégralité.   
![\[Section Détails du point de terminaison.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-success-endpoint.png)

   Récupérez l’enregistrement le plus haut dans la liste des noms DNS. Il peut être différencié des autres noms DNS, car il inclut uniquement le nom de la région (comme `us-west-2`), et aucune lettre pour la zone de disponibilité (comme `us-west-2a`). Conservez-le en vue d’une utilisation ultérieure.

##### Configurer le DNS pour les points de terminaison Snowflake dans votre VPC
<a name="data-wrangler-snowflake-vpc-privatelink-dns"></a>

Cette section explique comment configurer le DNS pour les points de terminaison Snowflake dans votre VPC. Cela permet à votre VPC de résoudre les requêtes vers le point de terminaison Snowflake AWS PrivateLink . 

1. Accédez au [menu Route 53](https://console.aws.amazon.com/route53) dans votre AWS console.

1. Sélectionnez l'option **Hosted Zones** (Zones hébergées) (si nécessaire, développez le menu de gauche pour trouver cette option).

1. Choisissez **Create Hosted Zone** (Créer une zone hébergée).

   1. Dans le champ **Domain name** (Nom de domaine), référencez la valeur qui avait été stockée pour `privatelink-account-url` dans les étapes précédentes. Dans ce champ, votre ID de compte Snowflake est supprimé du nom du DNS et utilise uniquement la valeur commençant par l'identificateur de région. Un **Resource Record Set** (Jeu d'enregistrements de ressources) est également créé ultérieurement pour le sous-domaine, comme `region.privatelink.snowflakecomputing.com`.

   1. Sélectionnez la case d'option pour **Private Hosted Zone** (Zone hébergée privée) dans la section **Type**. Votre code de région peut ne pas être `us-west-2`. Faites référence au nom DNS qui vous a été renvoyé par Snowflake.  
![\[Page Créer une zone hébergée dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-create-hosted-zone.png)

   1. Dans la section **VPCs à associer à la zone hébergée**, sélectionnez la région dans laquelle se trouve votre VPC et l'ID de VPC utilisé lors des étapes précédentes.  
![\[La section VPCs à associer à la zone hébergée dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-vpc-hosted-zone.png)

   1. Choisissez **Create Hosted Zone** (Créer une zone hébergée).

1. Ensuite, créez deux enregistrements, un pour `privatelink-account-url` et un pour `privatelink_ocsp-url`.
   + Dans le menu **Hosted Zone** (Zone hébergée), choisissez **Create Record Set** (Créer un jeu d'enregistrements).

     1. Sous **Record name** (Nom de l'enregistrement), saisissez votre ID de compte Snowflake uniquement (les 8 premiers caractères dans `privatelink-account-url`).

     1. Sous **Record type** (Type d'enregistrement), sélectionnez **CNAME**.

     1. Sous **Valeur**, saisissez le nom DNS du point de terminaison de VPC régional que vous avez récupéré à la dernière étape de la section *Configurer l’intégration Snowflake AWS PrivateLink *.   
![\[Section Créer rapidement un enregistrement dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-quick-create-record.png)

     1. Choisissez **Create records** (Créer des registres).

     1. Répétez les étapes précédentes pour l’enregistrement OCSP que nous avons noté comme `privatelink-ocsp-url`, en commençant par `ocsp` jusqu’à l’ID Snowflake à 8 caractères pour le nom de l’enregistrement (comme `ocsp.xxxxxxxx`).  
![\[Section Créer rapidement un enregistrement dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-quick-create-ocsp.png)

##### Configurer le point de terminaison entrant du résolveur Route 53 pour votre VPC
<a name="data-wrangler-snowflake-vpc-privatelink-route53"></a>

Cette section explique comment configurer les points de terminaison entrants des résolveurs Route 53 pour votre VPC.

1. Accédez au [menu Route 53](https://console.aws.amazon.com/route53) dans votre AWS console.
   + Dans le volet de gauche de la section **Security** (Sécurité), sélectionnez l'option **Security Groups** (Groupes de sécurité).

1. Sélectionnez **Create Security Group** (Créer un groupe de sécurité). 
   + Fournissez un nom pour votre groupe de sécurité (comme `datawranger-doc-route53-resolver-sg`) et une description.
   + Sélectionnez l’ID de VPC utilisé lors des étapes précédentes.
   + Créez des règles qui autorisent le DNS sur UDP et TCP à partir du bloc CIDR VPC.   
![\[Section Règles entrantes dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-inbound-rules.png)
   + Sélectionnez **Create Security Group** (Créer un groupe de sécurité). Notez le **Security Group ID** (ID du groupe de sécurité), car il ajoute une règle pour autoriser le trafic vers le groupe de sécurité de point de terminaison de VPC.

1. Accédez au [menu Route 53](https://console.aws.amazon.com/route53) dans votre AWS console.
   + Dans la section **Resolver** (Résolveur), sélectionnez l'option **Inbound Endpoint** (Point de terminaison entrant).

1. Choisissez **Create inbound endpoint** (Créer un point de terminaison entrant). 
   + Donnez un nom au point de terminaison.
   + Depuis la liste déroulante **VPC in the Region** (VPC dans la région), sélectionnez l'ID de VPC que vous avez utilisé dans toutes les étapes précédentes. 
   + Dans la liste déroulante **Security group for this endpoint** (Groupe de sécurité pour ce point de terminaison), sélectionnez l’ID du groupe de sécurité de l’étape 2 de cette section.   
![\[Section Paramètres généraux de point de terminaison entrant dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-inbound-endpoint.png)
   + Dans la section **IP Address** (Adresse IP), sélectionnez une zone de disponibilité, sélectionnez un sous-réseau, et laissez la case d’option pour **Use an IP address that is selected automatically** (Utiliser une adresse IP sélectionnée automatiquement) sélectionnée pour chaque adresse IP.   
![\[Section Adresse IP dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-ip-address-1.png)
   + Sélectionnez **Soumettre**.

1. Sélectionnez le **Inbound endpoint** (Point de terminaison entrant) après sa création.

1. Une fois le point de terminaison entrant créé, notez les deux adresses IP des résolveurs.  
![\[Section Adresses IP dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/snowflake-ip-addresses-2.png)

##### SageMaker Points de terminaison VPC AI
<a name="data-wrangler-snowflake-sagemaker-vpc-endpoints"></a>

 Cette section explique comment créer des points de terminaison VPC pour les applications suivantes : Amazon SageMaker Studio Classic, SageMaker Notebooks, l' SageMaker API, SageMaker Runtime Runtime et Amazon SageMaker Feature Store Runtime.

**Créer un groupe de sécurité qui est appliqué à tous les points de terminaison.**

1. Accédez au [menu EC2](https://console.aws.amazon.com/ec2) dans la AWS console.

1. Sélectionnez l'option **Security groups** (Groupes de sécurité) dans la section **Network & Security** (Réseau et sécurité).

1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Fournissez un nom (comme `datawrangler-doc-sagemaker-vpce-sg`) et une description au groupe de sécurité. Une règle est ajoutée ultérieurement pour autoriser le trafic HTTPS depuis SageMaker AI vers ce groupe. 

**Création des points de terminaison**

1. Accédez au [menu VPC](https://console.aws.amazon.com/vpc) de la AWS console.

1. Sélectionnez l'option **Endpoints** (Points de terminaison).

1. Choisissez **Créer un point de terminaison**.

1. Recherchez le service en saisissant son nom dans le champ **Search** (Recherche).

1. Dans la liste déroulante **VPC**, sélectionnez le VPC dans lequel votre connexion Snowflake existe. AWS PrivateLink 

1. Dans la section **Sous-réseaux**, sélectionnez les sous-réseaux qui ont accès à la connexion PrivateLink Snowflake.

1. Laissez la case **Enable DNS Name** (Activer le nom DNS) sélectionnée.

1. Dans la section **Security Groups** (Groupes de sécurité), sélectionnez le groupe de sécurité créé dans la section précédente.

1. Choisissez **Créer un point de terminaison**.

**Configuration de Studio Classic et Data Wrangler**

Cette section explique comment configurer Studio Classic et Data Wrangler.

1. Configurez le groupe de sécurité.

   1. Accédez au menu Amazon EC2 dans la AWS console.

   1. Sélectionnez l'option **Security Groups** (Groupes de sécurité) dans la section **Network & Security** (Réseau et sécurité).

   1. Sélectionnez **Create Security Group** (Créer un groupe de sécurité). 

   1. Fournissez un nom (comme `datawrangler-doc-sagemaker-studio`) et une description à votre groupe de sécurité. 

   1. Créez les règles entrantes suivantes.
      + La connexion HTTPS au groupe de sécurité que vous avez configuré pour la PrivateLink connexion Snowflake que vous avez créée à l'étape *Configurer l'intégration PrivateLink Snowflake*.
      + La connexion HTTP au groupe de sécurité que vous avez configuré pour la PrivateLink connexion Snowflake que vous avez créée à l'étape *Configurer l'intégration PrivateLink Snowflake*.
      + Le groupe de sécurité UDP et TCP pour DNS (port 53) vers le groupe de sécurité de point de terminaison entrant du résolveur Route 53 que vous créez à l'étape 2 de *Configuration du point de terminaison entrant du résolveur Route 53 pour votre VPC*.

   1. Cliquez sur le bouton **Create Security Group** (Créer un groupe de sécurité) dans le coin inférieur droit.

1. Configurez Studio Classic.
   + Accédez au menu SageMaker AI de la AWS console.
   + Sur la console de gauche, sélectionnez l'option **SageMaker AI Studio Classic**.
   + Si aucun domaine n’est configuré, le menu **Get Started** (Démarrer) apparaît.
   + Sélectionnez l'option **Standard Setup** (Configuration standard) dans le menu **Get Started** (Démarrer).
   + Sous **Authentication method** (Méthode d'authentification), sélectionnez **AWS Identity and Access Management (IAM)**.
   + Depuis le menu **Permissions** (Autorisations), vous pouvez créer un nouveau rôle ou utiliser un rôle préexistant, selon votre cas d'utilisation.
     + Si vous avez choisi **Create a new role** (Créer un nouveau rôle), vous avez la possibilité de fournir un nom de compartiment S3, et une politique est générée pour vous.
     + Si vous disposez déjà d'un rôle créé avec des autorisations pour les compartiments S3 auxquels vous devez accéder, sélectionnez-le dans la liste déroulante. Ce rôle doit être associé à la politique `AmazonSageMakerFullAccess`.
   + Sélectionnez la liste déroulante **Réseau et stockage** pour configurer le VPC, la sécurité et les SageMaker sous-réseaux utilisés par l'IA.
     + Sous **VPC**, sélectionnez le VPC dans lequel votre connexion Snowflake existe. PrivateLink 
     + Sous **Sous-réseau (s)**, sélectionnez les sous-réseaux qui ont accès à la connexion PrivateLink Snowflake.
     + Sous **Accès réseau pour Studio Classic**, sélectionnez **VPC uniquement**.
     + Sous **Groupe(s) de sécurité**, sélectionnez le groupe de sécurité que vous avez créé à l’étape 1.
   + Sélectionnez **Soumettre**.

1. Modifiez le groupe de sécurité SageMaker AI.
   + Créez les règles entrantes suivantes :
     + Port 2049 vers les groupes de sécurité NFS entrants et sortants créés automatiquement par SageMaker AI à l'étape 2 (les noms des groupes de sécurité contiennent l'ID de domaine Studio Classic).
     + Accès à tous les ports TCP pour lui-même (requis pour SageMaker AI pour VPC uniquement).

1. Modifiez les groupes de sécurité des points de terminaison VPC :
   + Accédez au menu Amazon EC2 dans la AWS console.
   + Localisez le groupe de sécurité que vous avez créé à l'étape précédente.
   + Ajoutez une règle de trafic entrant autorisant le trafic HTTPS à partir du groupe de sécurité créé à l'étape 1.

1. Créez un profil utilisateur.
   + Dans le **panneau de configuration de SageMaker Studio Classic**, choisissez **Ajouter un utilisateur**.
   + Indiquez un nom d’utilisateur. 
   + Pour **Execution role (Rôle d’exécution)**, choisissez de créer un rôle ou d’en utiliser un existant.
     + Si vous avez choisi **Create a new role** (Créer un nouveau rôle), vous avez la possibilité de fournir un nom de compartiment Amazon S3, et une politique est générée pour vous.
     + Si vous disposez déjà d'un rôle créé avec des autorisations sur les compartiments Amazon S3 auxquels vous devez accéder, sélectionnez-le dans la liste déroulante. Ce rôle doit être associé à la politique `AmazonSageMakerFullAccess`.
   + Sélectionnez **Soumettre**. 

1. Créez un flux de données (suivez le Guide du scientifique des données repris dans une section précédente). 
   + Lorsque vous ajoutez une connexion Snowflake, entrez la valeur de `privatelink-account-name` (à partir de l'étape *Configurer l' PrivateLinkintégration Snowflake*) dans le champ du nom du compte **Snowflake (alphanumérique), au lieu du nom de compte** Snowflake ordinaire. Tout le reste est laissé inchangé.

#### Fournir des informations au scientifique des données
<a name="data-wrangler-snowflake-admin-ds-info"></a>

Fournissez au data scientist les informations dont il a besoin pour accéder à Snowflake depuis Amazon SageMaker AI Data Wrangler.

**Important**  
Vos utilisateurs doivent exécuter Amazon SageMaker Studio Classic version 1.3.0 ou ultérieure. Pour en savoir plus sur la vérification de la version de Studio Classic et sa mise à jour, consultez [Préparez les données ML avec Amazon SageMaker Data Wrangler](data-wrangler.md).

1. Pour permettre à votre data scientist d'accéder à Snowflake depuis SageMaker Data Wrangler, fournissez-lui l'un des éléments suivants :
   + Pour l'Authentification de base, un nom de compte Snowflake, un nom d'utilisateur et un mot de passe.
   + Pour OAuth, un nom d'utilisateur et un mot de passe dans le fournisseur d'identité.
   + Pour ARN, l'Amazon Resource Name (ARN) du secret Secrets Manager.
   + Un secret créé avec [AWS  Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) et l’ARN du secret. Utilisez la procédure ci-dessous pour créer le secret pour Snowflake si vous choisissez cette option.
**Important**  
Si vos scientifiques des données utilisent l'option **Informations d'identification Snowflake [Nom d'utilisateur et mot de passe]** pour s'y connecter, notez que [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) permet de stocker les informations d'identification dans un secret. Secrets Manager procède à une rotation des secrets dans le cadre d’un plan de sécurité des bonnes pratiques. Le secret créé dans Secrets Manager n’est accessible qu’avec le rôle Studio Classic configuré lorsque vous paramétrez le profil utilisateur Studio Classic. Cela exige que vous ajoutiez cette autorisation, `secretsmanager:PutResourcePolicy`, à la politique qui est attachée à votre rôle Studio Classic.  
Il est fortement recommandé d’étendre la politique de rôle afin d’utiliser différents rôles pour différents groupes d’utilisateurs de Studio Classic. Vous pouvez ajouter des autorisations supplémentaires basées sur les ressources pour les secrets de Secrets Manager. Consultez [Gestion de politique de secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_secret-policy.html) pour connaître les clés de condition que vous pouvez utiliser.  
Pour plus d'informations sur la création d'un secret, consultez [Création d'un secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). Vous êtes facturés pour les secrets que vous créez.

1. (Facultatif) Fournissez au scientifique des données le nom de l'intégration de stockage que vous avez créée à l'aide de la procédure suivante : [Créer une intégration de stockage dans le cloud dans Snowflake](                                      https://docs.snowflake.com/en/user-guide/data-load-s3-config-storage-integration.html#step-3-create-a-cloud-storage-integration-in-snowflake). Il s’agit du nom de la nouvelle intégration, appelée `integration_name` dans la commande SQL `CREATE INTEGRATION` que vous avez exécutée, et qui est affichée dans l’extrait suivant : 

   ```
     CREATE STORAGE INTEGRATION integration_name
     TYPE = EXTERNAL_STAGE
     STORAGE_PROVIDER = S3
     ENABLED = TRUE
     STORAGE_AWS_ROLE_ARN = 'iam_role'
     [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ]
     STORAGE_ALLOWED_LOCATIONS = ('s3://bucket/path/', 's3://bucket/path/')
     [ STORAGE_BLOCKED_LOCATIONS = ('s3://bucket/path/', 's3://bucket/path/') ]
   ```

### Guide des scientifiques des données
<a name="data-wrangler-snowflake-ds"></a>

Utilisez ce qui suit pour connecter Salesforce et accéder à vos données dans Data Wrangler.

**Important**  
Votre administrateur doit utiliser les informations des sections précédentes pour configurer Snowflake. Si vous rencontrez des problèmes, contactez-les pour obtenir de l'aide.

Vous pouvez vous connecter à Snowflake de l'une des manières suivantes :
+ En spécifiant vos informations d'identification Snowflake (nom du compte, nom d'utilisateur et mot de passe) dans Data Wrangler. 
+ En fournissant l'Amazon Resource Name (ARN) du secret contenant les informations d'identification.
+ Utilisation d'un standard ouvert pour le fournisseur de délégation d'accès (OAuth) qui se connecte à Snowflake. Votre administrateur peut vous donner accès à l'un des OAuth fournisseurs suivants :
  + [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
  + [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
  + [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

Discutez avec votre administrateur de la méthode à utiliser pour vous connecter à Snowflake.

Les sections suivantes contiennent des informations sur la façon dont vous pouvez vous connecter à Snowflake à l'aide des méthodes précédentes.

------
#### [ Specifying your Snowflake Credentials ]

**Pour importer un jeu de données dans Data Wrangler depuis Snowflake à l’aide de vos informations d’identification**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Disponible**, choisissez **Snowflake**.

1. Pour **Nom de la connexion**, spécifiez un nom qui identifie la connexion de manière unique.

1. Pour **Méthode d'authentification**, choisissez **Nom d'utilisateur et mot de passe de base**.

1. Pour **Nom du compte Snowflake (alphanumérique)**, spécifiez le nom complet du compte Snowflake.

1. Pour **Nom d'utilisateur**, spécifiez le nom d'utilisateur que vous utilisez pour accéder au compte Snowflake.

1. Pour **Mot de passe**, spécifiez le mot de passe associé au nom d'utilisateur.

1. (Facultatif) Pour **Paramètres avancés**, spécifiez les éléments suivants :
   + **Rôle** : un rôle dans Snowflake. Certains rôles ont accès à différents jeux de données. Si vous ne spécifiez aucun rôle, Data Wrangler utilise le rôle par défaut dans votre compte Snowflake.
   + **Intégration de stockage** : lorsque vous spécifiez et exécutez une requête, Data Wrangler crée une copie temporaire des résultats de la requête en mémoire. Pour stocker une copie permanente des résultats de la requête, spécifiez l'emplacement Amazon S3 pour l'intégration du stockage. Votre administrateur vous a fourni l'URI S3.
   + **ID de clé KMS** : clé KMS que vous avez créée. Vous pouvez spécifier son ARN pour chiffrer la sortie de la requête Snowflake. Sinon, Data Wrangler utilise le chiffrement par défaut.

1. Choisissez **Se connecter**.

------
#### [ Providing an Amazon Resource Name (ARN) ]

**Pour importer un jeu de données dans Data Wrangler depuis Snowflake à l’aide d’un ARN**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Disponible**, choisissez **Snowflake**.

1. Pour **Nom de la connexion**, spécifiez un nom qui identifie la connexion de manière unique.

1. Pour **Méthode d'authentification**, choisissez **ARN**.

1. **Secrets Manager ARN** — L'ARN du AWS Secrets Manager secret utilisé pour stocker les informations d'identification utilisées pour se connecter à Snowflake.

1. (Facultatif) Pour **Paramètres avancés**, spécifiez les éléments suivants :
   + **Rôle** : un rôle dans Snowflake. Certains rôles ont accès à différents jeux de données. Si vous ne spécifiez aucun rôle, Data Wrangler utilise le rôle par défaut dans votre compte Snowflake.
   + **Intégration de stockage** : lorsque vous spécifiez et exécutez une requête, Data Wrangler crée une copie temporaire des résultats de la requête en mémoire. Pour stocker une copie permanente des résultats de la requête, spécifiez l'emplacement Amazon S3 pour l'intégration du stockage. Votre administrateur vous a fourni l'URI S3.
   + **ID de clé KMS** : clé KMS que vous avez créée. Vous pouvez spécifier son ARN pour chiffrer la sortie de la requête Snowflake. Sinon, Data Wrangler utilise le chiffrement par défaut.

1. Choisissez **Se connecter**.

------
#### [ Using an OAuth Connection ]

**Important**  
Votre administrateur a personnalisé votre environnement Studio Classic afin de fournir les fonctionnalités que vous utilisez pour utiliser une OAuth connexion. Vous devrez peut-être redémarrer l’application serveur Jupyter pour utiliser la fonctionnalité.  
Suivez la procédure ci-dessous pour mettre à jour l’application serveur Jupyter.  
Dans Studio Classic, choisissez **Fichier**.
Choisissez **Arrêter**.
Choisissez **Arrêter le serveur**.
Fermez l’onglet ou la fenêtre que vous utilisez pour accéder à Studio Classic.
Depuis la console Amazon SageMaker AI, ouvrez Studio Classic.

**Pour importer un jeu de données dans Data Wrangler depuis Snowflake à l’aide de vos informations d’identification**

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Disponible**, choisissez **Snowflake**.

1. Pour **Nom de la connexion**, spécifiez un nom qui identifie la connexion de manière unique.

1. Pour **Méthode d'authentification**, choisissez **OAuth**.

1. (Facultatif) Pour **Paramètres avancés**, spécifiez les éléments suivants :
   + **Rôle** : un rôle dans Snowflake. Certains rôles ont accès à différents jeux de données. Si vous ne spécifiez aucun rôle, Data Wrangler utilise le rôle par défaut dans votre compte Snowflake.
   + **Intégration de stockage** : lorsque vous spécifiez et exécutez une requête, Data Wrangler crée une copie temporaire des résultats de la requête en mémoire. Pour stocker une copie permanente des résultats de la requête, spécifiez l'emplacement Amazon S3 pour l'intégration du stockage. Votre administrateur vous a fourni l'URI S3.
   + **ID de clé KMS** : clé KMS que vous avez créée. Vous pouvez spécifier son ARN pour chiffrer la sortie de la requête Snowflake. Sinon, Data Wrangler utilise le chiffrement par défaut.

1. Choisissez **Se connecter**.

------

Vous pouvez commencer le processus d'importation de vos données depuis Snowflake une fois que vous vous y êtes connecté.

Dans Data Wrangler, vous pouvez consulter vos entrepôts des données, vos bases de données et vos schémas, ainsi que l'icône en forme d'œil avec laquelle vous pouvez prévisualiser votre table. Une fois que vous avez sélectionné l'icône **Aperçu de la table**, l'aperçu du schéma de cette table est généré. Vous devez sélectionner un entrepôt avant de pouvoir prévisualiser une table.

**Important**  
Si vous importez un jeu de données avec des colonnes de type `TIMESTAMP_TZ` ou `TIMESTAMP_LTZ`, ajoutez `::string` aux noms de colonnes de votre requête. Pour plus d’informations, consultez [Procédure : décharger les données TIMESTAMP\$1TZ et TIMESTAMP\$1LTZ dans un fichier Parquet](https://community.snowflake.com/s/article/How-To-Unload-Timestamp-data-in-a-Parquet-file).

Après avoir sélectionné un entrepôt des données, une base de données et un schéma, vous pouvez écrire des requêtes et les exécuter. La sortie de votre requête s'affichera sous **Résultats de la requête**.

Une fois que vous avez réglé la sortie de votre requête, vous pouvez l'importer dans un flux Data Wrangler pour effectuer des transformations de données. 

Après avoir importé vos données, accédez à votre flux Data Wrangler et commencez à y ajouter des transformations. Pour une liste des transformations disponibles, consultez [Transformation de données](data-wrangler-transform.md).

## Importer des données à partir de plateformes de logiciel en tant que service (SaaS)
<a name="data-wrangler-import-saas"></a>

Vous pouvez utiliser Data Wrangler pour importer des données à partir de plus de 40 plateformes de logiciel en tant que service (SaaS). Pour importer vos données depuis votre plateforme SaaS, vous ou votre administrateur devez utiliser Amazon AppFlow pour transférer les données de la plateforme vers Amazon S3 ou Amazon Redshift. Pour plus d'informations sur Amazon AppFlow, consultez [Qu'est-ce qu'Amazon AppFlow ?](https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html) Si vous n'avez pas besoin d'utiliser Amazon Redshift, nous vous recommandons de transférer les données vers Amazon S3 pour simplifier le processus.

Data Wrangler prend en charge le transfert de données à partir des plateformes SaaS suivantes :
+ [Amplitude](https://docs.aws.amazon.com/appflow/latest/userguide/amplitude.html)
+ [Asana](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-asana.html)
+ [Braintree](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-braintree.html)
+ [CircleCI](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-circleci.html)
+ Surveiller
+ [Delighted](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-delighted.html)
+ [Domo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-domo.html)
+ [Datadog](https://docs.aws.amazon.com/appflow/latest/userguide/datadog.html)
+ [Dynatrace](https://docs.aws.amazon.com/appflow/latest/userguide/dynatrace.html)
+ [Facebook Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-ads.html)
+ [Facebook Page Insights](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-page-insights.html)
+ [Google Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-ads.html)
+ [Google Analytics 4](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-analytics-4.html)
+ [Google Calendar](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-calendar.html)
+ [Google Search Console](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-search-console.html)
+ [GitHub](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-github.html)
+ [GitLab](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-gitlab.html)
+ [Infor Nexus](https://docs.aws.amazon.com/appflow/latest/userguide/infor-nexus.html)
+ [Instagram Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-instagram-ads.html)
+ [Intercom](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-intercom.html)
+ [JDBC (Sync)](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jdbc.html)
+ [Jira Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jira-cloud.html)
+ [LinkedIn Publicités](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html)
+ [Mailchimp](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mailchimp.html)
+ [Marketo](https://docs.aws.amazon.com/appflow/latest/userguide/marketo.html)
+ [Microsoft Dynamics 365](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-dynamics-365.html)
+ [Microsoft Teams](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-teams.html)
+ [Mixpanel](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mixpanel.html)
+ [Okta](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-okta.html)
+ [Oracle HCM](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-oracle-hcm.html)
+ [Paypal Checkout](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-paypal.html)
+ [Pendo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-pendo.html)
+ [Salesforce](https://docs.aws.amazon.com/appflow/latest/userguide/salesforce.html)
+ [Salesforce Marketing Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-salesforce-marketing-cloud.html)
+ [Salesforce Pardot](https://docs.aws.amazon.com/appflow/latest/userguide/pardot.html)
+ [SAP OData](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html)
+ [SendGrid](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-sendgrid.html)
+ [ServiceNow](https://docs.aws.amazon.com/appflow/latest/userguide/servicenow.html)
+ [Singular](https://docs.aws.amazon.com/appflow/latest/userguide/singular.html)
+ [Slack](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html)
+ [Smartsheet](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-smartsheet.html)
+ [Snapchat Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-snapchat-ads.html)
+ [Stripe](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-stripe.html)
+ [Trend Micro](https://docs.aws.amazon.com/appflow/latest/userguide/trend-micro.html)
+ [Typeform](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-typeform.html)
+ [Veeva](https://docs.aws.amazon.com/appflow/latest/userguide/veeva.html)
+ [WooCommerce](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-woocommerce.html)
+ [Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html)
+ [Zendesk Chat](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-chat.html)
+ [Zendesk Sell](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sell.html)
+ [Zendesk Sunshine](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sunshine.html)
+ [Zoho CRM](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoho-crm.html)
+ [Zoom Meetings](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoom-meetings.html)

La liste précédente contient des liens vers des informations supplémentaires sur la configuration de votre source de données. Vous ou votre administrateur pouvez consulter les liens précédents après avoir lu les informations suivantes.

Lorsque vous accédez à l'onglet **Import** (Importer) de votre flux Data Wrangler, les sources de données s'affichent dans les sections suivantes :
+ **Disponible**
+ **Configurer des sources de données**

Vous pouvez vous connecter à des sources de données sous **Available** (Disponible) sans avoir besoin d'une configuration supplémentaire. Vous pouvez choisir la source de données et importer vos données.

Sources de données sous **Configuration des sources de données**, vous ou votre administrateur devez utiliser Amazon AppFlow pour transférer les données de la plateforme SaaS vers Amazon S3 ou Amazon Redshift. Pour plus d’informations sur les transferts, consultez [Utiliser Amazon AppFlow pour transférer vos données](#data-wrangler-import-saas-transfer).

Une fois le transfert de données effectué, la plateforme SaaS apparaît en tant que source de données sous **Available** (Disponible). Vous pouvez la choisir et importer les données que vous avez transférées dans Data Wrangler. Les données que vous avez transférées apparaissent sous forme de tables que vous pouvez interroger.

### Utiliser Amazon AppFlow pour transférer vos données
<a name="data-wrangler-import-saas-transfer"></a>

Amazon AppFlow est une plateforme que vous pouvez utiliser pour transférer des données de votre plateforme SaaS vers Amazon S3 ou Amazon Redshift sans avoir à écrire de code. Pour effectuer un transfert de données, utilisez la AWS Management Console.

**Important**  
Vous devez vous assurer d'avoir configuré les autorisations nécessaires pour effectuer un transfert de données. Pour de plus amples informations, veuillez consulter [AppFlow Autorisations Amazon](data-wrangler-security.md#data-wrangler-appflow-permissions).

Après avoir ajouté des autorisations, vous pouvez transférer les données. Au sein d'Amazon AppFlow, vous créez un *flux* pour transférer les données. Un flux est une série de configurations. Vous pouvez l'utiliser pour spécifier si vous exécutez le transfert de données selon un calendrier ou si vous partitionnez les données dans des fichiers distincts. Après avoir configuré le flux, vous pouvez l'exécuter pour transférer les données.

Pour plus d'informations sur la création d'un flux, consultez [Création de flux dans Amazon AppFlow](https://docs.aws.amazon.com/appflow/latest/userguide/create-flow.html). Pour plus d'informations sur l'exécution d'un flux, consultez [Activer un AppFlow flux Amazon](https://docs.aws.amazon.com/appflow/latest/userguide/run-flow.html).

Une fois les données transférées, utilisez la procédure suivante pour accéder aux données dans Data Wrangler.
**Important**  
Avant d'essayer d'accéder à vos données, assurez-vous que votre rôle IAM respecte la politique suivante :  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "glue:SearchTables",
            "Resource": [
                "arn:aws:glue:*:*:table/*/*",
                "arn:aws:glue:*:*:database/*",
                "arn:aws:glue:*:*:catalog"
            ]
        }
    ]
}
```
Par défaut, le rôle IAM que vous utilisez pour accéder à Data Wrangler est le `SageMakerExecutionRole`. Pour plus d’informations sur l’ajout de politiques, consultez [Ajouter des autorisations d’identité IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

Pour vous connecter à une source de données, procédez comme suit.

1. Connectez-vous à [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker).

1. Choisissez **Studio**.

1. Choisissez **Lancer l’application**.

1. Dans la liste déroulante, sélectionnez **Studio**.

1. Choisissez l'icône d'accueil.

1. Choisissez **Données**.

1. Choisissez **Data Wrangler**.

1. Choisissez **Importer les données**.

1. Sous **Available** (Disponible), sélectionnez la source de données.

1. Dans le champ **Name** (Nom), spécifiez le nom de la connexion.

1. (Facultatif) Choisissez Advanced configuration (Configuration avancée).

   1. Choisissez un **Groupe de travail**.

   1. Si votre groupe de travail n’a pas appliqué l’emplacement de sortie Amazon S3 ou si vous n’avez pas utilisé un groupe de travail, spécifiez une valeur pour **Emplacement Amazon S3 des résultats des requêtes**.

   1. (Facultatif) Pour la zone **Data retention period** (Durée de conservation des données), cochez la case permettant de définir une durée de conservation des données et spécifiez le nombre de jours pendant lesquels les données doivent être stockées avant leur suppression.

   1. (Facultatif) Par défaut, Data Wrangler enregistre la connexion. Vous pouvez choisir de désélectionner la case à cocher et de ne pas enregistrer la connexion.

1. Choisissez **Se connecter**.

1. Spécifiez une requête.
**Note**  
Pour vous aider à définir une requête, vous pouvez sélectionner un tableau dans le panneau de navigation de gauche. Data Wrangler affiche le nom et un aperçu du tableau. Choisissez l'icône en regard du nom du tableau pour copier son nom. Vous pouvez utiliser le nom du tableau dans la requête.

1. Cliquez sur **Exécuter**.

1. Choisissez **Import query** (Importer une requête).

1. Dans **Dataset name** (Nom du jeu de données), indiquez le nom du jeu de données.

1. Choisissez **Ajouter**.

Lorsque vous accédez à l'écran **Import data** (Importer des données), vous pouvez voir la connexion que vous avez créée. Vous pouvez utiliser la connexion pour importer davantage de données.

## Stockage des données importées
<a name="data-wrangler-import-storage"></a>

**Important**  
 Nous vous recommandons vivement de suivre les bonnes pratiques en matière de protection de votre compartiment Amazon S3 en suivant les [bonnes pratiques de sécurité](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html). 

Lorsque vous interrogez des données depuis Amazon Athena ou Amazon Redshift, le jeu de données interrogé est automatiquement stocké dans Amazon S3. Les données sont stockées dans le compartiment SageMaker AI S3 par défaut de la AWS région dans laquelle vous utilisez Studio Classic.

Les compartiments S3 par défaut ont la convention de dénomination suivante : `sagemaker-region-account number`. Par exemple, si votre numéro de compte est 111122223333 et que vous utilisez Studio Classic dans la région `us-east-1`, vos jeux de données importés sont stockés dans `sagemaker-us-east-1-`111122223333. 

 Les flux Data Wrangler dépendent de cet emplacement de jeu de données Amazon S3, vous ne devez donc pas modifier ce jeu de données dans Amazon S3 lorsque vous utilisez un flux dépendant. Si vous modifiez cet emplacement S3 et que vous souhaitez continuer à utiliser votre flux de données, vous devez supprimer tous les objets dans `trained_parameters` dans votre fichier .flow. Pour ce faire, téléchargez le fichier .flow depuis Studio Classic et supprimez toutes les entrées pour chaque instance de `trained_parameters`. Lorsque vous avez terminé, `trained_parameters` doit être un objet JSON vide :

```
"trained_parameters": {}
```

Lorsque vous exportez et utilisez votre flux de données pour traiter vos données, le fichier .flow que vous exportez fait référence à ce jeu de données dans Amazon S3. Consultez les sections suivantes pour en apprendre plus. 

### Stockage d’importation Amazon Redshift
<a name="data-wrangler-import-storage-redshift"></a>

Data Wrangler stocke les ensembles de données résultant de votre requête dans un fichier Parquet de votre bucket SageMaker AI S3 par défaut. 

Ce fichier est stocké sous le préfixe (répertoire) suivant : redshift/ *uuid* /data/, où se *uuid* trouve un identifiant unique créé pour chaque requête. 

Par exemple, si votre compartiment par défaut est`sagemaker-us-east-1-111122223333`, un seul ensemble de données demandé par Amazon Redshift se trouve dans s3 ://-1-111122223333/redshift/ /data/. sagemaker-us-east *uuid*

### Stockage d'importation Amazon Athena
<a name="data-wrangler-import-storage-athena"></a>

Lorsque vous interrogez une base de données Athena et importez un jeu de données, Data Wrangler stocke le jeu de données, ainsi qu'un sous-ensemble de ce jeu de données, ou *preview files (aperçu des fichiers)*, dans Amazon S3. 

Le jeu de données que vous importez en sélectionnant **Import dataset (Importer un jeu de données)** est stocké au format Parquet dans Amazon S3. 

Les fichiers d'aperçu sont écrits au format CSV lorsque vous cliquez sur **Run (Exécuter)** sur l'écran d'importation Athena et contiennent jusqu'à 100 lignes de votre jeu de données interrogé. 

L'ensemble de données que vous interrogez se trouve sous le préfixe (répertoire) : athena/ *uuid* /data/, où se *uuid* trouve un identifiant unique créé pour chaque requête.

Par exemple, si votre bucket par défaut est`sagemaker-us-east-1-111122223333`, un seul ensemble de données interrogé par Athena se trouve dans /athena/ /data/. `s3://sagemaker-us-east-1-111122223333` *uuid* *example\$1dataset.parquet*

Le sous-ensemble du jeu de données stocké pour prévisualiser les fichiers de données dans Data Wrangler est stocké sous le préfixe athena/.

# Créer et utiliser un flux Data Wrangler
<a name="data-wrangler-data-flow"></a>

Utilisez un flux Amazon SageMaker Data Wrangler, ou un flux de *données*, pour créer et modifier un pipeline de préparation des données. Le flux de données relie les jeux de données, les transformations et les analyses (ou *étapes*) que vous créez, et peut être utilisé pour définir votre pipeline. 

## instances
<a name="data-wrangler-data-flow-instances"></a>

Lorsque vous créez un flux Data Wrangler dans Amazon SageMaker Studio Classic, Data Wrangler utilise une instance Amazon EC2 pour exécuter les analyses et les transformations de votre flux. Par défaut, Data Wrangler utilise l’instance m5.4xlarge. Les instances m5 sont des instances polyvalentes qui fournissent un équilibre entre le calcul et la mémoire. Vous pouvez utiliser des instances m5 pour diverses charges de travail de calcul.

Data Wrangler vous permet également d'utiliser des instances r5. Les instances r5 sont conçues pour offrir des performances rapides afin de traiter des jeux de données volumineux en mémoire.

Nous vous recommandons de choisir l’instance la mieux optimisée en fonction de vos charges de travail. Par exemple, l'instance r5.8xlarge peut être plus coûteuse que l'instance m5.4xlarge, mais elle sera peut-être mieux optimisée pour vos charges de travail. Avec des instances mieux optimisées, vous pouvez exécuter vos flux de données en moins de temps à moindre coût.

Le tableau suivant présente les instances que vous pouvez utiliser pour exécuter votre flux Data Wrangler.


| Instances standard | vCPU | Mémoire | 
| --- | --- | --- | 
| ml.m5.4xlarge | 16 | 64 Go | 
| ml.m5.8xlarge | 32 | 128 Gio | 
| ml.m5.16xlarge | 64 |  256 Gio  | 
| ml.m5.24xlarge | 96 | 384 Go | 
| r5.4xlarge | 16 | 128 Gio | 
| r5.8xlarge | 32 | 256 Gio | 
| r5.24xlarge | 96 | 768 Gio | 

Pour plus d'informations sur les instances r5, consultez [Instances Amazon EC2 R5](https://aws.amazon.com/ec2/instance-types/r5/). Pour plus d’informations sur les instances m5, consultez [Instances Amazon EC2 M5](https://aws.amazon.com/ec2/instance-types/m5/).

Chaque flux Data Wrangler est associé à une instance Amazon EC2. Il se peut que plusieurs flux soient associés à une seule instance.

Pour chaque fichier de flux, vous pouvez changer de type d'instance en toute transparente. Si vous changez de type d'instance, l'instance que vous avez utilisée pour exécuter le flux continue de s'exécuter.

Pour changer le type d’instance de votre flux, procédez comme suit.

1. Choisissez l’icône **Exécution des terminaux et des noyaux** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)).

1. Accédez à l’instance que vous utilisez et choisissez-la.

1. Choisissez le type d’instance que vous souhaitez utiliser.  
![\[Exemple montrant comment choisir une instance dans la page de flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-instance-switching-list-instances.png)

1. Choisissez **Enregistrer**.

Toutes les instances en cours d'exécution vous sont facturées. Pour éviter les frais supplémentaires, arrêtez manuellement les instances que vous n'utilisez pas. Pour arrêter une instance en cours d'exécution, procédez comme suit. 

Pour arrêter une instance en cours d’exécution.

1. Choisissez l'icône représentant une instance. L’image suivante indique où sélectionner l’icône **RUNNING INSTANCES** (INSTANCES EN COURS D’EXÉCUTION).  
![\[\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/instance-switching-running-instances.png)

1. Choisissez **Shut down** (Arrêter) en regard de l’instance que vous souhaitez arrêter.

Si vous arrêtez une instance utilisée pour exécuter un flux, vous ne pouvez temporairement pas accéder au flux. Si vous obtenez une erreur en essayant d'ouvrir le flux exécutant une instance que vous avez arrêté précédemment, patientez 5 minutes environ et essayez de l'ouvrir à nouveau.

Lorsque vous exportez votre flux de données vers un emplacement tel qu'Amazon Simple Storage Service ou Amazon SageMaker Feature Store, Data Wrangler exécute une tâche de SageMaker traitement Amazon. Vous pouvez utiliser l'une des instances suivantes pour la tâche de traitement. Pour plus d’informations sur l’exportation de vos données, consultez [Exporter](data-wrangler-data-export.md).


| Instances standard | vCPU | Mémoire | 
| --- | --- | --- | 
| ml.m5.4xlarge | 16 | 64 Go | 
| ml.m5.12xlarge | 48 |  192 Go  | 
| ml.m5.24xlarge | 96 | 384 Go | 

Pour plus d'informations sur le coût horaire d'utilisation des types d'instances disponibles, consultez la section [SageMaker Tarification](https://aws.amazon.com//sagemaker/pricing/). 

## L'interface utilisateur du flux de données
<a name="data-wrangler-data-flow-ui"></a>

Lorsque vous importez un jeu de données, le jeu de données d’origine apparaît sur le flux de données et est nommé **Source**. Si vous avez activé l'échantillonnage lorsque vous avez importé vos données, ce jeu de données est nommé **Source - sampled** (Source – échantillonnée). Data Wrangler déduit automatiquement les types de chaque colonne de votre jeu de données et crée un nouveau nom de données nommé **Data types (Types de données)**. Vous pouvez sélectionner ce volet pour mettre à jour les types de données déduits. Vous voyez des résultats semblabes à ceux affichés dans l’image suivante après avoir téléchargé un seul jeu de données : 

![\[Exemple illustrant Source - échantillonnée et Types de données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/dataflow-after-import.png)


Chaque fois que vous ajoutez une étape de transformation, vous créez un nouveau nom de données. Lorsque plusieurs étapes de transformation (autres que **Join** (Joindre) ou **Concatenate** (Concaténer)) sont ajoutées au même jeu de données, elles sont empilées. 

**Join** (Joindre) et **Concatenate** (Concaténer) créent des étapes autonomes contenant le nouveau jeu de données joint ou concaténé. 

Le diagramme suivant montre un flux de données avec une jointure entre deux jeux de données, ainsi que deux piles d’étapes. La première pile (**Steps (2)**) ajoute deux transformations au type déduit dans le jeu de données **Data types (Types de données)**. La pile *en aval*, ou la pile à droite, ajoute des transformations à le jeu de données résultant d’une jointure nommée **demo-join**. 

![\[Exemple montrant les étapes dans la page de flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-flow-steps.png)


Le petit cadre gris situé dans le coin inférieur droit du flux de données fournit un aperçu du nombre de piles et d’étapes dans le flux et de la disposition du flux. La zone plus lumineuse à l’intérieur de la zone grise indique les étapes qui se trouvent dans la vue de l’interface utilisateur. Vous pouvez utiliser cette zone pour afficher les sections de votre flux de données qui ne figurent pas dans la vue de l’interface utilisateur. Utilisez l’icône Ajuster à l’écran (![\[Dotted square outline icon representing a placeholder or empty state.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/fit-screen.png)) pour ajuster toutes les étapes et tous les jeux de données dans la vue de l’interface utilisateur. 

La barre de navigation en bas à gauche comprend des icônes que vous pouvez utiliser pour effectuer un zoom avant (![\[Plus symbol icon representing an addition or new item action.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/zoom-in.png)) et arrière (![\[Horizontal line or divider, typically used to separate content sections.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/zoom-out.png)) de votre flux de données et redimensionner le flux de données pour l’adapter à l’écran (![\[Dotted square outline icon representing a placeholder or empty state.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/fit-screen.png)). Utilisez l’icône de verrouillage (![\[Trash can icon representing deletion or removal functionality.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/lock-nodes.png)) pour verrouiller et déverrouiller l’emplacement de chaque étape sur l’écran. 



## Ajout d’une étape à votre flux de données
<a name="data-wrangler-data-flow-add-step"></a>

Cliquez sur le symbole **\$1** en regard d’un jeu de données ou d’une étape précédemment ajoutée, puis choisissez l’une des options suivantes :
+ **Edit data types** (Modifier les types de données) (seulement pour une étape **Data types** (Types de données)) : si vous n'avez pas ajouté de transformations dans une étape **Data types** (Types de données), vous pouvez sélectionner **Edit data types** (Modifier les types de données) pour mettre à jour les types de données déduits par Data Wrangler lors de l'importation de votre jeu de données. 
+ **Ajouter une transformation** : ajoute une nouvelle étape de transformation. Consultez [Transformation de données](data-wrangler-transform.md) pour en savoir plus sur les transformations de données que vous pouvez ajouter. 
+ **Add analysis (Ajouter une analyse)** : ajoute une analyse. Vous pouvez utiliser cette option pour analyser vos données à n'importe quel moment du flux de données. Lorsque vous ajoutez une ou plusieurs analyses à une étape, une icône d'analyse (![\[Bar chart icon representing data visualization or analytics functionality.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/updates/analysis-icon.png)) apparaît à cette étape. Consultez [Analyse et visualisation](data-wrangler-analyses.md) pour en savoir plus sur les analyses que vous pouvez ajouter. 
+ **Joint (Joindre)** : joint deux jeux de données et ajoute le jeu de données résultant au flux de données. Pour en savoir plus, consultez [Joindre des jeux de données](data-wrangler-transform.md#data-wrangler-transform-join).
+ **Concatenate (Concaténer)** : concatène deux jeux de données et ajoute le jeu de données résultant au flux de données. Pour en savoir plus, consultez [Concaténer des jeux de données](data-wrangler-transform.md#data-wrangler-transform-concatenate).

## Suppression d'une étape de votre flux de données
<a name="data-wrangler-data-flow-delete-step"></a>

Pour supprimer une étape, sélectionnez l’étape et sélectionnez **Delete (Supprimer)**. Si le nœud ne contient qu'une seule entrée, vous ne supprimez que l'étape sélectionnée. La suppression d'une étape comportant une seule entrée ne supprime pas les étapes qui la suivent. Si vous supprimez une étape pour un nœud de source, de jointure ou de concaténation, toutes les étapes qui suivent sont également supprimées.

Pour supprimer une étape d’une pile d’étapes, sélectionnez la pile, puis sélectionnez l’étape à supprimer. 

Vous pouvez utiliser l'une des procédures suivantes pour supprimer une étape sans supprimer les étapes en aval.

------
#### [ Delete a step in the Data Wrangler flow ]

Vous pouvez supprimer une étape individuelle pour les nœuds de votre flux de données qui n'ont qu'une seule entrée. Vous ne pouvez pas supprimer des étapes individuelles pour les nœuds de source, de jointure et de concaténation.

Utilisez la procédure suivante pour supprimer une étape du flux Data Wrangler.

1. Choisissez le groupe d'étapes qui contient celle que vous supprimez.

1. Choisissez l’icône en regard de l’étape.

1. Choisissez **Supprimer l’étape**.  
![\[Exemple montrant comment supprimer une étape dans la page de flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/delete-step-flow-1.png)

------
#### [ Delete a step in the table view ]

Utilisez la procédure suivante pour supprimer une étape dans la vue de table.

Vous pouvez supprimer une étape individuelle pour les nœuds de votre flux de données qui n'ont qu'une seule entrée. Vous ne pouvez pas supprimer des étapes individuelles pour les nœuds de source, de jointure et de concaténation.

1. Choisissez l’étape et ouvrez la vue de table correspondant à l’étape.

1. Placez le curseur sur l'étape pour que l'icône présentant des points de suspension apparaisse.

1. Choisissez l’icône en regard de l’étape.

1. Sélectionnez **Delete (Supprimer)**.  
![\[Exemple montrant comment supprimer une étape dans la vue de table de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/delete-step-table-0.png)

------

## Modification d’une étape dans votre flux Data Wrangler
<a name="data-wrangler-data-flow-edit-step"></a>

Vous pouvez modifier chaque étape que vous avez ajoutée au flux Data Wrangler. En modifiant les étapes, vous pouvez modifier les transformations ou les types de données des colonnes. Vous pouvez modifier les étapes pour apporter des modifications qui vous permettent d’effectuer de meilleures analyses.

Il existe de nombreuses façons de modifier une étape. Par exemple, il est possible de modifier la méthode d'imputation ou d'adapter le seuil pour qu'une valeur soit considérée comme une valeur aberrante.

Suivez la procédure ci-dessous pour modifier une étape.

Pour modifier une étape, procédez comme suit.

1. Choisissez une étape du flux Data Wrangler pour ouvrir la vue de table.  
![\[Exemple d’étape dans la page de flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-flow-edit-choose-step.png)

1. Choisissez une étape dans le flux de données.

1. Modifiez l’étape.

L’image suivante montre un exemple de modification d’une étape.

![\[Exemple montrant comment modifier les étapes dans la page de flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-flow-table-edit-step.png)


**Note**  
Vous pouvez utiliser les espaces partagés de votre domaine Amazon SageMaker AI pour travailler en collaboration sur vos flux Data Wrangler. Dans un espace partagé, vous et vos collaborateurs pouvez modifier un fichier de flux en temps réel. Toutefois, ni vous ni vos collaborateurs ne pouvez voir les modifications en temps réel. Quand quelqu'un modifie le flux Data Wrangler, il doit l'enregistrer immédiatement. Quand quelqu'un enregistre un fichier, un collaborateur ne peut pas le voir à moins de fermer le fichier et de le rouvrir. Toutes les modifications qui ne sont pas enregistrées par une personne sont remplacées par la personne qui a enregistré ses modifications.

# Obtention d’informations sur les données et la qualité des données
<a name="data-wrangler-data-insights"></a>

Utilisez le **Data Quality and Insights Report** (Rapport d'informations et de qualité des données) pour effectuer une analyse des données que vous avez importées dans Data Wrangler. Nous vous recommandons de créer le rapport après avoir importé votre jeu de données. Vous pouvez utiliser le rapport pour vous aider à nettoyer et à traiter vos données. Il fournit des informations telles que le nombre de valeurs manquantes et le nombre de valeurs aberrantes. Si vous rencontrez des problèmes avec vos données, tels que des déséquilibres ou des fuites de caractéristique cible, le rapport d’informations peut signaler ces problèmes.

Utilisez la procédure suivante pour créer un rapport d'informations et de qualité des données. Cela suppose que vous avez déjà importé un jeu de données dans votre flux Data Wrangler.

**Pour créer un rapport d'informations et de qualité des données**

1. Choisissez **\$1** à côté d'un nœud dans votre flux Data Wrangler.

1. Sélectionnez **Obtenir des informations sur les données**.

1. Dans le champ **Nom de l'analyse**, spécifiez le nom du rapport d'informations.

1. (Facultatif) Pour **Colonne cible**, spécifiez la colonne cible.

1. Pour **Type de problème**, spécifiez **Régression** ou **Classification**.

1. Pour **Taille des données**, spécifiez l'une des valeurs suivantes :
   + **50 000** : utilise les 50 000 premières lignes du jeu de données que vous avez importé pour créer le rapport.
   + **Jeu de données complet** : utilise le jeu de données que vous avez importé pour créer le rapport.
**Note**  
La création d'un rapport sur la qualité des données et les informations sur l'ensemble de données utilise une tâche SageMaker de traitement Amazon. Une tâche de SageMaker traitement fournit les ressources informatiques supplémentaires nécessaires pour obtenir des informations sur toutes vos données. Pour plus d'informations sur les tâches de SageMaker traitement, consultez[Charges de travail de transformation des données avec Processing SageMaker](processing-job.md).

1. Choisissez **Créer**.

Les rubriques suivantes présentent les sections du rapport :

**Topics**
+ [Résumé](#data-wrangler-data-insights-summary)
+ [Colonne cible](#data-wrangler-data-insights-target-column)
+ [Modèle rapide](#data-wrangler-data-insights-quick-model)
+ [Récapitulatif des caractéristiques](#data-wrangler-data-insights-feature-summary)
+ [Exemples](#data-wrangler-data-insights-samples)
+ [Définitions](#data-wrangler-data-insights-definitions)

Vous pouvez télécharger le rapport ou le consulter en ligne. Pour télécharger le rapport, cliquez sur le bouton de téléchargement situé dans l'angle supérieur droit de l'écran. L’image suivante illustre le bouton.

![\[Exemple illustrant le bouton de téléchargement.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-download.png)


## Résumé
<a name="data-wrangler-data-insights-summary"></a>

Le rapport d'informations comporte un bref résumé des données qui inclut des informations générales telles que les valeurs manquantes, les valeurs non valides, les types de fonctions, le nombre de valeurs aberrantes, etc. Il peut également inclure des avertissements de sévérité élevée qui indiquent des problèmes probables avec les données. Nous vous recommandons d'examiner les avertissements.

Voici un exemple de récapitulatif de rapport.

![\[Exemple de résumé de rapport.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-report-summary.png)


## Colonne cible
<a name="data-wrangler-data-insights-target-column"></a>

Lorsque vous créez le rapport d'informations et de qualité des données, Data Wrangler vous permet de sélectionner une colonne cible. Une colonne cible est une colonne que vous essayez de prédire. Lorsque vous choisissez une colonne cible, Data Wrangler crée automatiquement une analyse de colonne cible. Il classe également les fonctions par ordre de pouvoir prédictif. Lorsque vous sélectionnez une colonne cible, vous devez spécifier si vous tentez de résoudre un problème de régression ou de classification.

Pour la classification, Data Wrangler affiche une table et un histogramme des classes les plus courantes. Une classe est une catégorie. Il présente également des observations, ou des lignes, dont la valeur cible est manquante ou non valide.

L’image suivante illustre un exemple d’analyse de colonne cible pour un problème de classification.

![\[Exemple d’analyse de colonne cible.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-target-column-classification.png)


Pour la régression, Data Wrangler affiche un histogramme de toutes les valeurs de la colonne cible. Il présente également des observations, ou des lignes, dont la valeur cible est manquante, non valide ou aberrante.

L’image suivante illustre un exemple d’analyse de colonne cible pour un problème de régression.

![\[Exemple d’analyse de colonne cible.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-target-column-regression.png)


## Modèle rapide
<a name="data-wrangler-data-insights-quick-model"></a>

Le **Quick model** (modèle rapide) fournit une estimation de la qualité prédite attendue d'un modèle que vous entraînez sur vos données.

Data Wrangler fractionne vos données en blocs d'entraînement et de validation. Il utilise 80 % des échantillons pour l’entraînement et 20 % des valeurs pour la validation. Pour la classification, l'échantillon est un fractionnement stratifié. Pour un fractionnement stratifié, chaque partition de données a le même rapport d’étiquettes. Pour les problèmes de classification, il est important d’avoir le même rapport d’étiquettes entre les blocs d’entraînement et de classification. Data Wrangler entraîne le XGBoost modèle avec les hyperparamètres par défaut. Il applique un arrêt anticipé sur les données de validation et effectue un prétraitement minimal des caractéristiques.

Pour les modèles de classification, Data Wrangler renvoie à la fois un récapitulatif du modèle et une matrice de confusion.

Voici un exemple de récapitulatif de modèle de classification. Pour en savoir plus sur les informations renvoyées, consultez [Définitions](#data-wrangler-data-insights-definitions).

![\[Exemple de résumé du modèle de classification.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-quick-model-classification-summary.png)


Voici un exemple de matrice de confusion renvoyée par le modèle rapide.

![\[Exemple de matrice de confusion.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-quick-model-classification-confusion-matrix.png)


Une matrice de confusion fournit les informations suivantes :
+ Nombre de fois où l'étiquette prédite correspond à la vraie étiquette.
+ Nombre de fois où l’étiquette prédite ne correspondait pas à la vraie étiquette.

La vraie étiquette représente une observation réelle dans vos données. Par exemple, si vous utilisez un modèle pour détecter les transactions frauduleuses, la vraie étiquette représente une transaction réellement frauduleuse ou non frauduleuse. L'étiquette prédite représente l'étiquette que votre modèle attribue aux données.

Vous pouvez utiliser la matrice de confusion pour voir dans quelle mesure le modèle prédit la présence ou l'absence d'une condition. Si vous prédisez des transactions frauduleuses, vous pouvez utiliser la matrice de confusion pour vous faire une idée de la sensibilité et de la spécificité du modèle. La sensibilité fait référence à la capacité du modèle à détecter les transactions frauduleuses. La spécificité fait référence à la capacité du modèle à éviter de détecter les transactions non frauduleuses comme étant frauduleuses.

Voici un exemple de résultats du modèle rapide pour un problème de régression.

![\[Exemple de résultats du modèle rapide pour un problème de régression.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-quick-model-regression-summary.png)


## Récapitulatif des caractéristiques
<a name="data-wrangler-data-insights-feature-summary"></a>

Lorsque vous spécifiez une colonne cible, Data Wrangler classe les caractéristiques selon leur pouvoir de prédiction. Le pouvoir de prédiction est mesuré sur les données après leur division en bloc d'entraînement de 80 % et en bloc de validation de 20 %. Data Wrangler adapte un modèle à chaque caractéristique séparément sur le bloc d’entraînement. Il applique un prétraitement minimal des caractéristiques et mesure les performances de prédiction sur les données de validation.

Il normalise les scores dans la plage [0,1]. Les scores de prédiction élevés indiquent des colonnes plus utiles pour prédire la cible par elles-mêmes. Les scores inférieurs indiquent des colonnes qui ne sont pas prédictives de la colonne cible.

Il est rare qu'une colonne qui n'est pas prédictive en elle-même soit prédictive lorsqu'elle est utilisée conjointement avec d'autres colonnes. Vous pouvez utiliser les scores de prédiction en toute confiance pour déterminer si une fonction de votre jeu de données est prédictive.

Un score faible indique généralement que la fonction est redondante. Un score de 1 correspond à des capacités prédictives parfaites, ce qui indique souvent une fuite de cible. La fuite de cible se produit généralement lorsque le jeu de données contient une colonne qui n'est pas disponible au moment de la prédiction. Par exemple, il peut s’agir d’un double de la colonne cible.

Voici des exemples de la table et de l’histogramme qui montrent la valeur de prédiction de chaque caractéristique.

![\[Exemple de tableau récapitulatif montrant la valeur de prédiction de chaque caractéristique.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-feature-summary-table.png)


![\[Exemple d’histogramme montrant la valeur de prédiction de chaque caractéristique.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-insights/data-insights-feature-summary-histogram.png)


## Exemples
<a name="data-wrangler-data-insights-samples"></a>

Data Wrangler indique si vos échantillons sont anormaux ou si votre jeu de données contient des doublons.

Data Wrangler détecte les échantillons anormaux à l'aide de l'*algorithme Isolation Forest* (forêt d'isolation). La forêt d'isolation associe un score d'anomalie à chaque échantillon (ligne) du jeu de données. Les scores d’anomalie faibles indiquent des échantillons anormaux. Les scores élevés sont associés à des échantillons non anormaux. Les échantillons présentant un score d'anomalie négatif sont généralement considérés comme anormaux et les échantillons présentant un score d'anomalie positif sont considérés comme non anormaux.

Lorsque vous examinez un échantillon susceptible d'être anormal, nous vous recommandons de prêter attention aux valeurs inhabituelles. Par exemple, des valeurs anormales peuvent être issues d’erreurs qui se sont produites lors de la collecte et du traitement des données. Nous vous recommandons d’utiliser vos connaissances du domaine et la logique métier lorsque vous examinez des échantillons anormaux.

Data Wrangler détecte les lignes en double et calcule le rapport des doublons dans vos données. Certaines sources de données peuvent inclure des doublons valides. D'autres sources de données peuvent comporter des doublons indiquant des problèmes liés à la collecte de données. Les échantillons en double issus d'une collecte de données défectueuse peuvent interférer avec les processus de machine learning qui reposent sur le fractionnement des données en blocs d'entraînement et de validation indépendants.

Les éléments suivants sont issus du rapport d'informations et peuvent être affectés par les échantillons en double :
+ Modèle rapide
+ Estimation du pouvoir de prédiction
+ Réglage automatique des hyperparamètres

Vous pouvez retirer des échantillons en double du jeu de données à l’aide de la transformation **Supprimer des doublons** sous **Gérer les lignes**. Data Wrangler affiche les lignes les plus fréquemment dupliquées.

## Définitions
<a name="data-wrangler-data-insights-definitions"></a>

Les définitions suivantes s’appliquent à des termes techniques utilisés dans le rapport d’informations des données.

------
#### [ Feature types ]

Les définitions suivantes s'appliquent à chaque type de caractéristique :
+ **Numérique** – Les valeurs numériques peuvent être soit des valeurs flottantes, soit des entiers, tels que l'âge ou le revenu. Les modèles de machine learning supposent que les valeurs numériques sont ordonnées et qu’une distance est définie entre elles. Par exemple, 3 est plus proche de 4 que de 10 et 3 < 4 < 10.
+ Catégorielle : les entrées de colonne appartiennent à un jeu de valeurs uniques, généralement beaucoup plus petit que le nombre d’entrées de la colonne. Par exemple, une colonne de longueur 100 peut contenir les valeurs uniques `Dog`, `Cat` et `Mouse`. Les valeurs peuvent être numériques, textuelles ou une combinaison des deux. `Horse`, `House`, `8`, `Love` et `3.1` sont toutes des valeurs valides et peuvent figurer dans la même colonne catégorielle. Le modèle de Machine Learning ne suppose pas un ordre ni une distance sur les valeurs des caractéristiques catégorielles, contrairement aux caractéristiques numériques, même lorsque toutes les valeurs sont des nombres.
+ **Binaire** – Les caractéristiques binaires constituent un type de caractéristique catégorielle spécial pour lequel la cardinalité du jeu de valeurs uniques est égale à 2.
+ **Textuelle** – Une colonne textuelle contient de nombreuses valeurs uniques non numériques. Dans les cas extrêmes, tous les éléments de la colonne sont uniques. Dans un cas extrême, il n’y a pas deux entrées identiques.
+ **Date/heure** – Une colonne date/heure contient des informations sur la date ou l'heure. Elle peut contenir des informations sur la date et l’heure.

------
#### [ Feature statistics ]

Les définitions suivantes s’appliquent à chaque statistique de caractéristique :
+ **Pouvoir de prédiction** – Le pouvoir de prédiction mesure l'utilité de la colonne dans la prédiction de la cible.
+ **Valeurs aberrantes** (dans les colonnes numériques) – Data Wrangler détecte les valeurs aberrantes à l'aide de deux statistiques fiables : la médiane et l'écart type robuste (RSTD). Le RSTD est calculé en découpant les valeurs des fonctions dans la plage [5e percentile, 95e percentile] et en calculant l'écart type du vecteur découpé. Toutes les valeurs supérieures à la médiane \$1 5\$1 RSTD ou inférieures à la médiane - 5 \$1 RSTD sont considérées comme des valeurs aberrantes.
+ **Inclinaison** (dans les colonnes numériques) – L'inclinaison mesure la symétrie de la distribution. Elle est définie comme le troisième moment de la distribution divisé par l'écart type à la puissance trois. L'asymétrie de la distribution normale ou de toute autre distribution symétrique est nulle. Les valeurs positives impliquent que la queue droite de la distribution est plus longue que la queue gauche. Les valeurs négatives impliquent que la queue gauche de la distribution est plus longue que la queue droite. En règle générale, une distribution est considérée comme asymétrique lorsque la valeur absolue de l'inclinaison est supérieure à 3.
+ **Coefficient d'aplatissement** (dans les colonnes numériques) – Le coefficient d'aplatissement de Pearson mesure la lourdeur de la queue de la distribution. Il est défini comme le quatrième moment de la distribution divisé par le carré du deuxième moment. L'aplatissement de la distribution normale est de 3. Les valeurs d'aplatissement inférieures à 3 impliquent que la distribution est concentrée autour de la moyenne et que les queues sont plus légères que les queues de la distribution normale. Les valeurs d'aplatissement supérieures à 3 impliquent des queues plus lourdes ou des valeurs aberrantes.
+ **Valeurs manquantes** – Les objets de type null, les chaînes vides et les chaînes composées uniquement d'espaces blancs sont considérés comme manquants.
+ **Valeurs valides pour les caractéristiques numériques ou la cible de régression** – Toutes les valeurs que vous pouvez convertir en valeurs flottantes finies sont valides. Les valeurs manquantes ne sont pas valides.
+ **Valeurs valides pour les caractéristiques catégorielles, binaires ou textuelles, ou pour la cible de classification** – Toutes les valeurs qui ne sont pas manquantes sont valides.
+ **Caractéristiques de date/heure** – Toutes les valeurs que vous pouvez convertir en objet de date/heure sont valides. Les valeurs manquantes ne sont pas valides.
+ **Valeurs non valides** – Valeurs manquantes ou qui ne peuvent pas être converties correctement. Par exemple, dans une colonne numérique, vous ne pouvez pas convertir la chaîne `"six"` ou une valeur null.

------
#### [ Quick model metrics for regression ]

Voici les définitions des métriques du modèle rapide :
+ R2 (coefficient de détermination) : R2 est la proportion de la variation de la cible prédite par le modèle. R2 se situe dans la plage [-infty, 1]. 1 est le score du modèle qui prédit parfaitement la cible et 0 est le score du modèle simple qui prédit toujours la moyenne de la cible.
+ MSE (erreur quadratique moyenne) : MSE se situe dans la plage [0, infty]. 0 est le score du modèle qui prédit parfaitement la cible.
+ MAE (erreur absolue moyenne) – MAE se situe dans la plage [0, infty] où 0 est le score du modèle qui prédit parfaitement la cible.
+ RMSE (racine de l'erreur quadratique moyenne) – RMSE se situe dans la plage [0, infty] où 0 est le score du modèle qui prédit parfaitement la cible.
+ Erreur max. : valeur absolue maximale de l'erreur sur le jeu de données. L'erreur max. se situe dans la plage [0, infty]. 0 est le score du modèle qui prédit parfaitement la cible.
+ Erreur absolue médiane – Elle se situe dans la plage [0, infty]. 0 est le score du modèle qui prédit parfaitement la cible.

------
#### [ Quick model metrics for classification ]

Voici les définitions des métriques du modèle rapide :
+ **Exactitude** – L'exactitude est le rapport des échantillons prédits avec exactitude. L'exactitude est comprise dans la plage [0, 1]. 0 est le score du modèle qui prédit de façon erronée tous les échantillons et 1 est le score du modèle parfait.
+ **Exactitude équilibrée** – L'exactitude équilibrée est le rapport des échantillons prédits avec exactitude quand les pondérations de classe sont ajustés pour équilibrer les données. Toutes les classes ont la même importance, quelle que soit leur fréquence. L’exactitude équilibrée est comprise dans la plage [0, 1]. 0 est le score du modèle qui prédit que tous les échantillons sont erronés. 1 est le score du modèle parfait.
+ **AUC (classification binaire)** – Il s'agit de l'aire située sous la courbe caractéristique de fonctionnement du récepteur. L’AUC se situe dans la plage [0, 1] où un modèle aléatoire renvoie un score de 0,5 et le modèle parfait renvoie un score de 1.
+ **AUC (OVR)** – Pour la classification multi-classes, il s'agit de l'aire située sous la courbe caractéristique de fonctionnement du récepteur, calculée séparément pour chaque étiquette en utilisant la méthode « une par rapport au reste ». Data Wrangler indique la moyenne des zones. L'AUC se situe dans la plage [0, 1] où un modèle aléatoire renvoie un score de 0,5 et le modèle parfait renvoie un score de 1.
+ **Précision** – La précision est définie pour une classe spécifique. La précision est la fraction des vrais positifs sur toutes les instances que le modèle a classées comme cette classe. La précision est comprise dans la plage [0, 1]. 1 est le score du modèle qui n'a pas de faux positifs pour la classe. Pour la classification binaire, Data Wrangler indique la précision de la classe positive.
+ **Rappel** – Le rappel est défini pour une classe spécifique. Le rappel est la fraction des instances de classe pertinentes qui ont été récupérées avec succès. Le rappel est compris dans la plage [0, 1]. 1 est le score du modèle qui classe correctement toutes les instances de la classe. Pour la classification binaire, Data Wrangler indique le rappel de la classe positive.
+ **F1** – F1 est défini pour une classe spécifique. Il s'agit de la moyenne harmonique de la précision et du rappel. F1 est compris dans la plage [0, 1]. 1 est le score du modèle parfait. Pour la classification binaire, Data Wrangler indique la F1 des classes comportant des valeurs positives.

------
#### [ Textual patterns ]

Les **patterns** (modèles) décrivent le format textuel d'une chaîne à l'aide d'un format facile à lire. Voici des exemples de modèles textuels :
+ « \$1digits:4-7\$1 » décrit une séquence de chiffres dont la longueur est comprise entre 4 et 7.
+ « \$1alnum:5\$1 » décrit une chaîne alphanumérique d'une longueur exacte de 5.

Data Wrangler déduit les modèles en examinant des échantillons de chaînes non vides à partir de vos données. Il peut décrire un grand nombre des modèles couramment utilisés. La **confiance** exprimée en pourcentage indique la quantité de données estimée correspondant au modèle. À l'aide du modèle textuel, vous pouvez voir quelles lignes de vos données vous devez corriger ou supprimer.

Voici les modèles que Data Wrangler peut reconnaître :


| Modèle | Format de texte | 
| --- | --- | 
|  \$1alnum\$1  |  Chaînes alphanumériques  | 
|  \$1any\$1  |  Toute chaîne de caractères textuels  | 
|  \$1digits\$1  |  Une séquence de chiffres  | 
|  \$1lower\$1  |  Un mot en minuscules  | 
|  \$1mixed\$1  |  Un mot en minuscules et majuscules  | 
|  \$1name\$1  |  Un mot commençant par une majuscule  | 
|  \$1upper\$1  |  Un mot en majuscules  | 
|  \$1whitespace\$1  |  Caractères d'espace blanc  | 

Un caractère textuel est soit un trait de soulignement, soit un caractère pouvant figurer dans un mot d'une langue quelconque. Par exemple, les chaînes « Hello\$1word » et « écoute » sont toutes deux composées de caractères textuels. « H » et « é » sont deux exemples de caractères textuels.

------

# Entraînement automatique des modèles sur votre flux de données
<a name="data-wrangler-autopilot"></a>

Vous pouvez utiliser Amazon SageMaker Autopilot pour entraîner, régler et déployer automatiquement des modèles sur les données que vous avez transformées dans votre flux de données. Amazon SageMaker Autopilot peut utiliser plusieurs algorithmes et utiliser celui qui fonctionne le mieux avec vos données. Pour plus d'informations sur Amazon SageMaker Autopilot, consultez. [SageMaker Pilote automatique](autopilot-automate-model-development.md)

Lorsque vous entraînez et ajustez un modèle, Data Wrangler exporte vos données vers un emplacement Amazon S3 où Amazon SageMaker Autopilot peut y accéder.

Vous pouvez préparer et déployer un modèle en choisissant un nœud dans votre flux Data Wrangler et en choisissant **Export and Train** (Exporter et entraîner) dans l'aperçu des données. Vous pouvez utiliser cette méthode pour afficher votre jeu de données avant de choisir d’entraîner un modèle sur celui-ci.

Vous pouvez également entraîner et déployer un modèle directement à partir de votre flux de données.

La procédure suivante prépare et entraîne un modèle à partir du flux de données. Pour les flux Data Wrangler dotés de transformations à plusieurs lignes, vous ne pouvez pas utiliser les transformations provenant du flux Data Wrangler lorsque vous déployez le modèle. Vous pouvez utiliser la procédure suivante pour traiter les données avant de les utiliser pour exécuter une inférence.

Pour entraîner et déployer un modèle directement à partir de votre flux de données, procédez comme suit.

1. Choisissez le signe **\$1** à côté du nœud contenant les données d’entraînement.

1. Choisissez **Train model** (Entraîner un modèle).

1. (Facultatif) Spécifiez une AWS KMS clé ou un identifiant. Pour plus d’informations sur la création et le contrôle des clés cryptographiques pour protéger vos données, consultez [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html).

1. Choisissez **Export and train** (Exporter et entraîner).

1. **Une fois qu'Amazon SageMaker Autopilot a entraîné le modèle sur les données exportées par Data Wrangler, spécifiez un nom pour le nom de l'expérience.**

1. Sous **Données d'entrée**, choisissez **Aperçu** pour vérifier que Data Wrangler a correctement exporté vos données vers Amazon SageMaker Autopilot.

1. Pour **Target** (Cible), choisissez la colonne cible.

1. (Facultatif) Pour **S3 location** (Emplacement S3) sous **Output data** (Données de sortie), spécifiez un emplacement Amazon S3 autre que l'emplacement par défaut.

1. Choisissez **Next: Training method** (Suivant : méthode d'entraînement).

1. Choisissez une méthode d'entraînement. Pour de plus amples informations, veuillez consulter [Modes d’entraînement](autopilot-model-support-validation.md#autopilot-training-mode).

1. (Facultatif) Pour **Auto deploy endpoint** (Point de terminaison du déploiement automatique), spécifiez un nom pour le point de terminaison.

1. Pour **Deployment option** (Option de déploiement), choisissez une méthode de déploiement. Vous pouvez choisir de déployer avec ou sans les transformations que vous avez effectuées sur les données.
**Important**  
Vous ne pouvez pas déployer un modèle Amazon SageMaker Autopilot avec les transformations que vous avez effectuées dans votre flux Data Wrangler. Pour plus d'informations sur ces transformations, consultez [Exporter vers un point de terminaison d’inférence](data-wrangler-data-export.md#data-wrangler-data-export-inference).

1. Choisissez **Next: Review and create** (Suivant : Vérifier et créer).

1. Sélectionnez **Create Experiment** (Créer une expérience).

Pour plus d'informations sur l'entraînement et le déploiement d'un modèle, consultez [Création de tâches de régression ou de classification pour les données tabulaires à l’aide de l’API AutoML](autopilot-automate-model-development-create-experiment.md). Autopilot vous présente des analyses sur les meilleures performances du modèle. Pour plus d’informations sur les performances du modèle, consultez [Affichage d’un rapport de performances du modèle Autopilot](autopilot-model-insights.md).

# Transformation de données
<a name="data-wrangler-transform"></a>

Amazon SageMaker Data Wrangler propose de nombreuses transformations de données ML pour rationaliser le nettoyage, la transformation et la mise en valeur de vos données. Lorsque vous ajoutez une transformation, elle ajoute une étape au flux de données. Chaque transformation que vous ajoutez modifie votre jeu de données et génère un nouveau nom de données. Toutes les transformations suivantes s'appliquent au dataframe résultant.

Data Wrangler inclut des transformations intégrées, que vous pouvez utiliser pour transformer des colonnes sans code. Vous pouvez également ajouter des transformations personnalisées à l'aide PySpark de Python (fonction définie par l'utilisateur), de pandas et PySpark de SQL. Certaines transformations sont appliquées directement, tandis que d’autres créent une nouvelle colonne de sortie dans votre jeu de données.

Vous pouvez appliquer des transformations à plusieurs colonnes en même temps. Par exemple, vous pouvez supprimer plusieurs colonnes d'une seule étape.

Vous ne pouvez appliquer les transformations **Traitement numérique** et **Gestion des éléments manquants** qu’à une seule colonne.

Lisez cette page pour en savoir plus sur ces transformations intégrées et personnalisées.

## Interface utilisateur de transformation
<a name="data-wrangler-transform-ui"></a>

La plupart des transformations intégrées sont situées dans l’onglet **Prepare (Préparation)** de l’interface utilisateur Data Wrangler. Vous pouvez accéder aux transformations Join (Joindre) et Concatenate (Concaténer) via la vue de flux de données. Utilisez le tableau suivant pour avoir un aperçu de ces deux vues. 

------
#### [ Transform ]

Vous pouvez ajouter une transformation à n'importe quelle étape de votre flux de données. Utilisez la procédure suivante pour ajouter une transformation à votre flux de données.

Pour ajouter une étape à votre flux de données, procédez comme suit.

1. Cliquez sur le symbole **\$1** à côté de l'étape dans le flux de données.

1. Choisissez **Ajouter une transformation**.

1. Choisissez **Ajouter une étape**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-add-step.png)

1. Choisissez une transformation. 

1. (Facultatif) Vous pouvez rechercher la transformation que vous souhaitez utiliser. Data Wrangler met en évidence la requête dans les résultats.  
![\[\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-search.png)

------
#### [ Join View ]

Pour joindre deux jeux de données, sélectionnez le premier jeu de données de votre flux de données et cliquez sur **Join (Joindre)**. Lorsque vous cliquez sur **Join** (Joindre), des résultats semblables à ceux de l'image suivante s'affichent. Vos jeux de données gauche et droite s’affichent dans le volet de gauche. Le volet principal affiche votre flux de données, avec le jeu de données nouvellement joint ajouté. 

![\[Flux de jeux de données joint dans la section Flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/join-1.png)


Lorsque vous cliquez sur **Configure** (Configurer) pour configurer votre jointure, vous voyez des résultats semblables à ceux affichés dans l’image suivante. Votre configuration de jointure s'affiche dans le volet de gauche. Vous pouvez utiliser ce volet pour choisir le nom du jeu de données joint, le type de jointure et les colonnes à joindre. Le volet principal affiche trois tableaux. Les deux premiers tableaux affichent les jeux de données gauche et droit respectivement à gauche et à droite. Sous ce tableau, vous pouvez prévisualiser le jeu de données joint. 

![\[Tables de jeux de données jointes dans la section Flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/join-2.png)


Pour en savoir plus, consultez [Joindre des jeux de données](#data-wrangler-transform-join). 

------
#### [ Concatenate View ]

Pour concaténer deux jeux de données, sélectionnez le premier jeu de données de votre flux de données et cliquez sur **Concatenate (Concaténer)**. Lorsque vous cliquez sur **Concatenate**, vous verrez des résultats similaires à ceux affichés dans l'image suivante. Vos jeux de données gauche et droite s'affichent dans le volet de gauche. Le volet principal affiche votre flux de données, avec le jeu de données nouvellement concaténé ajouté. 

![\[Exemple de flux de jeux de données concaténé dans la section Flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/concat-1.png)


Lorsque vous cliquez sur **Configure** (Configurer) pour configurer votre concaténation, vous voyez des résultats semblables à ceux affichés dans l’image suivante. Votre configuration de concaténation s'affiche dans le volet de gauche. Vous pouvez utiliser ce volet pour choisir le nom du jeu de données concaténé, et choisir de supprimer les doublons après la concaténation et d’ajouter des colonnes pour indiquer le dataframe source. Le volet principal affiche trois tableaux. Les deux premiers tableaux affichent les jeux de données gauche et droit respectivement à gauche et à droite. Sous ce tableau, vous pouvez prévisualiser le jeu de données concaténé. 

![\[Exemple de tables de jeux de données concaténées dans la section Flux de données de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/concat-2.png)


Pour en savoir plus, consultez [Concaténer des jeux de données](#data-wrangler-transform-concatenate).

------

## Joindre des jeux de données
<a name="data-wrangler-transform-join"></a>

Vous joignez des dataframes directement dans votre flux de données. Lorsque vous joignez deux jeux de données, le jeu de données joint résultant apparaît dans votre flux. Les types de jointure suivants sont pris en charge par Data Wrangler.
+ **Externe gauche** : inclut toutes les lignes de la table de gauche. Si la valeur de la colonne jointe dans une ligne du tableau de gauche ne correspond à aucune valeur de ligne du tableau de droite, cette ligne contient des valeurs nulles pour toutes les colonnes du tableau de droite dans le tableau joint.
+ **Anti gauche** : inclut les lignes de la table de gauche qui ne contiennent pas de valeurs dans la table de droite pour la colonne jointe.
+ **Left Semi** – Inclut une seule ligne de la table de gauche pour toutes les lignes identiques répondant aux critères de l'instruction de jointure. Ceci exclut les lignes en double de la table de gauche qui correspondent aux critères de la jointure.
+ **Externe droite** : inclut toutes les lignes de la table de droite. Si la valeur de la colonne jointe dans une ligne de la table de droite ne correspond à aucune valeur de ligne de la table de gauche, cette ligne contient des valeurs nulles pour toutes les colonnes de table de gauche de la table jointe.
+ **INNER** – Inclut les lignes des tables de gauche et de droite qui contiennent des valeurs correspondantes dans la colonne jointe. 
+ **Externe complète** : inclut toutes les lignes des tables de gauche et de droite. Si la valeur de ligne de la colonne jointe dans l'une ou l'autre des tables ne correspond pas, des lignes séparées sont créées dans la table jointe. Si une ligne ne contient pas de valeur pour une colonne de la table jointe, null est inséré pour cette colonne.
+ **Croisée cartésienne** : inclut les lignes qui combinent chaque ligne de la première table avec chaque ligne de la seconde table. Il s'agit d'un [produit cartésien](https://en.wikipedia.org/wiki/Cartesian_product) des lignes des tables de la jointure. Le résultat de ce produit est la taille de la table de gauche multipliée par la taille de la table de droite. Par conséquent, nous vous recommandons de faire preuve de prudence lorsque vous utilisez cette jointure entre des jeux de données très volumineux. 

Utilisez la procédure suivante pour joindre deux dataframes.

1. Cliquez sur le symbole **\$1** en regard de la base de données de gauche que vous souhaitez joindre. Le premier dataframe que vous sélectionnez est toujours la table de gauche de votre jointure. 

1. Choisissez **Join** (Joindre).

1. Sélectionnez le dataframe de droite. Le deuxième dataframe que vous sélectionnez est toujours la table de droite dans votre jointure.

1. Sélectionnez **Configure** (Configurer) pour configurer votre jointure. 

1. Donnez un nom à votre jeu de données joint en utilisant le champ **Name (Nom)**.

1. Sélectionnez un **Join type (Type de jointure)**.

1. Sélectionnez une colonne dans les tableaux de gauche et de droite pour effectuer la jointure. 

1. Cliquez sur **Apply** (Appliquer) pour afficher un aperçu du jeu de données joint à droite. 

1. Pour ajouter le tableau joint à votre flux de données, sélectionnez **Add** (Ajouter). 

## Concaténer des jeux de données
<a name="data-wrangler-transform-concatenate"></a>

**Concaténez deux jeux de données :**

1. Sélectionnez le symbole **\$1** à côté du dataframe de gauche que vous souhaitez concaténer. Le premier dataframe que vous sélectionnez est toujours la table de gauche de votre concaténation. 

1. Cliquez sur **Concatenate** (Concaténer).

1. Sélectionnez le dataframe de droite. Le deuxième dataframe que vous sélectionnez est toujours la table de droite dans votre concaténation.

1. Cliquez sur **Configure** (Configurer) pour configurer votre concaténation. 

1. Donnez un nom à votre jeu de données concaténé en utilisant le champ **Name (Nom)**.

1. (Facultatif) Cochez la case en regard de **Remove duplicates after concatenation** (Supprimer les doublons après concaténation) pour supprimer les colonnes en double. 

1. (Facultatif) Cochez la case en regard de **Add column to indicate source dataframe** (Ajouter une colonne pour indiquer le nom de base de données source) si, pour chaque colonne du nouveau jeu de données, vous souhaitez ajouter un indicateur de la source de la colonne. 

1. Cliquez sur **Apply** (Appliquer) pour afficher un aperçu du nouveau jeu de données. 

1. Cliquez sur **Add** (Ajouter) pour ajouter le nouveau jeu de données à votre flux de données. 

## Équilibrage des données
<a name="data-wrangler-transform-balance-data"></a>

Vous pouvez équilibrer les données des jeux de données présentant une catégorie sous-représentée. L'équilibrage d'un jeu de données peut vous aider à créer de meilleurs modèles pour la classification binaire.

**Note**  
Vous ne pouvez pas équilibrer les jeux de données contenant des vecteurs de colonne.

Vous pouvez utiliser l'opération **Balance data** (Équilibrer les données) pour équilibrer vos données à l'aide de l'un des opérateurs suivants :
+ *Suréchantillonnage aléatoire* : duplique aléatoirement des échantillons de la catégorie minoritaire. Par exemple, si vous essayez de détecter une fraude, il est possible que vos données ne présentent que 10 % de cas de fraude. Pour obtenir une proportion égale de cas frauduleux et non frauduleux, cet opérateur duplique de façon aléatoire les cas de fraude au sein du jeu de données 8 fois.
+ *Sous-échantillonnage aléatoire* : à peu près équivalent à un suréchantillonnage aléatoire. Supprime aléatoirement les échantillons de la catégorie surreprésentée pour obtenir la proportion d'échantillons souhaitée.
+ *SMOTE (Synthetic Minority Oversampling Technique)* : utilise des échantillons de la catégorie sous-représentée pour interpoler de nouveaux échantillons minoritaires synthétiques. Pour plus d'informations sur SMOTE, consultez la description suivante.

Vous pouvez utiliser toutes les transformations pour des jeux de données contenant à la fois des fonctions numériques et non numériques. SMOTE interpole les valeurs en utilisant des échantillons voisins. Data Wrangler utilise la distance du coefficient de détermination pour déterminer le voisinage afin d'interpoler des échantillons supplémentaires. Data Wrangler utilise uniquement des fonctions numériques pour calculer les distances entre les échantillons du groupe sous-représenté.

Pour deux échantillons réels du groupe sous-représenté, Data Wrangler interpole les fonctions numériques en utilisant une moyenne pondérée. Il affecte aléatoirement un poids à ces échantillons dans la plage de [0, 1]. Pour les fonctions numériques, Data Wrangler interpole les échantillons à l'aide d'une moyenne pondérée des échantillons. Pour les échantillons A et B, Data Wrangler pourrait affecter aléatoirement un poids de 0,7 à A et de 0,3 à B. Par conséquent, l'échantillon interpolé aurait une valeur de 0,7A \$1 0,3B.

Data Wrangler interpole des fonctions non numériques en réalisant une copie à partir de l'un des échantillons réels interpolés. Il copie les échantillons en affectant aléatoirement une probabilité à chaque échantillon. Pour les échantillons A et B, il peut affecter les probabilités 0,8 à A et 0,2 à B. Selon les probabilités affectées, il copie A 80 % du temps.

## Transformations personnalisées
<a name="data-wrangler-transform-custom"></a>

Le groupe **Custom Transforms** vous permet d'utiliser Python (fonction définie par l'utilisateur) PySpark, pandas ou PySpark (SQL) pour définir des transformations personnalisées. Pour ces trois options, vous utilisez la variable `df` pour accéder au dataframe auquel vous souhaitez appliquer la transformation. Pour appliquer votre code personnalisé à votre dataframe, attribuez au dataframe les transformations que vous avez apportées à la variable `df`. Si vous n’utilisez pas Python (fonction définie par l’utilisateur), vous n’avez pas besoin d’inclure une instruction de retour. Cliquez sur **Preview** (Aperçu) pour afficher un aperçu du résultat de la transformation personnalisée. Cliquez sur **Add** (Ajouter) pour ajouter la transformation personnalisée à votre liste **Previous steps** (Étapes précédentes).

Vous pouvez importer les bibliothèques populaires suivantes à l'aide d'une instruction `import` dans le bloc de code de la transformation personnalisée :
+ NumPy version 1.19.0
+ scikit-learn version 0.23.2
+ SciPy version 1.5.4
+ pandas version 1.0.3
+ PySpark version 3.0.0

**Important**  
**Custom transform** (Transformation personnalisée) ne prend pas en charge les colonnes avec des espaces ou des caractères spéciaux dans le nom. Nous vous recommandons de spécifier des noms de colonnes contenant uniquement des caractères alphanumériques et des traits de soulignement. Vous pouvez utiliser la transformation **Rename column** (Renommer une colonne) dans le groupe de transformation **Manage columns** (Gérer les colonnes) pour supprimer des espaces du nom d'une colonne. Vous pouvez également ajouter une **Custom transform (Transformation personnalisée)** **Python (Pandas)** similaire à ce qui suit pour supprimer des espaces de plusieurs colonnes en une seule étape. Cet exemple modifie les colonnes nommées `A column` et `B column` en `A_column` et `B_column`, respectivement.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Si vous incluez des instructions d’impression dans le bloc de code, le résultat apparaît lorsque vous cliquez sur **Preview (Aperçu)**. Vous pouvez redimensionner le panneau du transformateur de code personnalisé. Le redimensionnement du panneau offre plus d’espace pour écrire du code. L'image suivante illustre le redimensionnement du panneau.

![\[Pour la fonction Python, remplacez les commentaires sous pd.Series par votre code.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/resizing-panel.gif)


Vous trouverez ci-dessous du contexte et des exemples supplémentaires pour écrire du code de transformation personnalisé.

**Python (fonction définie par l’utilisateur)**

La fonction Python vous permet d'écrire des transformations personnalisées sans avoir besoin de connaître Apache Spark ou Pandas. Data Wrangler est optimisé pour exécuter rapidement votre code personnalisé. Vous obtenez des performances similaires en utilisant du code Python personnalisé et un plugin Apache Spark.

Pour utiliser le bloc de code Python (fonction définie par l’utilisateur), spécifiez ce qui suit :
+ **Input column** (Colonne d'entrée) : colonne d'entrée dans laquelle vous appliquez la transformation.
+ **Mode** : mode de scripting, pandas ou Python.
+ **Return type** (Type de retour) : type de données de la valeur que vous renvoyez.

L'utilisation du mode pandas offre de meilleures performances. Le mode Python facilite l'écriture de transformations en utilisant des fonctions Python pures.

La vidéo suivante présente un exemple d'utilisation de code personnalisé pour créer une transformation. Il utilise le jeu de données [Titanic](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/walkthrough_titanic.csv) pour créer une colonne avec la civilité de la personne.

![\[Pour la fonction Python, remplacez les commentaires sous pd.Series par votre code.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/python-function-transform-titanic-720.gif)


**PySpark**

L'exemple suivant extrait la date et l'heure d'un horodatage.

```
from pyspark.sql.functions import from_unixtime, to_date, date_format
df = df.withColumn('DATE_TIME', from_unixtime('TIMESTAMP'))
df = df.withColumn( 'EVENT_DATE', to_date('DATE_TIME')).withColumn(
'EVENT_TIME', date_format('DATE_TIME', 'HH:mm:ss'))
```

**pandas**

L'exemple suivant fournit une vue d'ensemble du dataframe auquel vous ajoutez des transformations. 

```
df.info()
```

**PySpark (SQL)**

L'exemple suivant permet de créer un nouveau dataframe avec quatre colonnes : *name* (nom), *fare* (tarif), *pclass* (classe de passager), *survived* (survivant).

```
SELECT name, fare, pclass, survived FROM df
```

Si vous ne savez pas comment vous en servir PySpark, vous pouvez utiliser des extraits de code personnalisés pour vous aider à démarrer.

Data Wrangler possède une collection interrogeable d'extraits de code. Vous pouvez utiliser les extraits de code pour effectuer des tâches telles que la suppression de colonnes, le regroupement par colonnes ou la modélisation.

Pour utiliser un extrait de code, choisissez **Search example snippets** (Rechercher dans les exemples d'extraits) et spécifiez une requête dans la barre de recherche. Le texte que vous spécifiez dans la requête ne doit pas nécessairement correspondre exactement au nom de l'extrait de code.

L'exemple suivant montre un extrait de code **Drop duplicate rows** (Supprimer les doublons de lignes) qui peut supprimer des lignes contenant des données similaires dans votre jeu de données. Vous pouvez trouver l'extrait de code en recherchant l'un des éléments suivants :
+ Duplicates (doublons)
+ Identical (éléments identiques)
+ Remove (suppression)

L'extrait de code suivant contient des commentaires qui vous aident à comprendre les modifications que vous devez apporter. Pour la plupart des extraits de code, vous devez spécifier les noms de colonnes de votre jeu de données dans le code.

```
# Specify the subset of columns
# all rows having identical values in these columns will be dropped

subset = ["col1", "col2", "col3"]
df = df.dropDuplicates(subset)  

# to drop the full-duplicate rows run
# df = df.dropDuplicates()
```

Pour utiliser un extrait de code, copiez et collez son contenu dans le champ **Custom transform** (Transformation personnalisée). Vous pouvez copier et coller plusieurs extraits de code dans le champ de transformation personnalisé.

## Formule personnalisée
<a name="data-wrangler-transform-custom-formula"></a>

Utilisez **Custom formula (Formule personnalisée)** pour définir une nouvelle colonne à l'aide d'une expression Spark SQL pour interroger des données dans le dataframe actuel. La requête doit utiliser les conventions des expressions Spark SQL.

**Important**  
**Custom formula** (Formule personnalisée) ne prend pas en charge les colonnes avec des espaces ou des caractères spéciaux dans le nom. Nous vous recommandons de spécifier des noms de colonnes contenant uniquement des caractères alphanumériques et des traits de soulignement. Vous pouvez utiliser la transformation **Rename column** (Renommer une colonne) dans le groupe de transformation **Manage columns** (Gérer les colonnes) pour supprimer des espaces du nom d'une colonne. Vous pouvez également ajouter une **Custom transform (Transformation personnalisée)** **Python (Pandas)** similaire à ce qui suit pour supprimer des espaces de plusieurs colonnes en une seule étape. Cet exemple modifie les colonnes nommées `A column` et `B column` en `A_column` et `B_column`, respectivement.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Vous pouvez utiliser cette transformation pour effectuer des opérations sur les colonnes, en référençant les colonnes par leur nom. Par exemple, en supposant que le dataframe actuel contient des colonnes nommées *col\$1a* et *col\$1b*, vous pouvez utiliser l'opération suivante pour produire une **Output column (Colonne de sortie)** qui est le produit de ces deux colonnes en utilisant le code suivant :

```
col_a * col_b
```

Les autres opérations courantes sont les suivantes, en supposant qu'un dataframe contient les colonnes `col_a` et `col_b` :
+ Concaténer deux colonnes : `concat(col_a, col_b)`
+ Ajouter deux colonnes : `col_a + col_b`
+ Soustraire deux colonnes : `col_a - col_b`
+ Diviser deux colonnes : `col_a / col_b`
+ Prendre la valeur absolue d'une colonne : `abs(col_a)`

Pour plus d’informations, consultez la [documentation Spark](http://spark.apache.org/docs/latest/api/python) sur la sélection des données. 

## Réduire la dimensionnalité dans un jeu de données
<a name="data-wrangler-transform-dimensionality-reduction"></a>

Réduisez la dimensionnalité de vos données à l'aide de l'analyse des composants principaux (PCA). La dimensionnalité de votre jeu de données correspond au nombre de fonctionnalités. Lorsque vous utilisez la réduction de dimensionnalité dans Data Wrangler, vous obtenez un nouvel ensemble de fonctionnalités appelées composants. Chaque composant explique une partie de la variabilité des données.

Le premier composant est à l'origine de la plus grande variation des données. Le deuxième composant est à l'origine de la deuxième plus grande variation des données, et ainsi de suite.

Vous pouvez utiliser la réduction de dimensionnalité pour réduire la taille des jeux de données que vous utilisez pour entraîner des modèles. Au lieu d'utiliser les fonctionnalités de votre jeu de données, vous pouvez utiliser les composants principaux.

Pour effectuer l'analyse PCA, Data Wrangler crée des axes pour vos données. Un axe est une combinaison affine de colonnes dans votre jeu de données. Le premier composant principal est la valeur sur l'axe qui présente la plus grande variance. Le deuxième composant principal est la valeur sur l'axe qui présente la deuxième plus grande variance. Le nième composant principal est la valeur sur l'axe qui présente la nième plus grande variance.

Vous pouvez configurer le nombre de composants principaux renvoyés par Data Wrangler. Vous pouvez soit spécifier directement le nombre de composant principaux, soit spécifier le pourcentage de seuil de variance. Chaque composant principal explique l'ampleur de la variance des données. Par exemple, vous pouvez avoir un composant principal ayant la valeur 0,5. Le composant explique alors 50 % de la variation des données. Lorsque vous spécifiez un pourcentage de seuil de variance, Data Wrangler renvoie le plus petit nombre de composants correspondant au pourcentage que vous spécifiez.

Voici des exemples de composants principaux avec le degré de variance qu'ils expliquent dans les données.
+ Composant 1 — 0,5
+ Composant 2 — 0,45
+ Composant 3 — 0,05

Si vous spécifiez un pourcentage de seuil de variance de `94` ou `95`, Data Wrangler renvoie les composants 1 et 2. Si vous spécifiez un pourcentage de seuil de variance de `96`, Data Wrangler renvoie les trois composants principaux.

Vous pouvez utiliser la procédure suivante pour exécuter l'analyse PCA sur votre jeu de données.

Pour exécuter l'analyse PCA sur votre jeu de données, procédez comme suit.

1. Ouvrez votre flux de données Data Wrangler.

1. Choisissez le **\$1**, puis sélectionnez **Add transform** (Ajouter une transformation).

1. Choisissez **Ajouter une étape**.

1. Choisissez **Dimensionality Reduction** (Réduction de dimensionnalité).

1. Pour **Input Columns** (Colonnes d'entrée), choisissez les fonctionnalités que vous souhaitez réduire en composants principaux.

1. (Facultatif) Pour **Number of principal components** (Nombre de composants principaux), choisissez le nombre de composants principaux que Data Wrangler renvoie dans votre jeu de données. Si vous spécifiez une valeur pour ce champ, vous ne pouvez pas spécifier de valeur pour le champ **Variance threshold percentage** (Pourcentage de seuil de variance).

1. (Facultatif) Pour **Variance threshold percentage** (Pourcentage de seuil de variance), spécifiez le pourcentage de variation des données que vous souhaitez expliquer par les composants principaux. Data Wrangler utilise la valeur par défaut `95` si vous ne spécifiez aucune valeur pour le seuil de variance. Vous ne pouvez pas spécifier de pourcentage de seuil de variance si vous avez spécifié une valeur dans le champ **Number of principal components** (Nombre de composants principaux).

1. (Facultatif) Désélectionnez **Center** (Centrer) pour ne pas utiliser la moyenne des colonnes comme centre des données. Par défaut, Data Wrangler centre les données sur la moyenne avant de les mettre à l'échelle.

1. (Facultatif) Désélectionnez **Scale** (Mettre à l'échelle) pour ne pas mettre les données à l'échelle avec l'écart type de l'unité.

1. (Facultatif) Choisissez **Columns** (Colonnes) pour afficher les composants dans des colonnes séparées. Choisissez **Vector** (Vecteur) pour générer les composants sous la forme d'un vecteur unique.

1. (Facultatif) Pour **Output column** (Colonne de sortie), spécifiez le nom de la colonne de sortie. Si vous affichez les composants sur des colonnes distinctes, le nom que vous spécifiez est un préfixe. Si vous affichez les composants sous la forme d'un vecteur, le nom que vous spécifiez est le nom de la colonne vectorielle.

1. (Facultatif) Sélectionnez **Keep input columns** (Conserver les colonnes d'entrée). Nous recommandons de ne pas sélectionner cette option si vous prévoyez d'utiliser uniquement les composants principaux pour entraîner votre modèle.

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

## Encodage catégoriel
<a name="data-wrangler-transform-cat-encode"></a>

Les données catégorielles sont généralement composées d'un nombre fini de catégories, où chacune d'elles est représentée par une chaîne. Par exemple, si vous disposez d'une table de données client, une colonne indiquant le pays dans lequel vit une personne est de type catégorie. Les catégories seraient *Afghanistan*, *Albania* (Albanie), *Algeria* (Algérie), etc. Les données de catégorie peuvent être *nominales* ou *ordinales*. Les catégories ordinales ont un ordre inhérent, et les catégories nominales n’en ont pas. Le diplôme le plus élevé obtenu (*High school* (Baccalauréat), *Bachelors* (Licence), *Masters* (Maîtrise), etc.) est un exemple de catégories ordinales. 

Le codage des données catégorielles est le processus de création d’une représentation numérique pour les catégories. Par exemple, si vos catégories sont *Chien* et *Chat*, vous pouvez encoder ces informations en deux vecteurs : `[1,0]` pour représenter *Chien*, et `[0,1]` pour représenter *Chat*.

Lorsque vous encodez des catégories ordinales, vous devez parfois traduire l’ordre naturel des catégories dans votre codage. Par exemple, vous pouvez représenter le degré le plus élevé obtenu avec la carte suivante : `{"High school": 1, "Bachelors": 2, "Masters":3}`.

Utilisez le codage catégoriel pour encoder des données catégorielles au format chaîne dans des tableaux d’entiers. 

Les codeurs catégoriels Data Wrangler créent des codages pour toutes les catégories qui existent dans une colonne au moment de la définition de l'étape. Si de nouvelles catégories ont été ajoutées à une colonne lorsque vous démarrez une tâche Data Wrangler pour traiter votre jeu de données au temps *t*, et que cette colonne était l'entrée d'une transformation d'encodage catégoriel Data Wrangler au temps *t-1*, ces nouvelles catégories sont considérées comme *manquantes* dans la tâche Data Wrangler. L'option que vous sélectionnez pour **Invalid handling strategy (Politique de gestion non valide)** est appliquée à ces valeurs manquantes. Voici des exemples de cas où cela peut se produire : 
+ Lorsque vous utilisez un fichier .flow pour créer une tâche Data Wrangler dans le but de traiter un jeu de données mis à jour après la création du flux de données. Par exemple, vous pouvez utiliser un flux de données pour traiter régulièrement les données de vente chaque mois. Si ces données de vente sont mises à jour chaque semaine, de nouvelles catégories peuvent être introduites dans des colonnes pour lesquelles une étape de codage catégoriel est définie. 
+ Lorsque vous sélectionnez **Sampling (Échantillonnage)** lors de l'importation de votre jeu de données, il se peut que certaines catégories soient exclues de l'échantillon. 

Dans ces situations, ces nouvelles catégories sont considérées comme des valeurs manquantes dans la tâche Data Wrangler.

Vous pouvez choisir entre un *codage ordinal* ou un *codage à chaud* et le configurer. Utilisez les sections suivantes pour en savoir plus sur ces options. 

Les deux transformations créent une nouvelle colonne nommée **Output column name (Nom de colonne de sortie)**. Vous spécifiez le format de sortie de cette colonne avec **Output style (Style de sortie)** :
+ Choisissez **Vector (Vecteur)** pour produire une seule colonne avec un vecteur fragmenté. 
+ Choisissez **Columns (Colonne)** pour créer une colonne pour chaque catégorie avec une variable indicatrice pour savoir si le texte de la colonne d'origine contient une valeur égale à cette catégorie.

### Encodage ordinal
<a name="data-wrangler-transform-cat-encode-ordinal"></a>

Choisissez **Ordinal encode (Encodage ordinal)** pour encoder les catégories dans un entier compris entre 0 et le nombre total de catégories dans **Input column (Colonne d'entrée)** que vous sélectionnez.

**Invalid handing strategy (Politique de remise non valide)** : sélectionnez une méthode pour gérer les valeurs invalides ou manquantes. 
+ Choisissez **Skip (Ignorer)** si vous souhaitez omettre les lignes avec des valeurs manquantes.
+ Choisissez **Keep (Conserver)** pour conserver les valeurs manquantes comme dernière catégorie.
+ Choisissez **Error (Erreur)** si vous voulez que Data Wrangler lance une erreur si des valeurs manquantes sont rencontrées dans **Input column (Colonne d'entrée)**.
+ Choisissez **Replace with NaN (Remplacer par NaN)** pour remplacer les valeurs manquantes par NaN. Cette option est recommandée si votre algorithme ML peut gérer les valeurs manquantes. Sinon, les trois premières options de cette liste pourraient produire de meilleurs résultats.

### Encodage à chaud
<a name="data-wrangler-transform-cat-encode-onehot"></a>

Choisissez **One-hot encode (Encodage à chaud)** pour **Transform (Transformation)** afin d'utiliser un codage à chaud. Configurez cette transformation à l'aide des éléments suivants : 
+ **Drop last category (Supprimer la dernière catégorie)** : si la valeur est `True`, la dernière catégorie n'a pas d'index correspondant dans le codage à chaud. Lorsque des valeurs manquantes sont possibles, une catégorie manquante est toujours la dernière et si la valeur est `True`, cela signifie qu'une valeur manquante donne lieu à un vecteur entièrement nul.
+ **Invalid handing strategy (Politique de remise non valide)** : sélectionnez une méthode pour gérer les valeurs invalides ou manquantes. 
  + Choisissez **Skip (Ignorer)** si vous souhaitez omettre les lignes avec des valeurs manquantes.
  + Choisissez **Keep (Conserver)** pour conserver les valeurs manquantes comme dernière catégorie.
  + Choisissez **Error (Erreur)** si vous voulez que Data Wrangler lance une erreur si des valeurs manquantes sont rencontrées dans **Input column (Colonne d'entrée)**.
+ **Is input ordinal encoded (L'entrée est codée en ordinal)** : sélectionnez cette option si le vecteur d'entrée contient des données encodées en ordinal. Cette option nécessite que les données d'entrée contiennent des entiers non négatifs. Si la valeur est **Vrai**, l’entrée *i* est codée en tant que vecteur avec une valeur non nulle dans la *i*ème position. 

### Encodage des similarités
<a name="data-wrangler-transform-cat-encode-similarity"></a>

Utilisez l'encodage des similarités lorsque vous disposez des éléments suivants :
+ Un grand nombre de variables catégorielles
+ Des données bruyantes

L'encodeur de similarités crée des incorporations pour les colonnes contenant des données catégorielles. Une incorporation est un mappage d'objets discrets, tels que des mots, sur des vecteurs de nombres réels. L'encodeur encode des chaînes similaires à des vecteurs contenant des valeurs similaires. Par exemple, il crée des encodages très semblables pour « Californie » et « Calfornie ».

Data Wrangler convertit chaque catégorie du jeu de données en un ensemble de jetons à l'aide d'un générateur de jetons trigramme. Il convertit les jetons en une incorporation à l'aide d'un encodage à hachage minimal.

L’exemple suivant montre comment l’encodeur de similarités crée des vecteurs à partir de chaînes.

![\[Exemple d’utilisation de CODAGE CATÉGORIEL pour une table dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/similarity-encode-example-screenshot-0.png)


![\[Exemple de représentation vectorielle d’une variable présente dans une table de la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/similarity-encode-example-screenshot-1.png)


Les encodages de similarités créés par Data Wrangler :
+ présentent une faible dimensionnalité ;
+ sont évolutifs pour un grand nombre de catégories ;
+ sont robustes et résistants au bruit.

Pour les raisons précédentes, l'encodage des similarités est plus polyvalent qu'un encodage à chaud.

Pour ajouter l'encodage des similarités comme transformation à votre jeu de données, procédez comme suit.

Pour utiliser l’encodage des similarités, procédez comme suit.

1. Connectez-vous à la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Choisissez **Ouvrir Studio Classic**.

1. Choisissez **Lancer l’application**.

1. Choisissez **Studio**.

1. Spécifiez votre flux de données.

1. Choisissez une étape avec une transformation.

1. Choisissez **Ajouter une étape**.

1. Choisissez **Encode categorical** (Encodage catégoriel).

1. Spécifiez les paramètres suivants :
   + **Transform** (Transformation) : **Similarity encode** (Encodage des similarités)
   + **Colonne d’entrée** : colonne contenant les données catégorielles que vous encodez.
   + **Target dimension** (Dimension cible) : (facultatif) dimension du vecteur d'incorporation catégoriel. La valeur par défaut est 30. Nous recommandons d'utiliser une dimension cible plus grande si vous disposez d'un jeu de données volumineux comportant de nombreuses catégories.
   + **Output style** (Style de sortie) : choisissez **Vector** (Vecteur) pour obtenir un vecteur unique avec toutes les valeurs encodées. Choisissez **Colonne** pour obtenir les valeurs encodées dans des colonnes distinctes.
   + **Colonne de sortie** : (facultatif) nom de la colonne de sortie pour une sortie encodée dans un vecteur. Pour une sortie encodée dans des colonnes, il s'agit du préfixe du nom des colonnes suivi du numéro répertorié.

## Texte enrichi
<a name="data-wrangler-transform-featurize-text"></a>

Utilisez le groupe de transformation **Featurize Text** (Texte enrichi) pour inspecter les colonnes de type chaîne de caractères et utiliser l'encapsulation de texte pour enrichir ces colonnes. 

Ce groupe de caractéristiques contient deux caractéristiques, *Statistiques de caractères* et *Vectoriser*. Utilisez les sections suivantes pour en apprendre plus sur ces options. Pour les deux options, **Input column (Colonne d'entrée)** doit contenir des données de texte (type chaîne).

### Statistiques de caractères
<a name="data-wrangler-transform-featurize-text-character-stats"></a>

Utilisez **Statistiques de caractères** pour générer des statistiques pour chaque ligne d’une colonne contenant des données textuelles. 

Cette transformation calcule les ratios et les dénombrements suivants pour chaque ligne, et crée une nouvelle colonne pour signaler le résultat. La nouvelle colonne est nommée en utilisant le nom de la colonne en entrée comme préfixe et un suffixe spécifique au ratio ou au nombre. 
+ **Number of words** (Nombre de mots) : nombre total de mots dans cette ligne. Le suffixe de cette colonne de sortie est `-stats_word_count`.
+ **Number of characters** (Nombre de caractères) : nombre total de caractères dans cette ligne. Le suffixe de cette colonne de sortie est `-stats_char_count`.
+ **Ratio of upper** (Ratio des majuscules) : nombre de caractères majuscules, de A à Z, divisé par le nombre total de caractères dans la colonne. Le suffixe de cette colonne de sortie est `-stats_capital_ratio`.
+ **Ratio of lower** (Ratio des minuscules) : nombre de caractères minuscules, de a à z, divisé par le nombre total de caractères dans la colonne. Le suffixe de cette colonne de sortie est `-stats_lower_ratio`.
+ **Ratio of digits** (Ratio des chiffres) : ratio du nombre de chiffres dans une ligne unique par rapport à la somme des chiffres dans la colonne d'entrée. Le suffixe de cette colonne de sortie est `-stats_digit_ratio`.
+ **Special characters ratio** (Ration des caractères spéciaux) : ratio des caractères non alphanumériques (caractères tels que \$1\$1&%:@) par rapport à la somme de tous les caractères dans la colonne d'entrée. Le suffixe de cette colonne de sortie est `-stats_special_ratio`.

### Vectorisation
<a name="data-wrangler-transform-featurize-text-vectorize"></a>

La vectorisation de texte consiste à mettre en correspondance des mots ou des phrases d’un vocabulaire avec des vecteurs de nombres réels. Utilisez la transformation d'encapsulation de texte de Data Wrangler pour créer des jetons et vectoriser les données de texte en vecteurs TF-IDF (fréquence de document inverse). 

Lorsque TF-IDF est calculé pour une colonne de données textuelles, chaque mot de chaque phrase est converti en nombre réel qui représente son importance sémantique. Des nombres plus élevés sont associés à des mots moins fréquents, qui ont tendance à être plus significatifs. 

Lorsque vous définissez une étape de transformation **Vectorize** (Vectorisation), Data Wrangler utilise les données de votre jeu de données pour définir le vectorisateur de comptage et les méthodes TF-IDF. Ces mêmes méthodes sont utilisées lors de l'exécution d'une tâche Data Wrangler.

Vous configurez cette transformation à l’aide des éléments suivants : 
+ **Output column name** (Nom de colonne de sortie) : cette transformation crée une nouvelle colonne avec l'encapsulation du texte. Utilisez ce champ pour spécifier un nom pour cette colonne de sortie. 
+ **Tokenizer (Créateur de jetons)** : un tokenizer convertit la phrase en une liste de mots, ou *jetons*. 

  Choisissez **Standard** pour utiliser un tokenizer qui sépare les mots par des espaces vides et convertit chaque mot en minuscules. Par exemple, `"Good dog"` est tokenizé en `["good","dog"]`.

  Choisissez **Custom (Personnalisé)** pour utiliser un tokenizer personnalisé. Si vous choisissez **Custom (Personnalisé)**, vous pouvez utiliser les champs suivants pour configurer le jeton :
  + **Minimum token length (Longueur minimum du jeton)** : longueur minimale, en caractères, pour qu'un jeton soit valide. La valeur par défaut est `1` . Par exemple, si vous spécifiez `3` comme longueur minimale du jeton, les mots comme `a, at, in` sont supprimés de la phrase tokenisée. 
  + **Should regex split on gaps (La regex doit-elle se diviser en espaces)** : si cette option est sélectionnée, **regex** se divise en espaces. Sinon, la valeur correspond aux jetons. La valeur par défaut est `True` . 
  + **Regex pattern (Motif Regex)** : modèle regex qui définit le processus de création de jeton. La valeur par défaut est `' \\ s+'` .
  + **To lowercase** (En minuscules) : si cette option est sélectionnée, Data Wrangler convertit tous les caractères en minuscules avant la création de jeton. La valeur par défaut est `True` .

  Pour en savoir plus, consultez la rubrique sur la [création de jetons](https://spark.apache.org/docs/latest/ml-features#tokenizer) de la documentation Spark.
+ **Vectoriseur** : le vectoriseur convertit la liste des jetons en un vecteur numérique fragmenté. Chaque jeton correspond à un index dans le vecteur et une valeur non-nulle indique l'existence du jeton dans la phrase d'entrée. Vous avez le choix entre deux options de vectoriseur, *Count (Nombre)* et *Hashing (Hachage)*.
  + **Count vectorize (Comptage vectoriel)** permet des personnalisations qui filtrent des jetons peu fréquents ou trop courants. **Les paramètres de comptage vectoriel** comprennent notamment : 
    + **Minimum term frequency (Périodicité minimum)** : dans chaque ligne, les termes (jetons) avec une fréquence plus faible sont filtrés. Si vous spécifiez un entier, il s'agit d'un seuil absolu (inclusif). Si vous spécifiez une fraction comprise entre 0 (inclusif) et 1, le seuil est relatif au nombre total de termes. La valeur par défaut est `1` .
    + **Minimum document frequency (Fréquence minimale des documents)** : nombre minimum de lignes dans lesquelles un terme (jeton) doit apparaître pour être inclus. Si vous spécifiez un entier, il s'agit d'un seuil absolu (inclusif). Si vous spécifiez une fraction comprise entre 0 (inclusif) et 1, le seuil est relatif au nombre total de termes. La valeur par défaut est `1` .
    + **Maximum document frequency (Fréquence maximale des documents)** : nombre maximal de documents (lignes) dans lesquels un terme (jeton) peut apparaître pour être inclus. Si vous spécifiez un entier, il s'agit d'un seuil absolu (inclusif). Si vous spécifiez une fraction comprise entre 0 (inclusif) et 1, le seuil est relatif au nombre total de termes. La valeur par défaut est `0.999` .
    + **Maximum vocabulary size (Taille maximum du vocabulaire)** : taille maximale du vocabulaire. Le vocabulaire est composé de tous les termes (jetons) de toutes les lignes de la colonne. La valeur par défaut est `262144` .
    + **Binary outputs (Sorties binaires)** : si cette option est sélectionnée, les sorties vectorielles n'incluent pas le nombre d'apparitions d'un terme dans un document, mais constituent plutôt un indicateur binaire de son apparition. La valeur par défaut est `False` .

    Pour en savoir plus sur cette option, consultez la documentation de Spark sur [CountVectorizer](https://spark.apache.org/docs/latest/ml-features#countvectorizer).
  + **Hachage** est plus rapide sur le plan informatique. **Les paramètres de hachage** comprennent notamment :
    + **Number of features during hashing (Nombre de fonctions pendant le hachage)** : un vectorisateur de hachage mappe les jetons à un index vectoriel en fonction de leur valeur de hachage. Cette fonction détermine le nombre de valeurs de hachage possibles. Les valeurs élevées entraînent moins de collisions entre les valeurs de hachage, mais un vecteur de sortie de dimension plus élevée.

    Pour en savoir plus sur cette option, consultez la documentation de Spark sur [FeatureHasher](https://spark.apache.org/docs/latest/ml-features#featurehasher)
+ **Apply IDF** (Appliquer IDF) : applique une transformation IDF qui multiplie la fréquence du terme par la fréquence du document inverse standard utilisée pour l'encapsulation TF-IDF. Les **paramètres IDF** comprennent les suivants : 
  + **Minimum document frequency (Fréquence minimale des documents)** : nombre minimal de documents (lignes) dans lesquels un terme (jeton) doit apparaître pour être inclus. Si **count\$1vectorize** est le vectorisateur choisi, nous vous recommandons de conserver la valeur par défaut et de ne modifier que le champ **min\$1doc\$1freq** dans **Count vectorize parameters (Paramètres de comptage vectoriel)**. La valeur par défaut est `5` .
+ **Output format (Format de sortie)** : le format de sortie de chaque ligne. 
  + Choisissez **Vector (Vecteur)** pour produire une seule colonne avec un vecteur fragmenté. 
  + Choisissez **Flattened (Aplati)** pour créer une colonne pour chaque catégorie avec une variable indicatrice indiquant si le texte de la colonne d'origine contient une valeur égale à cette catégorie. Vous ne pouvez choisir flattened (aplati) que lorsque **Vectoriseur** est défini sur **Comptage vectoriel**.

## Transformer les séries temporelles
<a name="data-wrangler-transform-time-series"></a>

Dans Data Wrangler, vous pouvez transformer les données de séries temporelles. Les valeurs d'un jeu de données de séries temporelles sont indexées à une heure spécifique. Par exemple, un jeu de données qui affiche le nombre de clients dans un magasin pour chaque heure de la journée est un jeu de données de série temporelle. Le tableau suivant présente un exemple d'un jeu de données de série temporelle.

Nombre de clients par heure dans un magasin


| Nombre de clients | Heure (heure) | 
| --- | --- | 
| 4 | 09:00 | 
| 10 | 10h00 | 
| 14 | 11h00 | 
| 25 | 12h00 | 
| 20 | 13h00 | 
| 18 | 14h00 | 

Dans le tableau précédent, la colonne **Nombre de clients** contient les données en séries chronologiques. Les données de séries temporelles sont indexées aux données horaires dans la colonne **Time (hour)** (Heure (heure)).

Vous devrez peut-être effectuer une série de transformations sur vos données pour les obtenir dans un format que vous pouvez utiliser pour votre analyse. Utilisez le groupe de transformation **Times series** (Séries temporelles) pour transformer vos données de séries temporelles. Pour plus d’informations sur les transformations que vous pouvez effectuer, consultez les sections suivantes.

**Topics**
+ [Grouper par série temporelle](#data-wrangler-group-by-time-series)
+ [Rééchantillonner les données de séries temporelles](#data-wrangler-resample-time-series)
+ [Gestion des données de séries temporelles manquantes](#data-wrangler-transform-handle-missing-time-series)
+ [Validation de l'horodatage de vos données de séries temporelles](#data-wrangler-transform-validate-timestamp)
+ [Standardisation de la longueur des séries temporelles](#data-wrangler-transform-standardize-length)
+ [Extraire des fonctions de vos données de séries temporelles](#data-wrangler-transform-extract-time-series-features)
+ [Utiliser des ressources décalées issues de vos données de séries temporelles](#data-wrangler-transform-lag-time-series)
+ [Créer une plage de date/heure dans votre série temporelle](#data-wrangler-transform-datetime-range)
+ [Utiliser une fenêtre propagée dans votre série temporelle](#data-wrangler-transform-rolling-window)

### Grouper par série temporelle
<a name="data-wrangler-group-by-time-series"></a>

Vous pouvez utiliser l’opération Group by (Regrouper par) afin de regrouper des données de séries temporelles pour des valeurs spécifiques dans une colonne.

Par exemple, le tableau suivant suit la consommation quotidienne moyenne d'électricité d'un ménage.

Consommation quotidienne moyenne d'électricité d'un ménage


| ID du ménage | Horodatage quotidien | Consommation d'électricité (kWh) | Nombre d'occupants du ménage | 
| --- | --- | --- | --- | 
| ménage\$10 | 01/01/2020 | 30 | 2 | 
| ménage\$10 | 02/01/2020 | 40 | 2 | 
| ménage\$10 | 04/01/2020 | 35 | 3 | 
| ménage\$11 | 02/01/2020 | 45 | 3 | 
| ménage\$11 | 03/01/2020 | 55 | 4 | 

Si vous choisissez de regrouper les ménages par ID, le tableau suivant s'affiche.

Consommation d'électricité regroupée par ID de ménage


| ID du ménage | Série Consommation d'électricité (kWh) | Série Nombre d'occupants du ménage | 
| --- | --- | --- | 
| ménage\$10 | [30, 40, 35] | [2, 2, 3] | 
| ménage\$11 | [45, 55] | [3, 4] | 

Chaque entrée de la séquence des séries temporelles est classée en fonction de l'horodatage correspondant. Le premier élément de la séquence correspond au premier horodatage de la série. Pour `household_0`, `30` est la première valeur de la série **Consommation d’électricité**. La valeur de `30` correspond au premier horodatage de `1/1/2020`.

Vous pouvez inclure l’horodatage de début et l’horodatage de fin. Le tableau suivant illustre la manière dont ces informations s'affichent.

Consommation d'électricité regroupée par ID de ménage


| ID du ménage | Série Consommation d'électricité (kWh) | Série Nombre d'occupants du ménage | Start\$1Time | End\$1Time | 
| --- | --- | --- | --- | --- | 
| ménage\$10 | [30, 40, 35] | [2, 2, 3] | 01/01/2020 | 04/01/2020 | 
| ménage\$11 | [45, 55] | [3, 4] | 02/01/2020 | 03/01/2020 | 

Vous pouvez utiliser la procédure suivante pour regrouper par colonne de séries temporelles. 

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Séries temporelles**.

1. Sous **Transform** (Transformer), choisissez **Group by** (Grouper par).

1. Spécifiez une colonne dans **Group by this column** (Grouper par cette colonne).

1. Pour **Appliquer aux colonnes**, spécifiez une valeur.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Rééchantillonner les données de séries temporelles
<a name="data-wrangler-resample-time-series"></a>

Les données de séries temporelles contiennent généralement des observations qui ne sont pas effectuées à intervalles réguliers. Par exemple, un jeu de données peut comporter des observations enregistrées toutes les heures et d'autres observations enregistrées toutes les deux heures.

De nombreuses analyses, telles que les algorithmes de prédiction, exigent que les observations soient effectuées à intervalles réguliers. Le rééchantillonnage vous permet d'établir des intervalles réguliers pour les observations de votre jeu de données.

Vous pouvez rééchantillonner ou sous-échantillonner une série temporelle. Le sous-échantillonnage augmente l'intervalle entre les observations dans le jeu de données. Par exemple, si vous sous-échantillonnez les observations qui sont effectuées toutes les heures ou toutes les deux heures, chaque observation de votre jeu de données est effectuée toutes les deux heures. Les observations horaires sont agrégées en une seule valeur à l'aide d'une méthode d'agrégation telle que la moyenne ou la médiane.

Le suréchantillonnage réduit l'intervalle entre les observations dans le jeu de données. Par exemple, si vous rééchantillonnez les observations effectuées toutes les deux heures en observations horaires, vous pouvez utiliser une méthode d'interpolation pour déduire les observations horaires de celles qui sont effectuées toutes les deux heures. Pour plus d'informations sur les méthodes d'interpolation, voir [pandas. DataFrame.interpoler](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html).

Vous pouvez rééchantillonner à la fois des données numériques et non numériques.

Utilisez l’opération **Resample** (Rééchantillonner) pour rééchantillonner vos données de séries temporelles. Si vous avez plusieurs séries temporelles dans votre jeu de données, Data Wrangler standardise l’intervalle de temps pour chaque série temporelle.

Voici un exemple de sous-échantillonnage des données de séries temporelles en utilisant la moyenne comme méthode d'agrégation. Les données sont sous-échantillonnées toutes les deux heures à toutes les heures.

Lectures de températures horaires plus d'un jour avant le sous-échantillonnage


| Horodatage | Température (Celsius) | 
| --- | --- | 
| 12h00 | 30 | 
| 1h00 | 32 | 
| 2h00 | 35 | 
| 3h00 | 32 | 
| 4h00 | 30 | 

Lectures de températures sous-échantillonnées toutes les deux heures


| Horodatage | Température (Celsius) | 
| --- | --- | 
| 12h00 | 30 | 
| 2:00 | 33,5 | 
| 4h00 | 35 | 

Vous pouvez utiliser la procédure suivante pour rééchantillonner des données de séries temporelles.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Rééchantillonner**.

1. Pour **Horodatage**, choisissez la colonne d’horodatage.

1. Pour **Frequency unit** (Unité de fréquence), spécifiez la fréquence que vous rééchantillonnez.

1. (Facultatif) Spécifiez une valeur pour **Quantité de fréquence**.

1. Configurez la transformation en spécifiant les champs restants.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Gestion des données de séries temporelles manquantes
<a name="data-wrangler-transform-handle-missing-time-series"></a>

Si vous ne disposez pas de valeurs dans votre jeu de données, vous pouvez effectuer l'une des actions suivantes :
+ Pour les jeux de données comportant plusieurs séries temporelles, supprimez les séries temporelles qui comportent des valeurs manquantes supérieures à un seuil spécifié.
+ Imputez les valeurs manquantes d'une série temporelle en utilisant d'autres valeurs de la série temporelle.

L'imputation d'une valeur manquante implique le remplacement des données en spécifiant une valeur ou en utilisant une méthode inférentielle. Voici les méthodes que vous pouvez utiliser pour l'imputation :
+ Valeur constante : remplacez toutes les données manquantes dans votre jeu de données par une valeur que vous spécifiez.
+ Valeur la plus courante : remplacez toutes les données manquantes par la valeur ayant la fréquence la plus élevée dans le jeu de données.
+ Remplissage avant : utilisez le remplissage avant pour remplacer les valeurs manquantes par la valeur non manquante qui précède les valeurs manquantes. Pour la séquence [2, 4, 7, NaN, NaN, NaN, 8], toutes les valeurs manquantes sont remplacées par 7. La séquence résultant de l'utilisation d'un remplissage avant est [2, 4, 7, 7, 7, 7, 8].
+ Remplissage arrière : utilisez le remplissage arrière pour remplacer les valeurs manquantes par la valeur non manquante qui suit les valeurs manquantes. Pour la séquence : [2, 4, 7, NaN, NaN, NaN, 8], toutes les valeurs manquantes sont remplacées par 8. La séquence résultant de l'utilisation d'un remplissage arrière est [2, 4, 7, 8, 8, 8, 8]. 
+ Interpolation : utilise une fonction d'interpolation pour imputer les valeurs manquantes. Pour plus d'informations sur les fonctions que vous pouvez utiliser pour l'interpolation, voir [pandas. DataFrame.interpoler](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html).

Certaines méthodes d'imputation ne peuvent pas imputer toutes les valeurs manquantes de votre jeu de données. Par exemple, le **remplissage avant** ne peut pas imputer une valeur manquante qui apparaît au début de la série temporelle. Vous pouvez imputer les valeurs à l'aide d'un remplissage avant ou d'un remplissage arrière.

Vous pouvez imputer des valeurs manquantes dans une cellule ou dans une colonne.

L'exemple suivant montre comment les valeurs sont imputées dans une cellule.

Consommation d'électricité avec des valeurs manquantes


| ID du ménage | Série Consommation d'électricité (kWh) | 
| --- | --- | 
| ménage\$10 | [30, 40, 35, NaN, NaN] | 
| ménage\$11 | [45, NaN, 55] | 

Consommation d'électricité avec valeurs imputées à l'aide d'un remplissage à terme


| ID du ménage | Série Consommation d'électricité (kWh) | 
| --- | --- | 
| ménage\$10 | [30, 40, 35, 35, 35] | 
| ménage\$11 | [45, 45, 55] | 

L'exemple suivant montre comment les valeurs sont imputées dans une colonne.

Consommation quotidienne moyenne d'électricité d'un ménage avec des valeurs manquantes


| ID du ménage | Consommation d'électricité (kWh) | 
| --- | --- | 
| ménage\$10 | 30 | 
| ménage\$10 | 40 | 
| ménage\$10 | NaN | 
| ménage\$11 | NaN | 
| ménage\$11 | NaN | 

Consommation quotidienne moyenne d'électricité d'un ménage avec des valeurs imputées à l'aide d'un remplissage à terme


| ID du ménage | Consommation d'électricité (kWh) | 
| --- | --- | 
| ménage\$10 | 30 | 
| ménage\$10 | 40 | 
| ménage\$10 | 40 | 
| ménage\$11 | 40 | 
| ménage\$11 | 40 | 

Vous pouvez utiliser la procédure suivante pour gérer les valeurs manquantes.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Handle missing** (Gérer les valeurs manquantes).

1. Pour **Time series input type** (Type d'entrée de série temporelle), indiquez si vous souhaitez gérer les valeurs manquantes à l'intérieur d'une cellule ou le long d'une colonne.

1. Pour **Impute missing values for this column** (Imputer les valeurs manquantes de cette colonne), spécifiez la colonne contenant les valeurs manquantes.

1. Pour **Method for imputing values** (Méthode d'imputation des valeurs), sélectionnez une méthode.

1. Configurez la transformation en spécifiant les champs restants.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Si vous avez des valeurs manquantes, vous pouvez spécifier une méthode pour les imputer sous **Method for imputing values** (Méthode d'imputation des valeurs).

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Validation de l'horodatage de vos données de séries temporelles
<a name="data-wrangler-transform-validate-timestamp"></a>

Il se peut que certaines données d’horodatage ne soient pas valides. Vous pouvez utiliser la fonction **Validate time stamp** (Valider l'horodatage) pour déterminer si les horodatages de votre jeu de données sont valides. Votre horodatage peut être invalide pour une ou plusieurs des raisons suivantes :
+ Votre colonne d'horodatage présente des valeurs manquantes.
+ Les valeurs de votre colonne d'horodatage ne sont pas formatées correctement.

Si vous avez des horodatages non valides dans votre jeu de données, vous ne pouvez pas effectuer votre analyse correctement. Vous pouvez utiliser Data Wrangler pour identifier les horodatages non valides et comprendre où vous devez nettoyer vos données.

La validation des séries temporelles fonctionne de l’une des deux manières suivantes :

Vous pouvez configurer Data Wrangler pour effectuer l'une des actions suivantes s'il rencontre des valeurs manquantes dans votre jeu de données :
+ Supprimez les lignes avec les valeurs manquantes ou non valides.
+ Identifiez les lignes avec les valeurs manquantes ou non valides.
+ Lancez une erreur s’il détecte des valeurs manquantes ou non valides dans votre jeu de données.

Vous pouvez valider les horodatages sur les colonnes de type `timestamp` ou `string`. Si la colonne comporte le type `string`, Data Wrangler convertit le type de la colonne en `timestamp` et effectue la validation.

Vous pouvez utiliser la procédure suivante pour valider les horodatages dans votre jeu de données.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Valider les horodatages**.

1. Pour **Timestamp Column** (Colonne d'horodatage), choisissez la colonne d'horodatage.

1. Pour **Policy** (Politique), choisissez si vous souhaitez gérer les horodatages manquants.

1. (Facultatif) Pour **Colonne de sortie**, spécifiez le nom de la colonne de sortie.

1. Si la colonne de date et d’heure est formatée pour le type de chaîne, choisissez **Conversion en valeur datetime**.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Standardisation de la longueur des séries temporelles
<a name="data-wrangler-transform-standardize-length"></a>

Si des données de séries temporelles sont stockées sous forme de tableaux, vous pouvez standardiser chaque série temporelle à la même longueur. La standardisation de la longueur du tableau de séries temporelles peut faciliter l’exécution de votre analyse sur les données.

Vous pouvez standardiser vos séries temporelles pour les transformations de données nécessitant la correction de la longueur de vos données.

De nombreux algorithmes ML exigent que vous aplatiez vos données de séries temporelles avant de les utiliser. L'aplatissement des données de séries temporelles consiste à séparer chaque valeur de la série temporelle dans sa propre colonne dans un jeu de données. Le nombre de colonnes d'un jeu de données ne peut pas changer. Par conséquent, les longueurs de la série temporelle doivent être standardisées en aplatissant chaque tableau en un ensemble de ressources.

Chaque série temporelle est définie sur la longueur que vous spécifiez sous forme de quantile ou de centile du jeu de séries temporelles. Par exemple, vous pouvez avoir trois séquences ayant les longueurs suivantes :
+ 3
+ 4
+ 5

Vous pouvez définir la longueur de toutes les séquences comme étant la longueur de la séquence ayant la longueur du 50e centile.

Des valeurs manquantes sont ajoutées aux tableaux de séries temporelles qui sont inférieures à la longueur spécifiée. Voici un exemple de format de standardisation de série temporelle en longueur supérieure : [2, 4, 5, NaN, NaN, NaN].

Vous pouvez utiliser différentes approches pour gérer les valeurs manquantes. Pour plus d’informations sur ces approches, consultez [Gestion des données de séries temporelles manquantes](#data-wrangler-transform-handle-missing-time-series).

Les tableaux de séries temporelles qui sont plus longues que la longueur spécifiée sont tronqués.

Vous pouvez utiliser la procédure suivante pour standardiser la longueur des séries temporelles.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Standardize length** (Standardiser la longueur).

1. Pour **Standardiser la longueur des séries temporelles de la colonne**, choisissez une colonne.

1. (Facultatif) Pour **Output column** (Colonne de sortie), spécifiez le nom de la colonne de sortie. Si vous ne spécifiez pas de nom, la transformation est effectuée sur place.

1. Si la colonne de date et d'heure (datetime) est formatée pour le type de chaîne, choisissez **Cast to datetime** (Conversion en valeur datetime).

1. Choisissez **Cutoff quantile** (Quantile de coupure) et spécifiez un quantile pour définir la longueur de la séquence.

1. Choisissez **Aplatir la sortie** pour afficher les valeurs de la série temporelle dans des colonnes distinctes.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Extraire des fonctions de vos données de séries temporelles
<a name="data-wrangler-transform-extract-time-series-features"></a>

Si vous exécutez une classification ou un algorithme de régression sur vos données de séries temporelles, nous vous recommandons d'extraire des ressources de la série temporelle avant d'exécuter l'algorithme. L'extraction de ressources peut améliorer la performance de votre algorithme.

Utilisez les options suivantes pour choisir la façon dont vous souhaitez extraire des ressources de vos données :
+ Utilisez **Minimal subset** (Sous-ensemble minimal) pour spécifier l'extraction de 8 ressources que vous savez utiles dans les analyses en aval. Vous pouvez utiliser un sous-ensemble minimal lorsque vous devez effectuer des calculs rapidement. Vous pouvez également l'utiliser lorsque votre algorithme ML présente un risque élevé de surajustement et que vous souhaitez lui fournir moins de ressources.
+ Utilisez **Efficient subset** (Sous-ensemble efficace) pour spécifier l'extraction du plus grand nombre de ressources possibles sans toutefois extraire de ressources qui sont gourmandes en calcul dans vos analyses.
+ Utilisez **All features** (Toutes les ressources) pour spécifier l'extraction de toutes les ressources de la série de réglage.
+ Utilisez **Manual subset** (Sous-ensemble manuel) pour choisir une liste de ressources qui, selon vous, expliquent bien la variation de vos données.

Suivez la procédure suivante pour extraire des ressources de vos données de séries temporelles.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Extract features** (Extraire des ressources).

1. Pour **Extraire des ressources de cette colonne**, choisissez une colonne.

1. (Facultatif) Sélectionnez **Flatten** (Aplatir) pour afficher les fonctions dans des colonnes distinctes.

1. Pour **Stratégie**, choisissez une stratégie pour extraire les ressources.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Utiliser des ressources décalées issues de vos données de séries temporelles
<a name="data-wrangler-transform-lag-time-series"></a>

Dans de nombreux cas d'utilisation, la meilleure façon de prédire le comportement futur de vos séries temporelles consiste à utiliser leur comportement le plus récent.

Voici les utilisations les plus courantes des entités décalées :
+ Collecter les dernières valeurs. Par exemple, pour le temps, t \$1 1, vous collectez t, t - 1, t - 2 et t - 3.
+ Collecter des valeurs correspondant au comportement saisonnier dans les données. Par exemple, pour prédire l'occupation d'un restaurant à 13h00, vous pouvez utiliser les ressources depuis 13h00 la veille. L'utilisation des ressources depuis 12h00 ou 11h00 le même jour peut altérer la qualité de la prédiction par rapport à l'utilisation des ressources des jours précédents.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Lag features** (Ressources de décalage).

1. Pour **Générer des fonctions de décalage pour cette colonne**, choisissez une colonne.

1. Pour **Timestamp Column** (Colonne d'horodatage), choisissez la colonne contenant les horodatages.

1. Pour **Décalage**, spécifiez la durée du décalage.

1. (Facultatif) Configurez la sortie à l'aide de l'une des options suivantes :
   + **Inclure l’intégralité de la fenêtre de décalage**
   + **Flatten the output** (Aplatir la sortie)
   + **Drop rows withou history** (Supprimer les lignes sans historique)

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Créer une plage de date/heure dans votre série temporelle
<a name="data-wrangler-transform-datetime-range"></a>

Il se peut que vous ayez des données de séries temporelles qui n'ont pas d'horodatage. Si vous savez que les observations ont été effectuées à intervalles réguliers, vous pouvez générer des horodatages pour la série temporelle dans une colonne distincte. Pour générer des horodatages, vous spécifiez la valeur de l'horodatage de début et la fréquence des horodatages.

Voici un exemple de données de séries temporelles pour le nombre de clients d’un restaurant.

Données de séries temporelles sur le nombre de clients dans un restaurant


| Nombre de clients | 
| --- | 
| 10 | 
| 14 | 
| 24 | 
| 40 | 
| 30 | 
| 20 | 

Si vous savez que le restaurant a ouvert ses portes à 17h00 et que des observations sont effectuées toutes les heures, vous pouvez ajouter une colonne d'horodatage correspondant aux données de séries temporelles. Vous pouvez voir la colonne d’horodatage dans le tableau suivant.

Données de séries temporelles sur le nombre de clients dans un restaurant


| Nombre de clients | Horodatage | 
| --- | --- | 
| 10 | 13h00 | 
| 14 | 14h00 | 
| 24 | 15h00 | 
| 40 | 16h00 | 
| 30 | 17h00 | 
| 20 | 18h00 | 

Utilisez la procédure suivante pour ajouter une plage de date/heure à vos données.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Plage de date/heure**.

1. Pour **Frequency type** (Type de fréquence), choisissez l'unité utilisée pour mesurer la fréquence des horodatages.

1. Pour **Starting timestamp** (Horodatage de début), spécifiez l'horodatage de début.

1. Pour **Colonne de sortie**, spécifiez le nom de la colonne de sortie.

1. (Facultatif) Configurez la sortie à l'aide des champs restants.

1. Choisissez **Prévisualisation** pour générer une prévisualisation de la transformation.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

### Utiliser une fenêtre propagée dans votre série temporelle
<a name="data-wrangler-transform-rolling-window"></a>

Vous pouvez extraire des ressources sur une période donnée. Par exemple, pour le temps, *t*, et une longueur de fenêtre temporelle de 3, et pour la ligne qui indique le *t*-ème horodatage, nous ajoutons les ressources extraites de la série temporelle aux temps *t* - 3, *t* -2 et *t* - 1. Pour en savoir plus sur l’extraction des ressources, consultez [Extraire des fonctions de vos données de séries temporelles](#data-wrangler-transform-extract-time-series-features). 

Vous pouvez utiliser la procédure suivante pour extraire des ressources sur une période.

1. Ouvrez votre flux de données Data Wrangler.

1. Si vous n'avez pas importé votre jeu de données, importez-le sous l'onglet **Import data** (Importer des données).

1. Dans votre flux de données, sous **Data types** (Types de données), choisissez le **\$1**, puis sélectionnez **Add transformation** (Ajouter une transformation).

1. Choisissez **Add step** (Ajouter une étape).

1. Choisissez **Rolling window features** (Ressources de fenêtre propagée).

1. Pour **Générer des ressources de fenêtre propagée pour cette colonne**, choisissez une colonne.

1. Pour **Timestamp Column** (Colonne d'horodatage), choisissez la colonne contenant les horodatages.

1. (Facultatif) Pour **Colonne de sortie**, définissez le nom de la colonne de sortie.

1. Pour **Taille de fenêtre**, spécifiez la taille de la fenêtre.

1. Pour **Strategy** (Stratégie), choisissez la stratégie d'extraction.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de la transformation.

1. Choisissez **Ajouter** pour ajouter la transformation au flux de données Data Wrangler.

## Date/Heure enrichie
<a name="data-wrangler-transform-datetime-embed"></a>

Utilisez **Featurize date/time** (Date/Heure enrichie) pour créer une encapsulation vectorielle représentant un champ date/heure. Pour utiliser cette transformation, vos données de date/heure doivent être dans l'un des formats suivants : 
+ Chaînes décrivant la date/heure : par exemple, `"January 1st, 2020, 12:44pm"`. 
+ Un horodatage unix : un horodatage unix décrit le nombre de secondes, de millisecondes, de microsecondes ou de nanosecondes à partir du 01/01/1970. 

Vous pouvez choisir de **déduire le format date/heure** et de fournir un **format date/heure**. Si vous fournissez un format date/heure, vous devez utiliser les codes décrits dans la [documentation Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes). Les options que vous choisissez pour ces deux configurations ont des répercussions sur la rapidité de l'opération et sur les résultats finaux.
+ L’option la plus manuelle et la plus rapide sur le plan informatique consiste à spécifier un **Format date/heure** et à sélectionner **Non** pour **Déduire le format date/heure**.
+ Pour réduire le travail manuel, vous pouvez choisir **Infer datetime format** (Déduire le format date/heure) et ne pas spécifier de format date/heure. Il s'agit également d'une opération rapide sur le plan du calcul ; cependant, le premier format date/heure rencontré dans la colonne d'entrée est supposé être le format de la colonne entière. Si la colonne présente d’autres formats, ces valeurs sont NaN dans la sortie finale. En déduisant le format date/heure, vous pouvez obtenir des chaînes non analysées. 
+ Si vous ne spécifiez aucun format et que vous sélectionnez **Non** pour **Déduire le format date/heure**, vous obtenez les résultats les plus robustes. Toutes les chaînes de date/heure valides sont analysées. Toutefois, cette opération peut être beaucoup plus lente que les deux premières options de cette liste. 

Lorsque vous utilisez cette transformation, vous spécifiez une **Input column** (Colonne d'entrée) qui contient des données de date/heure dans l'un des formats répertoriés ci-dessus. La transformation crée une colonne de sortie nommée **Nom de colonne de sortie**. Le format de la colonne de sortie dépend de votre configuration en utilisant les éléments suivants :
+ **Vecteur** : affiche une seule colonne en tant que vecteur. 
+ **Colonnes** : crée une colonne pour chaque entité. Par exemple, si la sortie contient une année, un mois et un jour, trois colonnes distinctes sont créées pour l'année, le mois et le jour. 

De plus, vous devez choisir un **Mode de vectorisation**. Pour les modèles linéaires et les réseaux profonds, nous recommandons de choisir le mode **cyclique**. Pour les algorithmes arborescents, nous recommandons d'utiliser le mode **ordinal**.

## Formatage de chaîne
<a name="data-wrangler-transform-format-string"></a>

Les transformations **Format string (Formatage de chaîne)** contiennent des opérations de formatage de chaîne standard. Par exemple, vous pouvez utiliser ces opérations pour supprimer des caractères spéciaux, normaliser les longueurs de chaîne et mettre à jour le boîtier de chaîne.

Ce groupe de fonctions contient les transformations suivantes. Toutes les transformations renvoient des copies des chaînes dans **Input column (Colonne d'entrée)** et ajoutent le résultat à une nouvelle colonne de sortie.


| Nom | Fonction | 
| --- | --- | 
| Left pad |  Padding à gauche de la chaîne avec un **caractère de remplissage** de **longueur** donnée. Si la chaîne dépasse la **longueur**, la valeur renvoyée est raccourcie au nombre de caractères de la **longueur**.  | 
| Right pad |  Padding à droite de la chaîne avec un **caractère de remplissage** de **longueur** donnée. Si la chaîne dépasse la **longueur**, la valeur renvoyée est raccourcie au nombre de caractères de la **longueur**.  | 
| Center (pad on either side) |  Padding central de la chaîne (padding ajouté des deux côtés de la chaîne) avec un **caractère de remplissage** de **longueur** donnée. Si la chaîne dépasse la **longueur**, la valeur renvoyée est raccourcie au nombre de caractères de la **longueur**.  | 
| Prepend zeros |  Remplit à gauche une chaîne numérique avec des zéros, jusqu'à une **longueur** donnée. Si la chaîne dépasse la **longueur**, la valeur renvoyée est raccourcie au nombre de caractères de la **longueur**.  | 
| Strip left and right |  Renvoie une copie de la chaîne avec les caractères de début et de fin supprimés.  | 
| Strip characters from left |  Renvoie une copie de la chaîne avec les caractères de début supprimés.  | 
| Strip characters from right |  Renvoie une copie de la chaîne dont les caractères de fin ont été supprimés.  | 
| Lower case |  Convertit toutes les lettres du texte en minuscules.  | 
| Upper case |  Convertit toutes les lettres du texte en majuscules.  | 
| Capitalize |  Convertit en majuscule la première lettre de chaque phrase.   | 
| Swap case | Convertit tous les caractères majuscules en minuscules et tous les caractères minuscules en majuscules dans la chaîne donnée, et la renvoie. | 
| Add prefix or suffix |  Ajoute un préfixe et un suffixe à la colonne de chaîne. Vous devez spécifier au moins l'un des éléments **Prefix (Préfixe)** et **Suffix (Suffixe)**.   | 
| Remove Symbols (Supprimer les symboles) |  Supprime les symboles donnés d’une chaîne. Tous les caractères répertoriés sont supprimés. et remplacés par défaut par un espace.   | 

## Traiter les valeurs aberrantes
<a name="data-wrangler-transform-handle-outlier"></a>

Les modèles de machine learning sont sensibles à la distribution et à l'étendue des valeurs de vos caractéristiques. Les valeurs aberrantes, ou rares, peuvent avoir un impact négatif sur la précision des modèles et allonger les durées d'entraînement. Utilisez ce groupe de caractéristiques pour détecter et mettre à jour les valeurs aberrantes dans votre jeu de données. 

Lorsque vous définissez une transformation **Handle outliers (Traiter les valeurs aberrantes)**, les statistiques utilisées pour détecter les valeurs aberrantes sont générées sur les données disponibles dans Data Wrangler lors de la définition de cette étape. Ces mêmes statistiques sont utilisées lors de l'exécution d'une tâche Data Wrangler. 

Utilisez les sections suivantes pour en apprendre davantage sur les transformations que contient ce groupe. Vous spécifiez un **Output name (Nom de sortie)** et chacune de ces transformations produit une colonne de sortie avec les données résultantes. 

### Robust standard deviation numeric outliers (Écarts-types aberrants numériques robustes)
<a name="data-wrangler-transform-handle-outlier-rstdev"></a>

Cette transformation détecte et corrige les valeurs aberrantes dans les caractéristiques numériques à l’aide de statistiques robustes aux valeurs aberrantes.

Vous devez définir un **Upper quantile** (Quantile supérieur) et un **Lower quantile** (Quantile inférieur) pour les statistiques servant à calculer les valeurs aberrantes. Vous devez également spécifier le nombre d’**Écarts-types** à partir duquel une valeur doit s’écarter de la moyenne pour être considérée comme une valeur aberrante. Par exemple, si vous spécifiez 3 pour les **Standard deviations** (Écarts-types), une valeur doit s'écarter de plus de 3 écarts-types de la moyenne pour être considérée comme aberrante. 

La méthode **Fix** est la méthode utilisée pour gérer les valeurs aberrantes lorsqu'elles sont détectées. Sélectionnez parmi les éléments suivants :
+ **Clip** (Découper) : utilisez cette option pour découper les valeurs aberrantes à la limite de détection des valeurs aberrantes correspondante.
+ **Remove** (Supprimer) : cette option permet de supprimer des lignes avec des valeurs aberrantes du dataframe.
+ **Invalidate** (Invalider) : utilisez cette option pour remplacer les valeurs aberrantes par des valeurs non valides.

### Écarts-types aberrants numériques
<a name="data-wrangler-transform-handle-outlier-sstdev"></a>

Cette transformation détecte et corrige les valeurs aberrantes dans les entités numériques à l'aide de la moyenne et de l'écart-type.

Vous spécifiez le nombre de **Standard deviations (Écarts-types)** qu'une valeur doit avoir par rapport à la moyenne pour être considérée comme une valeur aberrante. Par exemple, si vous spécifiez 3 pour les **Standard deviations (Écarts-types)**, une valeur doit s'écarter de plus de 3 écarts-types de la moyenne pour être considérée comme aberrante. 

La méthode **Fix** est la méthode utilisée pour gérer les valeurs aberrantes lorsqu'elles sont détectées. Sélectionnez parmi les éléments suivants :
+ **Clip** (Découper) : utilisez cette option pour découper les valeurs aberrantes à la limite de détection des valeurs aberrantes correspondante.
+ **Remove** (Supprimer) : cette option permet de supprimer des lignes avec des valeurs aberrantes du dataframe.
+ **Invalidate** (Invalider) : utilisez cette option pour remplacer les valeurs aberrantes par des valeurs non valides.

### Quantiles numériques aberrants
<a name="data-wrangler-transform-handle-outlier-quantile-numeric"></a>

Utilisez cette transformation pour détecter et corriger les valeurs aberrantes dans les entités numériques à l’aide de quantiles. Vous pouvez définir un **Upper quantile** (Quantile supérieur) et un **Lower quantile** (Quantile inférieur). Toutes les valeurs situées au-dessus du quantile supérieur ou en dessous du quantile inférieur sont considérées comme des valeurs aberrantes. 

La méthode **Fix** est la méthode utilisée pour gérer les valeurs aberrantes lorsqu’elles sont détectées. Sélectionnez parmi les éléments suivants :
+ **Clip** (Découper) : utilisez cette option pour découper les valeurs aberrantes à la limite de détection des valeurs aberrantes correspondante.
+ **Remove** (Supprimer) : cette option permet de supprimer des lignes avec des valeurs aberrantes du dataframe.
+ **Invalidate** (Invalider) : utilisez cette option pour remplacer les valeurs aberrantes par des valeurs non valides. 

### Valeurs numériques min-max aberrantes
<a name="data-wrangler-transform-handle-outlier-minmax-numeric"></a>

Cette transformation détecte et corrige les valeurs aberrantes dans les entités numériques à l'aide de seuils supérieurs et inférieurs. Utilisez cette méthode si vous connaissez des valeurs de seuil qui distinguent les valeurs aberrantes.

Vous spécifiez un **Upper threshold (Seuil supérieur)** et un **Lower threshold (Seuil inférieur)**, et si des valeurs se situent au-dessus ou au-dessous de ces seuils, elles sont considérées comme aberrantes. 

La méthode **Fix** est la méthode utilisée pour gérer les valeurs aberrantes lorsqu'elles sont détectées. Sélectionnez parmi les éléments suivants :
+ **Clip** (Découper) : utilisez cette option pour découper les valeurs aberrantes à la limite de détection des valeurs aberrantes correspondante.
+ **Remove** (Supprimer) : cette option permet de supprimer des lignes avec des valeurs aberrantes du dataframe.
+ **Invalidate** (Invalider) : utilisez cette option pour remplacer les valeurs aberrantes par des valeurs non valides. 

### Remplacer les valeurs rares
<a name="data-wrangler-transform-handle-outlier-replace-rare"></a>

Lorsque vous utilisez la transformation **Remplace rare (Remplacer les valeurs rares)**, vous spécifiez un seuil. Data Wrangler recherche toutes les valeurs qui atteignent ce seuil et les remplace par une chaîne que vous spécifiez. Par exemple, vous pouvez utiliser cette transformation pour classer toutes les valeurs aberrantes d'une colonne dans une catégorie « Autres ». 
+ **Replacement string (Chaîne de remplacement)** : chaîne par laquelle remplacer les valeurs aberrantes.
+ **Absolute threshold (Seuil absolu)** : une catégorie est rare si le nombre d'instances est inférieur ou égal à ce seuil absolu.
+ **Fraction threshold (Seuil de fraction)** : une catégorie est rare si le nombre d'instances est inférieur ou égal à ce seuil de fraction multiplié par le nombre de lignes.
+ **Max common categories (Nombre maximum de catégories communes)** : nombre maximal de catégories non rares qui restent après l'opération. Si le seuil ne filtre pas suffisamment les catégories, celles qui présentent le plus grand nombre d'apparitions sont classées comme non rares. Si le paramètre est défini sur 0 (par défaut), il n'y a pas de limite fixe au nombre de catégories.

## Handle Missing Values (Gestion des valeurs manquantes)
<a name="data-wrangler-transform-handle-missing"></a>

Les valeurs manquantes sont fréquentes dans les jeux de données de machine learning. Dans certaines situations, il convient d'imputer les données manquantes avec une valeur calculée, telle qu'une valeur moyenne ou catégoriquement commune. Vous pouvez traiter les valeurs manquantes à l'aide de la transformation de groupe **Handle Missing Values (Gestion des valeurs manquantes)**. Ce groupe contient les transformations suivantes. 

### Fill Missing (Remplissage des valeurs manquantes)
<a name="data-wrangler-transform-fill-missing"></a>

Utilisez la transformation **Fill missing (Remplissage des valeurs manquantes)** pour remplacer les valeurs manquantes par une **Fill value (Valeur de remplissage)** que vous définissez. 

### Impute missing (Imputer les valeurs manquantes)
<a name="data-wrangler-transform-impute"></a>

Utilisez la transformation **Impute missing (Imputer les valeurs manquantes)** pour créer une nouvelle colonne contenant des valeurs imputées où des valeurs manquantes ont été trouvées dans des données catégoriques et numériques en entrée. La configuration dépend de votre type de données.

Pour les données numériques, choisissez une politique d’imputation, utilisée pour déterminer la nouvelle valeur à imputer. Vous pouvez choisir d'imputer la moyenne ou la médiane sur les valeurs présentes dans votre jeu de données. Data Wrangler utilise la valeur calculée pour imputer les valeurs manquantes.

Pour les données catégorielles, Data Wrangler impute les valeurs manquantes en utilisant la valeur la plus fréquente de la colonne. Pour imputer une chaîne personnalisée, utilisez la transformation **Fill missing** (Remplir les valeurs manquantes) à la place.

### Ajouter un indicateur de valeur manquante
<a name="data-wrangler-transform-missing-add-indicator"></a>

Utilisez la transformation **Add Indicator for missing** (Ajouter un indicateur de valeur manquante) pour créer une colonne indicatrice, qui contient un booléen `"false"` si une ligne contient une valeur, et `"true"` si la valeur est manquante dans cette ligne. 

### Drop missing (Supprimer les valeurs manquantes)
<a name="data-wrangler-transform-drop-missing"></a>

Utilisez l'option **Drop missing (Supprimer les valeurs manquantes)** pour supprimer les lignes dans lesquelles des valeurs sont manquantes dans **Input column (Colonne d'entrée)**.

## Manage Columns (Gérer les colonnes)
<a name="data-wrangler-manage-columns"></a>

Vous pouvez utiliser les transformations suivantes pour mettre à jour et gérer rapidement les colonnes de votre jeu de données : 


| Nom | Fonction | 
| --- | --- | 
| Drop Column | Supprimer une colonne.  | 
| Duplicate Column | Dupliquer une colonne. | 
| Rename Column | Renommer une colonne. | 
| Move Column |  Déplacer une colonne dans le jeu de données. Choisissez de déplacer votre colonne vers le début ou la fin du jeu de données, avant ou après une colonne de référence, ou vers un index spécifique.   | 

## Manage Rows (Gérer les lignes)
<a name="data-wrangler-transform-manage-rows"></a>

Utilisez ce groupe de transformation pour effectuer rapidement des opérations de tri et de mélange sur les lignes. Ce niveau contient les éléments suivants :
+ **Sort (Trier)** : triez le dataframe entier par une colonne donnée. Cochez la case en regard de **Ascending order (Ordre croissant)** pour cette option ; sinon, désactivez la case et l'ordre décroissant est utilisé pour le tri. 
+ **Shuffle (Mélanger)** : mélangez aléatoirement toutes les lignes du jeu de données. 

## Manage Vectors (Gérer les vecteurs)
<a name="data-wrangler-transform-manage-vectors"></a>

Utilisez ce groupe de transformation pour combiner ou aplatir des colonnes vectorielles. Ce groupe contient les transformations suivantes. 
+ **Assemble (Assembler)** : utilisez cette transformation pour combiner les vecteurs Spark et les données numériques en une seule colonne. Par exemple, vous pouvez combiner trois colonnes : deux contenant des données numériques et une contenant des vecteurs. Ajoutez toutes les colonnes que vous souhaitez combiner dans **Input columns (Colonnes d'entrée)** et spécifiez un **Output column name (Nom de colonne de sortie)** pour les données combinées. 
+ **Aplatir** : utilisez cette transformation pour aplatir une seule colonne contenant des données vectorielles. La colonne d'entrée doit contenir des PySpark vecteurs ou des objets de type tableau. Vous pouvez contrôler le nombre de colonnes créées en spécifiant une **Méthode de détection du nombre de sorties**. Par exemple, si vous sélectionnez **Length of first vector** (Longueur du premier vecteur), le nombre d'éléments dans le premier vecteur ou tableau valide trouvé dans la colonne détermine le nombre de colonnes de sortie créées. Tous les autres vecteurs d’entrée avec trop d’éléments sont tronqués. Les entrées contenant trop peu d'éléments sont remplies NaNs.

  Vous spécifiez également un **Output prefix (Préfixe de sortie)**, qui est utilisé comme préfixe pour chaque colonne de sortie. 

## Process Numeric (Traitement numérique)
<a name="data-wrangler-transform-process-numeric"></a>

Utilisez le groupe de fonctions **Process Numeric (Traitement numérique)** pour traiter les données numériques. Chaque scalaire de ce groupe est défini à l'aide de la bibliothèque Spark. Les scalaires suivants sont pris en charge :
+ **Redimensionneur standard** : standardisez la colonne en entrée en soustrayant la moyenne de chaque valeur et en mettant à l’échelle la variance unitaire. Pour en savoir plus, consultez la documentation de Spark pour [StandardScaler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-transform.html).
+ **Redimensionneur robuste** : mettez à l’échelle la colonne d’entrée à l’aide de statistiques robustes vers des valeurs aberrantes. Pour en savoir plus, consultez la documentation de Spark pour [RobustScaler](https://spark.apache.org/docs/latest/ml-features#robustscaler).
+ **Redimensionneur Min Max** : transforme la colonne en entrée en mettant à l’échelle chaque entité à une plage donnée. Pour en savoir plus, consultez la documentation de Spark pour [MinMaxScaler](https://spark.apache.org/docs/latest/ml-features#minmaxscaler).
+ **Redimensionneur absolu Max** : mettez à l’échelle la colonne d’entrée en divisant chaque valeur par la valeur absolue maximale. Pour en savoir plus, consultez la documentation de Spark pour [MaxAbsScaler](https://spark.apache.org/docs/latest/ml-features#maxabsscaler).

## Echantillonnage
<a name="data-wrangler-transform-sampling"></a>

Une fois que vous avez importé vos données, vous pouvez utiliser le transformateur d'**échantillonnage** pour prélever un ou plusieurs échantillons. Lorsque vous utilisez le transformateur d'échantillonnage, Data Wrangler échantillonne votre jeu de données d'origine.

Vous pouvez choisir l'une des méthodes d'échantillonnage suivantes :
+ **Limit** (Limite) : échantillonne le jeu de données à partir de la première ligne jusqu'à la limite spécifiée.
+ **Randomized** (Aléatoire) : prélève un échantillon aléatoire d'une taille que vous spécifiez.
+ **Stratified** (Stratifié) : prélève un échantillon aléatoire stratifié.

Vous pouvez stratifier un échantillon aléatoire pour vous assurer qu’il représente la distribution d’origine du jeu de données.

Vous pouvez effectuer la préparation des données pour plusieurs cas d'utilisation. Pour chaque cas d’utilisation, vous pouvez prélever un échantillon différent et appliquer un ensemble de transformations différent.

La procédure suivante décrit le processus de création d’un échantillon aléatoire. 

Pour prélever un échantillon aléatoire à partir de vos données.

1. Cliquez sur **\$1** à droite du jeu de données que vous avez importé. Le nom de votre jeu de données se trouve sous **\$1**.

1. Choisissez **Add transform** (Ajouter une transformation).

1. Choisissez **Sampling** (Échantillonnage).

1. Pour **Sampling method** (Méthode d'échantillonnage), choisissez la méthode d'échantillonnage.

1. Pour **Approximate sample size** (Taille approximative de l'échantillon), choisissez le nombre approximatif d'observations que vous souhaitez dans votre échantillon.

1. (Facultatif) Spécifiez un entier pour **Random Seed** (Nombre aléatoire) afin de créer un échantillon reproductible.

La procédure suivante décrit le processus de création d'un échantillon stratifié.

Pour prélever un échantillon stratifié à partir de vos données.

1. Cliquez sur **\$1** à droite du jeu de données que vous avez importé. Le nom de votre jeu de données se trouve sous **\$1**.

1. Choisissez **Add transform** (Ajouter une transformation).

1. Choisissez **Sampling** (Échantillonnage).

1. Pour **Sampling method** (Méthode d'échantillonnage), choisissez la méthode d'échantillonnage.

1. Pour **Approximate sample size** (Taille approximative de l'échantillon), choisissez le nombre approximatif d'observations que vous souhaitez dans votre échantillon.

1. Pour **Stratify column** (Stratifier la colonne), indiquez le nom de la colonne sur laquelle vous souhaitez stratifier.

1. (Facultatif) Spécifiez un entier pour **Random Seed** (Nombre aléatoire) afin de créer un échantillon reproductible.

## Search and Edit (Rechercher et modifier)
<a name="data-wrangler-transform-search-edit"></a>

Utilisez cette section pour rechercher et modifier des motifs spécifiques dans des chaînes. Par exemple, vous pouvez rechercher et mettre à jour des chaînes dans des phrases ou des documents, diviser des chaînes par des délimiteurs et rechercher des occurrences de chaînes spécifiques. 

Les transformations suivantes sont prises en charge sous **Search and edit (Rechercher et modifier)**. Toutes les transformations renvoient des copies des chaînes dans **Input column (Colonne d'entrée)** et ajoutent le résultat à une nouvelle colonne de sortie.


| Nom | Fonction | 
| --- | --- | 
|  Find substring  |  Renvoie l'index de la première occurrence de **Substring** (Sous-chaîne) que vous avez recherchée. Vous pouvez commencer et terminer la recherche aux instants **Start** (Début) et **End** (Fin), respectivement.   | 
|  Find substring (from right)  |  Renvoie l'index de la dernière occurrence de **Substring** (Sous-chaîne) que vous avez recherchée. Vous pouvez commencer et terminer la recherche respectivement aux instants **Start** (Début) et **End** (Fin).   | 
|  Matches prefix  |  Renvoie une valeur de type booléenne si la chaîne contient un **Pattern** (Modèle) donné. Un modèle peut être une séquence de caractères ou une expression régulière. En option, vous pouvez rendre le modèle sensible à la casse.   | 
|  Find all occurrences  |  Renvoie un tableau avec toutes les occurrences d'un modèle donné. Un modèle peut être une séquence de caractères ou une expression régulière.   | 
|  Extract using regex  |  Renvoie une chaîne qui correspond à un modèle Regex donné.  | 
|  Extract between delimiters  |  Renvoie une chaîne avec tous les caractères trouvés entre le **délimiteur de gauche** et le **délimiteur de droite**.   | 
|  Extract from position  |  Renvoie une chaîne, depuis la **position de départ** dans la chaîne d'entrée, qui contient tous les caractères jusqu'à la position de départ plus la **longueur**.   | 
|  Find and replace substring  |  Renvoie une chaîne dont toutes les correspondances d'un **modèle** (une expression régulière) sont remplacées par une **chaîne de remplacement**.  | 
|  Replace between delimiters  |  Renvoie une chaîne dont la sous-chaîne trouvée entre la première occurrence d'un **délimiteur de gauche** et la dernière occurrence d'un **délimiteur de droite** est remplacée par une **chaîne de remplacement**. Si aucune correspondance n'est trouvée, rien n'est remplacé.   | 
|  Replace from position  |  Renvoie une chaîne dont la sous-chaîne située entre la **position de départ** et la **position de départ** plus la **longueur** est remplacée par une **chaîne de remplacement**. Si la **position de départ** plus la **longueur** est supérieure à la longueur de la chaîne de remplacement, la sortie contient **...**.  | 
|  Convert regex to missing  |  Convertit une chaîne en `None` si elle est invalide et renvoie le résultat. La validité est définie avec une expression régulière dans le **modèle**.  | 
|  Split string by delimiter  |  Renvoie un tableau de chaînes à partir de la chaîne d’entrée, divisé par le **délimiteur**, avec un **nombre maximal de fractionnements** (facultatif). Le délimiteur est par défaut un espace blanc.   | 

## Split data
<a name="data-wrangler-transform-split-data"></a>

Utilisez la transformation **Split data** (Fractionner les données) pour diviser votre jeu de données en deux ou trois jeux de données. Par exemple, vous pouvez diviser votre jeu de données en un jeu de données utilisé pour l'entraînement de votre modèle et un jeu de données utilisé pour le tester. Vous pouvez déterminer la proportion du jeu de données à inclure dans chaque fractionnement. Par exemple, si vous divisez un jeu de données en deux jeux, le jeu de données d'entraînement peut contenir 80 % des données, tandis que le jeu de données de test en contient 20 %.

Le fractionnement de vos données en trois jeux de données vous permet de créer des jeux de données d'entraînement, de validation et de test. Vous pouvez voir la performance du modèle sur le jeu de données de test en supprimant la colonne cible.

Votre cas d'utilisation détermine la part du jeu de données d'origine que chacun de vos jeux de données reçoit et la méthode que vous utilisez pour diviser les données. Par exemple, vous pouvez utiliser un fractionnement stratifié pour vous assurer que la distribution des observations dans la colonne cible est la même dans tous les jeux de données. Vous pouvez utiliser les transformations de fractionnement suivantes :
+ Fractionnement aléatoire : chaque fractionnement est un échantillon aléatoire, sans chevauchement, du jeu de données d'origine. Pour les jeux de données plus importants, l'utilisation d'un fractionnement aléatoire peut s'avérer coûteuse en ressources informatiques et prendre plus de temps qu'un fractionnement ordonné.
+ Fractionnement ordonné : fractionne le jeu de données en fonction de l'ordre séquentiel des observations. Par exemple, dans le cas d'une répartition 80/20 entre l'entraînement et le test, les premières observations qui représentent 80 % du jeu de données sont placées dans le jeu de données d'entraînement. Les derniers 20 % des observations vont dans le jeu de données de test. Les fractionnements ordonnés permettent de conserver l'ordre existant des données entre les fractionnements.
+ Fractionnement stratifié : fractionne le jeu de données pour s'assurer que le nombre d'observations dans la colonne d'entrée est représenté proportionnellement. Pour une colonne d'entrée comportant les observations 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, une répartition 80/20 sur la colonne signifierait qu'environ 80 % des 1, 80 % des 2 et 80 % des 3 sont intégrés au jeu d'entraînement. Environ 20 % de chaque type d'observation vont au jeu de test.
+ Fractionnement par clé : permet d'éviter que des données ayant la même clé se retrouvent dans plus d'un fractionnement. Par exemple, si vous avez un jeu de données avec la colonne « customer\$1id » et que vous l'utilisez comme clé, aucun identifiant de client ne se trouve dans plus d'un fractionnement.

Après avoir fractionné les données, vous pouvez appliquer des transformations supplémentaires à chaque jeu de données. Pour la plupart des cas d'utilisation, cela n'est pas nécessaire.

Data Wrangler calcule les proportions des fractionnements pour dégager les meilleures performances. Vous pouvez choisir un seuil d'erreur pour définir la précision des fractionnements. Les seuils d'erreur inférieurs reflètent plus fidèlement les proportions que vous spécifiez pour les fractionnements. Si vous définissez un seuil d'erreur plus élevé, vous obtenez de meilleures performances, mais une précision moindre.

Pour des données parfaitement réparties, réglez le seuil d'erreur sur 0. Vous pouvez spécifier un seuil compris entre 0 et 1 pour obtenir de meilleures performances. Si vous spécifiez une valeur supérieure à 1, Data Wrangler interprète cette valeur comme 1.

Si votre jeu de données comporte 10 000 lignes et que vous spécifiez une répartition 80/20 avec une erreur de 0,001, vous obtiendrez des observations se rapprochant de l'un des résultats suivants :
+ 8 010 observations dans le jeu d'entraînement et 1 990 dans le jeu de test.
+ 7 990 observations dans le jeu d'entraînement et 2 010 dans le jeu de test.

Le nombre d'observations pour le jeu de test dans l'exemple précédent se situe dans l'intervalle compris entre 8 010 et 7 990.

Par défaut, Data Wrangler utilise une valeur initiale aléatoire pour rendre les fractionnements reproductibles. Vous pouvez spécifier une autre valeur initiale afin de créer un fractionnement reproductible différent.

------
#### [ Randomized split ]

Utilisez la procédure suivante pour effectuer un fractionnement aléatoire sur votre jeu de données.

Pour fractionner votre jeu de données de manière aléatoire, procédez comme suit :

1. Cliquez sur le symbole **\$1** à côté du nœud contenant le jeu de données que vous fractionnez.

1. Choisissez **Ajouter une transformation**.

1. Sélectionnez **Split data** (Fractionner les données).

1. (Facultatif) Pour **Splits** (Fractionnements), indiquez les noms et les proportions de chaque fractionnement. La somme des proportions doit être égale à 1.

1. (Facultatif) Cliquez sur le symbole **\$1** pour créer un fractionnement supplémentaire.

   1. Spécifiez les noms et les proportions de tous les fractionnements. La somme des proportions doit être égale à 1.

1. (Facultatif) Spécifiez une valeur pour **Error threshold** (Seuil d'erreur) autre que la valeur par défaut.

1. (Facultatif) Spécifiez une valeur pour **Random seed** (Valeur initiale aléatoire).

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

------
#### [ Ordered split ]

Utilisez la procédure suivante pour effectuer un fractionnement ordonné sur votre jeu de données.

Pour effectuer un fractionnement ordonné dans votre jeu de données, procédez comme suit.

1. Cliquez sur le symbole **\$1** à côté du nœud contenant le jeu de données que vous fractionnez.

1. Choisissez **Ajouter une transformation**.

1. Pour le champ **Transform** (Transformation), choisissez **Ordered split** (Fractionnement ordonné).

1. Sélectionnez **Split data** (Fractionner les données).

1. (Facultatif) Pour **Splits** (Fractionnements), indiquez les noms et les proportions de chaque fractionnement. La somme des proportions doit être égale à 1.

1. (Facultatif) Cliquez sur le symbole **\$1** pour créer un fractionnement supplémentaire.

   1. Spécifiez les noms et les proportions de tous les fractionnements. La somme des proportions doit être égale à 1.

1. (Facultatif) Spécifiez une valeur pour **Error threshold** (Seuil d'erreur) autre que la valeur par défaut.

1. (Facultatif) Pour le champ **Input column** (Colonne d'entrée), spécifiez une colonne avec des valeurs numériques. Utilise les valeurs des colonnes pour déduire quels enregistrements se trouvent dans chaque fractionnement. Les plus petites valeurs se trouvent dans un fractionnement et les plus grandes valeurs dans les autres.

1. (Facultatif) Sélectionnez **Handle duplicates** (Gérer les doublons) pour ajouter du bruit aux valeurs dupliquées et créer un jeu de données de valeurs entièrement uniques.

1. (Facultatif) Spécifiez une valeur pour **Random seed** (Valeur initiale aléatoire).

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

------
#### [ Stratified split ]

Pour effectuer un fractionnement stratifié sur votre jeu de données, procédez comme suit.

Pour effectuer un fractionnement stratifié dans votre jeu de données, procédez comme suit.

1. Cliquez sur le symbole **\$1** à côté du nœud contenant le jeu de données que vous fractionnez.

1. Choisissez **Ajouter une transformation**.

1. Sélectionnez **Split data** (Fractionner les données).

1. Pour **Transform** (Transformation), choisissez **Stratified split** (Fractionnement stratifié).

1. (Facultatif) Pour **Splits** (Fractionnements), indiquez les noms et les proportions de chaque fractionnement. La somme des proportions doit être égale à 1.

1. (Facultatif) Cliquez sur le symbole **\$1** pour créer un fractionnement supplémentaire.

   1. Spécifiez les noms et les proportions de tous les fractionnements. La somme des proportions doit être égale à 1.

1. Pour le champ **Input column** (Colonne d'entrée), spécifiez une colonne comportant jusqu'à 100 valeurs uniques. Data Wrangler ne peut pas stratifier une colonne avec plus de 100 valeurs uniques.

1. (Facultatif) Spécifiez une valeur pour **Error threshold** (Seuil d'erreur) autre que la valeur par défaut.

1. (Facultatif) Spécifiez une valeur pour **Random seed** (Valeur initiale aléatoire) pour spécifier une valeur initiale différente.

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

------
#### [ Split by column keys ]

Utilisez la procédure suivante pour fractionner par clés de colonne dans votre jeu de données.

Pour fractionner par clés de colonne dans votre jeu de données, procédez comme suit.

1. Cliquez sur le symbole **\$1** à côté du nœud contenant le jeu de données que vous fractionnez.

1. Choisissez **Ajouter une transformation**.

1. Sélectionnez **Split data** (Fractionner les données).

1. Pour **Transform** (Transformation), choisissez **Split by key** (Fractionnement par clé).

1. (Facultatif) Pour **Splits** (Fractionnements), indiquez les noms et les proportions de chaque fractionnement. La somme des proportions doit être égale à 1.

1. (Facultatif) Cliquez sur le symbole **\$1** pour créer un fractionnement supplémentaire.

   1. Spécifiez les noms et les proportions de tous les fractionnements. La somme des proportions doit être égale à 1.

1. Pour le champ **Key columns** (Colonnes clés), indiquez les colonnes dont les valeurs ne doivent pas apparaître dans les deux jeux de données.

1. (Facultatif) Spécifiez une valeur pour **Error threshold** (Seuil d'erreur) autre que la valeur par défaut.

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

------

## Parse Value as Type (Analyser la valeur en tant que type)
<a name="data-wrangler-transform-cast-type"></a>

Utilisez cette transformation pour convertir une colonne en nouveau type. Les types de données Data Wrangler pris en charge sont :
+ Long
+ Float
+ Booléen
+ Date, au format dd-MM-yyyy, représentant respectivement le jour, le mois et l'année. 
+ String

## Validate string (Valider la chaîne)
<a name="data-wrangler-transform-validate-string"></a>

Utilisez la transformation **Validate string (Valider la chaîne)** pour créer une colonne indiquant qu'une ligne de données textuelles répond à une condition spécifiée. Par exemple, vous pouvez utiliser **Validate string (Valider la chaîne)** pour vérifier qu'une chaîne ne contient que des caractères minuscules. Les transformations suivantes sont prises en charge sous **Validate string (Valider la chaîne)**. 

Les transformations suivantes sont incluses dans ce groupe de transformation. Si une transformation génère une valeur booléenne, `True` est représenté par un `1` et `False` est représenté par un `0`.


| Nom | Fonction | 
| --- | --- | 
|  String length  |  Renvoie `True` si une longueur de chaîne est égale à la longueur spécifiée. Sinon, la valeur renvoyée est `False`.   | 
|  Starts with  |  Renvoie `True` si une chaîne démarre avec un préfixe spécifié. Sinon, la valeur renvoyée est `False`.  | 
|  Ends with  |  Renvoie `True` si une longueur de chaîne est égale à la longueur spécifiée. Sinon, la valeur renvoyée est `False`.  | 
|  Is alphanumeric  |  Renvoie `True` si une chaîne ne contient que des chiffres et des lettres. Sinon, la valeur renvoyée est `False`.  | 
|  Is alpha (letters)  |  Renvoie `True` si une chaîne ne contient que des lettres. Sinon, la valeur renvoyée est `False`.  | 
|  Is digit  |  Renvoie `True` si une chaîne ne contient que des chiffres. Sinon, la valeur renvoyée est `False`.  | 
|  Is space  |  Renvoie `True` si une chaîne ne contient que des chiffres et des lettres. Sinon, la valeur renvoyée est `False`.  | 
|  Is title  |  Renvoie `True` si une chaîne contient des espaces blancs. Sinon, la valeur renvoyée est `False`.  | 
|  Is lowercase  |  Renvoie `True` si une chaîne ne contient que des lettres minuscules. Sinon, la valeur renvoyée est `False`.  | 
|  Is uppercase  |  Renvoie `True` si une chaîne ne contient que des lettres majuscules. Sinon, la valeur renvoyée est `False`.  | 
|  Is numeric  |  Renvoie `True` si une chaîne ne contient que des nombres. Sinon, la valeur renvoyée est `False`.  | 
|  Is decimal  |  Renvoie `True` si une chaîne ne contient que des nombres décimaux. Sinon, la valeur renvoyée est `False`.  | 

## Annulation de l'imbrication des données JSON
<a name="data-wrangler-transform-flatten-column"></a>

Si vous possédez un fichier .csv, certaines valeurs de votre jeu de données peuvent être des chaînes JSON. De même, vous avez peut-être des données imbriquées dans des colonnes d’un fichier Parquet ou d’un document JSON.

Utilisez l'opérateur **Flatten structured** (Aplatir structuré) pour séparer les clés de premier niveau en colonnes distinctes. Une clé de premier niveau est une clé qui n'est pas imbriquée dans une valeur.

Par exemple, vous pouvez avoir un jeu de données doté d'une colonne *personne* contenant des informations démographiques sur chaque personne stockées sous forme de chaînes JSON. Une chaîne JSON peut ressembler à ce qui suit.

```
 "{"seq": 1,"name": {"first": "Nathaniel","last": "Ferguson"},"age": 59,"city": "Posbotno","state": "WV"}"
```

L'opérateur **Flatten structured** (Aplatir structuré) convertit les clés de premier niveau suivantes en colonnes supplémentaires dans le jeu de données :
+ seq
+ name
+ age
+ city
+ state

Data Wrangler place les valeurs des clés sous la forme de valeurs dans les colonnes. Le nom des colonnes et les valeurs des chaînes JSON sont indiqués ci-dessous.

```
seq, name,                                    age, city, state
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV
```

Pour chaque valeur du jeu de données contenant des chaînes JSON, l'opérateur **Flatten structured** (Aplatir structuré) crée des colonnes pour les clés de premier niveau. Pour créer des colonnes pour les clés imbriquées, appelez à nouveau l'opérateur. Dans l'exemple précédent, l'appel de l'opérateur crée les colonnes suivantes :
+ name\$1first
+ name\$1last

L'exemple suivant illustre le jeu de données résultant du nouvel appel de l'opération.

```
seq, name,                                    age, city, state, name_first, name_last
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV, Nathaniel, Ferguson
```

Choisissez **Keys to flatten on** (Clés sur lesquelles aplatir) pour spécifier les clés de premier niveau à extraire sous forme de colonnes distinctes. Si vous ne spécifiez pas de clé, Data Wrangler extrait toutes les clés par défaut.

## Éclatement du tableau
<a name="data-wrangler-transform-explode-array"></a>

Utilisez **Explode array** (Éclater le tableau) pour développer les valeurs du tableau en lignes de sortie distinctes. Par exemple, l'opération peut prendre chaque valeur du tableau [[1, 2, 3,], [4, 5, 6], [7, 8, 9]] et créer une nouvelle colonne avec les lignes suivantes :

```
                [1, 2, 3]
                [4, 5, 6]
                [7, 8, 9]
```

Data Wrangler nomme la nouvelle colonne <nom de la colonne d'entrée>\$1flatten.

Vous pouvez appeler l’opération **Explode array** (Éclater le tableau) plusieurs fois pour obtenir les valeurs imbriquées du tableau dans des colonnes de sortie distinctes. L'exemple suivant montre le résultat obtenu après que l'opération a été appelée plusieurs fois sur un jeu de données avec un tableau imbriqué.

Placement des valeurs d’un tableau imbriqué dans des colonnes distinctes


| id | array | id | array\$1items | id | array\$1items\$1items | 
| --- | --- | --- | --- | --- | --- | 
| 1 | [ [chat, chien], [chauve-souris, grenouille] ] | 1 | [chat, chien] | 1 | chat | 
| 2 |  [[rose, pétunia], [lys, marguerite]]  | 1 | [chauve-souris, grenouille] | 1 | chien | 
|  |  | 2 | [rose, pétunia] | 1 | chauve-souris | 
|  |  | 2 | [lys, marguerite] | 1 | grenouille | 
|  |  |  | 2 | 2 | rose | 
|  |  |  | 2 | 2 | pétunia | 
|  |  |  | 2 | 2 | lys | 
|  |  |  | 2 | 2 | marguerite | 

## Transformation des données d'image
<a name="data-wrangler-transform-image"></a>

Utilisez Data Wrangler pour importer et transformer les images que vous utilisez pour vos pipelines de machine learning (ML). Une fois que vous avez préparé vos données d'image, vous pouvez les exporter de votre flux Data Wrangler vers votre pipeline de machine learning.

Vous pouvez utiliser les informations fournies ici pour vous familiariser avec l'importation et la transformation de données d'image dans Data Wrangler. Data Wrangler utilise OpenCV pour importer des images. Pour plus d'informations sur les formats d'image pris en charge, consultez [Lecture et écriture de fichiers image](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Après vous être familiarisé avec les concepts de transformation de vos données d'image, suivez le didacticiel suivant, intitulé [Préparer les données d'image avec Amazon SageMaker Data Wrangler](https://aws.amazon.com/blogs/machine-learning/prepare-image-data-with-amazon-sagemaker-data-wrangler/).

Les secteurs et les cas d'utilisation suivants sont des exemples dans lesquels l'application du machine learning à des données d'image transformées peut s'avérer utile :
+ Fabrication : identification de défauts sur des articles dans la chaîne d'assemblage
+ Alimentation : identification d'aliments avariés ou pourris
+ Médecine : identification de lésions au niveau des tissus

Lorsque vous travaillez avec des données d'image dans Data Wrangler, vous devez suivre le processus suivant :

1. Importer : choisissez le répertoire contenant les images et sélectionnez-les dans votre compartiment Amazon S3.

1. Transformer : utilisez les transformations intégrées pour préparer les images pour votre pipeline de machine learning.

1. Exporter : exportez les images que vous avez transformées vers un emplacement accessible depuis le pipeline.

Procédez comme suit pour importer vos données d'image.

**Pour importer vos données d'image**

1. Accédez à la page **Créer une connexion**.

1. Choisissez **Amazon S3**.

1. Spécifiez le chemin du fichier Amazon S3 contenant ces données d'image.

1. Pour **Type de fichier**, choisissez **Image**.

1. (Facultatif) Choisissez **Importer des répertoires imbriqués** pour importer des images depuis plusieurs chemins Amazon S3.

1. Choisissez **Importer**.

Data Wrangler utilise la bibliothèque open source [imgaug](https://imgaug.readthedocs.io/en/latest/) pour ses transformations d'image intégrées. Vous pouvez utiliser les transformations intégrées suivantes :
+ **ResizeImage**
+ **EnhanceImage**
+ **CorruptImage**
+ **SplitImage**
+ **DropCorruptedImages**
+ **DropImageDuplicates**
+ **Brightness (Luminosité)**
+ **ColorChannels**
+ **Grayscale**
+ **Effectuer une rotation**

Utilisez la procédure suivante pour transformer vos images sans écrire de code.

**Pour transformer les données d'image sans écrire de code**

1. Dans votre flux Data Wrangler, choisissez le signe **\$1** à côté du nœud représentant les images que vous avez importées.

1. Choisissez **Ajouter une transformation**.

1. Choisissez **Ajouter une étape**.

1. Choisissez la transformation et configurez-la.

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

Outre les transformations fournies par Data Wrangler, vous pouvez également utiliser vos propres extraits de code personnalisés. Pour plus d'informations sur l'utilisation d'extraits de code personnalisés, consultez [Transformations personnalisées](#data-wrangler-transform-custom). Vous pouvez importer les bibliothèques OpenCV et imgaug dans vos extraits de code et utiliser les transformations qui leur sont associées. Voici un exemple d'extrait de code qui détecte les périphéries dans ces images.

```
# A table with your image data is stored in the `df` variable
import cv2
import numpy as np
from pyspark.sql.functions import column

from sagemaker_dataprep.compute.operators.transforms.image.constants import DEFAULT_IMAGE_COLUMN, IMAGE_COLUMN_TYPE
from sagemaker_dataprep.compute.operators.transforms.image.decorators import BasicImageOperationDecorator, PandasUDFOperationDecorator


@BasicImageOperationDecorator
def my_transform(image: np.ndarray) -> np.ndarray:
  # To use the code snippet on your image data, modify the following lines within the function
    HYST_THRLD_1, HYST_THRLD_2 = 100, 200
    edges = cv2.Canny(image,HYST_THRLD_1,HYST_THRLD_2)
    return edges
    

@PandasUDFOperationDecorator(IMAGE_COLUMN_TYPE)
def custom_image_udf(image_row):
    return my_transform(image_row)
    

df = df.withColumn(DEFAULT_IMAGE_COLUMN, custom_image_udf(column(DEFAULT_IMAGE_COLUMN)))
```

Lorsque vous appliquez des transformations dans votre flux Data Wrangler, Data Wrangler ne les applique qu'à un échantillon des images dans votre jeu de données. Pour optimiser votre expérience avec l'application, Data Wrangler n'applique pas les transformations à toutes vos images.

Pour appliquer les transformations à toutes vos images, exportez votre flux Data Wrangler vers un emplacement Amazon S3. Vous pouvez utiliser les images que vous avez exportées dans vos pipelines d'entraînement ou d'inférence. Utilisez un nœud de destination ou un bloc-notes Jupyter pour exporter vos données. Vous pouvez accéder à l'une ou l'autre méthode pour exporter vos données à partir du flux Data Wrangler. Pour obtenir des informations sur l'utilisation de ces méthodes, consultez [Exporter vers Amazon S3](data-wrangler-data-export.md#data-wrangler-data-export-s3).

## Filtrage des données
<a name="data-wrangler-transform-filter-data"></a>

Utilisez Data Wrangler pour filtrer les données de vos colonnes. Lorsque vous filtrez les données d'une colonne, vous spécifiez les champs suivants :
+ **Nom de colonne** : nom de la colonne que vous utilisez pour filtrer les données.
+ **Condition** : type de filtre que vous appliquez aux valeurs de la colonne.
+ **Valeur** : valeur ou catégorie de la colonne à laquelle vous appliquez le filtre.

Vous pouvez filtrer les conditions suivantes :
+ **=** : renvoie les valeurs correspondant à la valeur ou à la catégorie que vous spécifiez.
+ **\$1=** : renvoie les valeurs ne correspondant pas à la valeur ou à la catégorie que vous spécifiez.
+ **>=** : pour les données **Long** ou **Float**, filtre les valeurs supérieures ou égales à la valeur que vous spécifiez.
+ **<=** : pour les données **Long** ou **Float**, filtre les valeurs inférieures ou égales à la valeur que vous spécifiez.
+ **>** : pour les données **Long** ou **Float**, filtre les valeurs supérieures à la valeur que vous spécifiez.
+ **<** : pour les données **Long** ou **Float**, filtre les valeurs inférieures à la valeur que vous spécifiez.

Pour une colonne contenant les catégories `male` et `female`, vous pouvez filtrer toutes les valeurs `male`. Vous pouvez également filtrer toutes les valeurs `female`. Comme il n'y a que des valeurs `male` et `female` dans la colonne, le filtre renvoie une colonne contenant uniquement des valeurs `female`.

Vous pouvez également ajouter plusieurs filtres. Les filtres peuvent être appliqués sur plusieurs colonnes ou sur la même colonne. Par exemple, si vous créez une colonne dont les valeurs se situent uniquement dans une certaine plage, vous ajoutez deux filtres différents. L'un des filtres indique que la colonne doit avoir des valeurs supérieures à la valeur que vous fournissez. L'autre filtre indique que la colonne doit avoir des valeurs inférieures à la valeur que vous fournissez.

Utilisez la procédure suivante pour ajouter la transformation de filtre à vos données.

**Pour filtrer vos données**

1. Dans votre flux Data Wrangler, choisissez le signe **\$1** à côté du nœud contenant les données que vous filtrez.

1. Choisissez **Ajouter une transformation**.

1. Choisissez **Ajouter une étape**.

1. Choisissez **Filtrer les données**.

1. Spécifiez les champs suivants :
   + **Nom de colonne** : colonne que vous filtrez.
   + **Condition** : condition du filtre.
   + **Valeur** : valeur ou catégorie de la colonne à laquelle vous appliquez le filtre.

1. (Facultatif) Choisissez **\$1** après le filtre que vous avez créé.

1. Configurez le filtre.

1. Choisissez **Preview** (Aperçu).

1. Choisissez **Ajouter**.

## Mappage de colonnes pour Amazon Personalize
<a name="data-wrangler-transform-personalize"></a>

Data Wrangler s'intègre à Amazon Personalize, un service de machine learning entièrement géré qui génère des recommandations d'éléments et des segments d'utilisateurs. Vous pouvez utiliser la transformation **Mapper des colonnes pour Amazon Personalize** afin de convertir vos données dans un format interprétable par Amazon Personalize. Pour plus d'informations sur les transformations spécifiques à Amazon Personalize, consultez [Importation de données à l'aide d'Amazon SageMaker Data Wrangler](https://docs.aws.amazon.com/personalize/latest/dg/preparing-importing-with-data-wrangler.html#dw-transform-data). Pour plus d’informations sur Amazon Personalize, consultez [Qu’est-ce qu’Amazon Personalize ?](https://docs.aws.amazon.com/personalize/latest/dg/what-is-personalize.html).

# Analyse et visualisation
<a name="data-wrangler-analyses"></a>

Amazon SageMaker Data Wrangler inclut des analyses intégrées qui vous aident à générer des visualisations et des analyses de données en quelques clics. Vous pouvez également créer des analyses personnalisées à l’aide de votre propre code. 

Vous ajoutez une analyse à un dataframe en sélectionnant une étape dans votre flux de données, puis en cliquant sur **Add analysis (Ajouter une analyse)**. Pour accéder à une analyse que vous avez créée, sélectionnez l'étape qui contient l'analyse et sélectionnez l'analyse. 

Toutes les analyses sont générées à l'aide de 100 000 lignes de votre jeu de données. 

Vous pouvez ajouter les analyses suivantes à un dataframe :
+ Visualisations de données, y compris les histogrammes et les nuages de points. 
+ Un résumé rapide de votre jeu de données, incluant le nombre d'entrées, les valeurs minimales et maximales (pour les données numériques) et les catégories les plus et les moins fréquentes (pour les données catégorielles).
+ Un modèle rapide du jeu de données, qui peut être utilisé pour générer un score d'importance pour chaque caractéristique. 
+ Un rapport de fuite cible, que vous pouvez utiliser pour déterminer si une ou plusieurs caractéristiques sont fortement corrélées avec votre caractéristique cible.
+ Une visualisation personnalisée utilisant votre propre code. 

Utilisez les sections suivantes pour en savoir plus sur ces options. 

## Histogramme
<a name="data-wrangler-visualize-histogram"></a>

Utilisez des histogrammes pour afficher le nombre de valeurs de caractéristique pour une caractéristique spécifique. Vous pouvez inspecter les relations entre les entités à l'aide de l'option **Color by (Couleur par)**. Par exemple, l’histogramme suivant illustre la répartition des évaluations des utilisateurs des livres les plus vendus sur Amazon entre 2009 et 2019, colorés par genre. 

![\[Exemple d’histogramme dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/histogram.png)


Vous pouvez utiliser la caractéristique **Facetter par** pour créer des histogrammes d’une colonne, pour chaque valeur dans une autre colonne. Par exemple, le diagramme suivant montre les histogrammes des avis des utilisateurs sur les livres les plus vendus sur Amazon si facettés par année. 

![\[Exemples d’histogrammes dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/review_by_year.png)


## Nuage de points
<a name="data-wrangler-visualize-scatter-plot"></a>

Utilisez la fonction **Scatter Plot (Nuage de points)** pour inspecter la relation entre les caractéristiques. Pour créer un nuage de points, sélectionnez une caractéristique à représenter sur l'**axe des X** et l'**axe des Y**. Ces deux colonnes doivent être des colonnes à caractères numériques. 

Vous pouvez colorer les nuages de points par une colonne supplémentaire. Ainsi, l'exemple suivant présente un diagramme de dispersion comparant le nombre d'avis aux évaluations des utilisateurs pour les livres les plus vendus sur Amazon entre 2009 et 2019. Le nuage de points est coloré par genre de livre. 

![\[Exemple de diagramme de dispersion dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/scatter-plot.png)


En outre, vous pouvez facetter des nuages de points par caractéristiques. Ainsi, l’image suivante illustre le même nuage de points d’évaluation par rapport à l’évaluation utilisateur, à facettes par année. 

![\[Exemple de diagramme de dispersion à facettes dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/scatter-plot-facet.png)


## Résumé de la table
<a name="data-wrangler-table-summary"></a>

Utilisez l'analyse **Table Summary (Résumé de la table)** pour résumer rapidement vos données.

Pour les colonnes avec des données numériques, y compris les données logarithmiques et flottantes, un résumé de tableau indique le nombre d'entrées (nombre), le minimum (min), le maximum (max), la moyenne et l'écart-type (stddev) pour chaque colonne.

Pour les colonnes contenant des données non numériques, y compris les colonnes contenant une chaîne, une valeur booléenne ou date/time des données, un résumé du tableau indique le nombre d'entrées (nombre), la valeur la moins fréquente (min) et la valeur la plus fréquente (max). 

## Modèle rapide
<a name="data-wrangler-quick-model"></a>

Utilisez la visualisation **Quick Model (Modèle rapide)** pour évaluer rapidement vos données et produire des scores d'importance pour chaque caractéristique. Un [feature importance score (score d'importance d'une caractéristique)](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances) indique l'utilité d'une caractéristique pour prédire une étiquette cible. Le score d'importance d'une caractéristique se situe dans l'intervalle [0, 1] et une valeur élevée indique que la caractéristique est plus importante pour l'ensemble du jeu de données. En haut du graphique modèle rapide, il y a un score du modèle. Un problème de classification indique un score F1. Un problème de régression a un score d'erreur au carré moyen (mean squared error – MSE).

Lorsque vous créez un graphique modèle rapide, vous sélectionnez un jeu de données que vous souhaitez évaluer et une étiquette cible par rapport à laquelle vous souhaitez comparer l'importance de la caractéristique. Data Wrangler exécute les opérations suivantes :
+ Détermine les types de données de l'étiquette cible et de chaque caractéristique du jeu de données sélectionné. 
+ Détermine le type de problème. En fonction du nombre de valeurs distinctes dans la colonne d'étiquette, Data Wrangler détermine s'il s'agit d'un type de problème de régression ou de classification. Data Wrangler définit un seuil de catégorie à 100. S’il y a plus de 100 valeurs distinctes dans la colonne d’étiquette, Data Wrangler la classe comme un problème de régression ; sinon, elle est classée comme un problème de classification. 
+ Fonctions de pré-traitement et données d'étiquetage pour l'entraînement. L’algorithme utilisé nécessite l’encodage des caractéristiques en type vectoriel et l’encodage des étiquettes en type double. 
+ Entraîne un algorithme de forêt aléatoire avec 70 % des données. Spark [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)est utilisé pour entraîner un modèle pour les problèmes de régression. [RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)Il est utilisé pour entraîner un modèle pour les problèmes de classification.
+ Évalue un modèle de forêt aléatoire avec les 30 % de données restantes. Data Wrangler évalue les modèles de classification à l'aide d'un score F1 et évalue les modèles de régression à l'aide d'un score MSE.
+ Calcule l’importance de chacune des caractéristiques à l’aide de la méthode d’importance Gini. 

L’image suivante illustre l’interface utilisateur de la fonction de modèle rapide. 

![\[Exemple d’interface utilisateur de la fonctionnalité de modèle rapide dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/quick-model.png)


## Fuite de caractéristique cible
<a name="data-wrangler-analysis-target-leakage"></a>

Une fuite de cible se produit lorsqu'il existe des données dans un jeu de données de machine learning fortement corrélées avec l'étiquette cible, mais qui ne sont pas disponibles dans les données du monde réel. Par exemple, vous pouvez avoir une colonne dans votre jeu de données qui sert de substitut à la colonne que vous voulez prédire avec votre modèle. 

Lorsque vous utilisez **Fuite de caractéristique cible**, vous spécifiez les informations suivantes :
+ **Target (Cible)** : il s'agit de la caractéristique sur laquelle vous souhaitez que votre modèle ML puisse faire des prédictions.
+ **Problem type (Type de problème)** : c'est le type de problème ML sur lequel vous travaillez. Le type de problème peut être **classification** ou **regression (régression)**. 
+  (Facultatif) **Max features (Nombre max de caractéristiques)** : il s'agit du nombre maximal de caractéristiques à présenter dans la visualisation, qui affiche les caractéristiques classées par leur risque de fuite de cible.

Pour la classification, l'analyse de fuite de cible utilise la zone sous la caractéristique de fonctionnement du récepteur, ou la courbe ASC-ROC pour chaque colonne, jusqu'à **Max features** (Nombre maximum de fonctions). Pour la régression, il utilise un coefficient de détermination, ou métrique R2.

La courbe AUC - ROC fournit une métrique prédictive, calculée séparément pour chaque colonne à l'aide de la validation croisée, sur un échantillon d'environ 1 000 lignes. Un score de 1 indique des capacités prédictives parfaites, ce qui indique souvent une fuite de cible. Un score de 0,5 ou moins indique que l'information figurant dans la colonne ne pouvait fournir, à elle seule, aucune information utile pour prédire la cible. Bien qu'il puisse arriver qu'une colonne n'apporte aucune information seule, mais qu'elle soit utile pour prédire la cible lorsqu'elle est utilisée en combinaison avec d'autres fonctions, un score faible peut indiquer que la fonction est redondante.

Par exemple, l'image suivante montre un rapport de fuite de cible pour un problème de classification du diabète, c'est-à-dire prédire si une personne est atteinte de diabète ou non. Une courbe ASC - ROC est utilisée pour calculer la capacité prédictive de cinq fonctions, et toutes sont considérées comme étant à l’abri des fuites de caractéristique cible.

![\[Exemple de rapport de fuite de caractéristique cible dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/target-leakage.png)


## Multicolinéarité
<a name="data-wrangler-multicollinearity"></a>

La multicolinéarité est une circonstance dans laquelle deux variables prédictives ou plus sont liées les unes aux autres. Les variables prédictives sont les caractéristiques de votre jeu de données que vous utilisez pour prédire une variable cible. En cas de multicolinéarité, les variables prédictives sont non seulement prédictives de la variable cible, mais également prédictives les unes des autres.

Vous pouvez utiliser **Variance Inflation Factor (VIF)** (Facteur d'inflation de la variance (VIF)), **Principal Component Analysis (PCA)** (Analyse en composantes principales (PCA)) ou **Lasso feature selection** (Sélection de caractéristiques par lasso) comme mesures de la multicolinéarité de vos données. Pour plus d’informations, consultez les rubriques suivantes.

------
#### [ Variance Inflation Factor (VIF) ]

Le facteur d'inflation de la variance (VIF) est une mesure de la colinéarité entre les paires de variables. Data Wrangler renvoie un score VIF comme mesure de la relation entre les variables les unes aux autres. Le score VIF est un nombre positif supérieur ou égal à 1.

Un score de 1 signifie que la variable n'est pas corrélée avec les autres variables. Des scores supérieurs à 1 indiquent une corrélation plus élevée.

Théoriquement, vous pouvez obtenir un score VIF avec une valeur infinie. Data Wrangler coupe les scores élevés jusqu'à 50. Si vous avez un score VIF supérieur à 50, Data Wrangler définit le score à 50.

Vous pouvez utiliser les consignes suivantes pour interpréter vos scores VIF :
+ Un score VIF inférieur ou égal à 5 indique que les variables sont modérément corrélées avec les autres variables.
+ Un score VIF supérieur ou égal à 5 indique que les variables sont fortement corrélées avec les autres variables.

------
#### [ Principle Component Analysis (PCA) ]

L'analyse en composantes principales (PCA) mesure la variance des données dans différentes directions dans l'espace des caractéristiques. L'espace des caractéristiques comprend toutes les variables prédictives que vous utilisez pour prédire la variable cible dans votre jeu de données.

Par exemple, si vous essayez de prédire qui a survécu au naufrage du *Titanic*, votre espace de caractéristiques peut inclure l'âge et le sexe des passagers, ainsi que le tarif qu'ils ont payé.

À partir de l'espace des caractéristiques, l'analyse PCA génère une liste ordonnée de variances. Ces variances portent également le nom de valeurs singulières. Les valeurs de la liste des variances sont supérieures ou égales à 0. Nous pouvons les utiliser pour déterminer le degré de multicolinéarité de nos données.

Lorsque les nombres sont approximativement uniformes, les données présentent très peu d'instances de multicolinéarité. En cas de forte variabilité entre les valeurs, nous avons de nombreuses instances de multicolinéarité. Avant d'effectuer l'analyse PCA, Data Wrangler normalise chaque caractéristique pour avoir une moyenne égale à 0 et un écart type de 1.

**Note**  
Dans cette circonstance, l'analyse PCA peut également être appelée « décomposition en valeurs singulières (SVD) ».

------
#### [ Lasso feature selection ]

La sélection de caractéristiques par lasso utilise la technique de régularisation L1 pour inclure uniquement les caractéristiques les plus prédictives de votre jeu de données.

Pour la classification et la régression, la technique de régularisation génère un coefficient pour chaque caractéristique. La valeur absolue de ce coefficient fournit un score d'importance pour la caractéristique. Un score d’importance plus élevé indique qu’il est plus prédictif de la variable cible. Une méthode courante de sélection de caractéristiques consiste à utiliser toutes les entités dont le coefficient de lasso est différent de zéro.

------

## Détection d’anomalies dans les données de séries temporelles
<a name="data-wrangler-time-series-anomaly-detection"></a>

Vous pouvez utiliser la visualisation de détection d'anomalies pour voir les valeurs aberrantes dans vos données de séries temporelles. Pour comprendre ce qui détermine une anomalie, vous devez savoir que nous décomposons la série temporelle en terme prédit et en terme d'erreur. Nous considérons la saisonnalité et la tendance des séries temporelles comme étant le terme prédit. Nous considérons les résidus comme étant le terme d'erreur.

Pour le terme d'erreur, vous spécifiez un seuil comme étant le nombre d'écarts-types dont le résidu peut s'éloigner de la moyenne pour être considéré comme une anomalie. Par exemple, vous définissez le seuil à trois écarts-types. Tout résidu à plus de 3 écarts-types de la moyenne est une anomalie.

Vous pouvez utiliser la procédure suivante pour exécuter une analyse **Anomaly detection** (Détection des anomalies).

1. Ouvrez votre flux de données Data Wrangler.

1. Cliquez sur **Data type** (Type de données) dans votre flux de données, choisissez le **\$1**, puis sélectionnez **Add analysis** (Ajouter une analyse).

1. Pour **Analysis Type** Type d'analyse, choisissez **Time Series** (Séries temporelles).

1. Pour **Visualization** (Visualisation), choisissez **Anomaly detection** (Détection des anomalies).

1. Pour **Anomaly threshold** (Seuil d'anomalies), choisissez le seuil auquel une valeur est considérée comme une anomalie.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de l'analyse.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

## Décomposition des tendances saisonnières dans les données de séries temporelles
<a name="data-wrangler-seasonal-trend-decomposition"></a>

Vous pouvez déterminer s'il existe une saisonnalité dans vos données de séries temporelles à l'aide de la visualisation de la décomposition des tendances saisonnières. Nous utilisons la méthode STL (Seasonal Trend Decomposition using LOESS) pour effectuer la décomposition. Nous décomposons la série temporelle en composants saisonniers, tendances et résidus. La tendance reflète la progression à long terme de la série. Le composant saisonnier est un signal se répète au cours d'une période. Après avoir supprimé la tendance et les composants saisonniers de la série temporelles, vous avez les résidus.

Vous pouvez utiliser la procédure suivante pour exécuter une analyse **Seasonal-Trend Decomposition** (Décomposition de série temporelle).

1. Ouvrez votre flux de données Data Wrangler.

1. Cliquez sur **Data type** (Type de données) dans votre flux de données, choisissez le **\$1**, puis sélectionnez **Add analysis** (Ajouter une analyse).

1. Pour **Analysis Type** Type d'analyse, choisissez **Time Series** (Séries temporelles).

1. Pour **Visualization** (Visualisation), choisissez **Seasonal-Trend Decomposition** (Décomposition de série temporelle).

1. Pour **Anomaly threshold** (Seuil d'anomalies), choisissez le seuil auquel une valeur est considérée comme une anomalie.

1. Choisissez **Preview** (Prévisualisation) pour générer une prévisualisation de l'analyse.

1. Choisissez **Add** (Ajouter) pour ajouter la transformation au flux de données Data Wrangler.

## Rapport de biais
<a name="data-wrangler-bias-report"></a>

Vous pouvez utiliser le rapport de biais dans Data Wrangler pour découvrir les biais potentiels dans vos données. Pour générer un rapport de biais, vous devez spécifier la colonne cible, ou **Label (Étiquette)**, que vous souhaitez prédire et une **Facet (Facette)**, ou la colonne que vous souhaitez inspecter pour détecter les biais.

**Label** (Étiquette) : fonction sur laquelle vous souhaitez qu'un modèle fasse des prédictions. Par exemple, si vous prédites la conversion des clients, vous pouvez sélectionner une colonne contenant des données indiquant si un client a passé une commande ou non. Vous devez également spécifier si cette fonction est une étiquette ou un seuil. Si vous spécifiez une étiquette, vous devez spécifier ce à quoi ressemble un *résultat positif* dans vos données. Dans l'exemple de conversion client, un résultat positif peut être 1 dans la colonne des commandes, représentant le résultat positif d'un client ayant passé une commande au cours des trois derniers mois. Si vous spécifiez un seuil, vous devez spécifier une limite inférieure définissant un résultat positif. Par exemple, si les colonnes de commandes client contiennent le nombre de commandes passées au cours de l’année précédente, vous pouvez spécifier 1.

**Facet** (Facette) : colonne que vous souhaitez inspecter pour les biais. Par exemple, si vous essayez de prédire la conversion des clients, votre facette peut correspondre à l’âge du client. Vous pouvez choisir cette facette parce que vous croyez que vos données sont biaisées vers un certain groupe d'âge. Vous devez identifier si la facette est mesurée en tant que valeur ou seuil. Par exemple, si vous souhaitez inspecter un ou plusieurs âges spécifiques, vous sélectionnez **Value (Valeur)** et spécifiez ces âges. Si vous souhaitez consulter un groupe d'âge, vous devez sélectionner **Threshold (Seuil)** et spécifier le seuil d'âge que vous souhaitez inspecter.

Après avoir sélectionné votre fonction et votre étiquette, vous sélectionnez les types de métriques de biais que vous souhaitez calculer.

Pour en savoir plus, consultez [Générer des rapports sur les biais dans les données de pré-entraînement](https://docs.aws.amazon.com/sagemaker/latest/dg/data-bias-reports.html). 

## Création de visualisations personnalisées
<a name="data-wrangler-visualize-custom"></a>

Vous pouvez ajouter une analyse à votre flux Data Wrangler pour créer une visualisation personnalisée. Votre jeu de données, avec toutes les transformations que vous avez appliquées, est disponible sous forme de [Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html). Data Wrangler utilise la variable `df` pour stocker le dataframe. Vous accédez au dataframe en appelant la variable.

Vous devez fournir la variable de sortie, `chart`, pour stocker un graphique de sortie [Altair](https://altair-viz.github.io/). Par exemple, vous pouvez utiliser le bloc de code suivant pour créer un histogramme personnalisé à l'aide du jeu de données Titanic.

```
import altair as alt
df = df.iloc[:30]
df = df.rename(columns={"Age": "value"})
df = df.assign(count=df.groupby('value').value.transform('count'))
df = df[["value", "count"]]
base = alt.Chart(df)
bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count'))
rule = base.mark_rule(color='red').encode(
    x='mean(value):Q',
    size=alt.value(5))
chart = bar + rule
```

**Pour créer une visualisation personnalisée :**

1. À côté du nœud contenant la transformation que vous souhaitez visualiser, sélectionnez le signe **\$1**.

1. Choisissez **Add analysis** (Ajouter une analyse).

1. Pour **Analysis type** (Type d'analyse), choisissez **Custom Visualization** (Visualisation personnalisée).

1. Pour **Analysis name** (Nom de l'analyse), spécifiez un nom.

1. Saisissez votre code dans la zone de code. 

1. Cliquez sur **Preview (Aperçu)** pour avoir un aperçu de votre visualisation.

1. Sélectionnez **Save** (Enregistrer) pour créer une visualisation.

![\[Exemple expliquant comment ajouter votre visualisation dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/custom-visualization.png)


Si vous ne savez pas comment utiliser le package de visualisation Altair dans Python, vous pouvez utiliser des extraits de code personnalisés pour bien démarrer.

Data Wrangler possède une collection interrogeable d'extraits de visualisation. Pour utiliser un extrait de visualisation, choisissez **Search example snippets** (Rechercher dans les exemples d'extraits) et spécifiez une requête dans la barre de recherche.

L'exemple suivant utilise l'extrait de code **Binned scatterplot** (Diagramme de dispersion échelonné). Il représente un histogramme pour 2 dimensions.

Les extraits contiennent des commentaires qui vous aident à comprendre les modifications que vous devez apporter au code. Vous devez généralement spécifier les noms de colonnes de votre jeu de données dans le code.

```
import altair as alt

# Specify the number of top rows for plotting
rows_number = 1000
df = df.head(rows_number)  
# You can also choose bottom rows or randomly sampled rows
# df = df.tail(rows_number)
# df = df.sample(rows_number)


chart = (
    alt.Chart(df)
    .mark_circle()
    .encode(
        # Specify the column names for binning and number of bins for X and Y axis
        x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)),
        y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)),
        size="count()",
    )
)

# :Q specifies that label column has quantitative type.
# For more details on Altair typing refer to
# https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types
```

# Réutilisation de flux de données pour différents jeux de données
<a name="data-wrangler-parameterize"></a>

Pour les sources de données Amazon Simple Storage Service (Amazon S3), vous pouvez créer et utiliser des paramètres. Un paramètre est une variable que vous avez enregistrée dans votre flux Data Wrangler. Sa valeur peut être n'importe quelle partie du chemin Amazon S3 de la source de données. Utilisez des paramètres pour modifier rapidement les données que vous importez dans un flux Data Wrangler ou que vous exportez vers une tâche de traitement. Vous pouvez également utiliser des paramètres pour sélectionner et importer un sous-jeu spécifique de vos données.

Après avoir créé un flux Data Wrangler, vous avez peut-être entraîné un modèle sur les données que vous avez transformées. Pour les jeux de données qui ont le même schéma, vous pouvez utiliser des paramètres pour appliquer les mêmes transformations à un jeu de données différent et entraîner un modèle différent. Vous pouvez utiliser les nouveaux jeux de données pour effectuer des inférences avec votre modèle ou les utiliser pour réentraîner votre modèle.

En général, les paramètres ont les attributs suivants :
+ Name (Nom) : nom que vous spécifiez pour le paramètre
+ Type : type de valeur que le paramètre représente
+ Default value (Valeur par défaut) : valeur du paramètre lorsque vous ne spécifiez pas de nouvelle valeur

**Note**  
Les paramètres de date/heure (Datetime) possèdent un attribut de plage horaire qu'ils utilisent comme valeur par défaut.

Data Wrangler utilise des accolades, `{{}}`, pour indiquer qu'un paramètre est utilisé dans le chemin Amazon S3. Par exemple, vous pouvez avoir une URL telle que `s3://amzn-s3-demo-bucket1/{{example_parameter_name}}/example-dataset.csv`.

Vous créez un paramètre lorsque vous modifiez la source de données Amazon S3 que vous avez importée. Vous pouvez attribuer une valeur de paramètre à n'importe quelle partie du chemin du fichier. Vous pouvez définir la valeur du paramètre sur une valeur ou un modèle. Les types de valeurs de paramètres disponibles dans le flux Data Wrangler sont les suivants :
+ Number
+ String
+ Modèle
+ Datetime

**Note**  
Vous ne pouvez pas créer de paramètre de modèle ou de paramètre datetime pour le nom du compartiment dans le chemin Amazon S3.

Vous devez définir un nombre comme valeur par défaut d'un paramètre numérique. Vous pouvez remplacer la valeur du paramètre par un nombre différent lorsque vous modifiez un paramètre ou lorsque vous lancez une tâche de traitement. Par exemple, dans le chemin S3, `s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv`, vous pouvez créer un paramètre numérique nommé `number_parameter` à la place de `1`. Votre chemin S3 apparaît désormais sous la forme `s3://amzn-s3-demo-bucket/example-prefix/example-file-{{number_parameter}}.csv`. Le chemin continue de pointer vers le jeu de données `example-file-1.csv` jusqu'à ce que vous modifiiez la valeur du paramètre. Si vous remplacez la valeur de `number_parameter` par `2`, le chemin devient alors `s3://amzn-s3-demo-bucket/example-prefix/example-file-2.csv`. Vous pouvez importer `example-file-2.csv` dans Data Wrangler si vous avez chargé le fichier vers cet emplacement Amazon S3.

Un paramètre de chaîne stocke une chaîne comme valeur par défaut. Par exemple, dans le chemin S3, `s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv`, vous pouvez créer un paramètre de chaîne nommé `string_parameter` à la place du nom de fichier, `example-file-1.csv`. Le chemin apparaît désormais sous la forme `s3://amzn-s3-demo-bucket/example-prefix/{{string_parameter}}`. Il continue de correspondre à `s3://amzn-s3-demo-bucket/example-prefix/example-file-1.csv`, jusqu'à ce que vous modifiiez la valeur du paramètre.

Au lieu de spécifier le nom du fichier sous forme de paramètre de chaîne, vous pouvez créer un paramètre de chaîne en utilisant l'intégralité du chemin Amazon S3. Vous pouvez spécifier un jeu de données à partir de n'importe quel emplacement Amazon S3 dans le paramètre de chaîne.

Un paramètre de modèle stocke une chaîne d'expression régulière (Python REGEX) comme valeur par défaut. Vous pouvez utiliser un paramètre de modèle pour importer plusieurs fichiers de données en même temps. Pour importer plusieurs objets à la fois, spécifiez une valeur de paramètre correspondant aux objets Amazon S3 que vous importez.

Vous pouvez également créer un paramètre de modèle pour les jeux de données suivants :
+ s3://amzn-s3-demo-bucket1/example-prefix/example-file-1.csv
+ s3://amzn-s3-demo-bucket1/example-prefix/example-file-2.csv
+ s3://amzn-s3-demo-bucket1/example-prefix/example-file-10.csv
+ s3://amzn-s3-demo - bucket/example-prefix/example -file-0123.csv

Pour `s3://amzn-s3-demo-bucket1/example-prefix/example-file-1.csv`, vous pouvez créer un paramètre de modèle à la place de `1` et définir la valeur par défaut du paramètre sur `\d+`. La chaîne REGEX `\d+` correspond à un ou plusieurs chiffres décimaux. Si vous créez un paramètre de modèle nommé `pattern_parameter`, votre chemin S3 apparaît sous la forme `s3://amzn-s3-demo-bucket1/example-prefix/example-file-{{pattern_parameter}}.csv`.

Vous pouvez également utiliser des paramètres de modèle pour faire correspondre tous les objets CSV de votre compartiment. Pour faire correspondre tous les objets d'un compartiment, créez un paramètre de modèle dont la valeur par défaut est `.*` et définissez le chemin sur `s3://amzn-s3-demo-bucket/{{pattern_parameter}}.csv`. Le caractère `.*` correspond à n'importe quel caractère de chaîne du chemin. 

Le chemin `s3://amzn-s3-demo-bucket/{{pattern_parameter}}.csv` peut correspondre aux jeux de données suivants.
+ `example-file-1.csv`
+ `other-example-file.csv`
+ `example-file-a.csv`

Un paramètre de date/heure (datetime) stocke le format avec les informations suivantes :
+ Un format pour analyser les chaînes à l'intérieur d'un chemin Amazon S3.
+ Une plage de temps relative pour limiter les valeurs de date/heure qui correspondent

Par exemple, dans le chemin de fichier Amazon S3, `s3://amzn-s3-demo-bucket/2020/01/01/example-dataset.csv`, 2020/01/01 représente une date au format `year/month/day`. Vous pouvez définir la plage de temps du paramètre sur un intervalle tel que `1 years` ou `24 hours`. Un intervalle `1 years` correspond à tous les chemins S3 dont les dates/heures se situent entre l'heure actuelle et l'heure qui précède exactement d'un an l'heure actuelle. L'heure actuelle est l'heure à laquelle vous commencez à exporter les transformations que vous avez apportées aux données. Pour plus d'informations sur l'exportation des données, consultez [Exporter](data-wrangler-data-export.md). Si la date actuelle est le 01/01/2022 et que l’intervalle de temps est `1 years`, le chemin S3 correspond aux jeux de données tels que les suivants :
+ s3://amzn-s3-demo-bucket/2021/01/01/example-dataset.csv
+ s3://amzn-s3-demo-bucket/2021/06/30/example-dataset.csv
+ s3://amzn-s3-demo-bucket/2021/12/31/example-dataset.csv

Les valeurs de date/heure (datetime) comprises dans un intervalle de temps relatif changent au fil du temps. Les chemins S3 qui se situent dans la plage de temps relative peuvent également différer.

Pour le chemin de fichier Amazon S3, `s3://amzn-s3-demo-bucket1/20200101/example-dataset.csv`, `20220101` est un exemple de chemin pouvant devenir un paramètre de date/heure (datetime).

Pour afficher un tableau de tous les paramètres que vous avez créés dans le flux Data Wrangler, choisissez le signe \$1\$1\$1\$1 à droite de la zone de texte contenant le chemin Amazon S3. Si vous n'avez plus besoin d'un paramètre que vous avez créé, vous pouvez le modifier ou le supprimer. Pour modifier ou supprimer un paramètre, choisissez les icônes à droite du paramètre.

**Important**  
Avant de supprimer un paramètre, assurez-vous de ne l'avoir utilisé nulle part dans votre flux Data Wrangler. Les paramètres supprimés qui se trouvent toujours dans le flux provoquent des erreurs.

Vous pouvez créer des paramètres pour chaque étape de votre flux Data Wrangler. Vous pouvez modifier ou supprimer un paramètre que vous avez créé. Si vous appliquez des transformations sur vos données qui ne sont plus pertinentes pour votre cas d'utilisation, vous pouvez modifier les valeurs des paramètres. La modification des valeurs des paramètres modifie les données que vous importez.

Les sections suivantes fournissent des exemples supplémentaires et des instructions générales sur l’utilisation des paramètres. Vous pouvez consulter ces sections pour déterminer les paramètres qui vous conviennent le mieux.

**Note**  
Les sections suivantes contiennent des procédures qui utilisent l'interface Data Wrangler pour remplacer les paramètres et créer une tâche de traitement.  
Vous pouvez également remplacer les paramètres à l'aide des procédures suivantes.  
Pour exporter votre flux Data Wrangler et remplacer la valeur d'un paramètre, procédez comme suit.  
Cliquez sur l’icône **\$1** en regard du nœud que vous souhaitez exporter.
Choisissez **Export to** (Exporter vers).
Choisissez l'emplacement où vous souhaitez exporter les données.
Sous `parameter_overrides`, spécifiez différentes valeurs pour les paramètres que vous avez créés.
Exécutez le bloc-notes Jupyter.

## Application d'un flux Data Wrangler à des fichiers à l'aide de modèles
<a name="data-wrangler-pattern-parameters"></a>

Vous pouvez utiliser des paramètres pour appliquer des transformations de votre flux Data Wrangler à différents fichiers qui correspondent à un modèle dans le chemin de l'URI Amazon S3. Cela vous permet de spécifier les fichiers de votre compartiment S3 que vous souhaitez transformer avec une grande précision. Par exemple, vous pouvez avoir un jeu de données avec le chemin `s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv`. Les différents jeux de données nommés `example-dataset.csv` sont stockés sous de nombreux exemples de préfixes différents. Les préfixes peuvent également être numérotés de manière séquentielle. Vous pouvez créer des modèles pour les nombres dans l'URI Amazon S3. Les paramètres de modèle utilisent REGEX pour sélectionner un nombre quelconque de fichiers correspondant au modèle de l'expression. Les modèles REGEX suivants peuvent être utiles :
+ `.*` : correspond à zéro ou plusieurs caractères, à l'exception des caractères de saut de ligne
+ `.+` : correspond à un ou plusieurs caractères, à l'exception des caractères de saut de ligne
+ `\d+` : correspond à un ou plusieurs nombres décimaux
+ `\w+` : correspond à un ou plusieurs caractères alphanumériques
+ `[abc-_]{2,4}` : correspond à une chaîne de deux, trois ou quatre caractères composée du jeu de caractères fourni entre crochets
+ `abc|def` : correspond à une chaîne ou à une autre. Par exemple, l'opération correspond à `abc` ou `def`

Vous pouvez remplacer chaque nombre dans les chemins suivants par un seul paramètre ayant pour valeur `\d+`.
+ `s3://amzn-s3-demo-bucket1/example-prefix-3/example-prefix-4/example-prefix-5/example-dataset.csv`
+ `s3://amzn-s3-demo-bucket1/example-prefix-8/example-prefix-12/example-prefix-13/example-dataset.csv`
+ `s3://amzn-s3-demo-bucket1/example-prefix-4/example-prefix-9/example-prefix-137/example-dataset.csv`

La procédure suivante crée un paramètre de modèle pour un jeu de données avec le chemin `s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv`.

Pour créer un paramètre de modèle, procédez comme suit.

1. À côté du jeu de données que vous avez importé, choisissez **Edit dataset** (Modifier le jeu de données).

1. Mettez en évidence le `0` dans `example-prefix-0`.

1. Spécifiez des valeurs pour les champs suivants :
   + **Name** (Nom) : nom du paramètre
   + **Type** – **Pattern** (Modèle)
   + **Value** (Valeur) – **\$1d\$1** une expression régulière qui correspond à un ou plusieurs chiffres

1. Choisissez **Create** (Créer).

1. Remplacez le `1` et le `2` dans le chemin d'URI S3 par le paramètre. Le chemin doit avoir le format suivant : `s3://amzn-s3-demo-bucket1/example-prefix-{{example_parameter_name}}/example-prefix-{{example_parameter_name}}/example-prefix-{{example_parameter_name}}/example-dataset.csv`

La procédure générale suivante permet de créer un paramètre de modèle.

1. Accédez à votre flux Data Wrangler.

1. À côté du jeu de données que vous avez importé, choisissez **Edit dataset** (Modifier le jeu de données).

1. Mettez en évidence la partie de l'URI que vous utilisez comme valeur du paramètre de modèle.

1. Choisissez **Create custom parameter** (Créer un paramètre personnalisé).

1. Spécifiez des valeurs pour les champs suivants :
   + **Name** (Nom) : nom du paramètre
   + **Type** – **Pattern** (Modèle)
   + **Value** (Valeur) : expression régulière contenant le modèle que vous souhaitez stocker.

1. Choisissez **Créer**.

## Application d'un flux Data Wrangler à des fichiers à l'aide de valeurs numériques
<a name="data-wrangler-numeric-parameters"></a>

Vous pouvez utiliser des paramètres pour appliquer des transformations de votre flux Data Wrangler à différents fichiers ayant des chemins similaires. Par exemple, vous pouvez avoir un jeu de données avec le chemin `s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv`.

Il se peut que des transformations de votre flux Data Wrangler aient été appliquées aux jeux de données situés sous `example-prefix-1`. Vous pouvez souhaiter appliquer les mêmes transformations à `example-dataset.csv` sous `example-prefix-10` ou `example-prefix-20`.

Vous pouvez créer un paramètre qui stocke la valeur `1`. Si vous souhaitez appliquer les transformations à différents jeux de données, vous pouvez créer des tâches de traitement qui remplacent la valeur du paramètre par une valeur différente. Le paramètre agit comme un espace réservé que vous pouvez modifier lorsque vous souhaitez appliquer les transformations de votre flux Data Wrangler à de nouvelles données. Vous pouvez remplacer la valeur du paramètre lorsque vous créez une tâche de traitement Data Wrangler pour appliquer les transformations de votre flux Data Wrangler à différents jeux de données.

Utilisez la procédure suivante pour créer des paramètres numériques pour `s3://amzn-s3-demo-bucket1/example-prefix-0/example-prefix-1/example-prefix-2/example-dataset.csv`.

Pour créer des paramètres pour le chemin d'URI S3 précédent, procédez comme suit.

1. Accédez à votre flux Data Wrangler.

1. À côté du jeu de données que vous avez importé, choisissez **Edit dataset** (Modifier le jeu de données).

1. Mettez en évidence le nombre dans un exemple de préfixe `example-prefix-number`.

1. Choisissez **Create custom parameter** (Créer un paramètre personnalisé).

1. Pour **Name** (Nom), spécifiez un nom pour le paramètre.

1. Pour **Type**, choisissez **Integer** (Entier).

1. Pour **Value** (Valeur), spécifiez le nombre.

1. Créez des paramètres pour les nombres restants en répétant la procédure.

Une fois les paramètres créés, appliquez les transformations à votre jeu de données et créez un nœud de destination pour ceux-ci. Pour plus d'informations sur les nœuds de destination, consultez [Exporter](data-wrangler-data-export.md).

Suivez la procédure suivante pour appliquer les transformations de votre flux Data Wrangler à une autre plage de temps. Cela suppose que vous avez créé un nœud de destination pour les transformations de votre flux.

Pour modifier la valeur d'un paramètre numérique dans une tâche de traitement Data Wrangler, procédez comme suit.

1. Dans votre flux Data Wrangler, choisissez **Create job** (Créer une tâche).

1. Sélectionnez uniquement le nœud de destination qui contient les transformations du jeu de données contenant les paramètres de date/heure (datetime).

1. Choisissez **Configure job** (Configurer la tâche).

1. Choisissez **Parameters** (Paramètres).

1. Sélectionnez le nom d'un paramètre que vous avez créé.

1. Modifiez la valeur de ce paramètre.

1. Répétez la procédure pour les autres paramètres.

1. Cliquez sur **Exécuter**.

## Application d'un flux Data Wrangler à des fichiers à l'aide de chaînes
<a name="data-wrangler-string-parameters"></a>

Vous pouvez utiliser des paramètres pour appliquer des transformations de votre flux Data Wrangler à différents fichiers ayant des chemins similaires. Par exemple, vous pouvez avoir un jeu de données avec le chemin `s3://amzn-s3-demo-bucket1/example-prefix/example-dataset.csv`.

Vous pouvez avoir des transformations issues de votre flux Data Wrangler que vous avez appliquées à des jeux de données sous `example-prefix`. Vous pouvez appliquer ces mêmes transformations à `example-dataset.csv` sous `another-example-prefix` ou `example-prefix-20`.

Vous pouvez créer un paramètre qui stocke la valeur `example-prefix`. Si vous souhaitez appliquer les transformations à différents jeux de données, vous pouvez créer des tâches de traitement qui remplacent la valeur du paramètre par une valeur différente. Le paramètre agit comme un espace réservé que vous pouvez modifier lorsque vous souhaitez appliquer les transformations de votre flux Data Wrangler à de nouvelles données. Vous pouvez remplacer la valeur du paramètre lorsque vous créez une tâche de traitement Data Wrangler pour appliquer les transformations de votre flux Data Wrangler à différents jeux de données.

Utilisez la procédure suivante pour créer un paramètre de chaîne pour `s3://amzn-s3-demo-bucket1/example-prefix/example-dataset.csv`.

Pour créer un paramètre pour le chemin d'URI S3 précédent, procédez comme suit.

1. Accédez à votre flux Data Wrangler.

1. À côté du jeu de données que vous avez importé, choisissez **Edit dataset** (Modifier le jeu de données).

1. Mettez en évidence l'exemple de préfixe, `example-prefix`.

1. Choisissez **Create custom parameter** (Créer un paramètre personnalisé).

1. Pour **Name** (Nom), spécifiez un nom pour le paramètre.

1. Pour **Type**, choisissez **String** (Chaîne).

1. Pour **Value** (Valeur), spécifiez le préfixe.

Une fois le paramètre créé, appliquez les transformations à votre jeu de données et créez un nœud de destination pour celles-ci. Pour plus d'informations sur les nœuds de destination, consultez [Exporter](data-wrangler-data-export.md).

Suivez la procédure suivante pour appliquer les transformations de votre flux Data Wrangler à une autre plage de temps. Cela suppose que vous avez créé un nœud de destination pour les transformations de votre flux.

Pour modifier la valeur d'un paramètre numérique dans une tâche de traitement Data Wrangler, procédez comme suit :

1. Dans votre flux Data Wrangler, choisissez **Create job** (Créer une tâche).

1. Sélectionnez uniquement le nœud de destination qui contient les transformations du jeu de données contenant les paramètres de date/heure (datetime).

1. Choisissez **Configure job** (Configurer la tâche).

1. Choisissez **Parameters** (Paramètres).

1. Sélectionnez le nom d'un paramètre que vous avez créé.

1. Modifiez la valeur de ce paramètre.

1. Répétez la procédure pour les autres paramètres.

1. Cliquez sur **Exécuter**.

## Application d'un flux Data Wrangler à différentes plages de dates/heures
<a name="data-wrangler-datetime-parameters"></a>

Utilisez les paramètres de date/heure (datetime) pour appliquer des transformations de votre flux Data Wrangler à différentes plages de temps. Mettez en évidence la partie de l'URI Amazon S3 qui possède un horodatage et créez un paramètre pour celle-ci. Lorsque vous créez un paramètre, vous spécifiez une période comprise entre l'heure actuelle et une heure passée. Par exemple, vous pouvez avoir un URI Amazon S3 qui ressemble à ce qui suit : `s3://amzn-s3-demo-bucket1/example-prefix/2022/05/15/example-dataset.csv`. Vous pouvez enregistrer `2022/05/15` en tant que paramètre de date/heure (datetime). Si vous spécifiez une année comme intervalle de temps, cet intervalle inclut le moment où vous exécutez la tâche de traitement contenant le paramètre de date/heure et l'heure il y a exactement un an. Si le moment où vous exécutez la tâche de traitement est le 6 septembre 2022 ou `2022/09/06`, les plages horaires peuvent inclure les suivantes :
+ `s3://amzn-s3-demo-bucket1/example-prefix/2022/03/15/example-dataset.csv`
+ `s3://amzn-s3-demo-bucket1/example-prefix/2022/01/08/example-dataset.csv`
+ `s3://amzn-s3-demo-bucket1/example-prefix/2022/07/31/example-dataset.csv`
+ `s3://amzn-s3-demo-bucket1/example-prefix/2021/09/07/example-dataset.csv`

Les transformations du flux Data Wrangler s'appliquent à tous les préfixes précédents. La modification de la valeur du paramètre dans la tâche de traitement ne modifie pas la valeur du paramètre dans le flux Data Wrangler. Pour appliquer les transformations aux jeux de données dans une autre plage horaire, procédez comme suit :

1. Créez un nœud de destination contenant toutes les transformations que vous souhaitez utiliser.

1. Créez une tâche Data Wrangler.

1. Configurez la tâche de manière à utiliser une plage horaire différente pour le paramètre. La modification de la valeur du paramètre dans la tâche de traitement ne modifie pas la valeur du paramètre dans le flux Data Wrangler.

Pour plus d'informations sur les nœuds de destination et les tâches Data Wrangler, consultez [Exporter](data-wrangler-data-export.md).

La procédure suivante crée un paramètre de date/heure (datetime) pour le chemin Amazon S3 : `s3://amzn-s3-demo-bucket1/example-prefix/2022/05/15/example-dataset.csv`.

Pour créer un paramètre de date/heure pour le chemin d'URI S3 précédent, procédez comme suit.

1. Accédez à votre flux Data Wrangler.

1. À côté du jeu de données que vous avez importé, choisissez **Edit dataset** (Modifier le jeu de données).

1. Mettez en évidence la partie de l'URI que vous utilisez comme valeur du paramètre de date/heure (datetime).

1. Choisissez **Create custom parameter** (Créer un paramètre personnalisé).

1. Pour **Name** (Nom), spécifiez un nom pour le paramètre.

1. Pour **Type**, choisissez **Datetime** (Date/Heure).
**Note**  
Par défaut, Data Wrangler sélectionne **Predefined** (Prédéfini), qui propose un menu déroulant vous permettant de sélectionner un format de date. Toutefois, le format d'horodatage que vous utilisez peut ne pas être disponible. Au lieu d'utiliser **Predefined** (Prédéfini) comme option par défaut, vous pouvez choisir **Custom** (Personnalisé) et spécifier le format d'horodatage manuellement.

1. Pour le **format de date**, ouvrez le menu déroulant suivant **Prédéfini** et choisissez **yyyy/MM/dd**. Le format **yyyy/MM/dd,** correspond à celui year/month/day de l'horodatage.

1. Dans le champ **Timezone** (Fuseau horaire), choisissez un fuseau horaire.
**Note**  
Les données que vous analysez peuvent avoir des horodatages pris dans un fuseau horaire différent du vôtre. Assurez-vous que le fuseau horaire que vous sélectionnez correspond à celui des données. 

1. Pour **Time range** (Plage de temps), spécifiez la plage de temps du paramètre.

1. (Facultatif) Saisissez une description indiquant la manière dont vous utilisez le paramètre.

1. Choisissez **Créer**.

Une fois les paramètres de date/heure (datetime) créés, appliquez les transformations à votre jeu de données et créez un nœud de destination pour celles-ci. Pour plus d'informations sur les nœuds de destination, consultez [Exporter](data-wrangler-data-export.md).

Suivez la procédure suivante pour appliquer les transformations de votre flux Data Wrangler à une autre plage de temps. Cela suppose que vous avez créé un nœud de destination pour les transformations de votre flux.

Pour modifier la valeur d'un paramètre de date/heure (datetime) dans une tâche de traitement Data Wrangler, procédez comme suit :

1. Dans votre flux Data Wrangler, choisissez **Create job** (Créer une tâche).

1. Sélectionnez uniquement le nœud de destination qui contient les transformations du jeu de données contenant les paramètres de date/heure (datetime).

1. Choisissez **Configure job** (Configurer la tâche).

1. Choisissez **Parameters** (Paramètres).

1. Sélectionnez le nom d'un paramètre de date/heure (datetime) que vous avez créé.

1. Pour **Time range** (Plage de temps), modifiez la plage de temps des jeux de données.

1. Cliquez sur **Exécuter**.

# Exporter
<a name="data-wrangler-data-export"></a>

Dans le flux Data Wrangler, vous pouvez exporter une partie ou la totalité des transformations que vous avez effectuées dans les pipelines de traitement des données.

Un *flux Data Wrangler* est une série d'étapes de préparation des données que vous avez effectuées sur vos données. Lors de la préparation des données, vous effectuez une ou plusieurs transformations de vos données. Chaque transformation est effectuée à l'aide d'une étape de transformation. Le flux comporte une série de nœuds qui représentent l'importation des données et les transformations effectuées. Pour obtenir un exemple de nœuds, consultez l’image suivante.

![\[Exemple de flux de données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-0.png)


L’image précédente montre un flux Data Wrangler avec deux nœuds. Le nœud **Source - sampled** (Source – Échantillonnée) affiche la source de données à partir de laquelle vous avez importé vos données. Le nœud **Data types** (Types de données) indique que Data Wrangler a effectué une transformation pour convertir le jeu de données en un format utilisable. 

Chaque transformation que vous ajoutez au flux Data Wrangler s'affiche sous la forme d'un nœud supplémentaire. Pour plus d'informations sur les transformations que vous pouvez ajouter, consultez [Transformation de données](data-wrangler-transform.md). L'image suivante représente un flux Data Wrangler avec un nœud **Rename-column** (Renommer colonne) pour modifier le nom d'une colonne dans un jeu de données.

Vous pouvez exporter vos transformations de données vers les éléments suivants :
+ Amazon S3
+ Pipelines
+ Amazon SageMaker Feature Store
+ Code Python

**Important**  
Nous vous recommandons d'utiliser la politique `AmazonSageMakerFullAccess` gérée par IAM pour AWS autoriser l'utilisation de Data Wrangler. Si vous n'utilisez pas cette politique gérée, vous pouvez utiliser une politique IAM donnant à Data Wrangler l'accès à un compartiment Amazon S3. Pour plus d'informations sur la politique, consultez [Sécurité et autorisations](data-wrangler-security.md).

Lorsque vous exportez votre flux de données, les AWS ressources que vous utilisez vous sont facturées. Vous pouvez utiliser des identifications d'allocation des coûts pour organiser et gérer les coûts de ces ressources. Vous créez ces balises pour votre profil utilisateur et Data Wrangler les applique automatiquement aux ressources utilisées pour exporter le flux de données. Pour plus d'informations, consultez [Utilisation des balises de répartition des coûts](https://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

## Exporter vers Amazon S3
<a name="data-wrangler-data-export-s3"></a>

Data Wrangler vous permet d'exporter les données vers un emplacement dans un compartiment Amazon S3. Vous pouvez spécifier l'emplacement à l'aide de l'une des méthodes suivantes :
+ Destination node (Nœud de destination) : emplacement où Data Wrangler stocke les données une fois qu'il les a traitées.
+ Export to (Exporter vers) : exporte les données résultant d'une transformation vers Amazon S3.
+ Export data (Exporter des données) : pour les petits jeux de données, permet d'exporter rapidement les données que vous avez transformées.

Utilisez les sections suivantes pour en savoir plus sur chacune de ces méthodes.

------
#### [ Destination Node ]

Si vous souhaitez générer sur Amazon S3 une série avec les étapes de traitement des données que vous avez effectuées, vous devez créer un nœud de destination. Un *nœud de destination* indique à Data Wrangler où stocker les données après leur traitement. Une fois que vous avez créé un nœud de destination, vous devez créer une tâche de traitement pour générer les données. Une *tâche de traitement* est une tâche SageMaker de traitement Amazon. Lorsque vous utilisez un nœud de destination, Data Wrangler exécute les ressources de calcul nécessaires pour générer les données que vous avez transformées dans Amazon S3. 

Vous pouvez utiliser un nœud de destination pour exporter une partie ou la totalité des transformations que vous avez effectuées dans le flux Data Wrangler.

Vous pouvez utiliser plusieurs nœuds de destination pour exporter différentes transformations ou différents ensembles de transformations. L’exemple suivant illustre deux nœuds de destination dans un seul flux Data Wrangler.

![\[Exemple de flux de données montrant deux nœuds de destination dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-4.png)


Vous pouvez utiliser la procédure suivante pour créer des nœuds de destination et les exporter vers un compartiment Amazon S3.

Pour exporter le flux de données, vous devez créer des nœuds de destination et une tâche Data Wrangler pour exporter les données. La création d'une tâche Data Wrangler lance une tâche SageMaker de traitement pour exporter votre flux. Vous pouvez choisir les nœuds de destination à exporter après les avoir créés.
**Note**  
Vous pouvez choisir **Create job** (Créer une tâche) dans le flux Data Wrangler pour afficher les instructions relatives à l'utilisation d'une tâche de traitement.

Utilisez la procédure suivante pour créer des nœuds de destination.

1. Cliquez sur l'icône **\$1** à côté des nœuds représentant les transformations à exporter.

1. Choisissez **Add destination** (Ajouter une destination).  
![\[Exemple de flux de données montrant comment ajouter une destination dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/destination-nodes-add-destination-0.png)

1. Choisissez **Amazon S3**.  
![\[Exemple de flux de données montrant comment ajouter une destination dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/destination-nodes-add-destination-S3-selected.png)

1. Spécifiez les champs suivants.
   + **Dataset name** (Nom du jeu de données) : nom que vous spécifiez pour le jeu de données que vous exportez.
   + **File type** (Type de fichier) : format du fichier que vous exportez.
   + **Délimiteur** (fichiers CSV et Parquet uniquement) : valeur utilisée pour séparer les autres valeurs.
   + **Compression** (fichiers CSV et Parquet uniquement) : méthode de compression utilisée pour réduire la taille du fichier. Vous pouvez utiliser les méthodes de compression suivantes :
     + bzip2
     + deflate
     + gzip
   + (Facultatif) **Amazon S3 location** (Emplacement Amazon S3) : emplacement S3 que vous utilisez pour générer les fichiers.
   + (Facultatif) **Number of partitions** (Nombre de partitions) : nombre de jeux de données que vous écrivez en sortie de la tâche de traitement.
   + (Facultatif) **Partition by column** (Partition par colonne) : écrit toutes les données avec la même valeur unique à partir de la colonne.
   + (Facultatif) **Paramètres d'inférence** : la sélection de **Générer des artefacts d'inférence** applique toutes les transformations que vous avez utilisées dans le flux Data Wrangler aux données entrant dans votre pipeline d'inférence. Le modèle de votre pipeline fait des prédictions sur les données transformées.

1. Choisissez **Add destination** (Ajouter une destination).

Utilisez la procédure suivante pour créer une tâche de traitement.

Créez une tâche à partir de la page **Data flow** (Flux de données) et choisissez les nœuds de destination que vous souhaitez exporter.
**Note**  
Vous pouvez choisir **Create job** (Créer une tâche) dans le flux Data Wrangler pour afficher les instructions relatives à la création d'une tâche de traitement.

1. Choisissez **Créer une tâche**. L’image suivante représente le panneau qui s’affiche lorsque vous sélectionnez **Créer une tâche**.  
![\[Volet de création de tâche d’un exemple de flux de données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/destination-nodes-create-job.png)

1. Pour **Nom de la tâche**, indiquez le nom de la tâche d’exportation.

1. Choisissez les nœuds de destination que vous souhaitez exporter.

1. (Facultatif) Spécifiez un ARN AWS KMS clé. Une AWS KMS clé est une clé cryptographique que vous pouvez utiliser pour protéger vos données. Pour plus d'informations sur AWS KMS les clés, consultez [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html).

1. (Facultatif) Sous **Trained parameters** (Paramètres entraînés), choisissez **Refit** (Adapter) si vous avez effectué les opérations suivantes :
   + Échantillonnage de votre jeu de données
   + Application d'une transformation qui utilise vos données pour créer une colonne dans le jeu de données

   Pour plus d’informations sur l’adaptation des transformations que vous avez effectuées sur l’ensemble d’un jeu de données, consultez [Adaptez les transformations à la totalité du jeu de données et exportez-les](#data-wrangler-data-export-fit-transform).
**Note**  
Pour les données image, Data Wrangler exporte les transformations que vous avez apportées à toutes les images. Le réajustement des transformations ne s'applique pas à votre cas d'utilisation.

1. Choisissez **Configure job** (Configurer la tâche). L’image suivante illustre la page **Configure job** (Configurer la tâche).  
![\[Page de configuration de tâche d’un exemple de flux de données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/destination-nodes-configure-job.png)

1. (Facultatif) Configurez la tâche Data Wrangler. Vous pouvez réaliser les configurations suivantes :
   + **Configuration de la tâche**
   + **Configuration de la mémoire Spark**
   + **Configuration réseau**
   + **Balises**
   + **Paramètres**
   + **Horaires associés**

1. Cliquez sur **Exécuter**.

------
#### [ Export to ]

Au lieu d'utiliser un nœud de destination, vous pouvez utiliser l'option **Export to** (Exporter vers) afin d'exporter le flux Data Wrangler vers Amazon S3 à l'aide d'un bloc-notes Jupyter. Vous pouvez choisir n'importe quel nœud de données dans le flux Data Wrangler et l'exporter. L'exportation du nœud de données exporte la transformation que le nœud représente et les transformations qui la précèdent.

Suivez la procédure suivante pour générer un bloc-notes Jupyter et l'exécuter pour exporter le flux Data Wrangler vers Amazon S3.

1. Cliquez sur l'icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez **Amazon S3 (via Jupyter Notebook)** (Amazon S3 (via un bloc-notes Jupyter)).

1. Exécutez le bloc-notes Jupyter.  
![\[Exemple de flux de données montrant comment exporter votre flux Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-export-to.png)

Lorsque vous exécutez le bloc-notes, il exporte votre flux de données (fichier .flow) de la même manière Région AWS que le flux Data Wrangler.

Le bloc-notes propose des options que vous pouvez utiliser pour configurer la tâche de traitement et les données qu'elle génère.

**Important**  
Nous vous fournissons des configurations de tâche pour configurer la sortie de vos données. En ce qui concerne les options de partitionnement et de mémoire du pilote, nous vous recommandons vivement de ne pas spécifier de configuration, à moins que vous ne connaissiez déjà ces options.

Sous **Job Configurations** (Configurations de la tâche), vous pouvez configurer les éléments suivants :
+ `output_content_type` : type de contenu du fichier de sortie. Utilise `CSV` comme format par défaut, mais vous pouvez spécifier`Parquet`.
+ `delimiter` : caractère utilisé pour séparer les valeurs dans le jeu de données lors de l'écriture dans un fichier CSV.
+ `compression` : si cette option est définie, le fichier de sortie est compressé. Utilise gzip comme format de compression par défaut.
+ `num_partitions` : nombre de partitions ou de fichiers que Data Wrangler écrit en sortie.
+ `partition_by` : noms des colonnes que vous utilisez pour partitionner la sortie.

Pour remplacer le format du fichier de sortie CSV par Parquet, remplacez la valeur `"CSV"` par `"Parquet"`. Pour les autres champs précédents, supprimez le commentaire des lignes contenant les champs que vous souhaitez spécifier.

Sous **(Optional) Configure Spark Cluster Driver Memory** [(Facultatif) Configurer la mémoire du pilote du cluster Spark], vous pouvez configurer les propriétés Spark pour la tâche, telles que la mémoire du pilote Spark, dans le dictionnaire `config`.

Ce qui suit montre le dictionnaire `config`.

```
config = json.dumps({
    "Classification": "spark-defaults",
    "Properties": {
        "spark.driver.memory": f"{driver_memory_in_mb}m",
    }
})
```

Pour appliquer la configuration à la tâche de traitement, supprimez le commentaire des lignes suivantes :

```
# data_sources.append(ProcessingInput(
#     source=config_s3_uri,
#     destination="/opt/ml/processing/input/conf",
#     input_name="spark-config",
#     s3_data_type="S3Prefix",
#     s3_input_mode="File",
#     s3_data_distribution_type="FullyReplicated"
# ))
```

------
#### [ Export data ]

Si vous souhaitez exporter rapidement une transformation d’un petit jeu de données, vous pouvez utiliser la méthode **Export data** (Exporter des données). Si vous choisissez **Export data** (Exporter des données), Data Wrangler travaille de manière synchrone pour exporter les données que vous avez transformées vers Amazon S3. Vous ne pouvez pas utiliser Data Wrangler tant qu'il n'a pas fini d'exporter vos données, à moins que vous annuliez l'opération.

Pour plus d’informations sur l’utilisation de la méthode **Export data** (Exporter des données) dans le flux Data Wrangler, consultez la procédure suivante.

Pour utiliser la méthode **Export data** (Exporter des données) :

1. Choisissez un nœud dans le flux Data Wrangler en l’ouvrant (en double-cliquant dessus).  
![\[Exemple de flux de données montrant comment exporter des données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/export-s3.png)

1. Configurez la façon dont vous souhaitez exporter les données.

1. Choisissez **Export data** (Exporter des données).

------

Lorsque vous exportez le flux de données vers un compartiment Amazon S3, Data Wrangler stocke une copie du fichier de flux dans le compartiment S3. Il stocke le fichier de flux avec le préfixe *data\$1wrangler\$1flows*. Si vous utilisez le compartiment Amazon S3 par défaut pour stocker vos fichiers de flux, il utilise la convention de dénomination suivante : `sagemaker-region-account number`. Par exemple, si votre numéro de compte est 111122223333 et que vous utilisez Studio Classic dans la région us-east-1, vos jeux de données importés sont stockés dans `sagemaker-us-east-1-111122223333`. Dans cet exemple, les fichiers .flow créés dans la région us-east-1 sont stockés dans `s3://sagemaker-region-account number/data_wrangler_flows/`. 

## Exportation vers Pipelines
<a name="data-wrangler-data-export-pipelines"></a>

Lorsque vous souhaitez créer et déployer des flux de travail d'apprentissage automatique (ML) à grande échelle, vous pouvez utiliser des pipelines pour créer des flux de travail qui gèrent et déploient des tâches d' SageMaker IA. Avec Pipelines, vous pouvez créer des flux de travail qui gèrent la préparation de vos données d' SageMaker IA, la formation des modèles et les tâches de déploiement de modèles. Vous pouvez utiliser les algorithmes propriétaires proposés par l' SageMaker IA en utilisant Pipelines. Pour plus d'informations sur les pipelines, consultez la section [SageMaker Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html).

Lorsque vous exportez une ou plusieurs étapes de votre flux de données vers Pipelines, Data Wrangler crée un bloc-notes Jupyter que vous pouvez utiliser pour définir, instancier, exécuter et gérer un pipeline.

### Utiliser un bloc-notes Jupyter pour créer un pipeline
<a name="data-wrangler-pipelines-notebook"></a>

Appliquez la procédure suivante pour créer un bloc-notes Jupyter afin d’exporter le flux Data Wrangler vers Pipelines.

Appliquez la procédure suivante pour générer et exécuter un bloc-notes Jupyter afin d’exporter le flux Data Wrangler vers Pipelines.

1. Cliquez sur l’icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez **Pipelines (via le bloc-notes Jupyter)**.

1. Exécutez le bloc-notes Jupyter.

![\[Exemple de flux de données montrant comment exporter votre flux Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-export-to.png)


Vous pouvez utiliser le bloc-notes Jupyter produit par Data Wrangler pour définir un pipeline. Le pipeline comprend des étapes de traitement des données définies par le flux Data Wrangler. 

Vous pouvez ajouter des étapes supplémentaires à votre pipeline en ajoutant des étapes à la liste `steps` dans le code suivant, dans le bloc-notes :

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

Pour plus d'informations sur la définition de pipelines, voir [Définir un pipeline d' SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html).

## Exporter vers un point de terminaison d’inférence
<a name="data-wrangler-data-export-inference"></a>

Utilisez votre flux Data Wrangler pour traiter les données au moment de l'inférence en créant un pipeline d'inférence série SageMaker AI à partir de votre flux Data Wrangler. Un pipeline d’inférence est une série d’étapes qui permettent à un modèle entraîné de faire des prédictions sur de nouvelles données. Un pipeline d’inférence en série intégré à Data Wrangler transforme les données brutes et les fournit au modèle de machine learning à des fins de prédiction. Vous créez, exécutez et gérez le pipeline d’inférence à partir d’un bloc-notes Jupyter dans Studio Classic. Pour plus d’informations sur l’accès au bloc-notes, consultez [Utilisation d’un bloc-notes Jupyter pour créer un point de terminaison d’inférence](#data-wrangler-inference-notebook).

Dans le bloc-notes, vous pouvez soit entraîner un modèle de machine learning, soit en spécifier un que vous avez déjà entraîné. Vous pouvez soit utiliser Amazon SageMaker Autopilot, soit entraîner le modèle XGBoost à l'aide des données que vous avez transformées dans votre flux Data Wrangler.

Le pipeline permet d’effectuer des inférences par lots ou en temps réel. Vous pouvez également ajouter le flux Data Wrangler au SageMaker Model Registry. Pour plus d’informations sur les modèles d’hébergement, consultez [Points de terminaison multimodèles](multi-model-endpoints.md).

**Important**  
Vous ne pouvez pas exporter votre flux Data Wrangler vers un point de terminaison d'inférence s'il comporte les transformations suivantes :  
Joindre
Concaténer
Regrouper par
Si vous devez utiliser les transformations précédentes pour préparer vos données, suivez la procédure suivante.  
Créez un flux Data Wrangler.
Appliquez les transformations précédentes qui ne sont pas prises en charge.
Exportez les données vers un compartiment Amazon S3.
Créez un flux Data Wrangler distinct.
Importez les données que vous avez exportées à partir du flux précédent.
Appliquez les transformations restantes.
Créez un pipeline d'inférence en série à l'aide du bloc-notes Jupyter que nous fournissons.
Pour en savoir plus sur l'export de vos données vers un compartiment Amazon S3, consultez [Exporter vers Amazon S3](#data-wrangler-data-export-s3). Pour en savoir plus sur l'ouverture du bloc-notes Jupyter utilisé pour créer le pipeline d'inférence en série, consultez [Utilisation d’un bloc-notes Jupyter pour créer un point de terminaison d’inférence](#data-wrangler-inference-notebook).

Data Wrangler ignore les transformations qui suppriment les données au moment de l'inférence. Par exemple, Data Wrangler ignore la transformation [Handle Missing Values (Gestion des valeurs manquantes)](data-wrangler-transform.md#data-wrangler-transform-handle-missing) si vous utilisez la configuration **Supprimer les valeurs manquantes**.

Si vous avez réajusté les transformations à l'ensemble de votre jeu de données, elles sont répercutées sur votre pipeline d'inférence. Par exemple, si vous avez utilisé la valeur médiane pour imputer les valeurs manquantes, la valeur médiane issue du réajustement de la transformation est appliquée à vos demandes d'inférence. Vous pouvez modifier les transformations de votre flux Data Wrangler lorsque vous utilisez le bloc-notes Jupyter ou lorsque vous exportez vos données vers un pipeline d’inférence. Pour en savoir plus sur le réajustement des transformations, consultez [Adaptez les transformations à la totalité du jeu de données et exportez-les](#data-wrangler-data-export-fit-transform).

Le pipeline d'inférence en série prend en charge les types de données suivants pour les chaînes d'entrée et de sortie. Chaque type de données est soumis à un ensemble d'exigences.

**Types de données pris en charge**
+ `text/csv` : le type de données pour les chaînes CSV
  + La chaîne ne peut pas comporter d'en-tête.
  + Les fonctionnalités utilisées pour le pipeline d'inférence doivent être dans le même ordre que les fonctionnalités du jeu de données d'entraînement.
  + Il doit y avoir une virgule entre les fonctionnalités.
  + Les enregistrements doivent être délimités par un caractère de saut de ligne.

  Voici un exemple de chaîne CSV correctement formatée que vous pouvez fournir dans une demande d'inférence.

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json` : le type de données pour les chaînes JSON
  + Les fonctionnalités utilisées dans le jeu de données pour le pipeline d'inférence doivent être dans le même ordre que les fonctionnalités du jeu de données d'entraînement.
  + Les données doivent avoir un schéma spécifique. Vous définissez le schéma comme un objet `instances` unique doté d'un ensemble de `features`. Chaque objet `features` représente une observation.

  Voici un exemple de chaîne JSON correctement formatée que vous pouvez fournir dans une demande d'inférence.

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### Utilisation d’un bloc-notes Jupyter pour créer un point de terminaison d’inférence
<a name="data-wrangler-inference-notebook"></a>

Utilisez la procédure suivante pour exporter le flux Data Wrangler afin de créer un pipeline d’inférence.

Pour créer un pipeline d'inférence à l'aide d'un bloc-notes Jupyter, procédez comme suit.

1. Cliquez sur l’icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez **SageMaker AI Inference Pipeline (via Jupyter** Notebook).

1. Exécutez le bloc-notes Jupyter.

Lorsque vous exécutez le bloc-notes Jupyter, il crée un artefact de flux d'inférence. Un artefact de flux d'inférence est un fichier de flux Data Wrangler contenant des métadonnées supplémentaires utilisées pour créer le pipeline d'inférence en série. Le nœud que vous exportez englobe toutes les transformations des nœuds précédents.

**Important**  
Data Wrangler a besoin de l'artefact du flux d'inférence pour exécuter le pipeline d'inférence. Vous ne pouvez pas utiliser votre propre fichier de flux comme artefact. Vous devez le créer à l'aide de la procédure précédente.

## Exporter vers du code Python
<a name="data-wrangler-data-export-python-code"></a>

Pour exporter toutes les étapes du flux de données vers un fichier Python que vous pouvez intégrer manuellement à n'importe quel flux de travail de traitement de données, utilisez la procédure suivante.

Appliquez la procédure suivante pour générer et exécuter un bloc-notes Jupyter pour exporter le flux Data Wrangler vers du code Python.

1. Cliquez sur l'icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez **Python Code** (Code Python).

1. Exécutez le bloc-notes Jupyter.

![\[Exemple de flux de données montrant comment exporter votre flux Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-export-to.png)


Vous devrez peut-être configurer le script Python pour qu’il s’exécute dans votre pipeline. Par exemple, si vous utilisez un environnement Spark, assurez-vous que vous exécutez le script depuis un environnement autorisé à accéder aux AWS ressources.

## Exporter vers Amazon SageMaker Feature Store
<a name="data-wrangler-data-export-feature-store"></a>

Vous pouvez utiliser Data Wrangler pour exporter les fonctionnalités que vous avez créées vers Amazon SageMaker Feature Store. Une fonctionnalité est une colonne dans votre jeu de données. Feature Store est un magasin centralisé pour les fonctionnalités et leurs métadonnées associées. Vous pouvez utiliser Feature Store pour créer, partager et gérer des données organisées pour le développement du machine learning (ML). Les magasins centralisés rendent vos données plus faciles à découvrir et à réutiliser. Pour plus d'informations sur le Feature Store, consultez [Amazon SageMaker Feature Store](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html).

Un concept de base dans Feature Store est un groupe de fonctionnalités. Un groupe de fonctionnalités désigne un ensemble de fonctionnalités, leurs enregistrements (observations) et les métadonnées associées. Il s'apparente à une table dans une base de données.

Vous pouvez utiliser Data Wrangler pour effectuer l'une des opérations suivantes :
+ Mettez à jour un groupe de fonctionnalités existant avec de nouveaux enregistrements. Un enregistrement est une observation dans le jeu de données.
+ Créez un nouveau groupe de fonctionnalités à partir d'un nœud dans votre flux Data Wrangler. Data Wrangler ajoute les observations de vos jeux de données en tant qu'enregistrements dans votre groupe de fonctionnalités.

Si vous mettez à jour un groupe de fonctionnalités existant, le schéma de votre jeu de données doit correspondre au schéma du groupe de fonctionnalités. Tous les enregistrements du groupe de fonctionnalités sont remplacés par les observations de votre jeu de données.

Vous pouvez utiliser un bloc-notes Jupyter ou un nœud de destination pour mettre à jour votre groupe de fonctionnalités avec les observations du jeu de données.

Si vos groupes de fonctionnalités au format de tableau Iceberg disposent d'une clé de chiffrement de boutique hors ligne personnalisée, assurez-vous d'autoriser l'IAM que vous utilisez pour la tâche Amazon SageMaker Processing à l'utiliser. Vous devez au minimum lui accorder les autorisations nécessaires pour chiffrer les données que vous écrivez dans Amazon S3. Pour accorder les autorisations, donnez au rôle IAM la possibilité d'utiliser le [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html). Pour plus d'informations sur l'octroi aux rôles IAM de l'autorisation d'utiliser des AWS KMS clés, voir [https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)

------
#### [ Destination Node ]

Si vous souhaitez transmettre une série d’étapes de traitement des données que vous avez effectuées à un groupe de caractéristiques, vous pouvez créer un nœud de destination. Lorsque vous créez et exécutez un nœud de destination, Data Wrangler met à jour un groupe de fonctionnalités avec vos données. Vous pouvez également créer un nouveau groupe de fonctionnalités à partir de l'interface utilisateur du nœud de destination. Une fois que vous avez créé un nœud de destination, vous devez créer une tâche de traitement pour générer les données. Une tâche de traitement est une tâche SageMaker de traitement Amazon. Lorsque vous utilisez un nœud de destination, Data Wrangler exécute les ressources de calcul nécessaires pour générer les données que vous avez transformées pour obtenir le groupe de fonctionnalités. 

Vous pouvez utiliser un nœud de destination pour exporter une partie ou la totalité des transformations que vous avez effectuées dans le flux Data Wrangler.

Utilisez la procédure suivante pour créer un nœud de destination afin de mettre à jour un groupe de fonctionnalités avec les observations de votre jeu de données.

Pour mettre à jour un groupe de fonctionnalités en utilisant un nœud de destination, procédez comme suit.
**Note**  
Vous pouvez choisir **Create job** (Créer une tâche) dans le flux Data Wrangler pour afficher les instructions relatives à l'utilisation d'une tâche de traitement pour mettre à jour le groupe de fonctionnalités.

1. Sélectionnez le symbole **\$1** à côté du nœud contenant le jeu de données que vous souhaitez exporter.

1. Sous **Ajouter une destination**, choisissez **SageMaker AI Feature Store**.  
![\[Exemple de flux de données montrant comment ajouter une destination dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/feature-store-destination-node-selection.png)

1. Choisissez (double-cliquez sur) le groupe de fonctionnalités. Data Wrangler vérifie si le schéma du groupe de fonctionnalités correspond au schéma des données que vous utilisez pour mettre à jour le groupe de fonctionnalités.

1. (Facultatif) Sélectionnez **Export to offline store only** (Exporter vers le magasin hors ligne uniquement) pour les groupes de fonctionnalités qui ont à la fois un magasin en ligne et un magasin hors ligne. Cette option ne met à jour le magasin hors ligne qu'avec les observations de votre jeu de données.

1. Après que Data Wrangler a validé le schéma de votre jeu de données, choisissez **Add** (Ajouter).

Utilisez la procédure suivante pour créer un groupe de fonctionnalités avec les données de votre jeu de données.

Vous pouvez enregistrer votre groupe de fonctionnalités de l'une des manières suivantes :
+ En ligne : cache à faible latence et haute disponibilité pour un groupe de fonctionnalités, qui permet la recherche en temps réel d'enregistrements. Le magasin en ligne permet d’accéder rapidement à la dernière valeur d’un enregistrement dans un groupe de caractéristiques.
+ Hors ligne : stocke les données de votre groupe de fonctionnalités dans un compartiment Amazon S3. Vous pouvez stocker vos données hors ligne lorsque vous n'avez pas besoin de lectures à faible latence (inférieure à une seconde). Vous pouvez utiliser un magasin hors ligne pour les fonctionnalités utilisées dans l’exploration des données, l’entraînement des modèles et l’inférence par lots.
+ En ligne et hors ligne : stocke vos données à la fois dans un magasin en ligne et dans un magasin hors ligne.

Pour créer un groupe de fonctionnalités à l'aide d'un nœud de destination, procédez comme suit.

1. Sélectionnez le symbole **\$1** à côté du nœud contenant le jeu de données que vous souhaitez exporter.

1. Sous **Ajouter une destination**, choisissez **SageMaker AI Feature Store**.

1. Choisissez **Create Feature Group** (Créer un groupe de fonctionnalités).

1. Dans la boîte de dialogue suivante, si votre ensemble de données ne comporte pas de colonne d'heure d'événement, sélectionnez **Créer une colonne EventTime « »**.

1. Choisissez **Next** (Suivant).

1. Sélectionnez **Copy JSON Schema** (Copier le schéma JSON). Lorsque vous créez un groupe de fonctionnalités, vous collez le schéma dans les définitions de fonctionnalités.

1. Sélectionnez **Create** (Créer).

1. Pour **Feature group name** (Nom du groupe de fonctionnalités), spécifiez un nom pour votre groupe de fonctionnalités.

1. Dans le champ **Description (optional)** [Description (facultatif)], indiquez une description pour faciliter la découverte de votre groupe de fonctionnalités.

1. Pour créer un groupe de fonctionnalités pour un magasin en ligne, procédez comme suit.

   1. Sélectionnez **Enable storage online** (Activer le stockage en ligne).

   1. Pour la **clé de chiffrement de la boutique en ligne**, spécifiez une clé de chiffrement AWS gérée ou votre propre clé de chiffrement.

1. Pour créer un groupe de fonctionnalités pour un magasin hors ligne, procédez comme suit.

   1. Sélectionnez **Enable storage offline** (Activer le stockage hors ligne). Spécifiez des valeurs pour les champs suivants :
      + **S3 bucket name** (Nom du compartiment S3) : nom du compartiment Amazon S3 qui stocke le groupe de fonctionnalités.
      + (Optional) **Dataset directory name** [(Facultatif) Nom du répertoire du jeu de données] : préfixe Amazon S3 que vous utilisez pour stocker le groupe de fonctionnalités.
      + **IAM Role ARN** (ARN du rôle IAM) : rôle IAM qui a accès à Feature Store.
      + **Table Format** (Format de tableau) : format de tableau de votre magasin hors ligne. Vous pouvez spécifier **Glue** ou **Iceberg**. **Glue** est le format par défaut.
      + **Offline store encryption key** (Clé de chiffrement du magasin hors ligne) : par défaut, Feature Store utilise une clé gérée par AWS Key Management Service , mais vous pouvez utiliser ce champ pour spécifier une clé de votre choix.

   1. Spécifiez des valeurs pour les champs suivants :
      + **S3 bucket name** (Nom du compartiment S3) : le nom du compartiment qui stocke le groupe de fonctionnalités.
      + **(Optional) Dataset directory name** [(Facultatif) Nom du répertoire du jeu de données] : le préfixe Amazon S3 que vous utilisez pour stocker le groupe de fonctionnalités.
      + **IAM Role ARN** (ARN du rôle IAM) : le rôle IAM qui a accès à Feature Store.
      + **Offline store encryption key** (Clé de chiffrement du magasin hors ligne) : par défaut, Feature Store utilise une clé gérée par AWS , mais vous pouvez utiliser ce champ pour spécifier une clé de votre choix.

1. Choisissez **Continue** (Continuer).

1. Choisissez **JSON**.

1. Supprimez les crochets d'espace réservé dans la fenêtre.

1. Collez le texte JSON de l'étape 6.

1. Choisissez **Continue** (Continuer).

1. Pour **RECORD IDENTIFIER FEATURE NAME** (NOM DE LA FONCTIONNALITÉ DE L'IDENTIFIANT D'ENREGISTREMENT), choisissez la colonne de votre jeu de données qui possède des identifiants uniques pour chaque enregistrement de votre jeu de données.

1. Pour **EVENT TIME FEATURE NAME** (NOM DE LA FONCTIONNALITÉ D'HEURE DE L'ÉVÉNEMENT), choisissez la colonne contenant les valeurs d'horodatage.

1. Choisissez **Continue** (Continuer).

1. (Facultatif) Ajoutez des balises pour faciliter la découverte de votre groupe de fonctionnalités.

1. Choisissez **Continue** (Continuer).

1. Choisissez **Create Feature Group** (Créer un groupe de fonctions).

1. Revenez à votre flux Data Wrangler et cliquez sur l’icône d’actualisation à côté de la barre de recherche **Groupe de caractéristiques**.

**Note**  
Si vous avez déjà créé un nœud de destination pour un groupe de fonctionnalités dans un flux, vous ne pouvez pas créer un autre nœud de destination pour le même groupe de fonctionnalités. Si vous souhaitez créer un autre nœud de destination pour le même groupe de fonctionnalités, vous devez créer un autre fichier de flux.

Utilisez la procédure suivante pour créer une tâche Data Wrangler.

Créez une tâche à partir de la page **Data flow** (Flux de données) et choisissez les nœuds de destination que vous souhaitez exporter.

1. Choisissez **Create job** (Créer une tâche). L'image suivante représente le panneau qui s'affiche lorsque vous sélectionnez **Create job** (Créer une tâche).

1. Pour **Job name** (Nom de la tâche), indiquez le nom de la tâche d'exportation.

1. Choisissez les nœuds de destination que vous souhaitez exporter.

1. (Facultatif) Pour la **clé KMS en sortie**, spécifiez un ARN, un ID ou un alias de AWS KMS clé. Une clé KMS est une clé de chiffrement. Vous pouvez utiliser la clé pour chiffrer les données de sortie de la tâche. Pour plus d'informations sur AWS KMS les clés, consultez [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html).

1. L’image suivante montre la page **Configure job** (Configurer la tâche) avec l’onglet **Job configuration** (Configuration de la tâche) ouvert.  
![\[Page de création de tâche d’un exemple de flux de données dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/destination-nodes/destination-nodes-configure-job.png)

   (Facultatif) Sous **Trained parameters** (Paramètres entraînés), choisissez **Refit** (Adapter) si vous avez effectué les opérations suivantes :
   + Échantillonnage de votre jeu de données
   + Application d'une transformation qui utilise vos données pour créer une colonne dans le jeu de données

   Pour plus d'informations sur l'adaptation des transformations que vous avez effectuées sur l'ensemble d'un jeu de données, consultez [Adaptez les transformations à la totalité du jeu de données et exportez-les](#data-wrangler-data-export-fit-transform).

1. Choisissez **Configure job** (Configurer la tâche).

1. (Facultatif) Configurez la tâche Data Wrangler. Vous pouvez réaliser les configurations suivantes :
   + **Configuration de la tâche**
   + **Configuration de la mémoire Spark**
   + **Configuration réseau**
   + **Balises**
   + **Paramètres**
   + **Horaires associés**

1. Cliquez sur **Exécuter**.

------
#### [ Jupyter notebook ]

Utilisez la procédure suivante pour exporter un bloc-notes Jupyter vers Amazon SageMaker Feature Store.

Utilisez la procédure suivante pour générer un bloc-notes Jupyter et l'exécuter pour exporter votre flux Data Wrangler vers Feature Store.

1. Cliquez sur l’icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez **Amazon SageMaker Feature Store (via Jupyter Notebook**).

1. Exécutez le bloc-notes Jupyter.

![\[Exemple de flux de données montrant comment exporter votre flux Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/data-wrangler-destination-nodes-photo-export-to.png)


L’exécution d’un bloc-notes Jupyter exécute également une tâche Data Wrangler. L'exécution d'une tâche Data Wrangler démarre une tâche de traitement par SageMaker IA. La tâche de traitement intègre le flux dans un référentiel Feature Store en ligne et hors ligne.

**Important**  
Le rôle IAM que vous utilisez pour exécuter ce cahier doit avoir les politiques gérées AWS suivantes attachées : `AmazonSageMakerFullAccess` et `AmazonSageMakerFeatureStoreAccess`.

Vous ne devez activer qu’un seul magasin de caractéristiques en ligne ou hors ligne lorsque vous créez un groupe de caractéristiques. Vous pouvez également activer les deux. Pour désactiver la création du magasin en ligne, définissez `EnableOnlineStore` sur `False` :

```
# Online Store Configuration
online_store_config = {
    "EnableOnlineStore": False
}
```

Le bloc-notes utilise les noms et les types de colonnes du dataframe que vous exportez pour créer un schéma de groupe de fonctions, qui est utilisé pour créer un groupe de fonctions. Un groupe de fonctions est un groupe défini dans le Feature Store pour décrire un enregistrement. Le groupe de fonctions définit la structure et les fonctions qu'il contient. La définition d'un groupe de fonctions est composée d'une liste de fonctions, d'un nom de fonction d'identifiant d'enregistrement, d'un nom de fonction d'heure d'événement et de configurations pour son magasin en ligne et son magasin hors ligne. 

Chaque caractéristique d’un groupe de caractéristiques peut avoir l’un des types suivants : *Chaîne*, *Fractionnel* ou *Intégral*. Si une colonne de la trame de données exportée n'est pas l'un de ces types, elle est définie par défaut sur `String`. 

Voici un exemple de schéma de groupe de fonctions.

```
column_schema = [
    {
        "name": "Height",
        "type": "long"
    },
    {
        "name": "Input",
        "type": "string"
    },
    {
        "name": "Output",
        "type": "string"
    },
    {
        "name": "Sum",
        "type": "string"
    },
    {
        "name": "Time",
        "type": "string"
    }
]
```

En outre, vous devez spécifier un nom d'identifiant d'enregistrement et un nom de fonction d'heure d'événement :
+ Le *nom de l'identifiant d'enregistrement* est le nom de la fonction dont la valeur identifie de manière unique un enregistrement défini dans le Feature Store. Seul le dernier enregistrement par valeur d'identifiant est stocké dans le magasin en ligne. Le nom de la fonction de l'identifient d'enregistrement doit être l'un des noms des définitions de la fonction.
+ Le *nom de la fonction du moment de l'événement* est le nom de la fonction qui stocke le paramètre `EventTime` d'un enregistrement dans un groupe de fonctions. `EventTime` est un moment où se produit un nouvel événement qui correspond à la création ou à la mise à jour d'un enregistrement dans une fonction. Tous les enregistrements du groupe de fonctions doivent avoir un `EventTime` correspondant.

Le bloc-notes utilise ces configurations pour créer un groupe fonctions, traiter vos données à l'échelle, puis intégrer les données traitées dans vos Feature Store en ligne et hors ligne. Pour en savoir plus, consultez [Sources de données et intégration](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-ingest-data.html).

------

Le bloc-notes utilise ces configurations pour créer un groupe de fonctions, traiter vos données à l'échelle, puis intégrer les données traitées dans vos Feature Store en ligne et hors ligne. Pour en savoir plus, consultez [Sources de données et intégration](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-ingest-data.html).

## Adaptez les transformations à la totalité du jeu de données et exportez-les
<a name="data-wrangler-data-export-fit-transform"></a>

Lorsque vous importez des données, Data Wrangler utilise un échantillon des données pour appliquer les codages. Par défaut, Data Wrangler utilise les 50 000 premières lignes comme échantillon, mais vous pouvez importer la totalité du jeu de données ou utiliser une autre méthode d'échantillonnage. Pour plus d’informations, consultez [Importer](data-wrangler-import.md).

Les transformations suivantes utilisent vos données pour créer une colonne dans le jeu de données :
+ [Encodage catégoriel](data-wrangler-transform.md#data-wrangler-transform-cat-encode)
+ [Texte enrichi](data-wrangler-transform.md#data-wrangler-transform-featurize-text)
+ [Traiter les valeurs aberrantes](data-wrangler-transform.md#data-wrangler-transform-handle-outlier)
+ [Handle Missing Values (Gestion des valeurs manquantes)](data-wrangler-transform.md#data-wrangler-transform-handle-missing)

Si vous avez utilisé l'échantillonnage pour importer vos données, les transformations précédentes utilisent uniquement les données de l'échantillon pour créer la colonne. La transformation peut ne pas avoir utilisé toutes les données pertinentes. Par exemple, si vous utilisez la transformation **Encode Categorical** (Encodage catégoriel), il peut y avoir une catégorie de l’ensemble du jeu de données qui n’était pas présente dans l’échantillon.

Vous pouvez utiliser un nœud de destination ou un bloc-notes Jupyter pour adapter les transformations à la totalité du jeu de données. Lorsque Data Wrangler exporte les transformations du flux, il crée une tâche de SageMaker traitement. Une fois cette tâche de traitement terminée, Data Wrangler enregistre les fichiers suivants dans l’emplacement Amazon S3 par défaut ou dans un emplacement S3 que vous spécifiez :
+ Le fichier de flux Data Wrangler qui spécifie les transformations adaptées au jeu de données
+ Le jeu de données auquel les transformations adaptées sont appliquées

Vous pouvez ouvrir un fichier de flux Data Wrangler dans Data Wrangler et appliquer les transformations à un autre jeu de données. Par exemple, si vous avez appliqué les transformations à un jeu de données d'entraînement, vous pouvez ouvrir et utiliser le fichier de flux Data Wrangler pour appliquer les transformations à un jeu de données utilisé pour l'inférence.

Pour plus d'informations sur l'utilisation des nœuds de destination pour adapter les transformations et les exporter, consultez les pages suivantes :
+ [Exporter vers Amazon S3](#data-wrangler-data-export-s3)
+ [Exporter vers Amazon SageMaker Feature Store](#data-wrangler-data-export-feature-store)

Utilisez la procédure suivante pour exécuter un bloc-notes Jupyter afin d'adapter les transformations et d'exporter les données.

Pour exécuter un bloc-notes Jupyter, adapter les transformations et exporter le flux Data Wrangler, procédez comme suit.

1. Cliquez sur l’icône **\$1** en regard du nœud que vous souhaitez exporter.

1. Choisissez **Export to** (Exporter vers).

1. Choisissez l'emplacement vers lequel vous souhaitez exporter les données.

1. Pour l’objet `refit_trained_params`, définissez `refit` sur `True`.

1. Pour le champ `output_flow`, spécifiez le nom du fichier de flux de sortie contenant les transformations adaptées.

1. Exécutez le bloc-notes Jupyter.

## Création d’une planification pour traiter automatiquement les nouvelles données
<a name="data-wrangler-data-export-schedule-job"></a>

Si vous traitez des données régulièrement, vous pouvez créer une planification pour exécuter automatiquement la tâche de traitement. Par exemple, vous créez une planification qui exécute automatiquement une tâche de traitement lorsque vous recevez de nouvelles données. Pour plus d’informations sur ces processus, consultez [Exporter vers Amazon S3](#data-wrangler-data-export-s3) et [Exporter vers Amazon SageMaker Feature Store](#data-wrangler-data-export-feature-store).

Lorsque vous créez une tâche, vous devez spécifier un rôle IAM autorisé à la créer. Par défaut, le rôle IAM que vous utilisez pour accéder à Data Wrangler est le `SageMakerExecutionRole`.

Les autorisations suivantes permettent à Data Wrangler d'accéder aux tâches de traitement EventBridge et EventBridge de les exécuter :
+ Ajoutez la politique AWS gérée suivante au rôle d'exécution Amazon SageMaker Studio Classic qui fournit à Data Wrangler les autorisations d'utilisation : EventBridge

  ```
  arn:aws:iam::aws:policy/AmazonEventBridgeFullAccess
  ```

  Pour plus d'informations sur la stratégie, consultez la section [Politiques AWS gérées pour EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-identity-based.html#eb-full-access-policy).
+ Ajoutez la stratégie suivante au rôle IAM que vous spécifiez lorsque vous créez une tâche dans Data Wrangler :

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "sagemaker:StartPipelineExecution",
              "Resource": "arn:aws:sagemaker:us-east-1:111122223333:pipeline/data-wrangler-*"
          }
      ]
  }
  ```

------

  Si vous utilisez le rôle IAM par défaut, vous ajoutez la politique précédente au rôle d'exécution Amazon SageMaker Studio Classic.

  Ajoutez la politique de confiance suivante au rôle pour permettre EventBridge à celui-ci de l'assumer.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
  }
  ```

**Important**  
Lorsque vous créez un planning, Data Wrangler crée un `eventRule` in. EventBridge Des frais vous sont facturés à la fois pour les règles d'événement que vous créez et pour les instances utilisées pour exécuter la tâche de traitement.  
Pour plus d'informations sur EventBridge les tarifs, consultez [ EventBridge les tarifs Amazon](https://aws.amazon.com/eventbridge/pricing/). Pour plus d'informations sur le traitement des tarifs des offres d'emploi, consultez [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

Vous pouvez définir une planification à l'aide d'une des méthodes suivantes :
+ [Expressions CRON](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)
**Note**  
Data Wrangler ne prend pas en charge les expressions suivantes :  
LW\$1
Abréviations pour les jours
Abréviations pour les jours
+ [Expressions RATE](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-rate-expressions)
+ Récurrent : définissez un intervalle horaire ou quotidien pour exécuter la tâche.
+ Heure spécifique : définissez des jours et heures spécifiques pour exécuter la tâche.

Les sections suivantes fournissent des procédures sur la création de tâches.

------
#### [ CRON ]

Utilisez la procédure suivante pour créer un calendrier à l'aide d'une expression CRON.

Pour spécifier un calendrier à l'aide d'une expression CRON, procédez comme suit.

1. Ouvrez votre flux Data Wrangler.

1. Choisissez **Créer une tâche**.

1. (Facultatif) Pour la **clé KMS de sortie**, spécifiez une AWS KMS clé pour configurer la sortie de la tâche.

1. Choisissez **Next (Suivant), 2. Sélectionnez Configure job** (Configurer la tâche).

1. Sélectionnez **Associate Schedules** (Horaires associés).

1. Choisissez **Create a new schedule** (Créer une planification).

1. Dans le champ **Schedule Name** (Nom de la planification), indiquez le nom de la planification.

1. Pour **Run Frequency** (Fréquence d'exécution), choisissez **CRON**.

1. Spécifiez une expression CRON valide.

1. Choisissez **Créer**.

1. (Facultatif) Choisissez **Add another schedule** (Ajouter une autre planification) pour exécuter la tâche selon une autre planification.
**Note**  
Vous pouvez associer un maximum de deux planifications. Les planifications sont indépendantes et ne s'influencent pas mutuellement, sauf si les heures se chevauchent.

1. Sélectionnez l’une des méthodes suivantes :
   + **Schedule and run now** (Planifier et exécuter maintenant) : Data Wrangler exécute la tâche immédiatement et l'exécute ensuite selon les planifications.
   + **Schedule only** (Planifier uniquement) : Data Wrangler exécute la tâche uniquement selon les planifications que vous spécifiez.

1. Cliquez sur **Run** (Exécuter).

------
#### [ RATE ]

Utilisez la procédure suivante pour créer un calendrier à l'aide d'une expression RATE.

Pour spécifier un calendrier à l'aide d'une expression CRON, procédez comme suit.

1. Ouvrez votre flux Data Wrangler.

1. Choisissez **Créer une tâche**.

1. (Facultatif) Pour la **clé KMS de sortie**, spécifiez une AWS KMS clé pour configurer la sortie de la tâche.

1. Choisissez **Next (Suivant), 2. Sélectionnez Configure job** (Configurer la tâche).

1. Sélectionnez **Associate Schedules** (Horaires associés).

1. Choisissez **Create a new schedule** (Créer une planification).

1. Dans le champ **Schedule Name** (Nom de la planification), indiquez le nom de la planification.

1. Pour **Run Frequency** (Fréquence d'exécution), choisissez **Rate** (Taux).

1. Pour **Value** (Valeur), spécifiez un entier.

1. Pour **Unit** (Unité), sélectionnez l'une des options suivantes :
   + **Minutes**
   + **Heures**
   + **Jours**

1. Choisissez **Créer**.

1. (Facultatif) Choisissez **Add another schedule** (Ajouter une autre planification) pour exécuter la tâche selon une autre planification.
**Note**  
Vous pouvez associer un maximum de deux planifications. Les planifications sont indépendantes et ne s'influencent pas mutuellement, sauf si les heures se chevauchent.

1. Sélectionnez l’une des méthodes suivantes :
   + **Schedule and run now** (Planifier et exécuter maintenant) : Data Wrangler exécute la tâche immédiatement et l'exécute ensuite selon les planifications.
   + **Schedule only** (Planifier uniquement) : Data Wrangler exécute la tâche uniquement selon les planifications que vous spécifiez.

1. Cliquez sur **Run** (Exécuter).

------
#### [ Recurring ]

Utilisez la procédure suivante pour créer une planification qui exécute une tâche de manière récurrente.

Pour spécifier un calendrier à l'aide d'une expression CRON, procédez comme suit.

1. Ouvrez votre flux Data Wrangler.

1. Choisissez **Créer une tâche**.

1. (Facultatif) Pour la **clé KMS de sortie**, spécifiez une AWS KMS clé pour configurer la sortie de la tâche.

1. Choisissez **Next (Suivant), 2. Sélectionnez Configure job** (Configurer la tâche).

1. Sélectionnez **Associate Schedules** (Horaires associés).

1. Choisissez **Create a new schedule** (Créer une planification).

1. Dans le champ **Schedule Name** (Nom de la planification), indiquez le nom de la planification.

1. Dans le champ **Run Frequency** (Fréquence d'exécution), assurez-vous que l'option **Recurring** (Récurrent) est sélectionnée par défaut.

1. Dans le champ **Every x hours** (Toutes les x heures), spécifiez la fréquence horaire à laquelle la tâche s'exécute au cours de la journée. Les valeurs valides sont des nombres entiers compris entre **1** et **23**.

1. Pour **On days** (Journées), choisissez l'une des options suivantes :
   + **Every Day** (Tous les jours)
   + **Weekends** (Le week-end)
   + **Weekdays** (Jours de la semaine)
   + **Select Days** (Certains jours)

   1. (Facultatif) Si vous avez sélectionné **Select Days** (Certains jours), choisissez les jours de la semaine où la tâche doit s'exécuter.
**Note**  
La planification est réinitialisée tous les jours. Si vous planifiez une tâche pour qu'elle s'exécute toutes les cinq heures, elle s'exécute aux heures suivantes au cours de la journée :  
00:00
05:00
10h00
15h00
20h00

1. Choisissez **Créer**.

1. (Facultatif) Choisissez **Add another schedule** (Ajouter une autre planification) pour exécuter la tâche selon une autre planification.
**Note**  
Vous pouvez associer un maximum de deux planifications. Les planifications sont indépendantes et ne s'influencent pas mutuellement, sauf si les heures se chevauchent.

1. Sélectionnez l’une des méthodes suivantes :
   + **Schedule and run now** (Planifier et exécuter maintenant) : Data Wrangler exécute la tâche immédiatement et l'exécute ensuite selon les planifications.
   + **Schedule only** (Planifier uniquement) : Data Wrangler exécute la tâche uniquement selon les planifications que vous spécifiez.

1. Cliquez sur **Run** (Exécuter).

------
#### [ Specific time ]

Utilisez la procédure suivante pour créer une planification qui exécute une tâche à des heures spécifiques.

Pour spécifier un calendrier à l'aide d'une expression CRON, procédez comme suit.

1. Ouvrez votre flux Data Wrangler.

1. Choisissez **Créer une tâche**.

1. (Facultatif) Pour la **clé KMS de sortie**, spécifiez une AWS KMS clé pour configurer la sortie de la tâche.

1. Choisissez **Next (Suivant), 2. Sélectionnez Configure job** (Configurer la tâche).

1. Sélectionnez **Associate Schedules** (Horaires associés).

1. Choisissez **Create a new schedule** (Créer une planification).

1. Dans le champ **Schedule Name** (Nom de la planification), indiquez le nom de la planification.

1. Choisissez **Créer**.

1. (Facultatif) Choisissez **Add another schedule** (Ajouter une autre planification) pour exécuter la tâche selon une autre planification.
**Note**  
Vous pouvez associer un maximum de deux planifications. Les planifications sont indépendantes et ne s'influencent pas mutuellement, sauf si les heures se chevauchent.

1. Sélectionnez l’une des méthodes suivantes :
   + **Schedule and run now** (Planifier et exécuter maintenant) : Data Wrangler exécute la tâche immédiatement et l'exécute ensuite selon les planifications.
   + **Schedule only** (Planifier uniquement) : Data Wrangler exécute la tâche uniquement selon les planifications que vous spécifiez.

1. Cliquez sur **Run** (Exécuter).

------

Vous pouvez utiliser Amazon SageMaker Studio Classic pour afficher les tâches dont l'exécution est planifiée. Vos tâches de traitement s’exécutent dans Pipelines. Chaque tâche de traitement possède son propre pipeline. Elle s'exécute en tant qu'étape de traitement dans le pipeline. Vous pouvez consulter les planifications que vous avez créées dans un pipeline. Pour plus d’informations sur l’affichage d’un pipeline, consultez [Affichage des détails d’un pipeline](pipelines-studio-list.md).

Utilisez la procédure suivante pour afficher les tâches que vous avez planifiées.

Pour afficher les tâches que vous avez planifiées, procédez comme suit.

1. Ouvrez Amazon SageMaker Studio Classic.

1. Ouvrez Pipelines.

1. Consultez les pipelines des tâches que vous avez créées.

   Le pipeline qui exécute la tâche utilise le nom de la tâche en tant que préfixe. Par exemple, si vous avez créé une tâche nommée `housing-data-feature-enginnering`, le nom du pipeline est `data-wrangler-housing-data-feature-engineering`.

1. Choisissez le pipeline contenant votre tâche.

1. Consultez l'état des pipelines. Les pipelines dont le champ **Status** (État) indique **Succeeded** (Réussi) ont correctement exécuté la tâche de traitement.

Pour arrêter l'exécution de la tâche de traitement, procédez comme suit :

Pour arrêter l'exécution d'une tâche de traitement, supprimez la règle d'événement qui spécifie la planification. La suppression d'une règle d'événement arrête l'exécution de toutes les tâches associées à la planification. Pour plus d'informations sur la suppression d'une règle, consultez la section [Désactivation ou suppression d'une EventBridge règle Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html).

Vous pouvez également arrêter et supprimer les pipelines associés aux planifications. Pour plus d'informations sur l'arrêt d'un pipeline, consultez [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html). Pour plus d'informations sur la suppression d'un pipeline, consultez [DeletePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeletePipeline.html#API_DeletePipeline_RequestSyntax).

# Utilisez un widget interactif de préparation des données dans un bloc-notes Amazon SageMaker Studio Classic pour obtenir des informations sur les données
<a name="data-wrangler-interactively-prepare-data-notebook"></a>

Utilisez le widget de préparation des données Data Wrangler pour interagir avec vos données, obtenir des visualisations, explorer des informations exploitables et résoudre les problèmes de qualité des données. 

Vous pouvez accéder au widget de préparation des données depuis un bloc-notes Amazon SageMaker Studio Classic. Pour chaque colonne, le widget crée une visualisation qui vous permet de mieux comprendre sa distribution. Si une colonne présente des problèmes de qualité des données, un avertissement apparaît dans son en-tête.

Pour voir les problèmes de qualité des données, sélectionnez l'en-tête de colonne affichant l'avertissement. Vous pouvez utiliser les informations que vous obtenez à partir des informations et des visualisations pour appliquer les transformations intégrées au widget afin de vous aider à résoudre les problèmes. 

Par exemple, le widget peut détecter que vous avez une colonne qui ne comporte qu'une valeur unique et afficher un avertissement. L'avertissement fournit la possibilité de supprimer la colonne du jeu de données.

## Premiers pas avec le widget
<a name="data-wrangler-interactively-prepare-data-notebook-getting-started"></a>

Utilisez les informations suivantes pour vous aider à commencer à utiliser un bloc-notes.

Ouvrez un bloc-notes dans Amazon SageMaker Studio Classic. Pour plus d’informations sur l’ouverture d’un bloc-notes, consultez [Création ou ouverture d'un bloc-notes Amazon SageMaker Studio Classic](notebooks-create-open.md).

**Important**  
Pour exécuter le widget, le bloc-notes doit utiliser l'une des images suivantes :  
Python 3 (Science des données) avec Python 3.7
Python 3 (Data Science 2.0) avec Python 3.8
Python 3 (Data Science 3.0) avec Python 3.10
SparkAnalytics 1,0
SparkAnalytics 2,0
Pour plus d’informations sur les images, consultez [Amazon SageMaker Images disponibles pour une utilisation avec les blocs-notes Studio Classic](notebooks-available-images.md).

Utilisez le code suivant pour importer le widget de préparation des données et les pandas. Le widget utilise des trames de données pandas pour analyser vos données.

```
import pandas as pd
import sagemaker_datawrangler
```

L'exemple de code suivant charge un fichier dans la trame de données nommée `df`.

```
df = pd.read_csv("example-dataset.csv")
```

Vous pouvez utiliser un jeu de données dans n'importe quel format que vous pouvez charger en tant qu'objet de trame de données pandas. Pour plus d'informations sur les formats pandas, consultez [les outils IO (texte, CSV HDF5,...).](https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html)

La cellule suivante exécute la variable `df` pour démarrer le widget.

```
df
```

La partie supérieure de la trame de données comporte les options suivantes :
+ **Afficher le tableau des pandas** : bascule entre la visualisation interactive et le tableau des pandas.
+ **Utilisez toutes les lignes de votre jeu de données pour calculer les informations. L'utilisation de l'ensemble du jeu de données peut augmenter le temps nécessaire pour générer les informations.** - Si vous ne sélectionnez pas cette option, Data Wrangler calcule les informations relatives aux 10 000 premières lignes du jeu de données.

La trame de données montre les 1 000 premières lignes du jeu de données. Chaque en-tête de colonne comporte un diagramme à barres empilées qui montre les caractéristiques de la colonne. Il indique la proportion de valeurs valides, de valeurs non valides et de valeurs manquantes. Vous pouvez passer la souris sur les différentes parties du diagramme à barres empilées pour obtenir les pourcentages calculés.

Chaque colonne comporte une visualisation dans l'en-tête. Vous trouverez ci-dessous les types de visualisations que les colonnes peuvent avoir :
+ Catégoriel - Diagramme à barres
+ Numérique - Histogramme
+ Date/heure - Diagramme à barres
+ Texte - Diagramme à barres

Pour chaque visualisation, le widget de préparation des données met en évidence les valeurs aberrantes en orange.

Lorsque vous choisissez une colonne, un panneau latéral s'ouvre. Le panneau latéral affiche l'onglet **Insights** (Informations). Le volet fournit le décompte des types de valeurs suivants :
+ Valeurs non valides : valeurs dont le type ne correspond pas au type de colonne.
+ Valeurs manquantes : valeurs qui sont manquantes, telles que `NaN` ou `None`.
+ Valeurs valides : valeurs qui ne sont ni manquantes, ni non valides.

Pour les colonnes numériques, l'onglet **Insights** (Informations) affiche les statistiques récapitulatives suivantes :
+ Minimum : valeur la plus faible.
+ Maximum : valeur la plus élevée.
+ Moyenne : moyenne des valeurs.
+ Mode : valeur qui apparaît le plus fréquemment.
+ Écart type : écart type des valeurs.

Pour les colonnes catégoriques, l'onglet **Insights** (Informations) affiche les statistiques récapitulatives suivantes :
+ Valeurs uniques : nombre de valeurs uniques dans la colonne.
+ Haut : valeur qui apparaît le plus fréquemment.

Les colonnes dont l'en-tête contient des icônes d'avertissement présentent des problèmes de qualité des données. Le choix d'une colonne ouvre un onglet **Data quality** (Qualité des données) que vous pouvez utiliser pour rechercher des transformations qui vous aideront à résoudre le problème. Un avertissement possède l'un des niveaux de gravité suivants :
+ Low (Faible) : problèmes qui peuvent ne pas affecter votre analyse, mais qu'il peut être utile de corriger.
+ Medium (Moyen) : problèmes susceptibles d'affecter votre analyse, mais dont la résolution n'est probablement pas critique.
+ High (Élevé) : problèmes graves que nous recommandons vivement de résoudre.

**Note**  
Le widget trie la colonne pour afficher les valeurs présentant des problèmes de qualité des données en haut de la trame de données. Il met également en évidence les valeurs à l'origine des problèmes. La couleur du surlignage correspond au niveau de gravité.

Sous **SUGGESTED TRANSFORMS** (TRANSFORMATIONS SUGGÉRÉES), vous pouvez choisir une transformation pour résoudre le problème de qualité des données. Le widget peut proposer plusieurs transformations qui peuvent résoudre le problème. Il peut proposer des recommandations pour apporter les transformations les mieux adaptées au problème. Vous pouvez déplacer le curseur sur la transformation pour obtenir plus d'informations à son sujet.

Pour appliquer une transformation au jeu de données, choisissez **Apply and export code** (Appliquer et exporter le code). La transformation modifie le jeu de données et met à jour la visualisation avec les valeurs modifiées. Le code de la transformation apparaît dans la cellule suivante du bloc-notes. Si vous appliquez des transformations supplémentaires au jeu de données, le widget ajoute les transformations à la cellule. Vous pouvez utiliser le code généré par le widget pour effectuer les opérations suivantes :
+ Personnalisez-le pour mieux répondre à vos besoins.
+ Utilisez-le dans vos propres flux de travail.

Vous pouvez reproduire toutes les transformations que vous avez effectuées en exécutant à nouveau toutes les cellules du bloc-notes.

Le widget peut fournir des informations et des avertissements pour la colonne cible. La colonne cible est la colonne que vous essayez de prédire. Utilisez la procédure suivante pour obtenir des informations sur les colonnes cibles.

Pour obtenir des informations sur les colonnes cibles, procédez comme suit.

1. Choisissez la colonne que vous utilisez comme colonne cible.

1. Choisissez **Select as target column** (Sélectionner comme colonne cible).

1. Choisissez le type de problème. Les informations et les avertissements du widget sont adaptés aux types de problèmes. Les types de problème sont les suivants :
   + **Classification** : la colonne cible contient des données catégorielles.
   + **Régression** : la colonne cible contient des données numériques.

1. Cliquez sur **Exécuter**.

1. (Facultatif) Sous **Target Column Insights** (Informations de la colonne cible), choisissez l'une des transformations suggérées.

## Référence pour les informations et les transformations du widget
<a name="data-wrangler-notebook-dataprep-assistant-reference"></a>

Pour les colonnes fonctions (colonnes qui ne sont pas la colonne cible), vous pouvez obtenir les informations suivantes qui vous avertissent des problèmes liés à votre jeu de données.
+ **Missing values** (Valeurs manquantes) - La colonne contient des valeurs manquantes telles que `None`, `NaN` (pas un nombre) ou `NaT` (pas un horodatage). De nombreux algorithmes de machine learning ne prennent pas en charge les valeurs manquantes dans les données d'entrée. Les remplir ou supprimer les lignes contenant des données manquantes est donc une étape cruciale de la préparation des données. Si l'avertissement de valeurs manquantes s'affiche, vous pouvez utiliser l'une des transformations suivantes pour corriger le problème.
  + **Drop missing** (Supprimer les valeurs manquantes) : supprime les lignes contenant des valeurs manquantes. Nous vous recommandons de supprimer des lignes lorsque le pourcentage de lignes contenant des données manquantes est faible et qu'il n'est pas approprié d'imputer les valeurs manquantes. 
  + **Replace with new value** (Remplacer par une nouvelle valeur) : remplace les valeurs textuelles manquantes par `Other`. Vous pouvez remplacer `Other` par une valeur différente dans le code de sortie. Remplace les valeurs numériques manquantes par 0.
  + **Replace with mean** (Remplacer par la moyenne) : remplace les valeurs manquantes par la moyenne de la colonne.
  + **Replace with median** (Remplacer par la médiane) : remplace les valeurs manquantes par la médiane de la colonne.
  + **Drop column** (Supprimer la colonne) : supprime la colonne contenant des valeurs manquantes dans le jeu de données. Nous vous recommandons de supprimer toute la colonne lorsque le pourcentage de lignes contenant des données manquantes est élevé.
+ **Disguised missing values** (Valeurs manquantes déguisées) : la colonne contient des valeurs manquantes déguisées. Une valeur manquante déguisée est une valeur qui n'est pas explicitement codée en tant que valeur manquante. Par exemple, au lieu d'utiliser un `NaN` pour indiquer une valeur manquante, la valeur pourrait être `Placeholder`. Vous pouvez utiliser l'une des transformations suivantes pour gérer les valeurs manquantes :
  + **Drop missing** (Supprimer les valeurs manquantes) : supprime les lignes contenant des valeurs manquantes.
  + **Replace with new value** (Remplacer par une nouvelle valeur) : remplace les valeurs textuelles manquantes par `Other`. Vous pouvez remplacer `Other` par une valeur différente dans le code de sortie. Remplace les valeurs numériques manquantes par 0.
+ **Constant column** (Colonne constante) : la colonne ne comporte qu'une seule valeur. Elle n'a donc aucun pouvoir prédictif. Nous vous recommandons vivement d'utiliser la transformation **Drop column** (Supprimer la colonne) pour supprimer la colonne du jeu de données.
+ **ID column** (Colonne ID) : la colonne ne contient aucune valeur répétitive. Toutes les valeurs de la colonne sont uniques. Il peut s'agir de clés de base de données IDs ou de clés de base de données Sans informations supplémentaires, la colonne n'a aucun pouvoir prédictif. Nous vous recommandons vivement d'utiliser la transformation **Drop column** (Supprimer la colonne) pour supprimer la colonne du jeu de données.
+ **High cardinality** (Cardinalité élevée) : la colonne contient un pourcentage élevé de valeurs uniques. Une cardinalité élevée limite le pouvoir prédictif des colonnes catégorielles. Examinez l'importance de la colonne dans votre analyse et envisagez d'utiliser la transformation **Drop column** (Supprimer la colonne) pour la supprimer.

Pour la colonne cible, vous pouvez obtenir les informations suivantes qui vous avertissent des problèmes liés à votre jeu de données. Vous pouvez utiliser la transformation suggérée fournie avec l'avertissement pour corriger le problème.
+ **Mixed data types in target (Regression)** (Types de données mixtes dans la cible (régression)) : la colonne cible contient des valeurs non numériques. Il se peut qu'il y ait des erreurs dans la saisie de données. Nous vous recommandons de supprimer les lignes dont les valeurs ne peuvent pas être converties.
+ **Frequent label** (Libellé fréquent) : certaines valeurs de la colonne cible apparaissent plus fréquemment que la normale dans le contexte d'une régression. Une erreur est peut-être survenue lors de la collecte ou du traitement des données. Une catégorie qui apparaît fréquemment peut indiquer que la valeur est utilisée comme valeur par défaut ou qu'il s'agit d'un espace réservé pour les valeurs manquantes. Nous vous recommandons d'utiliser la transformation **Replace with new value** (Remplacer par une nouvelle valeur) pour remplacer les valeurs manquantes par `Other`.
+ **Too few instances per class** (Trop peu d'instances par classe) : la colonne cible contient des catégories qui apparaissent rarement. Certaines catégories ne comportent pas suffisamment de lignes pour que la colonne cible soit utile. Vous pouvez utiliser l'une des transformations suivantes :
  + **Drop rare target** (Supprimer une cible rare) : supprime les valeurs uniques avec moins de dix observations. Par exemple, supprime la valeur `cat` si elle apparaît neuf fois dans la colonne.
  + **Replace rare target** (Remplacer la cible rare) : remplace les catégories qui apparaissent rarement dans le jeu de données par la valeur `Other`.
+ **Classes too imbalanced (multi-class classification)** (Classes trop déséquilibrées (classification multiclasse)) : certaines catégories du jeu de données apparaissent beaucoup plus fréquemment que les autres catégories. Le déséquilibre des classes peut affecter la précision des prévisions. Pour obtenir les prévisions les plus précises possibles, nous vous recommandons de mettre à jour le jeu de données avec des lignes contenant les catégories qui apparaissent actuellement moins fréquemment.
+ **Grand classes/too nombre de classes** : la colonne cible contient un grand nombre de classes. Le fait d'avoir de nombreuses classes peut entraîner des temps de formation plus longs ou une mauvaise qualité prédictive. Nous vous recommandons d'effectuer l'une des actions suivantes :
  + Regrouper certaines catégories dans leur propre catégorie. Par exemple, si six catégories sont étroitement liées, nous vous recommandons d'utiliser une seule catégorie pour elles.
  + Utilisation d’un algorithme de machine learning résilient dans plusieurs catégories.

# Sécurité et autorisations
<a name="data-wrangler-security"></a>

Lorsque vous demandez des données à Athena ou Amazon Redshift, le jeu de données demandé est automatiquement stocké dans le compartiment AI S3 SageMaker par défaut de AWS la région dans laquelle vous utilisez Studio Classic. *En outre, lorsque vous exportez un bloc-notes Jupyter depuis Amazon SageMaker Data Wrangler et que vous l'exécutez, vos flux de données, ou fichiers .flow, sont enregistrés dans le même compartiment par défaut, sous le préfixe data\$1wrangler\$1flows.*

Pour des besoins de sécurité élevés, vous pouvez configurer une politique de compartiment qui restreint les AWS rôles ayant accès à ce compartiment SageMaker AI S3 par défaut. Utilisez la section suivante pour ajouter ce type de politique à un compartiment S3. Pour suivre les instructions de cette page, utilisez le AWS Command Line Interface (AWS CLI). Pour savoir comment procéder, consultez [la section Configuration de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dans le guide de l'utilisateur IAM.

En outre, vous devez accorder à chaque rôle IAM qui utilise Data Wrangler des autorisations d’accès aux ressources requises. Si vous n’avez pas besoin d’autorisations détaillées pour le rôle IAM que vous utilisez pour accéder à Data Wrangler, vous pouvez ajouter la politique gérée IAM, [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess), à un rôle IAM que vous utilisez pour créer votre utilisateur Studio Classic. Cette politique vous accorde la pleine autorisation d’utiliser Data Wrangler. Si vous avez besoin d’autorisations plus détaillées, consultez la section [Accorder à un rôle IAM l’autorisation d’utiliser Data Wrangler](#data-wrangler-security-iam-policy).

## Ajouter une politique de compartiment pour restreindre l'accès aux jeux de données importés dans Data Wrangler
<a name="data-wrangler-security-bucket-policy"></a>

Vous pouvez ajouter une stratégie au compartiment S3 qui contient vos ressources Data Wrangler à l’aide d’une stratégie de compartiment Amazon S3. Les ressources que Data Wrangler télécharge dans votre compartiment SageMaker AI S3 par défaut dans la AWS région dans laquelle vous utilisez Studio Classic sont les suivantes :
+ Résultats des requêtes à Amazon Redshift. Ceux-ci sont stockés sous le préfixe *redshift/*.
+ Résultats des requêtes à Athena. Ceux-ci sont stockés sous le préfixe *athena/*. 
+ Les fichiers .flow chargés sur Amazon S3 lorsque vous exécutez un bloc-notes Jupyter exporté produit par Data Wrangler. Ceux-ci sont stockés sous le préfixe *data\$1wrangler\$1flows/*.

Utilisez la procédure suivante pour créer une politique de compartiment S3 que vous pouvez ajouter pour restreindre l'accès du rôle IAM à ce compartiment. Pour savoir comment ajouter une stratégie à un compartiment S3, consultez [Ajout d’une stratégie de compartiment à l’aide de la console Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html).

**Pour configurer une politique de compartiment sur le compartiment S3 qui stocke vos ressources Data Wrangler :**

1. Configurez un ou plusieurs rôles IAM qui pourront accéder à Data Wrangler.

1. Ouvrez une invite de commande ou un shell. Pour chaque rôle que vous créez, remplacez-le *role-name* par le nom du rôle et exécutez ce qui suit :

   ```
   $ aws iam get-role --role-name role-name
   ```

   Dans la réponse, vous voyez une chaîne `RoleId` qui commence par `AROA`. Copiez cette chaîne. 

1. Ajoutez la politique suivante au compartiment SageMaker AI par défaut de la AWS région dans laquelle vous utilisez Data Wrangler. *region*Remplacez-le par la AWS région dans laquelle se trouve le compartiment et *account-id* par votre identifiant de AWS compte. Remplacez `userId` s *AROAEXAMPLEID* commençant par le IDs de et AWS les rôles auxquels vous souhaitez autoriser l'utilisation de Data Wrangler. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Principal": "*",
         "Action": "s3:*",
         "Resource": [
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/data_wrangler_flows/",
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/data_wrangler_flows/*",
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/athena",
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/athena/*",
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/redshift",
           "arn:aws:s3:::sagemaker-us-east-1-111122223333/redshift/*"
           
         ],
         "Condition": {
           "StringNotLike": {
             "aws:userId": [
               "AROAEXAMPLEID_1:*",
               "AROAEXAMPLEID_2:*"
             ]
           }
         }
       }
     ]
   }
   ```

------

## Création d’une liste d’autorisation pour Data Wrangler
<a name="data-wrangler-security-allowlist"></a>

Chaque fois qu'un utilisateur commence à exécuter Data Wrangler depuis l'interface utilisateur Amazon SageMaker Studio Classic, il appelle l'interface de programmation d'applications (API) SageMaker AI pour créer une application Data Wrangler.

Il se peut que votre organisation ne fournisse pas à vos utilisateurs les autorisations nécessaires pour effectuer ces appels d’API par défaut. Pour fournir des autorisations, vous devez créer et associer une politique aux rôles IAM de l'utilisateur à l'aide du modèle de politique suivant : [Exemple de liste d'autorisation de Data Wrangler](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/DataWranglerAllowListExample.txt) (langue française non garantie).

**Note**  
L'exemple de politique précédent permet uniquement à vos utilisateurs d'accéder à l'application Data Wrangler.

Pour en savoir plus sur la création d'une politique, consultez [Création de politiques sur l'onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor). Lorsque vous créez une politique, copiez-collez la politique JSON depuis l'[Exemple de liste d'autorisation de Data Wrangler](https://s3.us-west-2.amazonaws.com/amazon-sagemaker-data-wrangler-documentation-artifacts/DataWranglerAllowListExample.txt) dans l'onglet **JSON**.

**Important**  
Supprimez toutes les politiques IAM qui empêchent les utilisateurs d'exécuter les opérations suivantes :  
[CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)
[DescribeApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html)
Si vous ne supprimez pas les politiques, elles pourraient tout de même affecter vos utilisateurs.

Après avoir créé la politique à l'aide du modèle, associez-la aux rôles IAM de vos utilisateurs. Pour en savoir plus sur comment attacher une politique, consultez [Ajout des autorisations d'identité IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

## Accorder à un rôle IAM l’autorisation d’utiliser Data Wrangler
<a name="data-wrangler-security-iam-policy"></a>

Vous pouvez accorder à un rôle IAM l’autorisation d’utiliser Data Wrangler avec la politique gérée IAM générale [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess). Il s'agit d'une politique générale qui inclut [les autorisations](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-AmazonSageMakerFullAccess.html) requises pour utiliser tous les services d' SageMaker IA. Cette politique accorde à un rôle IAM un accès complet à Data Wrangler. Vous devez être conscient des points suivants lors de l'utilisation de `AmazonSageMakerFullAccess` pour accorder l'accès à Data Wrangler :
+ Si vous importez des données depuis Amazon Redshift, le nom du **Database User (Utilisateur de base de données)** doit avoir le préfixe `sagemaker_access`.
+ Cette politique gérée accorde uniquement l'autorisation d'accéder aux compartiments avec l'un des noms suivants : `SageMaker AI`, `SageMaker AI`, `sagemaker` ou `aws-glue`. Si vous souhaitez utiliser Data Wrangler pour importer à partir d'un compartiment S3 sans ces phrases dans le nom, reportez-vous à la dernière section de cette page pour savoir comment accorder à une entité IAM l'autorisation d'accéder à vos compartiments S3.

Si vous avez des besoins de sécurité élevée, vous pouvez associer les politiques de cette section à une entité IAM pour accorder les autorisations requises pour utiliser Data Wrangler.

Si vous avez des jeux de données dans Amazon Redshift ou Athena qu'un rôle IAM doit importer à partir de Data Wrangler, vous devez ajouter une politique à cette entité pour accéder à ces ressources. Les politiques suivantes sont les politiques les plus restrictives que vous pouvez utiliser pour accorder à un rôle IAM l'autorisation d'importer des données à partir d'Amazon Redshift et Athena. 

Pour apprendre à attacher une politique personnalisée à un rôle IAM, consultez [Gestion des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html#create-managed-policy-console) dans le Guide de l’utilisateur IAM.

**Exemple de politique pour accorder l'accès à une importation de jeu de données Athena**

La politique suivante suppose que le rôle IAM a l'autorisation d'accéder au compartiment S3 sous-jacent dans lequel les données sont stockées via une politique IAM distincte.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:GetQueryExecution",
                "athena:GetQueryResults",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateTable"
            ],
            "Resource": [
                "arn:aws:glue:*:*:table/*/sagemaker_tmp_*",
                "arn:aws:glue:*:*:table/sagemaker_featurestore/*",
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:DeleteTable"
            ],
            "Resource": [
                "arn:aws:glue:*:*:table/*/sagemaker_tmp_*",
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetTable",
                "glue:GetTables"
            ],
            "Resource": [
                "arn:aws:glue:*:*:table/*",
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateDatabase",
                "glue:GetDatabase"
            ],
            "Resource": [
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/sagemaker_featurestore",
                "arn:aws:glue:*:*:database/sagemaker_processing",
                "arn:aws:glue:*:*:database/default",
                "arn:aws:glue:*:*:database/sagemaker_data_wrangler"
            ]
        }
    ]
}
```

------

****Exemple de politique pour accorder l'accès à une importation de jeu de données Amazon Redshift****

La politique suivante accorde l'autorisation de configurer une connexion depuis Amazon Redshift vers Data Wrangler à l'aide d'utilisateurs de base de données possédant le préfixe `sagemaker_access` dans le nom. Pour accorder l'autorisation de se connecter à l'aide d'utilisateurs de base de données supplémentaires, ajoutez des entrées supplémentaires sous `"Resources"` dans la politique suivante. La politique suivante suppose que le rôle IAM a l'autorisation d'accéder au compartiment S3 sous-jacent dans lequel les données sont stockées via une politique IAM distincte, le cas échéant. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:ExecuteStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:CancelStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListSchemas",
                "redshift-data:ListTables"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/sagemaker_access*",
                "arn:aws:redshift:*:*:dbname:*"
            ]
        }
    ]
}
```

------

**Politique pour accorder l'accès à un compartiment S3**

Si votre jeu de données est stocké dans Amazon S3, vous pouvez accorder une autorisation de rôle IAM pour accéder à ce compartiment avec une politique similaire à la suivante. Cet exemple accorde un accès programmatique en lecture-écriture au compartiment nommé. *test*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::test"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::test/*"]
    }
  ]
}
```

------

Pour importer des données depuis Athena et Amazon Redshift, vous devez accorder à un rôle IAM l'autorisation d'accéder aux préfixes suivants dans le compartiment Amazon S3 par défaut dans le Region Data Wrangler dans AWS lequel il est utilisé :,. `athena/` `redshift/` Si aucun compartiment Amazon S3 par défaut n'existe déjà dans la AWS région, vous devez également autoriser le rôle IAM à créer un compartiment dans cette région.

En outre, si vous souhaitez que le rôle IAM puisse utiliser les options d'exportation de tâches Amazon SageMaker Feature Store, Pipelines et Data Wrangler, vous devez autoriser l'accès au préfixe `data_wrangler_flows/` de ce compartiment.

 Data Wrangler utilise les préfixes `athena/` et `redshift/` pour stocker les fichiers d’aperçu et les jeux de données importés. Pour en savoir plus, consultez [Stockage des données importées](data-wrangler-import.md#data-wrangler-import-storage).

Data Wrangler utilise le préfixe `data_wrangler_flows/` pour stocker des fichiers .flow lorsque vous exécutez un bloc-notes Jupyter exporté à partir de Data Wrangler. Pour en savoir plus, consultez [Exporter](data-wrangler-data-export.md).

Utilisez une politique semblable à la suivante pour accorder les autorisations décrites dans les paragraphes précédents.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/data_wrangler_flows/",
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/data_wrangler_flows/*",
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/athena",
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/athena/*",
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/redshift",
                "arn:aws:s3:::sagemaker-us-east-1-111122223333/redshift/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::sagemaker-us-east-1-111122223333"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Vous pouvez également accéder aux données de votre compartiment Amazon S3 depuis un autre AWS compte en spécifiant l'URI du compartiment Amazon S3. Pour ce faire, la politique IAM qui accorde l'accès au compartiment Amazon S3 de l'autre compte doit utiliser une politique semblable à celle de l'exemple suivant, où `BucketFolder` est le répertoire spécifique dans le compartiment utilisateurs `UserBucket`. Cette politique doit être ajoutée à l’utilisateur accordant l’accès à son compartiment pour un autre utilisateur. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::UserBucket/BucketFolder/*"
            },
                {
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket"
                ],
                "Resource": "arn:aws:s3:::UserBucket",
                "Condition": {
                "StringLike": {
                    "s3:prefix": [
                    "BucketFolder/*"
                    ]
                }
            }
        } 
    ]
}
```

------

L'utilisateur qui accède au compartiment (qui n'est pas le propriétaire du compartiment) doit ajouter à son utilisateur une politique semblable à celle présentée dans l'exemple suivant. Notez que `AccountX` et `TestUser` ci-dessous font référence au propriétaire du compartiment et à son utilisateur respectivement.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/TestUser"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::UserBucket/BucketFolder/*"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/TestUser"
            },
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::UserBucket"
            ]
        }
    ]
}
```

------

**Exemple de politique pour accorder l'accès à l'utilisation d' SageMaker AI Studio**

Utilisez une politique similaire à la suivante pour créer un rôle d’exécution IAM qui peut être utilisé pour configurer une instance Studio Classic. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeDomain",
                "sagemaker:ListDomains",
                "sagemaker:DescribeUserProfile",
                "sagemaker:ListUserProfiles",
                "sagemaker:*App",
                "sagemaker:ListApps"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Snowflake et Data Wrangler
<a name="data-wrangler-security-snowflake"></a>

Toutes les autorisations relatives AWS aux ressources sont gérées via votre rôle IAM associé à votre instance Studio Classic. L’administrateur Snowflake gère les autorisations spécifiques de Snowflake, car elles peuvent accorder des autorisations et privilèges détaillés à chaque utilisateur Snowflake. Cela inclut les bases de données, les schémas, les tables, les entrepôts et les objets d’intégration de stockage. Vous devez vous assurer que les bonnes autorisations sont configurées en dehors de Data Wrangler. 

Notez que la commande Snowflake `COPY INTO Amazon S3` déplace les données de Snowflake vers Amazon S3 au travers du réseau Internet public par défaut, mais les données en transit sont sécurisées à l'aide de SSL. Les données au repos dans Amazon S3 sont chiffrées avec SSE-KMS en utilisant le AWS KMS key par défaut.

En ce qui concerne le stockage des informations d’identification Snowflake, Data Wrangler ne stocke pas les informations d’identification client. Data Wrangler utilise Secrets Manager pour stocker les informations d’identification dans un secret et procède à une rotation des secrets dans le cadre d’un plan de sécurité suivant les bonnes pratiques. L’administrateur Snowflake ou Studio Classic doit s’assurer que le rôle d’exécution Studio Classic du scientifique des données est autorisé à exécuter `GetSecretValue` pour le secret stockant les informations d’identification. Si elle est déjà attachée au rôle d’exécution de Studio Classic, la politique `AmazonSageMakerFullAccess` a les autorisations nécessaires pour lire les secrets créés par Data Wrangler et les secrets créés en suivant la convention de dénomination et de balisage dans les instructions ci-dessus. L’accès aux secrets qui ne suivent pas les conventions doit être accordé séparément. Nous recommandons d’utiliser Secrets Manager pour empêcher le partage d’informations d’identification sur des canaux non sécurisés. Toutefois, notez qu’un utilisateur connecté peut extraire le mot de passe en texte brut en lançant un terminal ou un bloc-notes Python dans Studio Classic, puis en invoquant des appels d’API à partir de l’API Secrets Manager. 

## Chiffrement des données avec AWS KMS
<a name="data-wrangler-security-kms"></a>

Dans Data Wrangler, vous pouvez déchiffrer des fichiers chiffrés et les ajouter à votre flux Data Wrangler. Vous pouvez également chiffrer le résultat des transformations à l'aide d'une AWS KMS clé par défaut ou d'une clé que vous fournissez.

Vous pouvez importer des fichiers s'ils possèdent les éléments suivants :
+ chiffrement côté serveur
+ SSE-KMS comme type de chiffrement

Pour déchiffrer le fichier et l'importer dans un flux Data Wrangler, vous devez ajouter l'utilisateur SageMaker Studio Classic que vous utilisez comme utilisateur clé.

La capture d’écran suivante montre un rôle d’utilisateur Studio Classic ajouté en tant qu’utilisateur clé. Consultez [Rôles IAM](https://console.aws.amazon.com/iam/home#/roles) afin d’accéder aux utilisateurs sous le volet de gauche pour effectuer cette modification.

![\[Section Utilisateurs clés de la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/data-wrangler-kms.png)


### Configuration de la clé gérée par Amazon S3 pour le stockage des données importées Data Wrangler
<a name="data-wrangler-s3-cmk-setup"></a>

 Par défaut, Data Wrangler utilise des compartiments Amazon S3 qui ont la convention de dénomination suivante : `sagemaker-region-account number`. Par exemple, si votre numéro de compte est `111122223333` et que vous utilisez Studio Classic dans la région us-east-1, vos jeux de données importés sont stockés avec la convention de dénomination suivante : `sagemaker-us-east-1-111122223333`. 

Les instructions suivantes expliquent la façon de configurer une clé gérée par le client pour votre compartiment Amazon S3 par défaut.

1. Pour activer le chiffrement côté serveur et configurer une clé gérée par le client pour votre compartiment S3 par défaut, consultez [Utilisation du chiffrement KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html).

1. Après avoir suivi l'étape 1, accédez AWS KMS à votre AWS Management Console. Recherchez la clé gérée par le client que vous avez sélectionnée à l’étape 1 de l’étape précédente et ajoutez le rôle Studio Classic en tant qu’utilisateur clé. Pour ce faire, suivez les instructions dans [Autorisation aux utilisateurs clés d’utiliser une clé gérée par le client](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users).

### Chiffrement des données que vous exportez
<a name="data-wrangler-export-kms"></a>

Vous pouvez chiffrer les données que vous exportez à l’aide de l’une des méthodes suivantes :
+ Si vous spécifiez que votre compartiment Amazon S3 possède un objet, utilisez le chiffrement SSE-KMS.
+ Spécification d'une AWS KMS clé pour chiffrer les données que vous exportez depuis Data Wrangler.

Sur la page **Export data** (Exporter des données), spécifiez une valeur pour **AWS KMS key ID or ARN** (ARN ou ID de clé KMS).

Pour plus d'informations sur l'utilisation des AWS KMS clés, consultez [la section Protection des données à l'aide du chiffrement côté serveur avec des AWS KMS clés stockées dans AWSAWS Key Management Service (SSE-KMS](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingKMSEncryption.html)).

## AppFlow Autorisations Amazon
<a name="data-wrangler-appflow-permissions"></a>

Lorsque vous effectuez un transfert, vous devez spécifier un rôle IAM disposant des autorisations nécessaires pour effectuer le transfert. Vous pouvez utiliser le même rôle IAM que celui autorisé à utiliser Data Wrangler. Par défaut, le rôle IAM que vous utilisez pour accéder à Data Wrangler est le `SageMakerExecutionRole`.

Le rôle IAM doit également avoir les autorisations suivantes :
+ Autorisations pour Amazon AppFlow
+ Autorisations d'accès au catalogue AWS Glue de données
+ Autorisations AWS Glue permettant de découvrir les sources de données disponibles

Lorsque vous effectuez un transfert, Amazon AppFlow stocke les métadonnées du transfert dans le catalogue de AWS Glue données. Data Wrangler utilise les métadonnées du catalogue pour déterminer s'il est possible de les interroger et de les importer.

Pour ajouter des autorisations à Amazon AppFlow, ajoutez la politique `AmazonAppFlowFullAccess` AWS gérée au rôle IAM. Pour plus d’informations sur l’ajout de politiques, consultez [Ajout et suppression d’autorisations d’identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Si vous transférez des données vers Amazon S3, vous devez également joindre la politique suivante.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketTagging",
        "s3:ListBucketVersions",
        "s3:CreateBucket",
        "s3:ListBucket",
        "s3:GetBucketPolicy",
        "s3:PutEncryptionConfiguration",
        "s3:GetEncryptionConfiguration",
        "s3:PutBucketTagging",
        "s3:GetObjectTagging",
        "s3:GetBucketOwnershipControls",
        "s3:PutObjectTagging",
        "s3:DeleteObject",
        "s3:DeleteBucket",
        "s3:DeleteObjectTagging",
        "s3:GetBucketPublicAccessBlock",
        "s3:GetBucketPolicyStatus",
        "s3:PutBucketPublicAccessBlock",
        "s3:PutAccountPublicAccessBlock",
        "s3:ListAccessPoints",
        "s3:PutBucketOwnershipControls",
        "s3:PutObjectVersionTagging",
        "s3:DeleteObjectVersionTagging",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:PutObject",
        "s3:GetObject",
        "s3:GetAccountPublicAccessBlock",
        "s3:ListAllMyBuckets",
        "s3:GetAnalyticsConfiguration",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Pour ajouter AWS Glue des autorisations, ajoutez la politique `AWSGlueConsoleFullAccess` gérée au rôle IAM. Pour plus d'informations sur AWS Glue les autorisations auprès d'Amazon AppFlow, consultez [link-to-appflow-page].

Amazon AppFlow doit accéder AWS Glue à Data Wrangler pour que vous puissiez importer les données que vous avez transférées. Pour accorder AppFlow l'accès à Amazon, ajoutez la politique de confiance suivante au rôle IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:root",
                "Service": [
                    "appflow.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Pour afficher les AppFlow données Amazon dans Data Wrangler, ajoutez la politique suivante au rôle IAM :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "glue:SearchTables",
            "Resource": [
                "arn:aws:glue:*:*:table/*/*",
                "arn:aws:glue:*:*:database/*",
                "arn:aws:glue:*:*:catalog"
            ]
        }
    ]
}
```

------

## Utilisation des configurations de cycle de vie dans Data Wrangler
<a name="data-wrangler-lifecycle-configuration"></a>

Vous avez peut-être une instance Amazon EC2 configurée pour exécuter des applications Kernel Gateway, mais pas l’application Data Wrangler. Les applications Kernel Gateway fournissent un accès à l’environnement et aux noyaux que vous utilisez pour exécuter des blocs-notes et des terminaux Studio Classic. L’application Data Wrangler est l’application d’interface utilisateur qui exécute Data Wrangler. Les instances Amazon EC2 qui ne sont pas des instances Data Wrangler nécessitent une modification de leurs configurations de cycle de vie pour exécuter Data Wrangler. Les configurations du cycle de vie sont des scripts shell qui automatisent la personnalisation de votre environnement Amazon SageMaker Studio Classic.

Pour en savoir plus sur les configurations du cycle de vie, consultez [Utilisez les configurations du cycle de vie pour personnaliser Amazon SageMaker Studio Classic](studio-lcc.md).

La configuration du cycle de vie par défaut de votre instance ne prend pas en charge l'utilisation de Data Wrangler. Vous pouvez apporter les modifications suivantes à la configuration par défaut pour utiliser Data Wrangler avec votre instance.

```
#!/bin/bash
set -eux
STATUS=$(
python3 -c "import sagemaker_dataprep"
echo $?
)
if [ "$STATUS" -eq 0 ]; then
echo 'Instance is of Type Data Wrangler'
else
echo 'Instance is not of Type Data Wrangler'

# Replace this with the URL of your git repository
export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"

git -C /root clone $REPOSTIORY_URL

fi
```

Vous pouvez enregistrer le script sous `lifecycle_configuration.sh`.

Vous attachez la configuration de cycle de vie à votre domaine ou votre profil d’utilisateur Studio Classic. Pour plus d’informations sur la création et l’association d’une configuration de cycle de vie, consultez [Création et association d'une configuration de cycle de vie avec Amazon SageMaker Studio Classic](studio-lcc-create.md).

Les instructions suivantes vous montrent comment attacher une configuration de cycle de vie à un domaine ou à un profil d’utilisateur Studio Classic.

Vous pouvez rencontrer des erreurs lorsque vous créez ou associez une configuration de cycle de vie. Pour plus d’informations sur le débogage des erreurs de configuration de cycle de vie, [KernelGateway échec de l'application](studio-lcc-debug.md#studio-lcc-debug-kernel).

# Notes de mise à jour
<a name="data-wrangler-release-notes"></a>

Data Wrangler est régulièrement mis à jour avec de nouvelles fonctions et correctifs de bogues. Pour mettre à niveau la version de Data Wrangler que vous utilisez dans Studio Classic, suivez les instructions fournies dans [Arrêter et mettre à jour les applications Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).


****  

| Notes de mise à jour | 
| --- | 
|  **31 août 2023** Nouvelle fonctionnalité : Vous pouvez désormais créer un rapport d’informations et de qualité des données sur l’intégralité de votre jeu de données. Pour de plus amples informations, veuillez consulter [Obtention d’informations sur les données et la qualité des données](data-wrangler-data-insights.md). **20/05/2023** Nouvelle fonctionnalité : Vous pouvez désormais importer vos données depuis Salesforce Data Cloud. Pour de plus amples informations, veuillez consulter [Importer des données depuis Salesforce Data Cloud](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud). **18/04/2023** Nouvelle fonctionnalité : Vous pouvez désormais obtenir vos données dans un format qu'Amazon Personalize peut interpréter. Pour de plus amples informations, veuillez consulter [Mappage de colonnes pour Amazon Personalize](data-wrangler-transform.md#data-wrangler-transform-personalize). **01/03/2023** Nouvelle fonctionnalité : Vous pouvez désormais utiliser Hive pour importer vos données depuis Amazon EMR. Pour de plus amples informations, veuillez consulter [Importer des données depuis Amazon EMR](data-wrangler-import.md#data-wrangler-emr). **10/12/2022** Nouvelle fonctionnalité : Vous pouvez désormais exporter votre flux Data Wrangler vers un point de terminaison d'inférence. Pour de plus amples informations, veuillez consulter [Exporter vers un point de terminaison d’inférence](data-wrangler-data-export.md#data-wrangler-data-export-inference). Nouvelle fonctionnalité : Vous pouvez désormais utiliser un widget de bloc-notes interactif pour la préparation des données. Pour de plus amples informations, veuillez consulter [Utilisez un widget interactif de préparation des données dans un bloc-notes Amazon SageMaker Studio Classic pour obtenir des informations sur les données](data-wrangler-interactively-prepare-data-notebook.md). Nouvelle fonctionnalité : Vous pouvez désormais importer des données à partir de plateformes SaaS. Pour de plus amples informations, veuillez consulter [Importer des données à partir de plateformes de logiciel en tant que service (SaaS)](data-wrangler-import.md#data-wrangler-import-saas). **10/12/2022** Nouvelle fonctionnalité : Vous pouvez désormais réutiliser des flux de données pour différents ensembles de données. Pour de plus amples informations, veuillez consulter [Réutilisation de flux de données pour différents jeux de données](data-wrangler-parameterize.md). **10/05/2022** Nouvelle fonctionnalité : Vous pouvez désormais utiliser l'analyse des composants principaux (PCA) comme transformation. Pour de plus amples informations, veuillez consulter [Réduire la dimensionnalité dans un jeu de données](data-wrangler-transform.md#data-wrangler-transform-dimensionality-reduction). **10/05/2022** Nouvelle fonctionnalité : Vous pouvez désormais adapter les paramètres de votre flux Data Wrangler. Pour de plus amples informations, veuillez consulter [Exporter](data-wrangler-data-export.md). **10/03/2022** Nouvelle fonctionnalité : Vous pouvez désormais déployer des modèles depuis votre flux Data Wrangler. Pour de plus amples informations, veuillez consulter [Entraînement automatique des modèles sur votre flux de données](data-wrangler-autopilot.md). **20/09/2022** Nouvelle fonctionnalité : Vous pouvez désormais définir des durées de conservation des données dans Athena. Pour de plus amples informations, veuillez consulter [Importer des données depuis Athena](data-wrangler-import.md#data-wrangler-import-athena). **9/06/2022** Nouvelle fonctionnalité : Vous pouvez désormais utiliser Amazon SageMaker Autopilot pour entraîner un modèle directement à partir de votre flux Data Wrangler. Pour de plus amples informations, veuillez consulter [Entraînement automatique des modèles sur votre flux de données](data-wrangler-autopilot.md). **06/05/2022** Nouvelle fonctionnalité : Vous pouvez désormais utiliser des instances m5 et r5 supplémentaires. Pour de plus amples informations, veuillez consulter [instances](data-wrangler-data-flow.md#data-wrangler-data-flow-instances). **27/04/2022** Nouvelles fonctionnalités : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) **01/04/2022** Nouvelle fonctionnalité : Vous pouvez désormais utiliser Databricks comme source de données. Pour de plus amples informations, veuillez consulter [Importer des données depuis Databricks (JDBC)](data-wrangler-import.md#data-wrangler-databricks). **02/02/2022** Nouvelles fonctionnalités : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) **16/10/2021** Nouvelle fonctionnalité : Data Wrangler prend désormais en charge les groupes de travail Athena. Pour de plus amples informations, veuillez consulter [Importer des données depuis Athena](data-wrangler-import.md#data-wrangler-import-athena). **06/10/2021** Nouvelle fonctionnalité : Data Wrangler prend désormais en charge la transformation des données en séries chronologiques. Pour de plus amples informations, veuillez consulter [Transformer les séries temporelles](data-wrangler-transform.md#data-wrangler-transform-time-series). **15/07/2021** Nouvelles fonctionnalités : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) Améliorations : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html)  Correctifs de bogue : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) **26/04/2021**  Améliorations : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) Correctifs de bogue : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) **08/02/2021**  Nouvelles fonctionnalités : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) Améliorations : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html) Correctifs de bogue : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/data-wrangler-release-notes.html)  | 

# Dépannage
<a name="data-wrangler-trouble-shooting"></a>

Si un problème survient lors de l'utilisation d'Amazon SageMaker Data Wrangler, nous vous recommandons de procéder comme suit :
+ Si un message d’erreur est renvoyé, lisez-le et résolvez le problème signalé si possible.
+ Assurez-vous que le rôle IAM de votre utilisateur Studio Classic dispose des autorisations requises pour effectuer l’action. Pour de plus amples informations, veuillez consulter [Sécurité et autorisations](data-wrangler-security.md).
+ Si le problème survient lorsque vous essayez d'effectuer une importation depuis un autre AWS service, tel qu'Amazon Redshift ou Athena, assurez-vous d'avoir configuré les autorisations et les ressources nécessaires pour effectuer l'importation des données. Pour de plus amples informations, veuillez consulter [Importer](data-wrangler-import.md).
+ Si le problème persiste, choisissez **Get help** (Obtenir de l’aide) en haut à droite de l’écran pour contacter l’équipe Data Wrangler. Pour plus d’informations, consultez les images suivantes.  
![\[Emplacement du formulaire Aide Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/get-help/get-help.png)  
![\[Formulaire Aide Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/get-help/get-help-forms.png)

En dernier recours, vous pouvez essayer de redémarrer le noyau sur lequel Data Wrangler est en cours d’exécution. 

1. Enregistrez et quittez le fichier .flow pour lequel vous souhaitez redémarrer le noyau. 

1. Cliquez sur l’icône ****Terminaux et noyaux en cours d’exécution****, comme illustré dans l’image suivante.  
![\[Emplacement de l’icône Exécution des terminaux et des noyaux dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/stop-kernel-option.png)

1. Cliquez sur l’icône **Stop (Arrêter)** à droite du fichier .flow pour lequel vous souhaitez mettre fin au noyau, comme illustré dans l’image suivante.  
![\[Emplacement de l’icône Arrêter dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/mohave/stop-kernel.png)

1. Actualisez le navigateur. 

1. Ouvrez à nouveau le fichier .flow sur lequel vous travailliez. 

## Résolution de problèmes avec Amazon EMR
<a name="data-wrangler-trouble-shooting-emr"></a>

Utilisez les informations suivantes pour résoudre les problèmes liés à Amazon EMR.
+ Échec de connexion : si la connexion échoue avec le message `The IP address of the EMR cluster isn't private error message`, votre cluster Amazon EMR n'a peut-être pas été lancé dans un sous-réseau privé. Dans le cadre d'une bonne pratique de sécurité, Data Wrangler ne prend en charge que la connexion à des clusters Amazon EMR privés. Choisissez un sous-réseau EC2 privé pour lancer un cluster EMR.
+ Connexion suspendue et expiration du délai : le problème est probablement dû à un problème de connectivité réseau. Une fois que vous avez commencé à vous connecter au cluster, l'écran ne s'actualise pas. Après environ 2 minutes, l'erreur suivante peut s'afficher : `JdbcAddConnectionError: An error occurred when trying to connect to presto: xxx: Connect to xxx failed: Connection timed out (Connection timed out) will display on top of the screen.`.

  Les erreurs peuvent avoir deux causes principales :
  + Amazon EMR et Amazon SageMaker Studio Classic sont différents. VPCs Nous vous recommandons de lancer Amazon EMR et Studio Classic dans le même VPC. Vous pouvez également utiliser l’appairage de VPC. Pour plus d’informations, consultez [Qu’est-ce que l’appairage de VPC ?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)
  + Le groupe de sécurité principal Amazon EMR ne dispose pas de la règle de trafic entrant pour le groupe de sécurité d'Amazon SageMaker Studio Classic sur le port utilisé pour Presto. Pour résoudre ce problème, autorisez le trafic entrant sur le port 8889.
+ La connexion échoue en raison d'une erreur de configuration du type de connexion. Le message d'erreur suivant peut s'afficher : ` Data Wrangler couldn't create a connection to {connection_source} successfully. Try connecting to {connection_source} again. For more information, see Troubleshoot. If you’re still experiencing issues, contact support. `

  Vérifiez la méthode d'authentification. La méthode d'authentification que vous avez spécifiée dans Data Wrangler doit correspondre à la méthode d'authentification que vous utilisez sur le cluster.
+ Vous ne disposez pas des autorisations HDFS pour l'authentification LDAP. Suivez les instructions suivantes pour résoudre le problème [Configurer des autorisations HDFS à l'aide des informations d'identification Linux](https://docs.aws.amazon.com/whitepapers/latest/teaching-big-data-skills-with-amazon-emr/set-up-hdfs-permissions-using-linux-credentials.html). Vous pouvez vous connecter au cluster à l'aide des commandes suivantes :

  ```
  hdfs dfs -mkdir /user/USERNAME
  hdfs dfs -chown USERNAME:USERNAME /user/USERNAME
  ```
+ Erreur de clé de connexion manquante lors de l'authentification LDAP - Le message d'erreur suivant peut s'afficher : `Data Wrangler couldn't connect to EMR hive successfully. JDBC connection is missing required connection key(s): PWD`.

  Pour l'authentification LDAP, vous devez spécifier à la fois un nom d'utilisateur et un mot de passe. Il manque la propriété `PWD` dans l'URL JDBC stockée dans Secrets Manager.
+ Lorsque vous résolvez des problèmes de configuration LDAP : nous vous recommandons de vous assurer que l'authentificateur LDAP (serveur LDAP) est correctement configuré pour se connecter au cluster Amazon EMR. Utilisez la commande `ldapwhoami` pour résoudre le problème de configuration. Par exemple, vous pouvez exécuter les commandes suivantes :
  + Pour LDAPS : `ldapwhoami -x -H ldaps://ldap-server`
  + Pour LDAP : `ldapwhoami -x -H ldap://ldap-server`

  L’une ou l’autre commande doit renvoyer `Anonymous` si vous avez correctement configuré l’authentificateur.

## Résolution des problèmes avec Salesforce
<a name="data-wrangler-troubleshooting-salesforce-data-cloud"></a>

### Erreur de configuration du cycle de vie
<a name="data-wrangler-troubleshooting-salesforce-lcc-debug-data-cloud"></a>

Lorsque votre utilisateur ouvre Studio Classic pour la première fois, il peut recevoir un message d’erreur indiquant qu’il y a un problème dans la configuration de son cycle de vie. Utilisez Amazon CloudWatch pour accéder aux journaux écrits par votre script de configuration du cycle de vie. Pour plus d’informations sur le débogage des configurations du cycle de vie, consultez [Configurations du cycle de vie de débogage dans Amazon SageMaker Studio Classic](studio-lcc-debug.md).

Si vous ne parvenez pas à corriger l'erreur, vous pouvez créer le fichier de configuration manuellement. Vous devez créer le fichier chaque fois que vous supprimez ou redémarrez le serveur Jupyter. Utilisez la procédure suivante pour créer le fichier manuellement.

**Pour créer un fichier de configuration**

1. Accédez à Studio Classic.

1. Choisissez **Fichier**, puis **Nouveau**, puis **Terminal**.

1. Créer `.sfgenie_identity_provider_oauth_config`.

1. Ouvrez le fichier dans un éditeur de texte.

1. Ajoutez au fichier un objet JSON contenant l'Amazon Resource Name (ARN) du secret Secrets Manager. Vous pouvez utiliser le modèle suivant pour créer l'objet.

   ```
   {
     "secret_arn": "example-secret-ARN"
   }
   ```

1. Enregistrez vos modifications dans le fichier .

### Impossible d'accéder à Salesforce Data Cloud depuis le flux Data Wrangler
<a name="data-wrangler-troubleshooting-salesforce-datacloud-access"></a>

Une fois que votre utilisateur choisit **Salesforce Data Cloud** dans votre flux Data Wrangler, un message d'erreur peut s'afficher indiquant que les conditions préalables à la configuration de la connexion ne sont pas remplies. Cela peut être dû aux erreurs suivantes :
+ Le secret Salesforce dans Secrets Manager n'a pas été créé.
+ Le secret Salesforce dans Secrets Manager a été créé, mais il manque la balise Salesforce.
+ Le secret Salesforce dans Secrets Manager a été créé par erreur Région AWS. Par exemple, votre utilisateur ne pourra pas accéder à Salesforce Data Cloud dans `ca-central-1` car vous avez créé le secret dans `us-east-1`. Vous pouvez soit répliquer le secret dans `ca-central-1`, soit en créer un nouveau avec les mêmes informations d'identification dans `ca-central-1`. Pour plus d'informations sur la réplication de secrets, voir [Répliquer un AWS Secrets Manager secret vers un autre](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create-manage-multi-region-secrets.html). Régions AWS
+ La politique utilisée par vos utilisateurs pour accéder à Amazon SageMaker Studio Classic prévoit l'absence d'autorisations pour AWS Secrets Manager
+ Il y a une faute de frappe dans l’ARN du Secrets Manager de l’objet JSON que vous avez spécifié dans la configuration de votre cycle de vie.
+ Il y a une faute de frappe dans le secret de Secrets Manager contenant votre configuration Salesforce OAuth 

### Page blanche affichant `redirect_uri_mismatch`
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-blank-page"></a>

Une fois que vos utilisateurs ont choisi **Enregistrer et connecter**, ils peuvent être redirigés vers une page qui affiche `redirect_uri_mismatch`. L’URI de rappel que vous avez enregistré dans les paramètres de votre application Salesforce Connected est manquant ou incorrect.

Utilisez l’URL suivante pour vérifier que votre URL de Studio Classic est correctement enregistrée dans les paramètres de l’application connectée de votre organisation Salesforce : `https://EXAMPLE_SALESFORCE_ORG/lightning/setup/NavigationMenus/home/`. Pour plus d’informations sur l’utilisation des paramètres de l’application connectée, accédez à l’URL suivante : `https://EXAMPLE_SALESFORCE_ORG/lightning/setup/NavigationMenus/home/`.

**Note**  
La propagation de l'URI dans les systèmes de Salesforce prend environ dix minutes.

### Espaces partagés
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-shared-spaces"></a>

Les espaces partagés ne fonctionnent pas actuellement avec l’intégration Salesforce Data Cloud. Vous pouvez soit supprimer les espaces partagés du domaine Amazon SageMaker AI que vous souhaitez utiliser, soit utiliser un autre domaine pour lequel aucun espace partagé n'est configuré.

### OAuth Erreur de redirection
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-oauth-error"></a>

Vos utilisateurs devraient pouvoir importer leurs données depuis le Salesforce Data Cloud après avoir choisi **Connecter**. S’ils rencontrent une erreur, nous vous recommandons de leur demander de procéder comme suit :
+ Dites-leur d'être patients : lorsqu'ils sont redirigés vers Amazon SageMaker Studio Classic, le processus d'authentification peut prendre jusqu'à une minute. Pendant qu’ils sont redirigés, nous vous recommandons de leur dire d’éviter d’interagir avec le navigateur. Par exemple, ils ne doivent pas fermer l'onglet du navigateur, passer à un autre onglet ou interagir avec le flux Data Wrangler. L'interaction avec le navigateur peut supprimer le code d'autorisation requis pour se connecter au cloud de données.
+ Demandez à vos utilisateurs de se reconnecter au cloud de données : certains problèmes temporaires peuvent entraîner l'échec de la connexion au cloud de données Salesforce. Demandez à vos utilisateurs de créer un nouveau flux Data Wrangler et de réessayer de se connecter au Salesforce Data Cloud.
+ Assurez-vous que vos utilisateurs ferment tous les autres onglets avec Amazon SageMaker Studio Classic. Si Studio Classic est ouvert dans plusieurs onglets, la connexion à Salesforce Data Cloud peut échouer. Assurez-vous que vos utilisateurs n’ont qu’un seul onglet Studio Classic ouvert.
+ Plusieurs utilisateurs accèdent à Studio Classic en même temps : un seul utilisateur doit accéder à un domaine Amazon SageMaker AI à la fois. Si plusieurs utilisateurs accèdent au même domaine, la connexion qu’un utilisateur essaie de créer avec Salesforce Data Cloud peut échouer.

La mise à jour de Data Wrangler et de Studio Classic peut également corriger leur erreur. Pour plus d’informations sur la mise à jour de Data Wrangler, consultez [Mettre à jour Data Wrangler](data-wrangler-update.md). Pour en savoir plus sur la mise à jour de Studio Classic, consultez [Arrêter et mettre à jour Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Si aucune des étapes précédentes de résolution des problèmes ne fonctionne, vous trouverez peut-être un message d’erreur provenant de Salesforce avec une description correspondante intégrée dans l’URL de Studio Classic. Voici un exemple de message que vous pourriez trouver : `error=invalid_client_id&error_description=client%20identifier%20invalid`.

Vous pouvez consulter le message d'erreur dans l'URL et essayer de résoudre les problèmes qu'il présente. Si le message d'erreur ou la description n'est pas clair, nous vous recommandons de faire une recherche dans la base de connaissances Salesforce. Si la recherche dans la base de connaissances ne fonctionne pas, vous pouvez contacter le service d'assistance de Salesforce pour obtenir de l'aide.

### Le chargement de Data Wrangler prend beaucoup de temps
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-long-load-time"></a>

Lorsque vos utilisateurs sont redirigés vers Data Wrangler depuis le Salesforce Data Cloud, ils peuvent être confrontés à de longs temps de chargement.

Si c'est la première fois que l'utilisateur utilise Data Wrangler ou s'il a supprimé le noyau, le provisionnement de la nouvelle instance Amazon EC2 pour qu'elle utilise Data Wrangler peut prendre environ 5 minutes.

Si ce n'est pas la première fois que l'utilisateur utilise Data Wrangler et qu'il n'a pas supprimé le noyau, vous pouvez lui demander d'actualiser la page ou de fermer autant d'onglets de navigateur que possible.

Si aucune des interventions précédentes ne fonctionne, demandez-lui de configurer une nouvelle connexion à Salesforce Data Cloud.

### L'utilisateur ne parvient pas à exporter ses données avec une erreur `Invalid batch Id`
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-processing-job-fails-batch-id"></a>

Lorsque votre utilisateur exporte les transformations qu'il a apportées à ses données Salesforce, la tâche de SageMaker traitement utilisée par Data Wrangler sur le backend peut échouer. Le Salesforce Data Cloud est peut-être temporairement indisponible ou il peut y avoir un problème de mise en cache.

Pour résoudre ce problème, nous recommandons à vos utilisateurs de revenir à l'étape où ils importent les données et de modifier l'ordre des colonnes qu'ils interrogent. Par exemple, ils peuvent modifier la requête suivante :

```
SELECT col_A, col_B FROM table                
```

Pour la requête suivante :

```
SELECT col_B, col_A FROM table                
```

Après avoir modifié l'ordre des colonnes et vérifié que les transformations ultérieures qu'ils ont effectuées sont toujours valides, ils peuvent recommencer à exporter leurs données.

### Les utilisateurs ne peuvent pas exporter un jeu de données très volumineux
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-processing-job-fails-query"></a>

Si vos utilisateurs ont importé un jeu de données très volumineux depuis le Salesforce Data Cloud, ils peuvent ne pas être en mesure d'exporter les transformations qu'ils ont effectuées. Un jeu de données volumineux peut comporter trop de lignes ou être le résultat d'une requête complexe.

Nous recommandons à vos utilisateurs de prendre les mesures suivantes :
+ Simplifier leur requête SQL
+ Échantillonner leurs données

Voici quelques stratégies qu'ils peuvent utiliser pour simplifier leurs requêtes :
+ Spécifiez les noms des colonnes au lieu d'utiliser l'opérateur `*`
+ Trouvez un sous-jeu de données qu'ils souhaitent importer au lieu d'utiliser un sous-jeu plus important
+ Minimisez les jointures entre de très grands jeux de données

Ils peuvent utiliser l'échantillonnage pour réduire le nombre de lignes de leur jeu de données. Pour plus d'informations sur les méthodes d'échantillonnage, vos utilisateurs peuvent se référer à [Echantillonnage](data-wrangler-transform.md#data-wrangler-transform-sampling).

### Les utilisateurs ne peuvent pas exporter de données en raison d'un jeton d'actualisation non valide
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-processing-job-fails-invalid-token"></a>

Data Wrangler utilise un pilote JDBC pour s'intégrer à Salesforce Data Cloud. La méthode d'authentification est OAuth. En OAuth effet, le jeton d'actualisation et le jeton d'accès sont deux données différentes utilisées pour autoriser l'accès aux ressources de votre Salesforce Data Cloud.

Le jeton d'accès, ou jeton principal, vous permet d'accéder à vos données Salesforce et d'exécuter des requêtes directement via Data Wrangler. Il est de courte durée et conçu pour expirer rapidement. Pour conserver l'accès à vos données Salesforce, Data Wrangler utilise le jeton d'actualisation pour obtenir un nouveau jeton d'accès auprès de Salesforce.

Vous avez peut-être configuré une expiration trop rapide de l'actualisation pour obtenir un nouveau jeton d'accès pour vos utilisateurs. Vous devrez peut-être retenir votre politique en matière de jetons d'actualisation pour vous assurer qu'elle peut prendre en charge les requêtes dont l'exécution prend du temps pour vos utilisateurs. Pour plus d'informations sur la configuration de votre politique de jetons d'actualisation, consultez `https://EXAMPLE_SALESFORCE_ORG_URL/lightning/setup/ConnectedApplication/home/`.

### Les requêtes échouent ou les tables ne se chargent pas
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-table-not-loading"></a>

Salesforce connaît des interruptions de service. Même si vous avez tout configuré correctement, il est possible que vos utilisateurs ne soient pas en mesure d'importer leurs données pendant un certain temps.

Des interruptions de service peuvent survenir pour des raisons de maintenance. Nous vous recommandons de vérifier le lendemain si le problème a été résolu.

Si vous rencontrez des problèmes pendant plus d'une journée, nous vous recommandons de contacter le service d'assistance de Salesforce pour obtenir une aide supplémentaire. Pour plus d’informations sur la manière de contacter Salesforce, consultez [Comment souhaitez-vous contacter Salesforce ?](https://www.salesforce.com/company/contact-us/).

### `OAUTH_APP_BLOCKED` lors de la redirection de Studio Classic
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-oauth-app-blocked"></a>

Lorsque votre utilisateur est redirigé vers Amazon SageMaker Studio Classic, il peut remarquer le paramètre de requête `error=OAUTH_APP_BLOCKED` dans l'URL. Il peut également rencontrer un problème transitoire qui devrait se résoudre de lui-même en un jour.

Il est possible que vous ayez également bloqué son accès à l'application connectée. Pour plus d’informations sur la résolution du problème, consultez `https://EXAMPLE_SALESFORCE_ORG_URL/lightning/setup/ConnectedApplication/home/`.

### `OAUTH_APP_DENIED` lors de la redirection de Studio Classic
<a name="data-wrangler-troubleshooting-salesforce-data-cloud-oauth-app-access-denied"></a>

Lorsque votre utilisateur est redirigé vers Amazon SageMaker Studio Classic, il peut remarquer le paramètre de requête `error=OAUTH_APP_ACCESS_DENIED` dans l'URL. Vous n’avez pas autorisé son type de profil à accéder au Data Wrangler associé à `Connected App`.

Pour résoudre son problème d’accès, accédez à `https://EXAMPLE_SALESFORCE_ORG_URL/lightning/setup/ManageUsers/home/` et vérifiez si l’utilisateur est affecté au bon profil.

# Augmenter la limite d’instance Amazon EC2
<a name="data-wrangler-increase-instance-limit"></a>

Le message d'erreur suivant peut s'afficher lorsque vous utilisez Data Wrangler : `The following instance type is not available: ml.m5.4xlarge. Try selecting a different instance below.`

Le message peut indiquer que vous devez sélectionner un autre type d'instance, mais il peut également indiquer que vous ne disposez pas d'un nombre suffisant d'instances Amazon EC2 pour exécuter correctement Data Wrangler sur votre flux de travail. Vous pouvez augmenter le nombre d'instances à l'aide de la procédure suivante.

Pour augmenter le nombre d'instances, procédez comme suit.

1. Ouvrez le AWS Management Console.

1. Dans la barre de recherche, spécifiez **Services Quotas**.

1. Choisissez **Service Quotas** (Quotas de service).

1. Choisissez **Services AWS **.

1. Dans la barre de recherche, spécifiez **Amazon SageMaker AI**.

1. Choisissez **Amazon SageMaker AI**.

1. Sous **Service quotas** (Quotas de service), spécifiez **Studio KernelGateway Apps running on *ml.m5.4xlarge* instance**.
**Note**  
ml.m5.4xlarge est le type d'instance par défaut pour Data Wrangler. Vous pouvez utiliser d'autres types d'instances et demander une augmentation de leur quota. Pour de plus amples informations, veuillez consulter [instances](data-wrangler-data-flow.md#data-wrangler-data-flow-instances).

1. Sélectionnez **Studio KernelGateway Apps s'exécutant sur l'*ml.m5.4xlarge*instance**.

1. Choisissez **Request quota increase** (Demander une augmentation de quota).

1. Pour **Change quota value** (Modifier la valeur du quota), spécifiez une valeur supérieure à la valeur indiquée dans la zone **Applied quota value** (Valeur de quota appliquée).

1. Choisissez **Request** (Demander).

Si votre demande est approuvée, AWS envoie une notification à l'adresse e-mail associée à votre compte. Vous pouvez également vérifier l'état de votre demande en choisissant **Quota request history** (Historique des demandes de quotas) sur la page **Service Quotas** (Quotas de service). Le **Status** (Statut) des demandes traitées est **Closed** (Fermé).

# Mettre à jour Data Wrangler
<a name="data-wrangler-update"></a>

Pour mettre à jour Data Wrangler vers la dernière version, arrêtez d'abord l' KernelGatewayapplication correspondante depuis le panneau de configuration Amazon SageMaker Studio Classic. Une fois l' KernelGateway application arrêtée, redémarrez-la en ouvrant un flux Data Wrangler nouveau ou existant dans Studio Classic. Lorsque vous ouvrez un flux Data Wrangler nouveau ou existant, le noyau qui démarre contient la dernière version de Data Wrangler.

**Mise à jour de votre instance Studio Classic et Data Wrangler**

1. Accédez à votre [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Choisissez SageMaker AI, puis Studio Classic.

1. Choisissez votre nom d’utilisateur.

1. Sous **Applications**, dans la ligne affichant le **nom de l'application**, choisissez **Supprimer l'**application pour l'application qui commence `sagemaker-data-wrang` par et pour l' JupyterServerapplication.

1. Choisissez **Yes, delete app (Oui, supprimer l’appli)**.

1. Saisissez `delete` dans la zone de confirmation.

1. Sélectionnez **Delete (Supprimer)**.

1. Ouvrez à nouveau votre instance Studio Classic. Lorsque vous commencez à créer un flux Data Wrangler, votre instance utilise désormais la dernière version de Data Wrangler.

Sinon, si vous utilisez une version d’application Data Wrangler qui n’est pas la dernière version et que vous avez un flux Data Wrangler existant ouvert, il vous est demandé de mettre à jour la version de votre application Data Wrangler dans l’interface utilisateur de Studio Classic. La capture d’écran suivante montre cette invite. 

**Important**  
Notez que cela mettra à jour uniquement l'application passerelle du noyau Data Wrangler. Vous devez tout de même fermer l' JupyterServer application dans votre compte utilisateur. Pour cela, suivez les étapes précédentes.

![\[Section Mise à jour de Data Wrangler dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/data-wrangler-1click-restart.png)


Vous pouvez également sélectionner **Me le rappeler plus tard**, auquel cas un bouton **Mettre à jour** apparaîtra dans le coin supérieur droit de l’écran.

![\[Emplacement de la mise à jour dans la console Data Wrangler.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/data-wrangler-1click-restart-update.png)


# Arrêter Data Wrangler
<a name="data-wrangler-shut-down"></a>

Lorsque vous n'utilisez pas Data Wrangler, il est important d'arrêter l'instance sur laquelle elle s'exécute pour éviter d'encourir des frais supplémentaires. 

Pour éviter de perdre votre travail, enregistrez votre flux de données avant d’arrêter Data Wrangler. Pour enregistrer votre flux de données dans Studio Classic, choisissez **Fichier**, puis **Enregistrer le flux Data Wrangler**. Data Wrangler enregistre automatiquement votre flux de données toutes les 60 secondes. 

**Pour arrêter l’instance Data Wrangler dans Studio Classic**

1. Dans Studio Classic, sélectionnez l’icône **Instances et noyaux en cours d’exécution** (![\[Icon of a gear or cog symbol representing settings or configuration options.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/icons/studio_classic_dw_instances.png)).

1. Sous **RUNNING APPS** se trouve l'application **sagemaker-data-wrangler-1.0**. Sélectionnez l’icône d’arrêt (![\[Power button icon with a circular shape and vertical line symbol.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/icons/Shutdown_light.png)) en regard de cette application. 

   Data Wrangler s’exécute sur une instance ml.m5.4xlarge. Cette instance disparaît de **RUNNING INSTANCES (Instances en cours d’exécution)** lorsque vous arrêtez l’appli Data Wrangler.

**Important**  
Si vous ouvrez à nouveau Data Wrangler, une instance Amazon EC2 commence à exécuter l’application et le calcul vous sera facturé. Outre le calcul, le stockage que vous utilisez vous est également facturé. Par exemple, vous êtes facturé pour tous les compartiments Amazon S3 que vous utilisez avec Data Wrangler.  
Si vous constatez que Data Wrangler vous est toujours facturé après avoir arrêté vos applications, il existe une extension Jupyter que vous pouvez utiliser pour arrêter automatiquement les sessions inactives. Pour plus d'informations sur l'extension, consultez [SageMaker-Studio-Autoshutdown-Extension](https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension).

Après avoir arrêté l’appli Data Wrangler, elle doit redémarrer la prochaine fois que vous ouvrez un fichier de flux Data Wrangler. Cette opération peut prendre quelques minutes. 