Sdílet prostřednictvím


Operátor range

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Vygeneruje tabulku s jedním sloupcem hodnot.

Poznámka:

Tento operátor nepřebírají tabulkový vstup.

Syntaxe

range columnNamefromzačínattoStopstepkrok

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
columnName string ✔️ Název jednoho sloupce ve výstupní tabulce
start int, long, real, datetime nebo timespan ✔️ Nejmenší hodnota ve výstupu.
Stop int, long, real, datetime nebo timespan ✔️ Nejvyšší hodnota vygenerovaná ve výstupu nebo vázaná na nejvyšší hodnotu, pokud krok je nad touto hodnotou.
krok int, long, real, datetime nebo timespan ✔️ Rozdíl mezi dvěma po sobě jdoucími hodnotami.

Poznámka:

Hodnoty nemůžou odkazovat na sloupce žádné tabulky. Pokud chcete vypočítat rozsah na základě vstupní tabulky, použijte funkci rozsahu potenciálně s operátorem mv-expand .

Návraty

Tabulka s jedním sloupcem s názvem columnName, jehož hodnoty jsou počáteční, počáteční+krok, ... až do a do zastavení.

Příklady

Příklad v této části ukazuje, jak použít syntaxi, která vám pomůže začít.

Příklady v tomto článku používají veřejně dostupné tabulky v clusteru nápovědy, jako je StormEvents tabulka v databázi Ukázky.

Příklady v tomto článku používají veřejně dostupné tabulky, jako je tabulka StormEvents v analýze počasí, ukázková data.

Rozsah za posledních 7 dnů

Následující příklad vytvoří tabulku s položkami pro aktuální časové razítko prodloužené za posledních 7 dnů, jednou za den.

range LastWeek from ago(7d) to now() step 1d

Výstup

LastWeek
2015-12-05 09:10:04.627
2015-12-06 09:10:04.627
...
2015-12-12 09:10:04.627

Kombinování různých časů zastavení

Následující příklad ukazuje, jak rozšířit rozsahy tak, aby používaly více časů zastavení pomocí operátoru 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

Výstup

Čas
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

Rozsah s využitím parametrů

Následující příklad ukazuje, jak použít range operátor s parametry, které jsou pak rozšířeny a spotřebovány jako tabulka.

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

Výstup

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

Přírůstkové kroky

Následující příklad vytvoří tabulku s jedním sloupcem, který se nazývá Steps jehož typ je long a výsledkem jsou hodnoty od jednoho do osmi přírůstků o tři.

range Steps from 1 to 8 step 3

Výstup

Schody
1
4
7

Trasování v časovém rozsahu

Následující příklad ukazuje, jak lze operátor range použít k vytvoření tabulky dimenzí, která se používá k zavedení nul, kde zdrojová data nemají žádné hodnoty. Trvá časové razítko z posledních čtyř hodin a počítá trasování pro každý interval 1 minutu. Pokud pro určitý interval neexistují žádné trasování, je počet nulový.

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