Export - Amazon SageMaker

Export

Lorsque vous créez un flux de données Data Wrangler, vous pouvez choisir parmi quatre options d'exportation pour intégrer facilement ce flux de données dans votre pipeline de traitement de données. Data Wrangler propose des options d'exportation vers les tâches Data Wrangler SageMaker, Pipeline, le code Python, Feature Store et Amazon S3.

Les options suivantes créent un bloc-notes Jupyter pour exécuter votre flux de données et l'intégrer à la fonction SageMaker correspondante.

  • Tâche Data Wrangler

  • Pipeline

  • Feature Store

  • Amazon S3

Pour ces options, vous choisissez une ou plusieurs étapes de votre flux de données à exporter. Lorsque vous sélectionnez une étape, toutes les étapes en aval sont également exportées. Par exemple, si vous avez défini sept étapes consécutives dans votre flux de données et que vous choisissez d'exporter la 7e étape, le code est exporté pour exécuter les étapes 1 à 7. Les bloc-notes Jupyter s'ouvrent automatiquement lorsque vous sélectionnez l'une de ces options d'exportation, et vous pouvez exécuter le bloc-notes directement dans Studio à l'aide d'un noyau Python 3 (Data Science).

Si vous sélectionnez Python code (Code Python), un fichier Python est créé contenant toutes les étapes de votre flux de données.

Lorsque vous choisissez une option d'exportation qui crée un bloc-notes Jupyter et que vous exécutez le bloc-notes, votre flux de données (fichier .flow) est exporté vers le compartiment SageMaker S3 par défaut pour la région AWS dans laquelle le flux de données a été créé, sous le préfixe data_wrangler_flows. Les compartiments S3 par défaut ont la convention de dénomination suivante : sagemaker-région-numéro de compte. Par exemple, si votre numéro de compte est 111122223333 et que vous utilisez Studio dans us-east-1, vos jeux de données importés sont stockés dans sagemaker-us-east-1-111122223333. Dans cet exemple, vos fichiers .flow créés dans us-east-1 sont stockés dans s3://sagemaker-région-numéro de compte/data_wrangler_flows/.

Important

Si vous n'utilisez pas la politique gérée IAM, AmazonSageMakerFullAccess, afin d'accorder aux rôles AWS l'autorisation d'utiliser Data Wrangler, assurez-vous d'accorder à ces rôles l'autorisation d'accéder à ce compartiment. Veuillez consulter Sécurité et autorisations pour voir un exemple de politique IAM que vous pouvez utiliser afin d'accorder ces autorisations.

Utilisez la procédure suivante pour exporter un flux de données. Utilisez les sections de cette page pour en apprendre plus sur chaque option d'exportation.

Pour exporter votre flux Data Wrangler :

  1. Enregistrez votre flux Data Wrangler. Sélectionnez File (Fichier) et cliquez sur Save Data Wrangler Flow (Enregistrer le flux Data Wrangler).

  2. Naviguez jusqu'à l'onglet Export (Exporter).

  3. Sélectionnez la dernière étape de votre flux Data Wrangler.

  4. Cliquez sur Export step (Exporter l'étape).

  5. Sélectionnez l'option d'exportation de votre choix. Data Wrangler génère un bloc-notes Jupyter une fois que vous avez choisi l'option d'exportation.

Exporter vers une tâche Data Wrangler

Lorsque vous exportez une tâche Data Wrangler, Data Wrangler génère un bloc-notes Jupyter. Vous exécutez le bloc-notes pour exporter le flux Data Wrangler vers une tâche de traitement. Pour le bloc-notes, Data Wrangler sélectionne automatiquement Python 3 (Data Science) comme Kernel (Noyau). Suivez les instructions du bloc-notes pour lancer votre tâche Data Wrangler.

Data Wrangler utilise des tâches de traitement pour traiter vos données. Vous pouvez exécuter ces processus de traitement en utilisant les instances ml.m5.4xl, ml.m5.12xl et ml.m5.24xl et en prenant en charge un seul nombre d'instances. Par défaut, le bloc-notes qui est exporté à partir de Data Wrangler définit instance_count et instance_type :

instance_count = 1 instance_type = "ml.m5.xlarge"

Vous pouvez surveiller l'état de votre tâche Data Wrangler dans la console SageMaker dans l'onglet Processing (Traitement). La tâche de traitement est nommée data-wrangler-flow-processing-flow_id. flow_id est défini dans le bloc-notes à l'aide du jour et de l'heure d'exécution du bloc-notes.

En outre, vous pouvez surveiller votre tâche Data Wrangler à l'aide d'Amazon CloudWatch. Pour plus d'informations, veuillez consulter Surveillance des tâches de traitement Amazon SageMaker avec CloudWatch Logs et avec les métriques.

Exporter vers SageMaker Pipelines

Lorsque vous souhaitez créer et déployer des workflows de machine learning à grande échelle, vous pouvez utiliser SageMaker ML Pipelines pour créer des workflows de bout en bout qui gèrent et déploient des tâches SageMaker. ML Pipelines vous permet de créer des workflows qui gèrent vos tâches SageMaker de préparation des données, d'entraînement des modèles et de déploiement des modèles. De cette manière, vous pouvez tirer parti des algorithmes internes proposés par SageMaker. Pour en savoir plus sur SageMaker Pipelines, veuillez consulter SageMaker Pipelines.

Lorsque vous exportez une ou plusieurs étapes de votre flux de données vers SageMaker 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

Le bloc-notes Jupyter produit par Data Wrangler peut être utilisé pour définir un pipeline. Le pipeline comprend une étape de traitement des données définie par votre flux de données.

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 en savoir plus sur SageMaker Pipelines, veuillez consulter Définir un pipeline SageMaker.

Exportation vers du code Python

Pour exporter toutes les étapes de votre flux de données vers un fichier Python que vous pouvez intégrer manuellement à n'importe quel workflow de traitement de données, choisissez l'option Export to Code (Exporter vers le code).

Vous devrez peut-être configurer le script Python pour le rendre exécutable. Par exemple, vous devrez peut-être modifier votre environnement Spark et vous assurer que vous exécutez le script à partir d'un environnement autorisé à accéder aux ressources AWS.

Exporter vers SageMaker Feature Store

SageMaker Feature Store peut être utilisé pour créer, partager et gérer des données sélectionnées pour le développement de machine learning (ML). Vous pouvez configurer un Feature Store en ligne et hors ligne pour qu'il soit un magasin centralisé pour les caractéristiques et les métadonnées associées afin que les caractéristiques puissent être facilement découvertes et réutilisées. Pour en savoir plus sur le Feature Store Data Wrangler, veuillez consulter Amazon SageMaker Feature Store.

Utiliser un bloc-notes Jupyter pour ajouter des fonctions à un Feature Store

Le bloc-notes Jupyter produit par SageMaker peut être utilisé pour traiter votre jeu de données à l'aide d'une tâche SageMaker Data Wrangler, puis pour intégrer les données dans un 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 Feature Store en ligne ou hors ligne lorsque vous créez un groupe de fonctions. Vous pouvez éventuellement 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 fonction d'un groupe de fonctions peut avoir l'un des types suivants : String (Chaîne), Fractional (Fractionnel) ou Integral (Intégral). Si une colonne de votre dataframe exporté n'est pas l'un de ces types, elle est définie par défaut sur String (Chaîne).

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 correspondant EventTime.

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, veuillez consulter Sources de données et ingestion.

Exporter vers Amazon S3

Data Wrangler vous permet d'exporter vos données directement vers un compartiment Amazon S3.

Enregistrer vos données dans Amazon S3

  1. Une fois que vous avez importé vos données dans Data Wrangler, cliquez sur Export Data (Exporter les données) sous l'onglet Prepare (Préparation) pour enregistrer le jeu de données transformé que vous consultez.

  2. Un écran Export Data (Exporter les données) s'affiche, comme illustré dans la capture d'écran suivante. Vous pouvez enregistrer vos données dans le compartiment Amazon S3 par défaut. Vous pouvez également utiliser la barre de recherche pour modifier et sélectionner le chemin du compartiment Amazon S3 de votre choix. Vous pouvez choisir différentes options pour File Type (Type de fichier), Delimiter (Délimiteur), et Compression. Une fois que vous avez terminé de configurer le chemin et les options de votre compartiment, cliquez sur Export Data (Exporter les données).

  3. Une barre de progression apparaît pour afficher l'état de l'exportation des données. Une fois les données exportées et enregistrées avec succès dans le compartiment Amazon S3, l'écran de réussite apparaît comme illustré dans la capture d'écran suivante.