Zelfstudie: Een geldige query schrijven om metrische gegevens te onboarden

Belangrijk

Vanaf 20 september 2023 kunt u geen nieuwe Metrics Advisor-resources maken. De Metrics Advisor-service wordt op 1 oktober 2026 buiten gebruik gesteld.

In deze zelfstudie leert u het volgende:

  • Een geldige onboardingquery voor gegevens schrijven
  • Veelvoorkomende fouten en hoe u deze kunt voorkomen

Vereisten

Een Metrics Advisor-resource maken

Als u de mogelijkheden van Metrics Advisor wilt verkennen, moet u mogelijk een Metrics Advisor-resource maken in Azure Portal om uw Metrics Advisor-exemplaar te implementeren.

Vereisten voor gegevensschema

Azure AI Metrics Advisor is een service voor anomaliedetectie, diagnose en analyse van tijdreeksen. Als ai-service worden uw gegevens gebruikt om het gebruikte model te trainen. De service accepteert tabellen van geaggregeerde gegevens met de volgende kolommen:

  • Meting (vereist): Een meting is een fundamentele of eenheidsspecifieke term en een meetbare waarde van de metrische waarde. Dit betekent een of meer kolommen met numerieke waarden.
  • Tijdstempel (optioneel): Nul of één kolom, met het type DateTime of String. Wanneer deze kolom niet is ingesteld, wordt de tijdstempel ingesteld als de begintijd van elke opnameperiode. Maak de tijdstempel als volgt op: yyyy-MM-ddTHH:mm:ssZ.
  • Dimensie (optioneel): Een dimensie is een of meer categorische waarden. De combinatie van deze waarden identificeert een bepaalde niet-variabele tijdreeks (bijvoorbeeld land/regio, taal en tenant). De dimensiekolommen kunnen van elk gegevenstype zijn. Wees voorzichtig bij het werken met grote hoeveelheden kolommen en waarden, om te voorkomen dat er buitensporig veel dimensies worden verwerkt.

Als u gegevensbronnen zoals Azure Data Lake Storage of Azure Blob Storage gebruikt, kunt u uw gegevens aggregeren om te voldoen aan het verwachte schema voor metrische gegevens. Dit komt doordat deze gegevensbronnen een bestand gebruiken als invoer voor metrische gegevens.

Als u gegevensbronnen zoals Azure SQL of Azure Data Explorer gebruikt, kunt u aggregatiefuncties gebruiken om gegevens samen te voegen in uw verwachte schema. Dit komt doordat deze gegevensbronnen ondersteuning bieden voor het uitvoeren van een query om metrische gegevens uit bronnen op te halen.

Hoe werkt gegevensopname in Metrics Advisor?

Bij het onboarden van uw metrische gegevens naar Metrics Advisor zijn er over het algemeen twee manieren:

  • Voeg uw metrische gegevens vooraf samen in het verwachte schema en sla gegevens op in bepaalde bestanden. Vul de padsjabloon in tijdens de onboarding en Metrics Advisor pakt voortdurend nieuwe bestanden uit het pad en voert detectie uit op de metrische gegevens. Dit is gebruikelijk voor een gegevensbron, zoals Azure Data Lake en Azure Blob Storage.
  • Als u gegevens opneemt uit gegevensbronnen zoals Azure SQL Server, Azure Data Explorer of andere bronnen, die ondersteuning bieden voor het gebruik van een queryscript, moet u ervoor zorgen dat u uw query op de juiste manier maakt. In dit artikel leert u hoe u een geldige query schrijft voor het onboarden van metrische gegevens zoals verwacht.

Wat is een interval?

Metrische gegevens moeten worden bewaakt op een bepaalde granulariteit volgens de bedrijfsvereisten. Bijvoorbeeld: KPI's (Business Key Performance Indicators) worden dagelijks gecontroleerd op granulariteit. Metrische gegevens over serviceprestaties worden echter vaak gecontroleerd op granulariteit per minuut/uur. De frequentie voor het verzamelen van metrische gegevens uit bronnen verschilt dus.

Metrics Advisor haalt continu metrische gegevens op elk tijdsinterval, het interval is gelijk aan de granulariteit van de metrische gegevens. Telkens wanneer Metrics Advisor de query uitvoert die u hebt geschreven, worden gegevens opgenomen op dit specifieke interval. Op basis van dit mechanisme voor gegevensopname moet het queryscript niet alle metrische gegevens retourneren die in de database aanwezig zijn, maar het resultaat moet worden beperkt tot één interval.

Illustration that describes what is an interval

Een geldige query schrijven

Use @IntervalStart and @IntervalEnd to limit query results

Om dit te bereiken, zijn er twee parameters opgegeven voor gebruik in de query: @IntervalStart en @IntervalEnd.

Telkens wanneer de query wordt uitgevoerd en @IntervalStart@IntervalEnd automatisch wordt bijgewerkt naar het laatste intervaltijdstempel en worden bijbehorende metrische gegevens opgehaald. @IntervalEnd wordt altijd toegewezen als @IntervalStart + 1 granulariteit.

Hier volgt een voorbeeld van het juiste gebruik van deze twee parameters met Azure SQL Server:

SELECT [timestampColumnName] AS timestamp, [dimensionColumnName], [metricColumnName] FROM [sampleTable] WHERE [timestampColumnName] >= @IntervalStart and [timestampColumnName] < @IntervalEnd;

Door het queryscript op deze manier te schrijven, moeten de tijdstempels van metrische gegevens in hetzelfde interval vallen voor elk queryresultaat. Metrics Advisor zal de tijdstempels automatisch uitlijnen met de granulariteit van de metrische gegevens.

Aggregatiefuncties gebruiken om metrische gegevens samen te voegen

Het is een veelvoorkomend geval dat er veel kolommen in gegevensbronnen van klanten zijn, maar niet allemaal zinvol zijn om te worden bewaakt of opgenomen als dimensie. Klanten kunnen aggregatiefuncties gebruiken om metrische gegevens samen te voegen en alleen zinvolle kolommen als dimensies op te nemen.

Hieronder ziet u een voorbeeld waarin er meer dan 10 kolommen in de gegevensbron van een klant staan, maar slechts enkele kolommen zinvol zijn en moeten worden opgenomen en samengevoegd in een metrische waarde die moet worden bewaakt.

TS Markt Besturingssysteem van apparaat Categorie ... Measure1 Measure2 Measure3
2020-09-18T12:23:22Z New York iOS Zonnebril ... 43242 322 54546
2020-09-18T12:27:34Z Peking Android Zakken ... 3333 126 67677
...

Als de klant 'Measure1' op uurlijkse granulariteit wil bewaken en 'Market' en 'Category' als dimensies wilt kiezen, zijn hieronder voorbeelden van hoe u de aggregatiefuncties correct kunt gebruiken om dit te bereiken:

  • SQL-voorbeeld:

        SELECT dateadd(hour, datediff(hour, 0, TS),0) as NewTS
        ,Market
        ,Category
        ,sum(Measure1) as M1
        FROM [dbo].[SampleTable] where TS >= @IntervalStart and TS < @IntervalEnd
        group by Market, Category, dateadd(hour, datediff(hour, 0, TS),0)
    
  • Azure Data Explorer-voorbeeld:

        SampleTable
        | where TS >= @IntervalStart and TS < @IntervalEnd
        | summarize M1 = sum(Measure1) by Market, Category, NewTS = startofhour(TS)
    

Notitie

In het bovenstaande geval wil de klant metrische gegevens bij een granulariteit per uur bewaken, maar de onbewerkte tijdstempel (TS) is niet uitgelijnd. Binnen de aggregatie-instructie is een proces voor de tijdstempel vereist om op het uur uit te lijnen en een nieuwe tijdstempelkolom met de naam 'NewTS' te genereren.

Veelvoorkomende fouten tijdens onboarding

  • Fout: Er worden meerdere tijdstempelwaarden gevonden in queryresultaten

    Dit is een veelvoorkomende fout als u niet binnen één interval queryresultaten hebt beperkt. Als u bijvoorbeeld een metrische waarde bewaakt met een dagelijkse granulariteit, krijgt u deze fout als uw query resultaten retourneert zoals deze:

    Screenshot that shows multiple timestamp values returned

    Er zijn meerdere tijdstempelwaarden en ze bevinden zich niet in hetzelfde interval voor metrische gegevens (één dag). Controleer hoe gegevensopname werkt in Metrics Advisor? en begrijp dat Metrics Advisor metrische gegevens opneemt bij elk interval voor metrische gegevens. Zorg er vervolgens voor dat u @IntervalStart en @IntervalEnd in uw query gebruikt om de resultaten binnen één interval te beperken. Controleer op Use @IntervalStart and @IntervalEnd to limit query results gedetailleerde richtlijnen en voorbeelden.

  • Fout: Dubbele metrische waarden worden gevonden in dezelfde dimensiecombinatie binnen één metrische interval

    Binnen één interval verwacht Metrics Advisor slechts één metrische waarde voor dezelfde dimensiecombinaties. Als u bijvoorbeeld een metrische waarde bewaakt met een dagelijkse granulariteit, krijgt u deze fout als uw query resultaten retourneert zoals deze:

    Screenshot that shows duplicate values returned

    Raadpleeg Aggregatiefuncties gebruiken om metrische gegevens te aggregeren voor gedetailleerde richtlijnen en voorbeelden.

Volgende stappen

Ga naar het volgende artikel voor meer informatie over het maken.