Démarrage rapide : interroger 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 : interroger 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.

Prérequis
  • Connectez-vous à la console de AWS gestion à l'aide d'un compte utilisateur AWS Identity and Access Management (IAM) doté d'autorisations d'administrateur. Pour plus d'informations sur la création d'un AWS compte et la création d'un utilisateur doté d'un accès administratif, consultezComplé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 plus d'informations sur la création d'un compartiment dans Amazon S3, consultez la section Création d'un compartiment dans la documentation Amazon S3. Vous allez configurer ce compartiment et ce dossier pour qu'ils soient l'emplacement de sortie de votre requête.

É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 d'exploration 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. Configuration de l'emplacement des résultats d'une requête

    1. Accédez à la console Athena :. https://console.aws.amazon.com/athena/

    2. Dans le menu de gauche, sélectionnez Groupes de travail.

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

    4. Dans la section Configuration des résultats de la requête, 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 AWS Glue données par défaut dans ce compte, choisissez Create a crawler in AWS Glue puis Create in AWS Glue. Cela ouvre la AWS Glue console.

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

    1. Entrez un nom et une description pour votre nouveau robot d'exploration, puis choisissez Next.

    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 ensemble 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 le tableau des sources de données.

      4. Choisissez Suivant.

    3. Configurez le rôle IAM pour que le robot d'exploration accède à 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éer un nouveau rôle pour cette source de données.

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

      2. Entrez un nom pour le rôle, puis choisissez Next.

  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 nouvelle base de données.

    2. Pour revenir à l'onglet de création de votre robot d'exploration précédent, dans Configuration de sortie, cliquez sur le bouton Actualiser. Vous devriez maintenant voir la base de données que vous venez de créer dans la liste.

    3. Sélectionnez votre base de données, ajoutez un préfixe facultatif dans le préfixe du nom de table, puis choisissez Next.

      Note

      Dans l'exemple précédent où se trouvent vos donnéess3://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éetaxi-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 portant le même nom.

  5. Choisissez Create crawler.

  6. Lancez votre robot d'exploration pour indexer vos données. Attendez que le robot d'exploration atteigne un Completed statut, 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 : Accordez à Studio les 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 de votre nom de domaine.

    3. Dans la liste des 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.

      { "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:region:account-id:catalog", "arn:aws:glue:region:account-id: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 récupérer le nom d'un rôle d'exécution à partir de son Amazon Resource Name (ARN) en divisant l'ARN '/' et en prenant le dernier élément. Par exemple, dans l'exemple d'ARN suivantarn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole, le nom du rôle d'exécution estSageMakerStudio-SQLExtension-ExecutionRole.

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

    5. Dans l'onglet Autorisations, choisissez Ajouter des autorisations puis Créer une politique intégrée.

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

    7. Copiez la politique ci-dessus, puis choisissez Next. Assurez-vous d'avoir remplacé tous les account-idregion-name, et db-name par leurs valeurs.

    8. Entrez 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 l'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 Data Discovery.

    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. Cliquez sur le bouton Actualiser en bas du panneau de découverte des données. Vous devriez voir un 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 AWS DataCatalog.

  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. Il ajoute également un exemple d'instruction SQL pour vous aider à lancer 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 davantage 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 d'extension SQL.