Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utiliser les vues du catalogue de données dans Athena

Mode de mise au point
Utiliser les vues du catalogue de données dans Athena - Amazon Athena

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.

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.

La création de vues de catalogue de données dans Amazon Athena nécessite une déclaration spécialeCREATE VIEW. Les interroger utilise la SELECT syntaxe SQL classique. Les vues du catalogue de données sont également appelées vues multi-dialectes, ou MDVs.

Création d'une vue du catalogue de données

Pour créer une vue de catalogue de données dans Athena, utilisez la syntaxe suivante.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS athena-sql-statement
Note

L'SHOW VIEW JSONoption s'applique uniquement aux vues du catalogue de données et non aux vues Athena. L'utilisation de SHOW VIEW JSON cette option permet d'effectuer un « essai à sec » qui valide l'entrée et, si la validation aboutit, renvoie le JSON de l'objet de AWS Glue table qui représentera la vue. La vue réelle n'est pas créée. Si l'SHOW VIEW JSONoption n'est pas spécifiée, les validations sont effectuées et la vue est créée comme d'habitude dans le catalogue de données.

L'exemple suivant montre comment un utilisateur du Definer rôle crée la vue du catalogue de orders_by_date données. L’exemple suppose que le rôle Definer dispose d’autorisations SELECT complètes sur la table orders de la base de données default.

CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate

Pour plus d'informations sur la syntaxe, consultezCREATE PROTECTED MULTI DIALECT VIEW.

Interroger une vue du catalogue de données

Une fois la vue créée, l'Lake Formationadministrateur peut accorder SELECT des autorisations sur la vue du catalogue de données aux Invoker principaux. Les principaux Invoker peuvent ensuite interroger l’affichage sans avoir accès aux tables de base sous-jacentes référencées par l’affichage. Voici un exemple de requête Invoker.

SELECT * from orders_by_date where price > 5000

Considérations et restrictions

La plupart des limitations d'affichage du catalogue de données suivantes sont spécifiques à Athena. Pour connaître les restrictions supplémentaires relatives aux vues du catalogue de données qui s'appliquent également à d'autres services, consultez la documentation de Lake Formation.

  • Les vues du catalogue de données ne peuvent pas faire référence à d'autres vues, à des liens de ressources de base de données ou à des liens de ressources de table.

  • Vous pouvez référencer jusqu’à 10 tables dans la définition de l’affichage.

  • Les tables ne doivent pas être autorisées par le IAMAllowedPrincipals data lake dans Lake Formation. Le cas échéant, l'erreur Multi Dialect views ne peut référencer que des tables sans les autorisations IAMAllowed Principaux se produit.

  • L'emplacement Amazon S3 de la table doit être enregistré en tant qu'emplacement du lac de données de Lake Formation. Si la table n'est pas ainsi enregistrée, l'erreur « Multi Dialect views » peut uniquement faire référence aux tables gérées par Lake Formation se produit. Pour plus d'informations sur la façon d'enregistrer des sites Amazon S3 à Lake Formation, consultez la section Enregistrement d'un site Amazon S3 dans le guide du AWS Lake Formation développeur.

  • Les appels SearchTablesd'API AWS Glue GetTableset ne mettent pas à jour le IsRegisteredWithLakeFormation paramètre. Pour afficher la valeur correcte du paramètre, utilisez l' AWS Glue GetTableAPI. Pour plus d'informations, consultez GetTables et SearchTables APIs ne mettez pas à jour la valeur du IsRegisteredWithLakeFormation paramètre dans le Guide du AWS Lake Formation développeur.

  • Le principal DEFINER ne peut être qu’un rôle IAM.

  • Le rôle DEFINER doit disposer d’autorisations (octroyables) SELECT complètes sur les tables sous-jacentes.

  • Les affichages UNPROTECTED du Catalogue de données ne sont pas pris en charge.

  • Les fonctions définies par l'utilisateur (UDFs) ne sont pas prises en charge dans la définition de la vue.

  • Les sources de données fédérées Athena ne peuvent pas être utilisées dans les affichages du Catalogue de données.

  • Les vues du catalogue de données ne sont pas prises en charge pour les applications externes Hive métastores.

  • Athena affiche un message d'erreur lorsqu'il détecte des vues périmées. Une vue obsolète est signalée lorsque l'une des situations suivantes se produit :

    • La vue fait référence à des tables ou à des bases de données qui n'existent pas.

    • Une modification de schéma ou de métadonnées est effectuée dans une table référencée.

    • Une table référencée est supprimée et recréée avec un autre schéma ou une autre configuration.

Autorisations

Les affichages du Catalogue de données nécessitent trois rôles : Lake Formation Admin, Definer et Invoker.

  • Lake Formation Admin : peut configurer toutes les autorisations de Lake Formation.

  • Definer : crée l’affichage du Catalogue de données. Le rôle Definer doit disposer d’autorisations SELECT octroyables complètes pouvant être accordées sur toutes les tables sous-jacentes auxquelles la définition de l’affichage fait référence.

  • Invoker : peut interroger l’affichage du Catalogue de données ou vérifier ses métadonnées. Pour afficher l'invocateur d'une requête, vous pouvez utiliser la fonction invoker_principal() DML. Pour de plus amples informations, veuillez consulter invoqueur_principal ().

Les relations de confiance liées au Definer rôle doivent permettre aux responsables du service AWS Glue et à Lake Formation d'sts:AssumeRoleagir. Pour plus d'informations, consultez la section Conditions préalables à la création de vues dans le Guide du AWS Lake Formation développeur.

Les autorisations IAM pour accéder à Athena sont également requises. Pour de plus amples informations, veuillez consulter AWS politiques gérées pour Amazon Athena.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.