Tutoriel : Écrire une requête valide pour intégrer des données de métriques

Important

Depuis le 20 septembre 2023, vous ne pouvez plus créer de ressources Metrics Advisor. Le service Metrics Advisor sera mis hors service le 1er octobre 2026.

Dans ce tutoriel, vous allez apprendre à :

  • Écrire une requête d’intégration de données valide.
  • Identifier et éviter les pièges courants.

Prérequis

Créer une ressource Metrics Advisor

Pour explorer les fonctionnalités de Metrics Advisor, vous devrez peut-être Créer une ressource Metrics Advisorcréer une ressource Metrics Advisor dans le portail Azure pour déployer votre instance de Metrics Advisor.

Exigences liées aux schémas de données

Azure AI Metrics Advisor est un service de détection, de diagnostic et d’analyse d’anomalies dans les séries chronologiques. En tant que service basé sur l’IA, il tire parti de vos données pour entraîner le modèle utilisé. Ce service accepte des tables de données agrégées avec les colonnes suivantes :

  • Mesure (obligatoire) : Une mesure est un terme fondamental ou spécifique à une unité et une valeur quantifiable de la métrique. Elle désigne une ou plusieurs colonnes contenant des valeurs numériques.
  • Horodatage (facultatif) : zéro ou une colonne de type DateTime ou String. Quand cette colonne n’est pas définie, l’horodatage est défini en tant qu’heure de début de chaque période d’ingestion. Mettez en forme l’horodatage de la manière suivante : yyyy-MM-ddTHH:mm:ssZ.
  • Dimension (obligatoire) : Une dimension désigne une ou plusieurs valeurs catégoriques. La combinaison de ces valeurs identifie une série chronologique univariée particulière (par exemple le pays/la région, la langue et le locataire). Les colonnes de la dimension peuvent être de n’importe quel type de données. Soyez prudent lorsque vous travaillez avec de grands volumes de colonnes et de valeurs, afin d’éviter le traitement d’un nombre excessif de dimensions.

Si vous utilisez des sources de données telles qu’Azure Data Lake Storage ou Stockage Blob Azure, vous pouvez agréger vos données pour les aligner sur le schéma de métriques attendu. En effet, ces sources de données utilisent un fichier en tant qu’entrée de métriques.

Si vous utilisez des sources de données telles qu’Azure SQL ou Azure Data Explorer, vous pouvez tirer parti des fonctions d’agrégation pour agréger les données dans le schéma attendu. En effet, ces sources de données prennent en charge l’exécution d’une requête permettant d’obtenir des données de métriques à partir de sources.

Comment fonctionne l’ingestion de données dans Metrics Advisor ?

Il existe généralement deux manières d’intégrer des métriques à Metrics Advisor :

  • Pré-agrégez vos métriques dans le schéma attendu et stockez les données dans certains fichiers. Renseignez le modèle de chemin lors de l’intégration, et Metrics Advisor récupérera continuellement les nouveaux fichiers à partir du chemin et effectuera la détection sur les métriques. Il s’agit d’une pratique courante pour une source de données comme Azure Data Lake et Stockage Blob Azure.
  • Si vous ingérez des données à partir de sources de données telles qu’Azure SQL Server, Azure Data Explorer ou d’autres sources qui prennent en charge l’utilisation d’un script de requête, vous devez veiller à construire correctement votre requête. Cet article explique comment écrire une requête valide pour intégrer des données de métriques comme prévu.

Qu’est-ce qu’un intervalle ?

Les métriques doivent être supervisées à un certain niveau de précision en fonction des besoins métier. Par exemple, les indicateurs de performance clés (KPI) sont supervisés avec une précision quotidienne. Toutefois, les métriques de performances de service sont souvent supervisées avec une précision par minute/heure. La fréquence de collecte des données de métriques à partir des sources est donc différente.

Metrics Advisor récupère en permanence les données des métriques à chaque intervalle de temps. L’intervalle est égal à la précision des métriques. À chaque fois, Metrics Advisor exécute la requête que vous avez écrite et ingère les données selon cet intervalle spécifique. En fonction de ce mécanisme d’ingestion de données, le script de requête ne doit pas retourner toutes les données de métriques qui existent dans la base de données, mais il doit limiter le résultat à un intervalle unique.

Illustration qui décrit ce qu’est un intervalle

Comment écrire une requête valide ?

Use @IntervalStart and @IntervalEnd to limit query results

Pour y parvenir, deux paramètres ont été fournis pour être utilisés dans la requête : @IntervalStart et @IntervalEnd.

Chaque fois que la requête est exécutée, @IntervalStart et @IntervalEnd sont automatiquement mise à jour avec l’horodatage d’intervalle le plus récent, et les données de métriques correspondantes sont récupérées. @IntervalEnd est toujours assigné avec la précision @IntervalStart + 1.

Voici un exemple d’utilisation correcte de ces deux paramètres avec Azure SQL Server :

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

Quand vous écrivez le script de requête de cette manière, les horodatages des métriques doivent se situer dans le même intervalle pour chaque résultat de la requête. Metrics Advisor aligne automatiquement les horodatages avec la précision des métriques.

Utiliser les fonctions d’agrégation pour agréger des métriques

Il arrive souvent qu’il y ait un grand nombre de colonnes dans les sources de données client, mais qu’il ne soit pas utile de toutes les superviser ou inclure en tant que dimension. Les clients peuvent utiliser des fonctions d’agrégation pour agréger des métriques et inclure uniquement les colonnes significatives en tant que dimensions.

Voici un exemple où il y a plus de 10 colonnes dans la source de données d’un client, mais où seules quelques-unes d’entre elles sont significatives et doivent être incluses et agrégées dans une métrique à superviser.

TS Marché Système d’exploitation de l’appareil Category ... Measure1 Measure2 Measure3
2020-09-18T12:23:22Z New York iOS Lunettes de soleil ... 43242 322 54546
2020-09-18T12:27:34Z Beijing Android Sacs ... 3333 126 67677
...

Si le client souhaite superviser « Measure1 » avec une précision horaire et choisir « Market » et « Category » comme dimensions, les exemples ci-dessous montrent comment utiliser correctement les fonctions d’agrégation pour y parvenir :

  • Exemple SQL :

        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)
    
  • Exemple Azure Data Explorer :

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

Notes

Dans le cas ci-dessus, le client souhaite superviser les métriques avec une précision horaire, mais l’horodatage brut (TS) n’est pas aligné. Dans l’instruction d’agrégation, un processus sur l’horodatage est requis pour s’aligner à l’heure et générer une nouvelle colonne d’horodatage nommée « NewTS ».

Erreurs courantes lors de l’intégration

  • Erreur : Plusieurs valeurs d’horodatage figurent dans les résultats de requête

    Il s’agit d’une erreur courante si vous n’avez pas limité les résultats d’une requête dans un intervalle. Par exemple, si vous supervisez une métrique avec une précision quotidienne, vous recevez cette erreur si votre requête retourne des résultats comme suit :

    Capture d’écran montrant plusieurs valeurs d’horodatage retournées

    Il y a plusieurs valeurs d’horodatage, et elles ne sont pas dans le même intervalle de métrique (une journée). Consultez Comment fonctionne l’ingestion de données dans Metrics Advisor ? et souvenez-vous que Metrics Advisor récupère les données de métriques à chaque intervalle de métriques. Veillez ensuite à utiliser @IntervalStart et @IntervalEnd dans votre requête pour limiter les résultats à un seul intervalle. Consultez Use @IntervalStart and @IntervalEnd to limit query results pour obtenir des instructions détaillées et des exemples.

  • Erreur : Des valeurs de métriques dupliquées figurent sur la même combinaison de dimensions au sein d’un intervalle de métrique

    Dans un intervalle, Metrics Advisor ne s’attend à voir qu’une seule valeur de métrique pour les mêmes combinaisons de dimensions. Par exemple, si vous supervisez une métrique avec une précision quotidienne, vous recevez cette erreur si votre requête retourne des résultats comme suit :

    Capture d’écran montrant des valeurs dupliquées retournées

    Pour obtenir des instructions et des exemples détaillés, consultez Utiliser des fonctions d’agrégation pour agréger des métriques.

Étapes suivantes

Passez à l’article suivant pour découvrir comment créer.