Operador de Gama
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Gera uma tabela de valores de coluna única.
Observação
Este operador não usa uma entrada tabular.
Sintaxe
range
columnNamefrom
iniciarto
pararstep
etapa
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 estiver acima desse 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
Devoluções
Uma tabela com uma única coluna chamada columnName , cujos valores são iniciar, iniciar+
etapa, ... até e até parar.
Exemplos
O exemplo nesta seção mostra como usar a sintaxe para ajudá-lo a começar.
Os exemplos neste artigo usam tabelas disponíveis publicamente no de cluster de ajuda, como a tabela
StormEvents
no banco de dados Samples.
Os exemplos neste artigo usam tabelas disponíveis publicamente, como a tabela
StormEvents
na análise do tempo dados de exemplo.
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
Output
Passos |
---|
1 |
4 |
7 |
Rastreamentos ao longo de um intervalo de tempo
O exemplo a seguir mostra como o operador range
pode ser usado para criar uma tabela de dimensão que é usada para introduzir zeros onde os dados de origem não têm valores. Ele pega carimbos de data/hora das últimas quatro horas e conta rastreamentos para cada intervalo de um minuto. Quando não há vestígios 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