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.
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'CREATE
instruction 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 ] ASview-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 égalementFORCE
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.UNPROTECTED
les 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.