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 ».

Utilisation des vues du catalogue de données Glue - Amazon EMR

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.

Utilisation des vues du catalogue de données Glue

Vous pouvez créer et gérer des vues dans le catalogue de données AWS Glue pour les utiliser avec EMR Serverless. Ces vues sont communément appelées vues AWS Glue Data Catalog. Ces vues sont utiles car elles prennent en charge plusieurs moteurs de requêtes SQL, ce qui vous permet d'accéder à la même vue sur différents AWS services, tels que EMR Serverless et Amazon Amazon Athena Redshift.

En créant une vue dans le catalogue de données, vous pouvez utiliser des autorisations de ressources et des contrôles d'accès basés sur des balises AWS Lake Formation pour autoriser l'accès à celui-ci. Avec cette méthode de contrôle d'accès, il n'est pas nécessaire de configurer un accès supplémentaire aux tables que vous avez référencées lors de la création de la vue. Cette méthode d'octroi d'autorisations est appelée sémantique du définisseur, et ces vues sont appelées vues du définisseur. Pour plus d'informations sur le contrôle d'accès à Lake Formation, consultez la section Octroi et révocation d'autorisations sur les ressources du catalogue de données dans le guide du développeur de AWS Lake Formation.

Les vues du catalogue de données sont utiles dans les cas d'utilisation suivants :

  • Contrôle d'accès granulaire : vous pouvez créer une vue qui restreint l'accès aux données en fonction des autorisations dont l'utilisateur a besoin. Par exemple, vous pouvez utiliser des vues du catalogue de données pour empêcher les employés qui ne travaillent pas dans le service des ressources humaines (RH) de voir des données d’identification personnelle (PII).

  • Définition complète de la vue : en appliquant des filtres à votre vue dans le catalogue de données, vous vous assurez que les enregistrements de données disponibles dans une vue du catalogue de données sont toujours complets.

  • Sécurité renforcée — La définition de requête utilisée pour créer la vue doit être complète. Cet avantage signifie que les vues du catalogue de données sont moins sensibles aux commandes SQL d'acteurs malveillants.

  • Partage de données simplifié : partagez des données avec d'autres AWS comptes sans déplacer de données. Pour plus d'informations, voir Partage de données entre comptes dans Lake Formation.

Création d’un affichage du Catalogue de données

Il existe différentes manières de créer une vue du catalogue de données. Il s'agit notamment d'utiliser le AWS CLI ou Spark SQL. Voici quelques exemples.

Using SQL

Voici la syntaxe permettant de créer une vue du catalogue de données. Notez le type de MULTI DIALECT vue. Cela distingue la vue du catalogue de données des autres vues. Le SECURITY prédicat est spécifié sous la formeDEFINER. Cela indique une vue du catalogue de données avec DEFINER sémantique.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [ COMMENT view_comment ] [TBLPROPERTIES (property_name = property_value, ... )] SECURITY DEFINER AS query;

Voici un exemple d'CREATEinstruction dont la syntaxe est conforme à la syntaxe :

CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY order_date

Vous pouvez également créer une vue en mode d'exécution à sec, à l'aide de SQL, pour tester la création de vues, sans créer réellement la ressource. L'utilisation de cette option entraîne un « essai à sec » qui valide l'entrée et, si la validation aboutit, renvoie le JSON de l'objet de table AWS Glue qui représentera la vue. Dans ce cas, la vue réelle n'est pas créée.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS view-sql
Using the AWS CLI
Note

Lorsque vous utilisez la commande CLI, le code SQL utilisé pour créer la vue n'est pas analysé. Cela peut entraîner le cas où la vue est créée, mais les requêtes échouent. Assurez-vous de tester votre syntaxe SQL avant de créer la vue.

Vous utilisez la commande CLI suivante pour créer une vue :

aws glue create-table --cli-input-json '{ "DatabaseName": "database", "TableInput": { "Name": "view", "StorageDescriptor": { "Columns": [ { "Name": "col1", "Type": "data-type" }, ... { "Name": "colN", "Type": "data-type" } ], "SerdeInfo": {} }, "ViewDefinition": { "SubObjects": [ "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-table1", ... "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-tableN", ], "IsProtected": true, "Representations": [ { "Dialect": "SPARK", "DialectVersion": "1.0", "ViewOriginalText": "Spark-SQL", "ViewExpandedText": "Spark-SQL" } ] } } }'

Voici la syntaxe permettant de créer une vue du catalogue de données. Notez le type de MULTI DIALECT vue. Cela distingue la vue du catalogue de données des autres vues. Le SECURITY prédicat est spécifié sous la formeDEFINER. Cela indique une vue du catalogue de données avec DEFINER sémantique.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [ COMMENT view_comment ] [TBLPROPERTIES (property_name = property_value, ... )] SECURITY DEFINER AS query;

Voici un exemple d'CREATEinstruction dont la syntaxe est conforme à la syntaxe :

CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY order_date

Vous pouvez également créer une vue en mode d'exécution à sec, à l'aide de SQL, pour tester la création de vues, sans créer réellement la ressource. L'utilisation de cette option entraîne un « essai à sec » qui valide l'entrée et, si la validation aboutit, renvoie le JSON de l'objet de table AWS Glue qui représentera la vue. Dans ce cas, la vue réelle n'est pas créée.

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

Opérations d'affichage prises en charge

Les fragments de commande suivants vous montrent différentes manières d'utiliser les vues du catalogue de données :

  • CRÉER UNE VUE

    Crée une vue du catalogue de données. Voici un exemple illustrant la création d'une vue à partir d'une table existante :

    CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
  • MODIFIER LA VUE

    Syntaxe disponible :

    • ALTER VIEW view_name [FORCE] ADD DIALECT AS query

    • ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query

    • ALTER VIEW view_name DROP DIALECT

    Vous pouvez utiliser FORCE ADD DIALECT cette option pour forcer la mise à jour du schéma et des sous-objets conformément au nouveau dialecte du moteur. Notez que cela peut entraîner des erreurs de requête si vous ne les utilisez pas également FORCE pour mettre à jour d'autres dialectes du moteur. Voici un exemple :

    ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY orderdate;

    Ce qui suit montre comment modifier une vue afin de mettre à jour le dialecte :

    ALTER VIEW catalog_view UPDATE DIALECT AS SELECT count(*) FROM my_catalog.my_database.source_table;
  • DÉCRIRE LA VUE

    Syntaxe disponible pour décrire une vue :

    • SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]— Si l'utilisateur dispose des autorisations AWS Glue and Lake Formation requises pour décrire la vue, il peut répertorier les colonnes. Voici quelques exemples de commandes permettant d'afficher des colonnes :

      SHOW COLUMNS FROM my_database.source_table; SHOW COLUMNS IN my_database.source_table;
    • DESCRIBE view_name— Si l'utilisateur dispose des autorisations AWS Glue and Lake Formation requises pour décrire la vue, il peut répertorier les colonnes de la vue ainsi que ses métadonnées.

  • SUPPRIMER LA VUE

    Syntaxe disponible :

    • DROP VIEW [ IF EXISTS ] view_name

      L'exemple suivant montre une DROP instruction qui teste si une vue existe avant de la supprimer :

      DROP VIEW IF EXISTS catalog_view;
  • AFFICHER CRÉER UNE VUE

    • SHOW CREATE VIEW view_name— Affiche l'instruction SQL qui crée la vue spécifiée. Voici un exemple illustrant la création d'une vue de catalogue de données :

      SHOW CREATE TABLE my_database.catalog_view; CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view ( net_profit, customer_id, item_id, sold_date) TBLPROPERTIES ( 'transient_lastDdlTime' = '1736267222') SECURITY DEFINER AS SELECT * FROM my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
  • AFFICHER LES VUES

    Répertoriez toutes les vues du catalogue, telles que les vues régulières, les vues multidialectales (MDV) et les vues MDV sans le dialecte Spark. La syntaxe disponible est la suivante :

    • SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]:

      Voici un exemple de commande permettant d'afficher les vues :

      SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';

Pour plus d'informations sur la création et la configuration des vues du catalogue de données, voir les vues du catalogue de données Building AWS Glue dans le manuel du AWS Lake Formation développeur.

Interrogation d’un affichage du Catalogue de données

Après avoir créé une vue du catalogue de données, vous pouvez utiliser un rôle IAM pour interroger la vue. Le rôle IAM doit disposer de l'autorisation Lake Formation SELECT dans la vue du catalogue de données. Il n'est pas nécessaire d'autoriser l'accès aux tables sous-jacentes référencées dans la vue. Le rôle IAM utilisé pour interroger la vue doit être le rôle d'exécution de l'application EMR. Vous pouvez accéder à la vue depuis EMR Serverless, à l'aide d'un rôle d'exécution fourni par Amazon EMR Steps, EMR Studio et AI Studio. SageMaker

Une fois que tout est configuré, vous pouvez demander votre avis. Par exemple, après avoir créé une application EMR Serverless dans EMR Studio, vous pouvez exécuter la requête suivante pour accéder à une vue.

SELECT * from my_database.catalog_view LIMIT 10;

Considérations et restrictions

Lorsque vous créez des vues de catalogue de données, les règles suivantes s'appliquent :

  • Vous ne pouvez créer des vues de catalogue de données qu'avec Amazon EMR 7.6 et versions ultérieures.

  • Le définisseur de vues du catalogue de données doit avoir SELECT accès aux tables de base sous-jacentes auxquelles la vue accède. La création de la vue du catalogue de données échoue si des filtres Lake Formation sont imposés au rôle de définisseur d'une table de base spécifique.

  • Les tables de base 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 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.

  • Vous ne pouvez créer que des vues PROTECTED de catalogue de données. UNPROTECTEDles vues ne sont pas prises en charge.

  • Vous ne pouvez pas référencer les tables d'un autre AWS compte dans une définition de vue du catalogue de données. Vous ne pouvez pas non plus référencer une table dans le même compte situé dans une région distincte.

  • Pour partager des données entre un compte ou une région, la vue complète doit être partagée entre comptes et entre régions, à l'aide des liens vers les ressources de Lake Formation.

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

  • Vous pouvez utiliser des vues basées sur des tables Iceberg. Les formats de table ouverte Apache Hudi et Delta Lake sont également pris en charge.

  • Vous ne pouvez pas référencer d'autres vues dans les vues du catalogue de données.

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