Partager via


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 autorisations USE SCHEMA et CREATE 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èges USE SCHEMA et CREATE 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 que USE CATALOG sur le catalogue et USE 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 et USE 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 plus USE CATALOG de leurs catalogues parents et USE 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;