Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Cree una serie de valores agregados especificados a lo largo de un eje definido.
Sintaxis
T| make-series
[MakeSeriesParameters] [Column=
] Aggregation [default
=
DefaultValue] [,
...] on
Paso AxisColumn [from
start] [to
end] step
[by
[Column=
] GroupExpression [,
...]]
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
Columna | string |
Nombre de la columna de resultado. El valor predeterminado es un nombre derivado de la expresión. | |
DefaultValue | escalar | Valor predeterminado que se va a usar en lugar de valores ausentes. Si no hay ninguna fila con valores específicos de AxisColumn y GroupExpression, se asigna un valor DefaultValue al elemento correspondiente de la matriz. El valor predeterminado es 0. | |
Agregación | string |
✔️ | Llamada a una función de agregación como count() o avg() , con nombres de columna como argumentos. Consulte la lista de funciones de agregación. Solo las funciones de agregación que devuelven resultados numéricos se pueden usar con el operador make-series . |
AxisColumn | string |
✔️ | Columna por la que se ordena la serie. Normalmente, los valores de columna son de tipo datetime o timespan pero se aceptan todos los tipos numéricos. |
iniciar | escalar | ✔️ | Valor de límite inferior de AxisColumn para cada una de las series que se van a compilar. Si no se especifica start , es el primer intervalo o paso que tiene datos en cada serie. |
fin | escalar | ✔️ | Valor no inclusivo de límite superior de AxisColumn. El último índice de la serie temporal es menor que este valor y es el inicio más el entero múltiplo del paso que es menor que el final. Si no se especifica end , es el límite superior del último intervalo, o paso, que tiene datos por cada serie. |
paso | escalar | ✔️ | La diferencia, o tamaño de rango, entre dos elementos consecutivos de la matriz AxisColumn. Para una lista de los intervalos de tiempo posibles, consulte el tipo de datos timespan. |
GroupExpression | expresión sobre las columnas que proporciona un conjunto de valores únicos. Habitualmente se trata de un nombre de columna que ya proporciona un conjunto restringido de valores. | ||
MakeSeriesParameters | Cero o más parámetros separados por espacios en forma de Valor de nombre = que controlan el comportamiento. Consulte Parámetros make-serie admitidos. |
Nota:
Los start
parámetros , end
y step
se usan para compilar una matriz de valores AxisColumn . La matriz consta de valores entre start
y end
, con el step
valor que representa la diferencia entre un elemento de matriz y el siguiente. Todos los valores de agregación se ordenan en función de esta matriz.
Parámetros make-serie admitidos
Nombre | Descripción |
---|---|
kind |
Genera el resultado predeterminado cuando la entrada del operador make-series está vacía. Valor: nonempty |
hint.shufflekey=<key> |
La consulta shufflekey comparte la carga de consultas en los nodos del clúster mediante una clave para crear particiones de datos. Consulte la consulta aleatoria. |
Nota:
Las matrices generadas por la serie make están limitadas a 1048 576 valores (2^20). Si se intenta generar una matriz mayor con make-series, se producirá un error, o se truncará la matriz.
Sintaxis alternativa
T| make-series
[Column=
] Aggregation [default
=
DefaultValue] [,
...] on
AxisColumnin
range(
empezar,
parar,
paso)
[by
[Columna=
] GroupExpression [,
...]]
La serie generada a partir de la sintaxis alternativa es distinta de la sintaxis principal en dos aspectos:
- El valor stop incluye los extremos.
- La discretización del eje de índice se genera con bin() y no bin_at(), lo que significa que es posible que start no se incluya en la serie generada.
Se recomienda usar la sintaxis principal de la serie make y no la sintaxis alternativa.
Devoluciones
Las filas de entrada están organizadas en grupos que tienen los mismos valores que las expresiones by
y la expresión bin_at(
AxisColumn,
step,
start)
. A continuación, las funciones de agregación especificadas se calculan sobre cada grupo, generando una fila para cada grupo. El resultado contiene las columnas by
, la columna AxisColumn y también al menos una columna para cada agregación procesada (No se admiten las agregaciones en varias columnas ni resultados no numéricos).
Este resultado intermedio tiene tantas filas como combinaciones únicas de by
y valores bin_at(
AxisColumn,
step,
start)
.
Por último, las filas del resultado intermedio organizadas en grupos que tienen los mismos valores de las expresiones by
y todos los valores agregados se organizan en matrices (valores de tipo dynamic
). Para cada agregación, hay una columna que contiene la matriz con el mismo nombre. La última columna es una matriz que contiene los valores de AxisColumn agrupados según el paso especificado.
Nota:
Aunque puede proporcionar expresiones arbitrarias para las expresiones de agregación y las de agrupación, resulta más eficaz usar nombres de columna simples.
Lista de funciones de agregación
Función | Descripción |
---|---|
avg() | Devuelve un valor promedio de todo el grupo. |
avgif() | Devuelve un promedio con el predicado del grupo. |
count() | Devuelve un recuento del grupo. |
countif() | Devuelve un recuento con el predicado del grupo. |
covarianza() | Devuelve la covarianza de ejemplo de dos variables aleatorias. |
covarianceif() | Devuelve la covarianza de ejemplo de dos variables aleatorias con predicado. |
covariancep() | Devuelve la covarianza de población de dos variables aleatorias. |
covariancepif() | Devuelve la covarianza de población de dos variables aleatorias con predicado. |
dcount() | Devuelve un recuento único aproximado de los elementos del grupo. |
dcountif() | Devuelve un recuento único aproximado con el predicado del grupo. |
max() | Devuelve el valor máximo de todo el grupo |
maxif() | Devuelve el valor máximo con el predicado del grupo. |
min() | Devuelve el valor mínimo de todo el grupo |
minif() | Devuelve el valor mínimo con el predicado del grupo. |
percentile() | Devuelve el valor de percentil en el grupo |
take_any() | Devuelve un valor aleatorio no vacío para el grupo. |
stdev() | Devuelve la desviación estándar del grupo. |
sum() | Devuelve la suma de los elementos dentro del grupo. |
sumif() | Devuelve la suma de los elementos con el predicado del grupo. |
varianza() | Devuelve la varianza de ejemplo en el grupo. |
varianceif() | Devuelve la varianza de ejemplo en el grupo con predicado. |
varianza() | Devuelve la varianza de población en el grupo. |
variancepif() | Devuelve la varianza de población en el grupo con predicado. |
Lista de funciones para el análisis de series temporales
Función | Descripción |
---|---|
series_fir() | Aplica un filtro de respuesta finita al impulso. |
series_iir() | Aplica un filtro de respuesta infinita al impulso. |
series_fit_line() | Busca una línea recta que sea la mejor aproximación de la entrada. |
series_fit_line_dynamic() | Busca una línea que sea la mejor aproximación de la entrada y devuelve un objeto dinámico. |
series_fit_2lines() | Busca dos líneas que sean la mejor aproximación de la entrada. |
series_fit_2lines_dynamic() | Busca dos líneas que sean la mejor aproximación de la entrada y devuelve un objeto dinámico. |
series_outliers() | Puntúa los puntos de anomalía de una serie. |
series_periods_detect() | Encuentra los periodos más importantes en una serie temporal. |
series_periods_validate() | Comprueba si una serie temporal contiene patrones periódicos de longitudes concretas. |
series_stats_dynamic() | Devuelve varias columnas con estadísticas comunes (mín./máx./varianza/desviación estándar/promedio). |
series_stats() | Genera un valor dinámico con estadísticas comunes (mín./máx./varianza/desviación estándar/promedio). |
Para obtener una lista completa de funciones para el análisis de series, consulte: Funciones de procesamiento de series
Lista de funciones de interpolación de series
Función | Descripción |
---|---|
series_fill_backward() | Realiza una interpolación de relleno hacia atrás de los valores faltantes en una serie. |
series_fill_const() | Reemplaza los valores faltantes de una serie con un valor constante especificado. |
series_fill_forward() | Realiza una interpolación de relleno hacia delante de los valores faltantes en una serie. |
series_fill_linear() | Realiza una interpolación lineal de los valores faltantes en una serie. |
- Nota: De manera predeterminada, las funciones de interpolación suponen que
null
es un valor faltante. Por lo tanto, especifiquedefault=
double(null
) enmake-series
si tiene previsto usar funciones de interpolación en la serie.
Ejemplos
Una tabla que muestra matrices de los números y los precios promedio de cada fruta para cada uno de los proveedores ordenados por marca de tiempo con el intervalo especificado. Hay una fila en la salida para cada combinación única de frutas y proveedores. Las columnas de salida muestran las frutas, los proveedores y las matrices de: recuento, promedio y toda la escala de tiempo (de 2016-01-01 a 2016-01-10). Todas las matrices están ordenadas por la marca de tiempo correspondiente y todos los huecos se rellenan con los valores predeterminados (0 en este ejemplo). El resto de columnas de entrada se ignoran.
T | make-series PriceAvg=avg(Price) default=0
on Purchase from datetime(2016-09-10) to datetime(2016-09-13) step 1d by Supplier, Fruit
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| make-series avg(metric) on timestamp from stime to etime step interval
avg_metric | marca de tiempo |
---|---|
[ 4,0, 3,0, 5,0, 0,0, 10,5, 4,0, 3,0, 8,0, 6,5 ] | [ "2017-01-01T00:00:00.000000Z", "2017-01-02T00:00:00.000000Z", "2017-01-03T00:00:00.000000Z", "2017-01-04T00:00:00.000000Z", "2017-01-05T00:000:00.0000000Z", "2017-01-06T00:00:00.000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Cuando la entrada para make-series
está vacía, el comportamiento predeterminado de make-series
genera un resultado vacío.
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval
| count
Salida
Contar |
---|
0 |
El uso kind=nonempty
de en make-series
genera un resultado no vacío de los valores predeterminados:
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval
Salida
avg_metric | marca de tiempo |
---|---|
[ 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ] |
[ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Usar make-series
y mv-expand
para rellenar los valores de los registros que faltan:
let startDate = datetime(2025-01-06);
let endDate = datetime(2025-02-09);
let data = datatable(Time: datetime, Value: int, other:int)
[
datetime(2025-01-07), 10, 11,
datetime(2025-01-16), 20, 21,
datetime(2025-02-01), 30, 5
];
data
| make-series Value=sum(Value), other=-1 default=-2 on Time from startDate to endDate step 7d
| mv-expand Value, Time, other
| extend Time=todatetime(Time), Value=toint(Value), other=toint(other)
| project-reorder Time, Value, other
Salida
Tiempo | Importancia | Otros |
---|---|---|
2025-01-06T00:00:00Z | 10 | -1 |
2025-01-13T00:00:00Z | 20 | -1 |
2025-01-20T00:00:00Z | 0 | -2 |
2025-01-27T00:00:00Z | 30 | -1 |
2025-02-03T00:00:00Z | 0 | -2 |