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 SQL requêtes depuis des JupyterLab blocs-notes à l'aide de l'SQLextension. 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'SQLextension. 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 IAM autorisations 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'SQLextension 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 SageMaker prérequis Amazon.
-
Disposez d'un SageMaker domaine et d'un profil utilisateur pour accéder à SageMaker Studio. Pour plus d'informations sur la façon de définir un SageMaker environnement, consultezUtiliser la configuration rapide pour Amazon SageMaker.
-
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 SageMaker environnement. 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.
Pour accéder à vos données et les interroger dans Amazon S3 :
- Étape 1 : configurer une source de données Athena et un AWS Glue robot d'exploration pour vos données Amazon S3
- Étape 2 : Accordez à Studio les autorisations d'accès à Athena
- Étape 3 : activer la connexion par défaut d'Athena dans JupyterLab
- Étape 4 : demander des données dans Amazon S3 à partir de JupyterLab blocs-notes à l'aide de l'extension SQL
É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.
-
Configuration de l'emplacement des résultats d'une requête
-
Accédez à la console Athena :. https://console.aws.amazon.com/athena/
-
Dans le menu de gauche, sélectionnez Groupes de travail.
-
Suivez le lien du
primary
groupe de travail et choisissez Modifier. -
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.
-
-
Créez une source de données Athena pour vos données Amazon S3
-
Dans le menu de gauche de la console Athena, choisissez Sources de données, puis Créer une source de données.
-
Choisissez S3 - Catalogue AWS Glue de données, puis Next.
-
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.
-
-
AWS Glue À utiliser pour explorer votre source de données
-
Entrez un nom et une description pour votre nouveau robot d'exploration, puis choisissez Next.
-
Sous Sources de données, choisissez Ajouter une source de données.
-
Si le compartiment Amazon Amazon S3 contenant vos données se trouve dans un AWS compte différent de celui de votre SageMaker environnement, choisissez Dans un autre compte pour l'emplacement des données S3.
-
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/
-
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.
-
Choisissez Suivant.
-
-
Configurez le IAM rôle du robot d'exploration pour 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 JSON politique 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.
-
Choisissez Créer un nouveau IAM rôle.
-
Entrez le nom du rôle, puis choisissez Next.
-
-
-
Créez ou sélectionnez une base de données pour vos tables
-
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.
-
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.
-
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ées
s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/
, l'ajout du préfixetaxi-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.
-
-
Choisissez Create crawler.
-
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.
-
Récupérez le ARN rôle d'exécution associé à votre profil utilisateur
-
Accédez à la SageMaker console https://console.aws.amazon.com/sagemaker/
et choisissez Domaines dans le menu de gauche. -
Suivez le nom de votre nom de domaine.
-
Dans la liste des profils utilisateur, suivez le nom de votre profil utilisateur.
-
Sur la page Détails de l'utilisateur, copiez le ARN rôle d'exécution.
-
-
Mettez à jour la politique de votre rôle d'exécution
-
Trouvez votre AWS région et votre numéro de compte en haut à droite de la SageMaker console. Utilisez ces valeurs et le nom de votre base de données pour mettre à jour les espaces réservés dans la JSON politique 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": [ "*" ] } ] } -
Accédez à la IAM console : https://console.aws.amazon.com/iam/
et choisissez Rôles dans le menu de gauche. -
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'élément ARN on
'/'
et en prenant le dernier élément. Par exemple, dans l'exemple de an suivant ARNarn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole
, le nom du rôle d'exécution estSageMakerStudio-SQLExtension-ExecutionRole
. -
Suivez le lien correspondant à votre rôle.
-
Dans l'onglet Autorisations, choisissez Ajouter des autorisations puis Créer une politique intégrée.
-
Choisissez le
JSON
format dans la section Éditeur de politiques. -
Copiez la politique ci-dessus, puis choisissez Next. Assurez-vous d'avoir remplacé tous les
account-id
region-name
, etdb-name
par leurs valeurs. -
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 SQL requêtes 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
-
Accédez à la SageMaker console 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. -
Choisissez l' JupyterLab application.
-
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 en utilisant la dernière version de l'image de SageMaker distribution.
Sinon, choisissez Exécuter l'espace sur votre espace pour lancer une JupyterLab application.
-
Activez la connexion par défaut d'Athena :
-
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 Data Discovery.
-
Cochez la case Activer la connexion Athena par défaut.
-
Dans votre JupyterLab application, cliquez sur l'icône de l'SQLextension ( ) dans le volet de navigation de gauche pour ouvrir l'SQLextension.
-
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 : demander 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 SQL de vos JupyterLab carnets de notes.
-
Ouvrez la connexion,
default-athena-connection
puis AWS DataCatalog. -
Accédez à votre base de données et choisissez l'icône à trois points ( ) 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 de SQL déclaration pour vous aider à commencer à interroger immédiatement.Note
Assurez-vous de charger l'extension dans la cellule supérieure avant d'exécuter une SQL requête.
Vous pouvez affiner davantage la SQL requête à l'aide des fonctionnalités de saisie automatique et de surlignage de l'extension. Consultez SQLfonctionnalités de l'éditeur de l' JupyterLab SQLextension pour plus d'informations sur l'utilisation de l'SQLéditeur d'SQLextension.