Delen via


SQL gebruiken om metrische weergaven te maken en te beheren

Op deze pagina wordt uitgelegd hoe u metrische weergaven maakt en beheert met behulp van SQL.

Vereiste voorwaarden

  • U moet bevoegdheden hebben SELECT voor de brongegevensobjecten.
  • U moet beschikken over de CREATE TABLE bevoegdheid en de USE SCHEMA bevoegdheid in het schema waarin u de metrische weergave wilt maken.
  • Je moet ook de USE CATALOG rechten hebben in de bovenliggende catalogus van het schema.
  • KAN MACHTIGINGEN GEBRUIKEN voor een SQL-warehouse of andere rekenresource met Databricks Runtime 17.2 of hoger.

Een metastore-beheerder of de cataloguseigenaar kan u al deze bevoegdheden verlenen. Een schema-eigenaar of -gebruiker met de MANAGE-bevoegdheid kan u USE SCHEMA en CREATE TABLE bevoegdheden voor het schema verlenen.

Een metrische weergave maken

Gebruik CREATE VIEW met de WITH METRICS clausule om een metrische weergave te maken. De metrische weergave moet worden gedefinieerd met een geldige YAML-specificatie in de hoofdtekst. Brongegevens voor een metrische weergave kunnen een tabel, weergave of SQL-query zijn.

De brongegevens voor de volgende metrische weergave zijn de samples.tpch.orders tabel die beschikbaar is in de voorbeeldencatalogus voor de meeste Azure Databricks-implementaties. Met de volgende SQL DDL maakt u een metrische weergave met de naam orders_metric_view in de huidige catalogus en het huidige schema. Als u een andere catalogus en een ander schema wilt opgeven, gebruikt u de naamruimte op drie niveaus van Unity Catalog.

U kunt opmerkingen op tabel- en kolomniveau toevoegen aan de definitie van de metrische weergave.

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

Een metrische weergave wijzigen

Als u wijzigingen wilt aanbrengen in de definitie die is gekoppeld aan een metrische weergave, gebruikt u ALTER VIEW. In het volgende voorbeeld worden opmerkingen toegevoegd aan dimensies en metingen in de orders_metric_view metrische weergave.

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

Bevoegdheden verlenen voor een metrische weergave

Een metrische weergave is een beveiligbaar object voor Unity Catalog en volgt hetzelfde machtigingsmodel als andere weergaven. Bevoegdheden zijn hiërarchisch, dus bevoegdheden voor een metastore, catalogus of schema worden doorgegeven aan de objecten die erin zijn opgenomen. In het volgende voorbeeld worden minimale bevoegdheden verleend die nodig zijn voor gebruikers in de data_consumers groep om een query uit te voeren op een metrische weergave.

GRANT SELECT ON orders_metric_view to `data-consumers`;

Zie Bevoegdheden beheren in Unity Catalog voor meer informatie over bevoegdheden in Unity Catalog. Zie Groepen voor meer informatie over het maken en beheren van groepen.

Definitie van metrische weergave ophalen

Gebruik DESCRIBE TABLE EXTENDED met de optionele AS JSON parameter om de definitie van een metriekweergave te bekijken. De AS JSON-parameter is optioneel. Het weglaten ervan levert uitvoer die beter is voor menselijke lezers, terwijl het opnemen ervan beter is voor machinale verwerking. In het volgende voorbeeld wordt een JSON-tekenreeks geretourneerd die de metrische weergave en de bijbehorende onderdelen beschrijft.

DESCRIBE TABLE EXTENDED orders_metric_view AS JSON

Een metrische weergave verwijderen

Gebruik DROP VIEW de syntaxis om een metrische weergave te verwijderen.

DROP VIEW orders_metric_view;

Volgende stappen

Nu u een metrische weergave hebt gemaakt met behulp van SQL, bekijkt u de volgende verwante onderwerpen:

Metrische weergaven opvragen en gebruiken

Geavanceerde functies voor metrische gegevensweergave

Alternatieve methoden voor het maken

Governance en beveiliging