Compartilhar via


range operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Gera uma tabela de coluna única de valores.

Note

Esse operador não usa uma entrada tabular.

Syntax

range columnNamefromstarttostopstepstep

Learn more about syntax conventions.

Parameters

Name Tipo Required Description
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 ✔️ The highest value being generated in the output or a bound on the highest value if step is over this value.
step int, long, real, datetime ou timespan ✔️ A diferença entre dois valores consecutivos.

Note

Os valores não podem fazer referência às colunas de nenhuma tabela. If you want to compute the range based on an input table, use the range function potentially with the mv-expand operator.

Returns

A table with a single column called columnName, whose values are start, start+step, ... up to and until stop.

Examples

O exemplo nesta seção mostra como usar a sintaxe para ajudá-lo a começar.

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Talvez seja necessário modificar o nome da tabela na consulta de exemplo para corresponder à tabela em seu workspace.

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

Output

LastWeek
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

Output

Time
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

Output

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
... ... ... ...

Incremented steps

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

Output

Steps
1
4
7

Rastreamentos em um intervalo de tempo

O exemplo a seguir mostra como o operador range pode ser usado para criar uma tabela de dimensão usada para introduzir zeros em que os dados de origem não têm valores. Leva carimbos de data/hora das últimas quatro horas e conta rastreamentos para cada intervalo de um minuto. Quando não há rastreamentos para um intervalo específico, a contagem é zero.

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