CREATE VIEW et CREATE DIALECT VIEW - 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.

CREATE VIEW et CREATE DIALECT VIEW

Une vue est une table logique qui peut être référencée par de futures requêtes. Les vues ne contiennent pas de données et n'écrivent pas de données. Au lieu de cela, la requête spécifiée par la vue s'exécute chaque fois que vous référencez la vue par une autre requête.

  • CREATE VIEWcrée une vue Athena à partir d'une requête spécifiéeSELECT. Les vues d'Athéna fonctionnent au sein d'Athéna. Pour plus d'informations sur les vues d'Athéna, voir. Travaillez avec des vues

  • CREATE PROTECTED MULTI DIALECT VIEWcrée une AWS Glue Data Catalog vue dans le AWS Glue Data Catalog. AWS Glue Data Catalog les vues fournissent une vue commune unique, AWS services comme Amazon Athena et Amazon Redshift. Pour plus d'informations sur les AWS Glue Data Catalog vues, consultezUtiliser les vues du catalogue de données dans Athena.

CREATE VIEW

Crée une vue à utiliser dans Athena.

Résumé

CREATE [ OR REPLACE ] VIEW view_name AS query

La clause OR REPLACE en option vous permet de mettre à jour la vue existante en la remplaçant. Pour plus d’informations, consultez Création de vues.

Exemples

Pour créer une vue test à partir de la table orders, utilisez une requête semblable à la suivante :

CREATE VIEW test AS SELECT orderkey, orderstatus, totalprice / 2 AS half FROM orders;

Pour créer une vue orders_by_date à partir de la table orders, utilisez la requête suivante :

CREATE VIEW orders_by_date AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate;

Pour mettre à jour une vue existante, utilisez un exemple semblable à ce qui suit :

CREATE OR REPLACE VIEW test AS SELECT orderkey, orderstatus, totalprice / 4 AS quarter FROM orders;

Pour plus d'informations sur l'utilisation des vues Athéna, consultez. Travaillez avec des vues

CREATE PROTECTED MULTI DIALECT VIEW

Crée une AWS Glue Data Catalog vue dans le AWS Glue Data Catalog. Une vue de catalogue de données est un schéma de vue unique qui fonctionne sur Athena et sur d'autres SQL moteurs tels qu'Amazon Redshift et Amazon. EMR

Syntaxe

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS query
OU REPLACE

(Facultatif) Met à jour la vue existante en la remplaçant. Une vue du catalogue de données ne peut pas être remplacée si des SQL dialectes provenant d'autres moteurs sont présents dans la vue. Si le moteur d'appel possède le seul SQL dialecte présent dans la vue, celle-ci peut être remplacée.

PROTECTED

Mot-clé requis. Spécifie que l’affichage est protégé contre les fuites de données. Les affichages du Catalogue de données ne peuvent être créés qu’en tant qu’affichages PROTECTED.

MULTI DIALECT

Spécifie que la vue prend en charge les SQL dialectes des différents moteurs de requête et peut donc être lue par ces moteurs.

SECURITY DEFINER

Spécifie que la sémantique du définisseur est en vigueur pour cet affichage. La sémantique du définisseur signifie que les autorisations de lecture effectives sur les tables sous-jacentes appartiennent au principal ou au rôle qui a défini l’affichage, et non au principal qui effectue la lecture proprement dite.

SHOW VIEW JSON

(Facultatif) Renvoie JSON la spécification de vue du catalogue de données sans créer réellement de vue. Cette option « dry-run » est utile lorsque vous souhaitez valider la vue et renvoyer SQL les métadonnées de table qui AWS Glue seront utilisées.

Exemple

L’exemple suivant crée l’affichage orders_by_date du Catalogue de données basé sur une requête sur la table orders.

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 l'utilisation des AWS Glue Data Catalog vues, consultezUtiliser les vues du catalogue de données dans Athena.