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.
Intégration des tables Amazon S3 aux services AWS d'analyse
Cette rubrique décrit les prérequis et les procédures nécessaires pour intégrer vos compartiments de table Amazon S3 aux services AWS d'analyse. Pour un aperçu du fonctionnement de l'intégration, voirPrésentation de l'intégration de S3 Tables.
Note
Cette intégration utilise les AWS Lake Formation services AWS Glue et peut entraîner des coûts de AWS Glue demande et de stockage. Pour plus d’informations, consultez Tarification d’AWS Glue
Une tarification supplémentaire s’applique à l’exécution de requêtes sur vos tables S3. Pour plus d'informations, consultez les informations tarifaires du moteur de requête que vous utilisez.
Conditions préalables à l’intégration
Les conditions préalables suivantes sont requises pour intégrer des compartiments de tables aux services d' AWS analyse :
Associez la politique AWSLakeFormationDataAdmin AWS gérée à votre principal AWS Identity and Access Management (IAM) pour faire de cet utilisateur un administrateur de data lake. Pour plus d'informations sur la création d'un administrateur de lac de données, voir Création d'un administrateur de lac de données dans le guide du AWS Lake Formation développeur.
-
Ajoutez des autorisations pour l’opération
glue:PassConnection
à votre principal IAM. -
Ajoutez des autorisations pour les
lakeformation:RegisterResourceWithPrivilegedAccess
opérationslakeformation:RegisterResource
et à votre principal IAM. Effectuez une mise à jour vers la dernière version de AWS Command Line Interface (AWS CLI).
Important
Lorsque vous créez des tables, assurez-vous d'utiliser toutes les lettres minuscules dans les noms et les définitions de tables. Par exemple, assurez-vous que les noms de vos colonnes sont tous en minuscules. Si le nom ou la définition de votre table contient des majuscules, le tableau n'est pas pris en charge par AWS Lake Formation le AWS Glue Data Catalog. Dans ce cas, votre table ne sera pas visible par les services d' AWS analyse tels qu'Amazon Athena, même si vos compartiments de tables sont intégrés aux AWS services d'analyse.
Si la définition de votre table contient des majuscules, le message d'erreur suivant s'affiche lorsque vous exécutez une SELECT
requête dans Athena : « GENERIC_INTERNAL_ERROR : Get table request failed : com.amazonaws.services.glue.model. ValidationException: ressource de fédération non prise en charge - Noms de table ou de colonne non valides. »
Intégration de compartiments de tables aux services d' AWS analyse
Cette intégration doit être effectuée une fois par AWS région.
Important
L'intégration des services d' AWS analyse utilise désormais l'WithPrivilegedAccess
option de l'opération d'API registerResource
Lake Formation pour enregistrer des buckets de tables S3. L'intégration crée également désormais le s3tablescatalog
catalogue dans le AWS Glue Data Catalog en utilisant l'AllowFullTableExternalDataAccess
option dans l'opération CreateCatalog
AWS Glue API.
Si vous avez configuré l'intégration avec la version préliminaire, vous pouvez continuer à utiliser votre intégration actuelle. Cependant, le processus d'intégration mis à jour permet d'améliorer les performances. Nous vous recommandons donc de procéder à la migration. Pour migrer vers l'intégration mise à jour, consultezMigration vers le processus d'intégration mis à jour.
Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/
. Dans le volet de navigation de gauche, choisissez Compartiments de tables.
Choisissez Créer un compartiment de tables.
La page Créer un compartiment de tables s’ouvre.
Entrez le nom du bucket Table et assurez-vous que la case Activer l'intégration est cochée.
Choisissez Créer un compartiment de tables. Amazon S3 essaiera d’intégrer automatiquement vos compartiments de tables dans cette région.
La première fois que vous intégrez des compartiments de table dans une région, Amazon S3 crée un nouveau rôle de service IAM en votre nom. Ce rôle permet à Lake Formation d’accéder à tous les compartiments de tables de votre compte et de fédérer l’accès à vos tables dans le AWS Glue Data Catalog.
Pour intégrer des seaux de table à l'aide du AWS CLI
Les étapes suivantes montrent comment utiliser le AWS CLI pour intégrer des compartiments de table. Pour suivre ces étapes, remplacez-les
par vos propres informations.user input placeholders
Créez un compartiment de tables.
aws s3tables create-table-bucket \ --region
us-east-1
\ --nameamzn-s3-demo-table-bucket
-
Créez un rôle de service IAM qui permet à Lake Formation d’accéder à vos ressources de table.
-
Créez un fichier appelé
Role-Trust-Policy.json
contenant la politique de confiance suivante :Créez le rôle de service IAM à l'aide de la commande suivante :
aws iam create-role \ --role-name
S3TablesRoleForLakeFormation
\ --assume-role-policy-document file://Role-Trust-Policy.json
-
Créez un fichier appelé
LF-GluePolicy.json
contenant la politique suivante :Associez la politique au rôle à l'aide de la commande suivante :
aws iam put-role-policy \ --role-name
S3TablesRoleForLakeFormation
\ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
-
-
Créez un fichier appelé
input.json
contenant les éléments suivants :{ "ResourceArn": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333
:role/S3TablesRoleForLakeFormation
" }Enregistrez des seaux de table auprès de Lake Formation à l'aide de la commande suivante :
aws lakeformation register-resource \ --region
us-east-1
\ --with-privileged-access \ --cli-input-json file://input.json
-
Créez un fichier appelé
catalog.json
contenant le catalogue suivant :{ "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "AllowFullTableExternalDataAccess": "True" } }Créez le
s3tablescatalog
catalogue à l'aide de la commande suivante. La création de ce catalogue remplit le AWS Glue Data Catalog avec des objets correspondant à des compartiments de tables, à des espaces de noms et à des tables.aws glue create-catalog \ --region
us-east-1
\ --cli-input-json file://catalog.json
Vérifiez que le
s3tablescatalog
catalogue a été ajouté à AWS Glue l'aide de la commande suivante :aws glue get-catalog --catalog-id s3tablescatalog
Le processus d'intégration des services d' AWS analyse a été mis à jour. Si vous avez configuré l'intégration avec la version préliminaire, vous pouvez continuer à utiliser votre intégration actuelle. Cependant, le processus d'intégration mis à jour améliore les performances. Nous vous recommandons donc de procéder à la migration en suivant les étapes suivantes. Pour plus d'informations sur le processus de migration ou d'intégration, consultez la section Création d'un catalogue de tables Amazon S3 AWS Glue Data Catalog dans le manuel du AWS Lake Formation développeur.
-
Ouvrez la AWS Lake Formation console sur https://console.aws.amazon.com/lakeformation/
et connectez-vous en tant qu'administrateur du lac de données. Pour plus d'informations sur la création d'un administrateur de lac de données, voir Création d'un administrateur de lac de données dans le guide du AWS Lake Formation développeur. -
Supprimez votre
s3tablescatalog
catalogue en procédant comme suit :-
Dans le volet de navigation de gauche, sélectionnez Catalogues.
-
Sélectionnez le bouton d'option situé à côté du
s3tablescatalog
catalogue dans la liste des catalogues. Dans le menu Actions, sélectionnez Delete (Supprimer).
-
-
Désenregistrez l'emplacement des données du
s3tablescatalog
catalogue en procédant comme suit :-
Dans le volet de navigation de gauche, accédez à la section Administration, puis choisissez Data lake locations.
-
Sélectionnez le bouton d'option à côté de l'emplacement du lac de
s3tablescatalog
données, par exemple,s3://tables:
.region
:account-id
:bucket/* -
Dans le menu Actions, choisissez Supprimer.
-
Dans la boîte de dialogue de confirmation qui s'affiche, choisissez Supprimer.
-
-
Maintenant que vous avez supprimé l'emplacement de votre
s3tablescatalog
catalogue et de votre lac de données, vous pouvez suivre les étapes pour intégrer vos compartiments de tables aux services AWS d'analyse en utilisant le processus d'intégration mis à jour.
Note
Si vous souhaitez utiliser des tables chiffrées SSE-KMS dans des services AWS d'analyse intégrés, le rôle que vous utilisez doit être autorisé à utiliser votre AWS KMS clé pour les opérations de chiffrement. Pour de plus amples informations, veuillez consulter Octroi aux principaux IAM des autorisations leur permettant de travailler avec des tables chiffrées dans les services d'analyse intégrés AWS.
Une fois que vous avez intégré, votre principal IAM a obtenu les autorisations Lake Formation pour accéder à vos tables. Si vous souhaitez autoriser d'autres principaux IAM à accéder aux tables, vous devez accorder des autorisations Lake Formation sur vos tables à ces principaux. Pour de plus amples informations, veuillez consulter Gestion de l'accès à une table ou à une base de données avec Lake Formation.