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.
Utiliser les vues du catalogue de données dans Athena
La création de vues de catalogue de données dans Amazon Athena nécessite une déclaration spécialeCREATE VIEW
. Les interroger utilise une SQL SELECT
syntaxe classique.
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 ] ASathena-sql-statement
Note
L'SHOW VIEW JSON
option 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 AWS Glue
objet de table qui représentera la vue. La vue réelle n'est pas créée. Si l'SHOW VIEW JSON
option 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 Formation
administrateur 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
Limites
Les limites d'affichage du catalogue de données suivantes sont spécifiques à Athena. Pour connaître les limites relatives aux vues du catalogue de données qui s'appliquent à la fois à Athena et à 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 sous-jacentes doivent être enregistrées dans Lake Formation.
-
Le
DEFINER
principal ne peut être qu'un IAM rôle. -
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ôleDefiner
doit disposer d’autorisationsSELECT
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 lainvoker_principal()
DML fonction. Pour de plus amples informations, veuillez consulter invoqueur_principal ().
Les relations de confiance du Definer
rôle doivent permettre sts:AssumeRole
d'agir pour AWS Glue et les responsables du service de Lake Formation. Pour plus d'informations, consultez la section Conditions préalables à la création de vues dans AWS Lake Formation Guide du développeur.
IAMdes autorisations d'accès à Athena sont également requises. Pour de plus amples informations, veuillez consulter AWS politiques gérées pour Amazon Athena.