Tutorial: Escritura de una consulta válida para incorporar datos de métricas
Importante
A partir del 20 de septiembre de 2023, no podrá crear nuevos recursos de Metrics Advisor. El servicio Metrics Advisor se va a retirar el 1 de octubre de 2026.
En este tutorial, aprenderá a:
- Escritura de una consulta de incorporación de datos válida
- Errores comunes y cómo evitarlos
Requisitos previos
Creación de un recurso de Metrics Advisor
Para explorar las funcionalidades de Metrics Advisor, es posible que tenga que crear un recurso de Metrics Advisor en Azure Portal para implementar la instancia de Metrics Advisor.
Requisitos del esquema de datos
Metrics Advisor de Azure AI es un servicio de detección, diagnóstico y análisis de anomalías de serie temporal. Como servicio basado en IA, utiliza los datos para entrenar el modelo usado. El servicio acepta tablas de datos agregados con las columnas siguientes:
- Medida (obligatorio): una medida es un término fundamental o específico de unidad y un valor cuantificable de la métrica. Significa que una o varias columnas contienen valores numéricos.
- Timestamp (Marca de tiempo) (opcional): cero o una columna del tipo
DateTime
oString
. Cuando esta columna no está establecida, la marca de tiempo se establece como la hora de inicio de cada período de ingesta. Formatee la marca de tiempo de la siguiente manera:yyyy-MM-ddTHH:mm:ssZ
. - Dimensión (opcional): una dimensión es uno o más valores de categorías. La combinación de esos valores identifica una serie temporal univariante concreta (por ejemplo, país/región, idioma e inquilino). Las columnas de dimensión pueden ser de cualquier tipo de datos. Tenga cuidado al trabajar con grandes volúmenes de columnas y valores si desea evitar que se procese un número excesivo de dimensiones.
Si usa orígenes de datos como Azure Data Lake Storage o Azure Blob Storage, puede agregar los datos para alinearlos con el esquema de métricas previsible. Esto se debe a que estos orígenes de datos usan un archivo como entrada de métricas.
Si usa orígenes de datos como Azure SQL o Azure Data Explorer, puede usar funciones de agregación para agregar datos al esquema previsible. Esto se debe a que estos orígenes de datos admiten la ejecución de una consulta para obtener datos de métricas de los orígenes.
¿Cómo funciona la ingesta de datos en Metrics Advisor?
Por lo general, hay dos maneras de incorporar las métricas a Metrics Advisor:
- Agregue previamente las métricas en el esquema esperado y almacene los datos en determinados archivos. Rellene la plantilla de ruta de acceso durante la incorporación y Metrics Advisor capturará continuamente nuevos archivos desde la ruta de acceso y realizará la detección en las métricas. Se trata de una práctica común para un origen de datos como Azure Data Lake y Azure Blob Storage.
- Si va a ingerir datos desde orígenes de datos como Azure SQL Server, Azure Data Explorer u otros orígenes, que admiten el uso de un script de consulta, entonces necesita asegurarse de que está construyendo correctamente la consulta. En este artículo se le enseñará a escribir una consulta válida para incorporar datos de métricas según lo previsto.
¿Qué es un intervalo?
Las métricas deben supervisarse con una granularidad determinada según los requisitos empresariales. Por ejemplo, los indicadores clave de rendimiento (KPI) empresariales se supervisan con granularidad diaria. Sin embargo, las métricas de rendimiento del servicio a menudo se supervisan en granularidad por minuto/hora. Por lo tanto, la frecuencia para recopilar datos de métricas de los orígenes es diferente.
Metrics Advisor captura continuamente datos de métricas en cada intervalo de tiempo, el intervalo es igual a la granularidad de las métricas. Cada vez que Metrics Advisor ejecuta la consulta que ha escrito, ingiere datos en este intervalo específico. En función de este mecanismo de ingesta de datos, el script de consulta no debe devolver todos los datos de métricas que existen en la base de datos, pero debe limitar el resultado a un intervalo único.
Escritura de una consulta válida
Use @IntervalStart and @IntervalEnd to limit query results
Para ayudar a lograrlo, se proporcionan dos parámetros para que los use dentro de la consulta: @IntervalStart e @IntervalEnd.
Cada vez que se ejecuta la consulta, @IntervalStart y @IntervalEnd se actualizarán automáticamente a la marca de tiempo del intervalo más reciente y obtiene los datos de métricas correspondientes. @IntervalEnd siempre se asigna como granularidad @IntervalStart + 1.
Este es un ejemplo del uso adecuado de estos dos parámetros con Azure SQL Server:
SELECT [timestampColumnName] AS timestamp, [dimensionColumnName], [metricColumnName] FROM [sampleTable] WHERE [timestampColumnName] >= @IntervalStart and [timestampColumnName] < @IntervalEnd;
Al escribir el script de consulta de esta manera, las marcas de tiempo de las métricas deben estar en el mismo intervalo para cada resultado de la consulta. Metrics Advisor alineará automáticamente las marcas de tiempo con la granularidad de las métricas.
Uso de funciones de agregación para agregar métricas
Es habitual que haya muchas columnas dentro de los orígenes de datos de los clientes; sin embargo, no tiene sentido que todas ellas se supervisen o incluyan como una dimensión. Los clientes pueden usar funciones de agregación para agregar métricas y solo incluir columnas significativas como dimensiones.
A continuación se muestra un ejemplo en el que hay más de diez columnas en el origen de datos de un cliente, pero solo algunas de ellas son significativas y deben incluirse en una métrica que se va a supervisar y agregarse a esta.
TS | Mercado | Sistema operativo del dispositivo | Category | ... | Medida1 | Medida2 | Medida3 |
---|---|---|---|---|---|---|---|
2020-09-18T12:23:22Z | Nueva York | iOS | Gafas | ... | 43242 | 322 | 54546 |
2020-09-18T12:27:34Z | Beijing | Android | Bolsas | ... | 3333 | 126 | 67677 |
... |
Si el cliente desea supervisar "Medida1" con granularidad por hora y elegir "Mercado" y "Categoría" como dimensiones, a continuación se muestran ejemplos de cómo hacer un uso adecuado de las funciones de agregación para lograrlo:
Ejemplo de 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)
Ejemplo de Azure Data Explorer:
SampleTable | where TS >= @IntervalStart and TS < @IntervalEnd | summarize M1 = sum(Measure1) by Market, Category, NewTS = startofhour(TS)
Nota
En el caso anterior, al cliente le gustaría supervisar las métricas con una granularidad horaria, pero la marca de tiempo (TS) sin procesar no está alineada. Dentro de la instrucción de agregación, se requiere un proceso en la marca de tiempo para alinearse con la hora y generar una nueva columna de marca de tiempo denominada "NewTS".
Errores comunes durante la incorporación
Error: Se encuentran varios valores de marca de tiempo en los resultados de la consulta
Se trata de un error común, si no ha limitado los resultados de la consulta en un intervalo. Por ejemplo, si está supervisando una métrica con una granularidad diaria, recibirá este error si la consulta devuelve resultados como este:
Hay varios valores de marca de tiempo y no están en el mismo intervalo de métricas (un día). Consulte Funcionamiento de la ingesta de datos en Metrics Advisor y comprenda que Metrics Advisor captura datos de métricas en cada intervalo de métricas. A continuación, asegúrese de usar @IntervalStart e @IntervalEnd en la consulta para limitar los resultados en un intervalo. Consulte Use @IntervalStart and @IntervalEnd to limit query results para obtener ejemplos y una guía detallada.
Error: Los valores de métrica duplicados se encuentran en la misma combinación de dimensiones dentro de un intervalo de métricas
Dentro de un intervalo, Metrics Advisor espera solo un valor de métrica para las mismas combinaciones de dimensiones. Por ejemplo, si está supervisando una métrica con una granularidad diaria, recibirá este error si la consulta devuelve resultados como este:
Consulte Uso de funciones de agregación para agregar métricas para obtener instrucciones detalladas y ejemplos.
Pasos siguientes
Pase al siguiente artículo, donde aprenderá a crear.