Partilhar via


Operador de Gama

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Gera uma tabela de valores de coluna única.

Observação

Este operador não usa uma entrada tabular.

Sintaxe

range columnNamefrominiciartopararstepetapa

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
columnName string ✔️ O nome da única coluna na tabela de saída.
começar int, long, real, datetime ou timespan ✔️ O menor valor na saída.
parar int, long, real, datetime ou timespan ✔️ O valor mais alto que está sendo gerado na saída ou um limite no valor mais alto se etapa etapas sobre esse valor.
passo 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 de intervalo de potencialmente com o operador mv-expandir.

Devoluções

Uma tabela com uma única coluna chamada columnName , cujos valores são iniciar, iniciar+etapa, ... 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

Output

Última Semana
2015-12-05 09:10:04.627
2015-12-06 09:10:04.627
...
2015-12-12 09:10:04.627

Combine diferentes tempos de paragem

O exemplo a seguir mostra como estender intervalos para usar vários tempos 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

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 range com parâmetros, que são estendidos e consumidos 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

MeuMêsHora 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
... ... ... ...

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