Partager via


Utiliser SQL pour créer et gérer des vues de métriques

Cette page explique comment créer et gérer des vues de métriques à l’aide de SQL.

Prerequisites

  • Vous devez disposer SELECT de privilèges sur les objets de données sources.
  • Vous devez disposer du CREATE TABLE privilège et du USE SCHEMA privilège dans le schéma dans lequel vous souhaitez créer l’affichage des métriques.
  • Vous devez également disposer du USE CATALOG privilège sur le catalogue parent du schéma.
  • PEUT UTILISER des autorisations sur un entrepôt SQL ou une autre ressource de calcul exécutant Databricks Runtime 17.2 ou version ultérieure.

Un administrateur de metastore ou le propriétaire du catalogue peut vous octroyer tous ces privilèges. Un propriétaire de schéma ou un utilisateur disposant du privilège MANAGE peut vous accorder USE SCHEMA et CREATE TABLE privilèges sur le schéma.

Créer une vue métrique

Utilisez CREATE VIEW avec la clause WITH METRICS pour créer une vue métrique. La vue métrique doit être définie avec une spécification YAML valide dans le contenu. Les données sources d’une vue métrique peuvent être une table, une vue ou une requête SQL.

Les données sources de la vue métrique suivante sont la samples.tpch.orders table disponible dans le catalogue d’exemples pour la plupart des déploiements Azure Databricks. La DDL SQL suivante crée une vue de métrique nommée orders_metric_view dans le catalogue et le schéma actuels. Pour spécifier un autre catalogue et schéma, utilisez l’espace de noms de trois niveaux du catalogue Unity.

Vous pouvez ajouter des commentaires au niveau de la table et des colonnes à la définition de vue de métrique.

CREATE OR REPLACE VIEW orders_metric_view
WITH METRICS
LANGUAGE YAML
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  source: samples.tpch.orders
  filter: o_orderdate > '1990-01-01'
  dimensions:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', o_orderdate)
    - name: Order Status
      expr: CASE
        WHEN o_orderstatus = 'O' then 'Open'
        WHEN o_orderstatus = 'P' then 'Processing'
        WHEN o_orderstatus = 'F' then 'Fulfilled'
        END
    - name: Order Priority
      expr: SPLIT(o_orderpriority, '-')[1]
  measures:
    - name: Order Count
      expr: COUNT(1)
    - name: Total Revenue
      expr: SUM(o_totalprice)
    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
    - name: Total Revenue for Open Orders
      expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
$$

Modifier une vue des métriques

Pour apporter des modifications à la définition associée à une vue de métrique, utilisez ALTER VIEW. L’exemple suivant ajoute des commentaires aux dimensions et aux mesures dans l’affichage orders_metric_view des métriques.

ALTER VIEW orders_metric_view
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  source: samples.tpch.orders
  filter: o_orderdate > '1990-01-01'
  dimensions:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', o_orderdate)
      comment: "Month of order"
    - name: Order Status
      expr: CASE
        WHEN o_orderstatus = 'O' then 'Open'
        WHEN o_orderstatus = 'P' then 'Processing'
        WHEN o_orderstatus = 'F' then 'Fulfilled'
        END
      comment: "Status of order: open, processing, or fulfilled"
    - name: Order Priority
      expr: SPLIT(o_orderpriority, '-')[1]
      comment: "Numeric priority 1 through 5; 1 is highest"
  measures:
    - name: Order Count
      expr: COUNT(1)
    - name: Total Revenue
      expr: SUM(o_totalprice)
      comment: "Sum of total price"
    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
      comment: "Sum of total price by customer"
    - name: Total Revenue for Open Orders
      expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
      comment: "Potential revenue from open orders"
$$

Accorder des privilèges sur une vue de métrique

Une vue de métrique est un objet sécurisable du catalogue Unity et suit le même modèle de permissions que d’autres vues. Les privilèges sont hiérarchiques, de sorte que les privilèges sur un metastore, un catalogue ou un schéma se répercutent sur les objets qu’ils contiennent. L’exemple suivant accorde des privilèges minimaux nécessaires aux utilisateurs du data_consumers groupe pour interroger une vue de métrique.

GRANT SELECT ON orders_metric_view to `data-consumers`;

Pour en savoir plus sur les privilèges dans le catalogue Unity, consultez Gérer les privilèges dans le catalogue Unity. Pour en savoir plus sur la création et la gestion de groupes, consultez Groupes.

Obtenir la définition d’affichage des métriques

Utilisez DESCRIBE TABLE EXTENDED avec le paramètre facultatif AS JSON pour afficher la définition d’une vue de métrique. Le AS JSON paramètre est facultatif. Omettre cela fournit une sortie de meilleure qualité pour les lecteurs humains, tandis que son inclusion est préférable pour les systèmes automatisés. L’exemple suivant retourne une chaîne JSON qui décrit la vue de métrique et ses composants.

DESCRIBE TABLE EXTENDED orders_metric_view AS JSON

Supprimer une vue de métrique

Utilisez la syntaxe DROP VIEW pour supprimer une vue métrique.

DROP VIEW orders_metric_view;

Étapes suivantes

Maintenant que vous avez créé une vue de métrique à l’aide de SQL, explorez ces rubriques connexes :

Interroger et utiliser des vues de métriques

Fonctionnalités avancées d’affichage des métriques

Autres méthodes de création

Gouvernance et sécurité