Freigeben über


Verwenden von SQL zum Erstellen und Verwalten von Metrikansichten

Auf dieser Seite wird erläutert, wie Metrikansichten mithilfe von SQL erstellt und verwaltet werden.

Voraussetzungen

  • Sie müssen über Berechtigungen für die Quelldatenobjekte verfügen SELECT .
  • Sie müssen über die CREATE TABLE Berechtigungen und die USE SCHEMA Berechtigungen im Schema verfügen, in dem Sie die Metrikansicht erstellen möchten.
  • Sie müssen auch über die USE CATALOG Berechtigungen für den übergeordneten Katalog des Schemas verfügen.
  • Berechtigungen für die Verwendung auf einem SQL-Warehouse oder einer anderen Rechenressource mit Databricks Runtime 17.2 oder höher.

Ein Metastoreadministrator oder der Katalogbesitzer kann Ihnen all diese Berechtigungen gewähren. Ein Schemabesitzer oder Benutzer mit den MANAGE Berechtigungen kann Ihnen USE SCHEMA und CREATE TABLE Berechtigungen für das Schema gewähren.

Erstellen einer Metrikansicht

Verwenden Sie CREATE VIEW mit der WITH METRICS Klausel, um eine Metrikansicht zu erstellen. Die Metrikansicht muss mit einer gültigen YAML-Spezifikation im Textkörper definiert werden. Quelldaten für eine Metrikansicht können eine Tabelle, Ansicht oder SQL-Abfrage sein.

Die Quelldaten für die folgende Metrikansicht sind die Tabelle samples.tpch.orders, die im Beispielkatalog für die meisten Azure Databricks-Bereitstellungen verfügbar ist. Mit der folgenden SQL-DDL wird eine Metrikansicht erstellt, die im aktuellen Katalog und Schema benannt ist orders_metric_view . Um einen anderen Katalog und ein anderes Schema anzugeben, verwenden Sie den Unity-Katalog mit drei Ebenen.To specify a different catalog and schema, use the Unity Catalog three-level namespace.

Sie können der Definition der Metrikansicht Kommentare auf Tabellenebene und Spaltenebene hinzufügen.

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')
$$

Ändern einer Metrikansicht

Verwenden Sie die Verwendung ALTER VIEW, um Änderungen an der Definition vorzunehmen, die einer Metrikansicht zugeordnet ist. Im folgenden Beispiel werden Dimensionen und Messwerte in der orders_metric_view-Metrikansicht kommentiert.

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"
$$

Berechtigungen für eine Metrikansicht gewähren

Eine Metrikansicht ist ein sicherungsfähiges Unity-Katalog-Objekt und folgt demselben Berechtigungsmodell wie andere Ansichten. Berechtigungen sind hierarchisch, sodass Berechtigungen für einen Metastore, einen Katalog oder ein Schema auf die darin enthaltenen Objekte vererbt werden. Im folgenden Beispiel werden mindestberechtigungen gewährt, die für Benutzer in der data_consumers Gruppe erforderlich sind, um eine Metrikansicht abzufragen.

GRANT SELECT ON orders_metric_view to `data-consumers`;

Weitere Informationen zu Berechtigungen im Unity-Katalog finden Sie unter Verwalten von Berechtigungen im Unity-Katalog. Weitere Informationen zum Erstellen und Verwalten von Gruppen finden Sie unter "Gruppen".

Abrufen der Definition der Metrikansicht

Verwenden Sie DESCRIBE TABLE EXTENDED mit dem optionalen AS JSON-Parameter, um die Definition für eine Metrikansicht anzuzeigen. Der Parameter AS JSON ist optional. Das Weglassen desselben bietet eine bessere Ausgabe für menschliche Leser, während einschließlich dessen besser für Maschinenverbraucher ist. Im folgenden Beispiel wird eine JSON-Zeichenfolge zurückgegeben, die die Metrikansicht und die zugehörigen Komponenten beschreibt.

DESCRIBE TABLE EXTENDED orders_metric_view AS JSON

Entfernen einer Metrikansicht

Verwenden Sie DROP VIEW die Syntax, um eine Metrikansicht zu löschen.

DROP VIEW orders_metric_view;

Nächste Schritte

Nachdem Sie nun eine Metrikansicht mit SQL erstellt haben, erkunden Sie die folgenden verwandten Themen:

Abfragen und Verwenden von Metrikansichten

Erweiterte Ansichtsmerkmale für Metriken

Alternative Erstellungsmethoden

Governance und Sicherheit