Een metrische weergave maken

Catalog Explorer biedt een visuele interface voor het maken van metrische weergaven. U definieert velden en metingen interactief, zonder dat u een YAML-definitie hoeft te schrijven.

Op deze pagina wordt uitgelegd hoe u een metrische weergave maakt in de gebruikersinterface van Catalog Explorer. Zie Zelfstudie: een metrische weergave maken met joins en gegevensmodellering voor een complexer voorbeeld met joins en geavanceerde metingen. Als u een metrische weergave wilt maken op basis van bestaande Tableau- of Power BI-assets, raadpleegt u Genie Code gebruiken om een Tableau- of Power BI-bestand te importeren.

Prerequisites

Voordat u een metrische weergave maakt, controleert u of u over de volgende machtigingen beschikt:

  • SELECT bevoegdheden voor de tabelachtige asset of SQL-query die als bron wordt gebruikt.
  • CREATE TABLE en USE SCHEMA bevoegdheden in het schema waarin u de metrische weergave wilt maken.
  • USE CATALOG bevoegdheid voor de bovenliggende catalogus.
  • CAN USE machtiging voor een SQL-warehouse of een andere rekenresource waarop Databricks Runtime 17.3 of hoger wordt uitgevoerd.

Een metastore-beheerder of cataloguseigenaar kan al deze bevoegdheden verlenen. Een schema-eigenaar of gebruiker met MANAGE bevoegdheden kan het schema verlenen en USE SCHEMA bevoegdheden gevenCREATE TABLE.

Note

Het maken van een metrische weergave wordt ondersteund in Databricks Runtime 16.4 en hoger. Op deze pagina worden functies gebruikt waarvoor Databricks Runtime 17.3 of hoger is vereist, dus 17.3 is het minimum voor het voorbeeld. Voor afzonderlijke YAML-functies kan een latere runtime zijn vereist. Zie beschikbaarheid van metrische weergavefuncties voor de minimale runtime voor elke functie.

Een metrische weergave maken

Maak een metrische weergave in Catalog Explorer met behulp van een van de volgende methoden:

  • UI-editor: definieer op het tabblad UI velden en metingen interactief, zonder code te schrijven.
  • YAML-editor: klik op de <> knop om de definitie rechtstreeks te bewerken. Zie voor de syntaxis van de metrische weergave YAML-syntaxisreferentie. U kunt ook een YAML-definitie in een SQL-instructie gebruiken om een metrische weergave te maken. Zie Een metrische weergave definiëren in SQL of YAML voor het volledige voorbeeld in zowel YAML als SQL.
  • Genie Code: open Genie Code vanuit het sparkle genie codepictogram. knop in de rechterbovenhoek en beschrijf wat u in natuurlijke taal wilt. Zie Genie Code gebruiken.

In de volgende stappen worden het tabblad UI en de samples.tpch.orders tabel, die beschikbaar is in elke werkruimte, gebruikt om een voorbeeldweergave voor metrische verkoopanalyses te maken. De voltooide metrische weergave komt overeen met de definitie in Een metrische weergave definiëren in SQL of YAML. Zie Voorbeelddatasets voor meer informatie over deze gegevensset.

Stap 1: De metrische weergave maken en de editor openen

  1. Klik op het pictogram Gegevens.Catalogus in de zijbalk van de werkruimte.
  2. Gebruik de zoekbalk om te zoeken samples.tpch.ordersen klik vervolgens op de tabelnaam.
  3. Klik op Maken>Metrische weergave. Voer in het dialoogvenster Metrische gegevens maken een naam in, selecteer een catalogus en schemabestemming en klik vervolgens op Maken.

De editor wordt geopend op het tabblad UI . De editor voegt automatisch alle bronkolommen toe aan het tabblad Velden en voegt een voorbeeldmeting COUNT(*) toe.

De bewerkingsinterface voor de metrische weergave in Catalog Explorer.

Stap 2: Een join toevoegen

In het voorbeeld wordt de customer tabel samengevoegd, zodat klantkenmerken beschikbaar zijn als velden. Om de koppeling toe te voegen, klikt u op de knop Join in de rechterbovenhoek van de editor:

  1. Selecteer samples.tpch.customer en klik op Toevoegen om lid te worden van de bron.
  2. Voer customer in als de deelnamenaam.
  3. Gebruik de vervolgkeuzelijsten om de joinvoorwaarde in te stellen op source.o_custkey = customer.c_custkey. Als u meer dan één joinkolom wilt toevoegen, klikt u op + Join Key. Als u een andere voorwaarde dan gelijkheid wilt instellen, klikt u op Expressie en verfijnt u de voorwaarde.
  4. Onder Join-kardinaliteit, selecteer Veel-op-een. Zie Join-kardinaliteit voor hulp bij het kiezen van een kardinaliteit.
  5. Selecteer Hoogstens één overeenkomst onder Queryprestaties. Elke bestelling komt overeen met maximaal één klant, dus deze optimalisatie is veilig en wordt ingesteld at_most_one_match: true in de YAML-definitie.
  6. Klik op Deelnemen.
  7. Klik in het dialoogvenster Velden toevoegen op Alle kolommen toevoegen om alle kolommen uit de brontabel dynamisch te importeren. Als u in plaats daarvan afzonderlijke kolommen wilt toevoegen, slaat u deze stap over. Velden uit het gekoppelde object worden in de vervolgkeuzelijst weergegeven, samen met de velden uit de bron.

Joins koppelen de brontabel aan andere tabellen of query’s. Zie Werken met joins voor modelleringsconcepten, waaronder ster- en sneeuwvlokschema's en YAML-patronen.

Stap 3: Een filter definiëren

De volledige YAML-definitie verderop op deze pagina bevat een filter waarmee de metrische weergave wordt beperkt tot orders die na 1 januari 1990 zijn geplaatst.

Expressies invoeren met Opbouwfunctie of Aangepast

Wanneer u een filter, veld of meting definieert, stelt u de expressie in met behulp van een van de twee opties in de sectie Expressie :

  • Opbouwfunctie: Selecteer uit contextbewuste vervolgkeuzelijsten en de editor stelt de SQL-expressie voor u samen.
  • Aangepast: Voer de SQL-expressie rechtstreeks in.

De stappen die volgen gebruiken Builder voor eenvoudige kolomfilters, transformaties en aggregaties, en Aangepast voor expressies die Builder niet kan samenstellen, zoals CASE statements en samengestelde measures.

Het filter definiëren:

  1. Klik op filterpictogram.Filter in de rechterbovenhoek van de editor voor de metrische weergave.
  2. Stel de filterexpressie in:
    • Selecteer in Opbouwfunctie de kolomsource.o_orderdate, de operatorGreater than en de waarde1990-01-01.
    • Schrijf in Aangepast de SQL-expressie source.o_orderdate > '1990-01-01'.

Een filter is van toepassing op alle query's die verwijzen naar de metrische weergave. Zie Filters toepassen voor concepten voor filtermodellering en YAML-patronen.

Stap 4: Velden toevoegen

Wanneer u een filter, veld of meting definieert, stelt u de expressie in met behulp van een van de twee opties in de sectie Expressie :

  • Opbouwfunctie: Selecteer uit contextbewuste vervolgkeuzelijsten en de editor stelt de SQL-expressie voor u samen. De beschikbare opties veranderen op basis van het kolomtype en de waarden.
  • Aangepast: Voer de SQL-expressie rechtstreeks in.

De stappen die volgen, schakelen tussen de twee opties op basis van de complexiteit van elke expressie. Gebruik Builder voor eenvoudige kolomtransformaties en aggregaties en schakel over naar Aangepast voor expressies die builder niet kan opstellen, zoals CASE instructies en samengestelde metingen.

In het voorbeeld worden drie velden gedefinieerd: twee getransformeerde kolommen uit de bron en één kolom uit de gekoppelde customer tabel. Velden, ook wel dimensies genoemd, gedragen zich als normale tabelkolommen. Een veld kan een categorische kolom zijn die wordt gebruikt voor het groeperen en filteren, of een niet-geaggregeerde numerieke kolom die u tijdens de query kunt aggregeren. Zie Velden voor meer informatie over modelleringsvelden.

De editor voegt automatisch alle bronkolommen toe aan het tabblad Velden . Als u het voorbeeld wilt vergelijken, verwijdert u de kolommen die u niet nodig hebt, zodat alleen source.o_orderdate, source.o_orderstatusen customer.c_mktsegment blijven.

Een veld verwijderen:

  1. Klik op het tabblad Velden .
  2. Klik op het selectievakje links van de veldnaam om de velden te selecteren die u wilt verwijderen.
  3. Klik op Verwijderen.

Als u afzonderlijke velden wilt verwijderen, gebruikt u het kebabmenupictogram rechts van de veldnaam.

Wanneer u een veld bewerkt, kunt u ook metagegevens toevoegen:

  • Weergavenaam: een beschrijvend label.
  • Opmerking: een beschrijving van het veld.
  • Synoniemen: alternatieve namen waarmee AI-hulpprogramma's het veld kunnen detecteren. Zie Synoniemen.
  • Opmaak: aangepaste gegevensopmaak waarmee wordt bepaald hoe waarden worden weergegeven. Opmaak is alleen beschikbaar voor numerieke, datum- en datum-/tijdkolommen. Zie Opmaakspecificaties.
  • Beheerde tags: beheerde tags voor classificatie en beheer.

De veldeditor in de gebruikersinterface van de metrische weergave.

Als u elk veld wilt definiëren, klikt u op de naam op het tabblad Velden , bouwt u de expressie en voegt u een optionele opmerking toe. Als u de transformatie wilt uitvoeren en het resultaat wilt weergeven, klikt u op Pictogramvoorbeeld afspelen.

  1. Bestelmaand: Klik op Builder. Selecteer source.o_orderdate en pas vervolgens een maandtransformatie toe om te produceren DATE_TRUNC('MONTH', source.o_orderdate). Voeg de opmerking Month of ordertoe.

  2. Orderstatus: klik op Aangepast. Voeg vervolgens de opmerking Status of order toe en voer de volgende expressie in:

    CASE
      WHEN source.o_orderstatus = 'O' THEN 'Open'
      WHEN source.o_orderstatus = 'P' THEN 'Processing'
      WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
    END
    
  3. Market Segment: Selecteer in Builder de customer.c_mktsegment kolom in de gekoppelde customer tabel. Voeg de opmerking Customer market segmenttoe.

Stap 5: Metingen toevoegen

In het voorbeeld worden drie metingen gedefinieerd. Metingen zijn geaggregeerde expressies die zakelijke metrische gegevens produceren, zoals totale omzet of aantal orders. De editor voegt automatisch een COUNT(*) meting toe. U kunt deze bewerken of verwijderen.

Wanneer u een meting bewerkt, kunt u ook een weergavenaam, opmerking, synoniemen, opmaak en beheerde tags toevoegen, dezelfde metagegevens die beschikbaar zijn voor velden.

Als u elke meting wilt toevoegen, klikt u op het tabblad +, maakt u de expressie en voegt u een optionele opmerking toe. Als u de aggregatie wilt uitvoeren en het resultaat wilt weergeven, klikt u op Pictogramvoorbeeld afspelen. Wanneer u een meting toevoegt, worden Genie-suggesties boven aan het deelvenster van de metingseditor weergegeven; klik op een suggestie om die meting te maken.

  1. Aantal orders: Selecteer in Builder de aggregatie Aantal die u wilt produceren COUNT(1). Voeg de opmerking Total number of orderstoe.
  2. Totale omzet: selecteer en de aggregatie source.o_totalprice die moet worden geproduceerd in SUM(source.o_totalprice). Voeg de opmerking Sum of all order pricestoe.
  3. Totale omzet per klant: Voer in AangepastSUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey) in. Voeg de opmerking Average revenue per unique customertoe.

Bekijk een voorbeeld van een meting in de gebruikersinterface van de metrische weergave.

Als u een venstermeting wilt toevoegen voor tijdreeksberekeningen, zoals zwevende gemiddelden of lopende totalen, klikt u op + Venster tijdens het bewerken van de meting. Zie Vensterafmetingen.

Stap 6: De metrische weergave opslaan

Klik op Opslaan. De voltooide metrische weergave komt overeen met de definitie in Een metrische weergave definiëren in SQL of YAML.

Een metrische weergave definiëren in SQL of YAML

In plaats van een metrische weergave te bouwen in de gebruikersinterface, kunt u deze rechtstreeks definiëren in YAML of in SQL met behulp van de CREATE VIEW instructie met de WITH METRICS component. Hier volgt de volledige definitie van de metrische voorbeeldweergave. Het is een gefilterde weergave van samples.tpch.orders gekoppeld aan samples.tpch.customer, met velden voor ordermaand, orderstatus en klantmarktsegment, en metingen voor het aantal bestellingen, de totale omzet en de omzet per klant.

Note

In deze voorbeelden wordt het fields trefwoord gebruikt. Wanneer u een metrische weergave in de editor met weinig code maakt, wordt in plaats daarvan het equivalente dimensions trefwoord gebruikt voor de YAML die wordt gegenereerd. Zie Velden.

YAML-definitie

Als u de metrische weergave rechtstreeks in YAML wilt definiëren, gebruikt u de volgende definitie:

De YAML-definitie weergeven
version: 1.1
comment: 'Orders KPIs for sales analysis'
source: samples.tpch.orders

joins:
  - name: customer
    source: samples.tpch.customer
    'on': source.o_custkey = customer.c_custkey
    rely:
      at_most_one_match: true

filter: source.o_orderdate > '1990-01-01'

fields:
  - name: Order Month
    expr: DATE_TRUNC('MONTH', source.o_orderdate)
    comment: 'Month of order'

  - name: Order Status
    expr: |-
      CASE
        WHEN source.o_orderstatus = 'O' THEN 'Open'
        WHEN source.o_orderstatus = 'P' THEN 'Processing'
        WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
      END
    comment: 'Status of order'

  - name: Market Segment
    expr: customer.c_mktsegment
    comment: 'Customer market segment'

measures:
  - name: Order Count
    expr: COUNT(1)
    comment: 'Total number of orders'

  - name: Total Revenue
    expr: SUM(source.o_totalprice)
    comment: 'Sum of all order prices'

  - name: Total Revenue per Customer
    expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
    comment: 'Average revenue per unique customer'

Voor volledige details van de YAML-syntaxis, zie de metrische weergave YAML-syntaxis naslaginformatie.

SQL-opdracht

Als u de metrische weergave in SQL wilt maken, verpakt u de YAML-definitie in een CREATE VIEW instructie met de WITH METRICS component en plaatst u de YAML tussen $$ scheidingstekens:

De SQL-instructie weergeven
CREATE OR REPLACE VIEW orders_metric_view WITH METRICS LANGUAGE YAML AS
$$
  version: 1.1
  comment: "Orders KPIs for sales analysis"
  source: samples.tpch.orders

  joins:
    - name: customer
      source: samples.tpch.customer
      'on': source.o_custkey = customer.c_custkey
      rely:
        at_most_one_match: true

  filter: source.o_orderdate > '1990-01-01'

  fields:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', source.o_orderdate)
      comment: "Month of order"

    - name: Order Status
      expr: |-
        CASE
          WHEN source.o_orderstatus = 'O' THEN 'Open'
          WHEN source.o_orderstatus = 'P' THEN 'Processing'
          WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
        END
      comment: "Status of order"

    - name: Market Segment
      expr: customer.c_mktsegment
      comment: "Customer market segment"

  measures:
    - name: Order Count
      expr: COUNT(1)
      comment: "Total number of orders"

    - name: Total Revenue
      expr: SUM(source.o_totalprice)
      comment: "Sum of all order prices"

    - name: Total Revenue per Customer
      expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
      comment: "Average revenue per unique customer"
$$

Velden en metingen bulksgewijs importeren met jokertekens

Van toepassing op: Databricks Runtime 18.2 en hoger met YAML-specificatie 1.1

In plaats van elk veld weer te geven, kunt u een jokerteken in een expr veld gebruiken om alle kolommen uit de bron of een gekoppelde tabel te importeren. Dit is handig wanneer u wilt dat de metrische weergave elke kolom uit een upstream-asset beschikbaar maakt. Laat name weg bij een jokerteken, omdat Azure Databricks elke kolomnaam uit de bron afleidt. U kunt jokertekens combineren met expliciet gedefinieerde velden en metingen.

Met de volgende definitie worden alle velden uit de bron geïmporteerd, behalve één, een veld uit de gekoppelde customer tabel toegevoegd en een expliciete meting gedefinieerd:

version: 1.1
source: samples.tpch.orders

joins:
  - name: customer
    source: samples.tpch.customer
    'on': source.o_custkey = customer.c_custkey

fields:
  - expr: source.* EXCEPT (o_comment)
  - name: Market Segment
    expr: customer.c_mktsegment

measures:
  - name: Order Count
    expr: COUNT(1)

Voor de volledige jokertekensyntaxis, inclusief het importeren van alle kolommen uit een gekoppelde tabel (customer.*), structuitbreiding en het oplossen van naamconflicten, raadpleegt u Velden en metingen bulksgewijs importeren met jokertekens.

Genie Code gebruiken

Genie Code is een AI-assistent die u opent via de knop met het Sparkle Genie Code-pictogram. in de rechterbovenhoek van het editorvenster. Beschrijf wat u in natuurlijke taal wilt en Genie Code werkt de definitie van de metrische weergave voor u bij. Genie Code is contextbewust: op het tabblad UI wordt de editor voor u bijgewerkt en in de YAML-editor wordt YAML ingevoegd.

Als u één meting wilt toevoegen aan een bestaande metrische weergave, beschrijft u deze:

Tip

Laat Genie Code (agentmodus) dit voor u doen:

add an average sales per customer measure

Als u een volledige metrische weergave wilt maken op basis van een beschrijving in natuurlijke taal, beschrijft u deze in Genie Code. Het resultaat is een definitie die vergelijkbaar is met het voorbeeld op deze pagina; de exacte veldnamen en opmerkingen kunnen variëren.

Tip

Laat Genie Code (agentmodus) dit voor u doen:

Create a metric view on samples.tpch.orders joined to samples.tpch.customer on o_custkey = c_custkey. Add a field for order month by truncating the order date to the month, a field for order status that maps 'O' to Open, 'P' to Processing, and 'F' to Fulfilled, and a field for the customer market segment. Add measures for the total number of orders, the total revenue as the sum of order price, and the total revenue per unique customer. Filter to orders placed after January 1, 1990.

U kunt ook een metrische weergave maken door een Tableau- of Power BI-bestand te importeren. Zie Genie Code gebruiken om een Tableau- of Power BI-bestand te importeren.

Aanvullende informatiebronnen

Nadat u een metrische weergave hebt gemaakt, gebruikt u de volgende resources om uw werk te doorzoeken, te modelleren en te beheren.