Créer et gérer des vues
Cet article explique comment créer des vues dans Unity Catalog. Qu’est-ce qu’une vue ?
Autorisations requises
Pour créer une vue :
- Vous devez disposer de l’autorisation
USE CATALOG
sur le catalogue parent et des autorisationsUSE SCHEMA
etCREATE TABLE
sur le schéma parent. Un administrateur de metastore ou le propriétaire du catalogue peut vous octroyer tous ces privilèges. Un propriétaire de schéma peut vous octroyer les privilègesUSE SCHEMA
etCREATE TABLE
sur le schéma. - Vous devez pouvoir lire les tables et les vues référencées dans la vue (
SELECT
sur la table ou la vue, ainsi queUSE CATALOG
sur le catalogue etUSE SCHEMA
sur le schéma). - Si une vue fait référence à des tables du metastore Hive local à l’espace de travail, la vue est uniquement accessible à partir de l’espace de travail qui contient les tables locales à l’espace de travail. Par conséquent, Databricks recommande de ne créer des vues qu’à partir de tables ou de vues qui se trouvent dans le metastore Unity Catalog.
- Vous ne pouvez pas créer une vue faisant référence à une vue qui a été partagée avec vous à l'aide du partage Delta. Consultez Qu’est-ce que le Delta Sharing ?.
Pour lire une vue, les autorisations requises dépendent du mode d’accès, du type de calcul, et de la version de Databricks Runtime :
- Pour toutes les ressources de calcul, vous devez disposer
SELECT
sur la vue elle-même,USE CATALOG
sur son catalogue parent etUSE SCHEMA
sur son schéma parent. Cela s’applique à tous les types de calcul qui prennent en charge le catalogue Unity, notamment les entrepôts SQL, les clusters en mode d’accès partagé et les clusters en mode d’accès utilisateur unique sur Databricks Runtime 15.4 et versions ultérieures. - Pour les clusters sur Databricks Runtime 15.3 et ci-dessous qui utilisent le mode d’accès utilisateur unique, vous devez également disposer
SELECT
de toutes les tables et vues référencées par la vue, en plusUSE CATALOG
de leurs catalogues parents etUSE SCHEMA
de leurs schémas parents.
Remarque
Si vous utilisez un cluster mono-utilisateur sur Databricks Runtime 15.4 LTS et versions ultérieures et que vous souhaitez éviter la nécessité d’avoir SELECT
sur les tables et vues sous-jacentes, vérifiez que votre espace de travail est activé pour le calcul serverless.
Le calcul serverless gère le filtrage des données, ce qui permet d’accéder à une vue sans avoir besoin d’autorisations sur ses tables et vues sous-jacentes. N’oubliez pas que vous risquez d’entraîner des frais de calcul serverless lorsque vous utilisez le calcul d’un seul utilisateur pour interroger des vues. Pour plus d’informations, consultez Contrôle d’accès affiné sur le calcul d’un seul utilisateur.
Créer une vue
Pour créer une vue, exécutez la commande SQL suivante. Les éléments entre chevrons sont optionnels. Remplacez les valeurs d’espace réservé :
<catalog-name>
: Nom du catalogue.<schema-name>
: nom du schéma.<view-name>
: Nom de la vue.<query>
: La requête, les colonnes, les tables et les vues utilisées pour composer la vue.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
Par exemple, pour créer une vue nommée sales_redacted
à partir des colonnes de la table sales_raw
:
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
Vous pouvez également créer une vue avec le fournisseur Databricks Terraform et databricks_table. Vous pouvez récupérer une liste de noms complets de vue avec databricks_views.
Supprimer une vue
Vous devez être le propriétaire de la vue pour supprimer une vue. Pour supprimer une vue, exécutez la commande SQL suivante :
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;