Operador range
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Genera una tabla de valores de una columna única.
Nota:
Este operador no toma una entrada tabular.
Sintaxis
range
columnNamefrom
empezarto
pararstep
paso
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
columnName | string |
✔️ | Nombre de la sola columna de la tabla de salida. |
start | int, long, real, datetime o timespan | ✔️ | Valor más pequeño de la salida. |
stop | int, long, real, datetime o timespan | ✔️ | El valor más alto que se genera en la salida o un enlazado en el valor más alto si los pasos de paso sobre este valor. |
step | int, long, real, datetime o timespan | ✔️ | Diferencia entre dos valores consecutivos. |
Nota:
Los valores no pueden hacer referencia a las columnas de ninguna tabla. Si desea calcular el intervalo en función de una tabla de entrada, use la función range potencialmente con el operador mv-expand .
Devoluciones
Una tabla con una sola columna denominada columnName, cuyos valores son start, start+
step, ... hasta y hasta que se detenga.
Ejemplos
Intervalo en los últimos siete días
En el ejemplo siguiente se crea una tabla con entradas para la marca de tiempo actual extendida durante los últimos siete días, una vez al día.
range LastWeek from ago(7d) to now() step 1d
Salida
LastWeek |
---|
2015-12-05 09:10:04.627 |
2015-12-06 09:10:04.627 |
... |
2015-12-12 09:10:04.627 |
Combinar diferentes tiempos de detención
En el ejemplo siguiente se muestra cómo ampliar los intervalos para usar varias veces de detención mediante el operador union
.
let Range1 = range Time from datetime(2024-01-01) to datetime(2024-01-05) step 1d;
let Range2 = range Time from datetime(2024-01-06) to datetime(2024-01-10) step 1d;
union Range1, Range2
| order by Time asc
Salida
Hora |
---|
2024-01-04 00:00:00.0000000 |
2024-01-05 00:00:00.0000000 |
2024-01-06 00:00:00.0000000 |
2024-01-07 00:00:00.0000000 |
2024-01-08 00:00:00.0000000 |
2024-01-09 00:00:00.0000000 |
2024-01-10 00:00:00.0000000 |
Intervalo mediante parámetros
En el ejemplo siguiente se muestra cómo usar el range
operador con parámetros, que se extienden y consumen como una tabla.
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01)) / 1s
};
let MyMonthStart = startofmonth(now()); //Start of month
let StepBy = 4.534h; //Supported timespans
let nn = 64000; // Row Count parametrized
let MyTimeline = range MyMonthHour from MyMonthStart to now() step StepBy
| extend MyMonthHourinUnixTime = toUnixTime(MyMonthHour), DateOnly = bin(MyMonthHour,1d), TimeOnly = MyMonthHour - bin(MyMonthHour,1d)
; MyTimeline | order by MyMonthHour asc | take nn
Salida
MyMonthHour | MyMonthHourinUnixTime | DateOnly | TimeOnly |
---|---|---|---|
2023-02-01 | 00:00:00.0000000 | 1675209600 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 04:32:02.4000000 | 1675225922.4 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 09:04:04.8000000 | 1675242244.8 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 13:36:07.2000000 | 1675258567.2 | 2023-02-01 00:00:00.0000000 |
... | ... | ... | ... |
Pasos incrementados
En el ejemplo siguiente se crea una tabla con una sola columna denominada Steps
cuyo tipo es long
y se generan valores de uno a ocho incrementos en tres.
range Steps from 1 to 8 step 3
| Steps |
|-------|
| 1 |
| 4 |
| 7 |
### Traces over a time range
The following example shows how the `range` operator can be used to create a dimension table that is used to introduce zeros where the source data has no values. It takes timestamps from the last four hours and counts traces for each one minute interval. When there are no traces for a specific interval, the count is zero.
```kusto
range TIMESTAMP from ago(4h) to now() step 1m
| join kind=fullouter
(Traces
| where TIMESTAMP > ago(4h)
| summarize Count=count() by bin(TIMESTAMP, 1m)
) on TIMESTAMP
| project Count=iff(isnull(Count), 0, Count), TIMESTAMP
| render timechart