Delen via


Wat zijn aangepaste berekeningen?

Met aangepaste berekeningen kunt u dynamische metrische gegevens en transformaties definiëren zonder gegevenssetquery's te wijzigen. Op deze pagina wordt uitgelegd hoe u aangepaste berekeningen gebruikt in AI/BI-dashboards.

Waarom aangepaste berekeningen gebruiken?

Met aangepaste berekeningen kunt u nieuwe velden maken en visualiseren op basis van bestaande dashboardgegevenssets zonder de bron-SQL te wijzigen. U kunt maximaal 200 aangepaste berekeningen per gegevensset definiëren.

Aangepaste berekeningen zijn een van de volgende typen:

  • Berekende metingen: geaggregeerde waarden, zoals totale verkoop of gemiddelde kosten. Berekende metingen kunnen de AGGREGATE OVER opdracht gebruiken om waarden in tijdsbereiken te berekenen.
  • Berekende dimensies: Niet-samengevoegde waarden of transformaties, zoals het categoriseren van leeftijdsbereiken of opmaaktekenreeksen.

Aangepaste berekeningen gedragen zich op dezelfde manier als metrische weergaven, maar zijn afgestemd op de gegevensset en het dashboard waarin ze zijn gedefinieerd. Als u aangepaste metrische gegevens wilt definiëren die kunnen worden gebruikt met andere gegevensassets, raadpleegt u de metrische weergaven van Unity Catalog.

Dynamische metrische gegevens maken met berekende metingen

Stel dat u de volgende gegevensset hebt:

Item Regio Prijs Kosten Datum
Apples USA 30 15 2024-01-01
Apples Canada 20 10 2024-01-01
Oranges USA 20 15 02-01-2024
Oranges Canada 15 10 02-01-2024

U wilt de winstmarge per regio visualiseren. Zonder aangepaste berekeningen moet u een nieuwe gegevensset maken met een margin kolom:

Regio Margin
USA 0.40
Canada 0.43

Hoewel deze aanpak werkt, is de nieuwe gegevensset statisch en ondersteunt deze mogelijk slechts één visualisatie. Filters die op de oorspronkelijke gegevensset worden toegepast, hebben geen invloed op de nieuwe gegevensset zonder aanvullende handmatige aanpassingen.

Met aangepaste berekeningen kunt u de winstmarge als een aggregatie uitdrukken met behulp van de volgende formule:

(SUM(Price) - SUM(Cost)) / SUM(Price)

Deze meting is dynamisch. Wanneer deze wordt gebruikt in een visualisatie, wordt deze automatisch bijgewerkt om de groeperingen van de visualisatie weer te geven. Bijvoorbeeld, de hierboven genoemde maatstaf kan worden gebruikt om de winstmarge te visualiseren aan de hand van Region of Item, afhankelijk van wat in de visualisatie is geselecteerd.

Niet-samengevoegde waarden definiëren met berekende dimensies

Met berekende dimensies kunt u niet-samengevoegde waarden of lichtgewicht transformaties definiëren zonder de brongegevensset te wijzigen. Dit is handig als u gegevens voor visualisatie wilt ordenen of opnieuw wilt opmaken.

Als u bijvoorbeeld leeftijdstrends per leeftijdsgroep wilt analyseren in plaats van afzonderlijke leeftijden, kunt u een aangepaste age_group dimensie definiëren met behulp van de volgende expressie:

CASE
   WHEN age < 18 THEN '<18'
   WHEN age >= 18 AND age < 25 THEN '18–24'
   WHEN age >= 25 AND age < 35 THEN '25–34'
   WHEN age >= 35 AND age < 45 THEN '35–44'
   WHEN age >= 45 AND age < 55 THEN '45–54'
   WHEN age >= 55 AND age < 65 THEN '55–64'
   WHEN age >= 65 THEN '65+'
END

Berekeningen definiëren via een venster

Een veelvoorkomende taak in dashboardvisualisaties is het berekenen van een aggregatie binnen een bereik, zoals de doorlopende som van de verkoop gedurende de afgelopen zeven dagen. Aangepaste berekeningen ondersteunen deze functionaliteit via vensterfuncties, waarmee u berekeningen kunt uitvoeren in een set rijen (een 'venster') die zijn gerelateerd aan de huidige rij.

AI-/BI-dashboards ondersteunen twee soorten vensterfuncties:

  • Scalaire vensterfuncties, die over vaste groeperingen aggregeren en zich gedragen als scalaire functies. Wanneer ze alleen worden gebruikt, vormen ze berekende dimensies.
  • Statistische vensterfuncties, die over dynamische groeperingen aggregeren en zich gedragen als statistische functies. Wanneer ze worden gebruikt, vormen ze berekende metingen.

Vensterfuncties vormen ook de basis voor detailexpressies, waarmee u aggregatiegranulariteit onafhankelijk van de groeperingen van uw visualisatie kunt beheren.

Scalaire vensterfuncties

Scalaire vensterfuncties gebruiken de OVER operator met optionele PARTITION BY clausules om aggregaties te berekenen over gerelateerde rijen voordat er enige visualisatiegroep is opgetreden. Ze aggregeren over een statische set partities die zijn gedefinieerd in de vensterfunctie zelf, voordat ze weer als dimensie worden samengevoegd met de niet-vertaalde onderliggende tabel.

Voorbeeld van het berekenen van de totale verkoop per regio:

SUM(sales) OVER (PARTITION BY Region)

Voorbeeld van het berekenen van de cumulatieve verkoop per regio:

SUM(sales) OVER (PARTITION BY Region ORDER BY Date RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)

OVER syntaxis

<AGGREGATE_FUNCTION>(<column>) OVER (
  [PARTITION BY <dimensions>]
  [ORDER BY <column>]
  [ROWS|RANGE frame_specification]
)

Zie de Vensterfuncties uit de SQL-taalreferentie voor meer informatie.

Aggregatieve vensterfuncties

Aggregatievensterfuncties gebruiken de AGGREGATE OVER-operator om geaggregeerde vensterfuncties te berekenen nadat visualisatiegroepering is toegepast. In tegenstelling tot scalaire vensterfuncties nemen ze geen PARTITION BY clausule omdat de groepen waarover moet worden geaggregeerd, automatisch worden overgenomen van de visualisatie waarin de expressie wordt gebruikt. Met ORDER BY het veld kunt u alle gerelateerde groepen aggregeren.

Met behulp van dezelfde gegevensset als in het vorige voorbeeld berekent de volgende expressie de achtervolgende gemiddelde winstmarge van zeven dagen met behulp van de AGGREGATE OVER operator.

(
  (SUM(Price) - SUM(Cost)) / SUM(Price)
) AGGREGATE OVER (
  ORDER BY Date TRAILING 7 DAY
)

Na het maken kan deze meting worden toegepast in elke visualisatie.

AGGREGATE OVER syntaxis

<AGGREGATE_EXPRESSION> AGGREGATE OVER (
  ORDER BY <column> <frame_specification>
)

De framespecificatie kan een van de volgende zijn:

  • CURRENT
  • CUMULATIVE
  • ALL
  • (TRAILING|LEADING) <number> <unit>
    • <number> is een positief geheel getal
    • <unit> is DAY, MONTH, of YEAR
    • voorbeeld: TRAILING 7 DAY of LEADING 1 MONTH

In de volgende tabel wordt aangegeven hoe de framespecificatie voor aggregaties zich verhoudt tot de equivalente SQL-vensterframeclausule.

Framespecificatie Equivalente SQL-vensterframeclausule
CURRENT RANGE BETWEEN CURRENT ROW AND CURRENT ROW
ALL RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
CUMULATIVE RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
TRAILING <number> <unit> RANGE BETWEEN <number> <unit> PRECEDING and 1 <unit> PRECEDING
LEADING <number> <unit> RANGE BETWEEN 1 <unit> FOLLOWING and <number> <unit> FOLLOWING

Als het ORDER BY veld niet is gegroepeerd in de visualisatie, AGGREGATE OVER wordt de geaggregeerde waarde van de laatste rij gebruikt als de waarde die voor elke groep moet worden weergegeven. Dit komt overeen met het 'laatste' semi-additieve gedrag.

OVER Versus AGGREGATE OVER

Het belangrijkste verschil tussen OVER en AGGREGATE OVER is dat OVER een scalaire functie en AGGREGATE OVER een statistische functie is. OVER vereist een PARTITION BY clausule om groepen te definiëren, terwijl AGGREGATE OVER zijn groepen erft van de omringende visualisatie en gegevens buiten de huidige groep kan opnemen.

Gebruik OVER de syntaxis voor:

  • Vensterberekeningen die moeten worden gebruikt in niet-samengevoegde contexten, zoals tabellen.
  • Vensterberekeningen die alle visualisatiegroepen en filters moeten negeren.
  • Samenvoegen op een vast detailniveau: Computing van aggregaties op een specifieke granulariteit door gebruik te maken van PARTITION BY.
  • Classificatie- en analysefuncties gebruiken, zoals ROW_NUMBER, RANK. LAG

Gebruik AGGREGATE OVER de syntaxis voor:

  • Vensterberekeningen die kunnen worden gebruikt in verschillende groeperingscontexten of die gegevens buiten de huidige groep moeten opnemen.
  • Vensterberekeningen die visualisatiefilters respecteren.
  • Samenvoegen op een grover detailniveau dan bij de visualisatie: Dimensies uitsluiten met behulp van het ALL frame.
  • Tijdsbereiken die robuust zijn voor ontbrekende rijen: Vensters verplaatsen met TRAILING of LEADING.

Prestatievoordelen

Aangepaste berekeningen zijn geoptimaliseerd voor prestaties. Voor kleine gegevenssets (≤100.000 rijen en ≤100 MB) worden berekeningen uitgevoerd in de browser voor snellere reactiesnelheid. Grotere gegevenssets worden verwerkt door het SQL Warehouse. Zie Optimalisatie en caching van gegevenssets voor meer informatie.

Een aangepaste berekening maken

In dit voorbeeld wordt een berekende meting gemaakt op basis van de samples.nyctaxi.trips gegevensset. Er wordt uitgegaan van algemene kennis over het werken met AI/BI-dashboards. Als u niet bekend bent met het ontwerpen van AI/BI-dashboards, raadpleegt u Een dashboard maken om aan de slag te gaan.

  1. Open een bestaande gegevensset of maak een nieuwe.

  2. Klik op Aangepaste berekening.

    De knop Aangepaste berekening is gemarkeerd in de rechterbovenhoek van het resultatenvenster.

  3. Aan de rechterkant van het scherm wordt een Berekening maken deelvenster geopend. Voer in het tekstveld NaamKosten per mijl in.

  4. (Optioneel) Voer in het tekstveld Beschrijving 'Gebruikt het tariefbedrag en de reisafstand voor het berekenen van de kosten per mijl' in.

  5. Voer in het veld Expressie het volgende in:

    try_divide(SUM(fare_amount), SUM(trip_distance))
    
  6. Klik op Create.

De editor voor aangepaste berekeningen met de waarden uit de ingevulde instructies.

Naar andere berekeningen verwijzen

Aangepaste berekeningen kunnen verwijzen naar andere aangepaste berekeningen die zijn gedefinieerd in dezelfde gegevensset. Hierdoor kunt u complexe metrische gegevens bouwen door eenvoudigere berekeningen op te stellen, hergebruik en onderhoudbaarheid te bevorderen.

Wanneer u naar een andere aangepaste berekening verwijst, gebruikt u de naam rechtstreeks in uw expressie alsof het een kolom in de gegevensset is.

Stel dat u deze berekende metingen hebt gemaakt:

  • total_revenue: SUM(sale_amount)
  • total_cost: SUM(cost_amount)

U kunt een derde berekende meting maken die verwijst naar beide:

  • profit_margin: (MEASURE(total_revenue) - MEASURE(total_cost)) / MEASURE(total_revenue)

Opmerking

  • U kunt alleen verwijzen naar berekeningen in dezelfde gegevensset.
  • Kringverwijzingen zijn niet toegestaan (berekening A kan niet verwijzen naar berekening B als B verwijst naar A).
  • Berekeningen waarnaar wordt verwezen, moeten worden gemaakt voordat ze kunnen worden gebruikt in andere expressies.

Aangepaste berekeningen toevoegen aan een metrische weergave

Belangrijk

Deze functie bevindt zich in openbare preview-versie.

U kunt aangepaste berekeningen definiëren boven op een gegevensset die is gemaakt met een metrische weergave. Alleen de resultatentabel en het schema worden weergegeven wanneer u de gegevensset opent. Klik op Aangepaste berekening om een nieuwe aangepaste berekening te definiëren. Als u aanvullende aangepaste metrische gegevens wilt definiëren die andere gegevensassets kunnen gebruiken, moet u wijzigingen aanbrengen in de weergavedefinitie. Zie metrische weergaven van Unity Catalog.

Als u een nieuwe metrische weergave wilt definiëren vanuit de editor voor dashboardgegevenssets, raadpleegt u Exporteren als een metrische weergave.

Het schema weergeven

Klik op het tabblad Schema in het resultatenvenster om de aangepaste berekening en de bijbehorende opmerking weer te geven.

Berekende metingen worden weergegeven in de sectie Metingen en gemarkeerd met een pictogram voor berekende metingen fx. De waarde die is gekoppeld aan een berekende meting wordt dynamisch berekend wanneer u de GROUP BY in een visualisatie instelt. U kunt de waarde in de resultatentabel niet zien. Berekende dimensies worden weergegeven in de sectie Dimensies .

Er wordt een berekende meting weergegeven op het tabblad Schema.

Een aangepaste berekening gebruiken in een visualisatie

U kunt de eerder gemaakte berekende meting Kosten per mijl gebruiken in een visualisatie.

Berekende metingen worden automatisch geaggregeerd op basis van de dimensies die in de grafiek zijn geconfigureerd. Dit gedrag is hetzelfde als hoe dimensies en metingen werken in metrische weergaven, waarbij de aggregatie dynamisch wordt aangepast aan de groeperingen die u in uw visualisatie definieert.

  1. Klik op Canvas -. Plaats vervolgens een nieuwe visualisatiewidget op het canvas.
  2. Gebruik het deelvenster Visualisatieconfiguratie om de instellingen als volgt te bewerken:
    • Gegevensset: Taxi-gegevens
    • Visualisatie: staafdiagram
    • X-as:
      • veld: dropoff_zip
      • Schaaltype: Categorisch
      • Transformeren: Geen
    • Y-as:
      • Kosten per mijl

Opmerking

Tabelvisualisaties ondersteunen berekende dimensies, maar bieden geen ondersteuning voor berekende metingen.

In de volgende afbeelding ziet u de grafiek.

een staafdiagram dat de kosten per mijl versus afleverpostcode toont.

Visualisaties met aangepaste berekeningen worden automatisch bijgewerkt wanneer filters worden toegepast. Als u bijvoorbeeld een pickup_zip filter toevoegt, wordt de visualisatie bijgewerkt om alleen gegevens weer te geven die overeenkomen met de geselecteerde waarden.

Een aangepaste berekening bewerken

Een berekening bewerken:

  1. Klik op het tabblad Gegevens en klik vervolgens op de gegevensset die is gekoppeld aan de berekening die u wilt bewerken.
  2. Klik op het tabblad Schema in het resultatenvenster.
  3. Metingen en dimensies worden weergegeven onder de lijst met gegevenssetvelden. Klik op het kebabmenu-pictogram. Het kebabmenu rechts van de berekening die u wilt bewerken. Klik vervolgens op Bewerken.
  4. Werk de tekstvelden bij die u wilt aanpassen in het paneel Aangepaste berekening bewerken. Klik vervolgens op bijwerken.

Een aangepaste berekening verwijderen

Een berekening verwijderen:

  1. Klik op het tabblad Gegevens en klik vervolgens op de gegevensset die is gekoppeld aan de meting die u wilt bewerken.
  2. Klik op het tabblad Schema in het resultatenvenster.
  3. De sectie Metingen wordt weergegeven onder de lijst met velden. Klik op het kebabmenu-icoon. Het kebabmenu bevindt zich aan de rechterkant van de berekening die u wilt bewerken. Klik vervolgens op Verwijderen.
  4. Klik op Verwijderen in het dialoogvenster Verwijderen dat verschijnt.

Beperkingen

Als u aangepaste berekeningen wilt gebruiken, moet het volgende waar zijn:

  • Kolommen die in de expressie worden gebruikt, moeten deel uitmaken van dezelfde gegevensset.
  • Expressies die verwijzen naar externe tabellen of gegevensbronnen worden niet ondersteund en kunnen mislukken of onverwachte resultaten retourneren.

Ondersteunde functies

Zie referentie voor aangepaste berekeningsfuncties voor een volledig overzicht van alle ondersteunde functies voor aangepaste berekeningen. Als u een niet-ondersteunde functie probeert te gebruiken, treedt er een fout op.

Voorbeelden

In de volgende voorbeelden ziet u veelvoorkomende toepassingen voor aangepaste berekeningen. Elke aangepaste berekening wordt weergegeven in het schema van de gegevensset op het tabblad Gegevens. Op het canvas kunt u de aangepaste berekening als veld kiezen.

Gegevens voorwaardelijk filteren en aggregeren

Gebruik een CASE instructie om gegevens voorwaardelijk samen te voegen. In het volgende voorbeeld wordt de samples.nyctaxi.trips gegevensset gebruikt en wordt de som van de tarieven berekend voor alle ritten die beginnen in de postcode 10103.

SUM(CASE
  WHEN pickup_zip=10103 THEN fare_amount
  WHEN pickup_zip!=10103 THEN 0
END)

Tekenreeksen maken

Gebruik de CONCAT functie om een nieuwe tekenreekswaarde te maken. Zie concat functie en concat_ws functie.

CONCAT(first_name, ' ', last_name)

Datums opmaken

Gebruik DATE_FORMAT deze indeling om datumtekenreeksen op te maken die worden weergegeven in visualisaties.

DATE_FORMAT(tpep_pickup_datetime, 'YYYY-MM-dd')