Démarrage rapide : interrogation des données dans Amazon S3 - Amazon SageMaker AI

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.

Démarrage rapide : interrogation des données dans Amazon S3

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.

  • 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, consultezUtiliser la configuration rapide pour Amazon SageMaker AI.

  • 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 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.

Étape 1 : configurer une source de données Athena et un AWS Glue robot d'exploration pour vos données Amazon S3

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/

    2. Dans le menu de gauche, choisissez Groupes de travail.

    3. Suivez le lien du groupe de travail primary et choisissez Modifier.

    4. 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.

  2. 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.

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

    3. 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.

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

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

    2. 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.

      2. 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/
      3. 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.

      4. Choisissez Suivant.

    3. 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.

      2. Saisissez le nom du rôle, puis choisissez Suivant.

  4. 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.

    2. 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.

    3. 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.

  5. Choisissez Créer un robot.

  6. 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

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/et choisissez Domaines dans le menu de gauche.

    2. Suivez le nom pour votre nom de domaine.

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

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

  2. 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": [ "*" ] } ] }
    2. Accédez à la console IAM : https://console.aws.amazon.com/iam/et choisissez Rôles dans le menu de gauche.

    3. 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.

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

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

    6. Choisissez le format JSON dans la section Éditeur de politique.

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

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

Étape 3 : activer la connexion par défaut d'Athena dans JupyterLab

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/et choisissez Studio dans le menu de gauche. À l’aide de votre domaine et de votre profil utilisateur, lancez Studio.

  2. Choisissez l' JupyterLab application.

  3. 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.

  4. 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.

    2. Choisissez Découverte des données.

    3. Cochez la case Activer la connexion Athena par défaut.

    4. Dans votre JupyterLab application, cliquez sur l'icône de l'extension SQL ( Purple circular icon with a clock symbol representing time or scheduling. ) dans le volet de navigation de gauche pour ouvrir l'extension SQL.

    5. 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

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 AWSDataCatalog.

  2. Accédez à votre base de données et choisissez l’icône à trois points ( SQL extension three dots icon. ) 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 pour plus d’informations sur l’utilisation de l’éditeur SQL de l’extension SQL.