Udostępnij przez


range operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Generuje jednokolumniową tabelę wartości.

Note

Ten operator nie pobiera danych wejściowych tabelarycznych.

Syntax

range columnNamefromstarttostopstepstep

Learn more about syntax conventions.

Parameters

Name Typ Required Description
columnName string ✔️ Nazwa pojedynczej kolumny w tabeli wyjściowej.
start int, long, real, datetime lub timespan ✔️ Najmniejsza wartość w danych wyjściowych.
stop int, long, real, datetime lub 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 lub timespan ✔️ Różnica między dwiema kolejnymi wartościami.

Note

Wartości nie mogą odwoływać się do kolumn żadnej tabeli. 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

W przykładzie w tej sekcji pokazano, jak używać składni, aby ułatwić rozpoczęcie pracy.

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. Może być konieczne zmodyfikowanie nazwy tabeli w przykładowym zapytaniu, aby było zgodne z tabelą w obszarze roboczym.

Zakres w ciągu ostatnich siedmiu dni

Poniższy przykład tworzy tabelę z wpisami dla bieżącej sygnatury czasowej rozszerzonej w ciągu ostatnich siedmiu dni, raz dziennie.

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

Łączenie różnych godzin zatrzymania

W poniższym przykładzie pokazano, jak rozszerzyć zakresy na wielokrotne czasy zatrzymania przy użyciu operatora 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

Zakres przy użyciu parametrów

W poniższym przykładzie pokazano, jak używać range operatora z parametrami, które są następnie rozszerzone i używane jako 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

W poniższym przykładzie utworzono tabelę z jedną kolumną o nazwie Steps, której typ jest long, a wyniki są tworzone z jednej do ośmiu przyrostów o trzy.

range Steps from 1 to 8 step 3

Output

Steps
1
4
7

Ślady w zakresie czasu

W poniższym przykładzie pokazano, jak można użyć operatora range do utworzenia tabeli wymiarów używanej do wprowadzenia zer, w których dane źródłowe nie mają wartości. Trwa to znaczniki czasu z ostatnich czterech godzin i zlicza ślady dla każdego interwału jednej minuty. Jeśli nie ma śladów dla określonego interwału, liczba jest równa 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