operador range
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Gera uma tabela de coluna única de valores.
Observação
Esse operador não usa uma entrada tabular.
Sintaxe
range
columnNamefrom
começarto
pararstep
passo
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
columnName | string |
✔️ | O nome da coluna única na tabela de saída. |
start | int, long, real, datetime ou timespan | ✔️ | O menor valor na saída. |
stop | int, long, real, datetime ou timespan | ✔️ | O valor mais alto sendo gerado na saída ou um limite no valor mais alto se a etapa ultrapassar esse valor. |
step | int, long, real, datetime ou timespan | ✔️ | A diferença entre dois valores consecutivos. |
Observação
Os valores não podem fazer referência às colunas de nenhuma tabela. Se você quiser calcular o intervalo com base em uma tabela de entrada, use a função de intervalo potencialmente com o operador mv-expand .
Devoluções
Uma tabela com uma única coluna chamada columnName, cujos valores são start, start+
step, ... até e até parar.
Exemplos
Intervalo nos últimos sete dias
O exemplo a seguir cria uma tabela com entradas para o carimbo de data/hora atual estendido nos últimos sete dias, uma vez por dia.
range LastWeek from ago(7d) to now() step 1d
Saída
SemanaPassada |
---|
2015-12-05 09:10:04,627 |
2015-12-06 09:10:04,627 |
... |
2015-12-12 09:10:04,627 |
Combinar tempos de parada diferentes
O exemplo a seguir mostra como estender intervalos para usar várias vezes de parada usando o 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
Saída
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 usando parâmetros
O exemplo a seguir mostra como usar o operador com parâmetros, que são estendidos e consumidos range
como uma tabela.
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
Saída
MinhaHoraDoMês | MeuMêsHoraemUnixHora | 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 |
... | ... | ... | ... |
Etapas incrementadas
O exemplo a seguir cria uma tabela com uma única coluna chamada Steps
cujo tipo é long
e resulta em valores de um a oito incrementados por três.
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