Megosztás a következőn keresztül:


tartomány operátora

A következőkre vonatkozik: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Egyoszlopos értéktáblázatot hoz létre.

Jegyzet

Ez az operátor nem fogad táblázatos bemenetet.

Szintaxis

range columnNamefromstarttostopstepstep

További információ szintaxiskonvenciákról.

Paraméterek

Név Típus Szükséges Leírás
columnName string ✔️ A kimeneti tábla egyetlen oszlopának neve.
indítása int, long, real, datetime vagy timespan ✔️ A kimenet legkisebb értéke.
leállítása int, long, real, datetime vagy timespan ✔️ Ha lépés túllépi ezt az értéket, a kimenetben generált legmagasabb érték vagy a legmagasabb értékre kötött kötés.
lépés int, long, real, datetime vagy timespan ✔️ Két egymást követő érték különbsége.

Jegyzet

Az értékek nem hivatkozhatnak egyetlen tábla oszlopára sem. Ha egy bemeneti tábla alapján szeretné kiszámítani a tartományt, használja a tartomány függvényt az mv-expand operátorral.

Visszatér

Egy oszlopNévnevű egyetlen oszlopot tartalmazó táblázat, amelynek értékei kezdődnek, +lépés, ... leállításáig.

Példák

Az ebben a szakaszban szereplő példa bemutatja, hogyan használható a szintaxis az első lépésekhez.

A cikkben szereplő példák a nyilvánosan elérhető tábláit használják a fürt, például a StormEvents adatbázis tábláját.

A cikkben szereplő példák nyilvánosan elérhető táblákat használnak, például a Weather Analytics StormEvents táblát, mintaadatokat.

Tartomány az elmúlt hét napban

Az alábbi példa egy táblázatot hoz létre, amely az elmúlt hét napban meghosszabbított aktuális időbélyeg bejegyzéseit tartalmazza, naponta egyszer.

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

kimeneti

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

Különböző leállítási időpontok egyesítése

Az alábbi példa bemutatja, hogyan hosszabbíthat tartományokat több leállítási időpontra a union operátor használatával.

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

kimeneti

Idő
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

Tartomány paraméterekkel

Az alábbi példa bemutatja, hogyan használhatja a range operátort paraméterekkel, amelyeket aztán kiterjesztünk és táblázatként használunk fel.

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

kimeneti

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

Növekményes lépések

Az alábbi példa egy Steps nevű egyetlen oszlopot tartalmazó táblát hoz létre, amelynek típusa long, és egytől nyolcig terjedő értékeket eredményez hárommal növelve.

range Steps from 1 to 8 step 3

kimeneti

Lépések
1
4
7

Nyomkövetések egy időtartományban

Az alábbi példa bemutatja, hogyan használható a range operátor olyan dimenziótáblák létrehozására, amelyek nullák bevezetésére szolgálnak, ahol a forrásadatok nem tartalmaznak értékeket. Az elmúlt négy óra időbélyegeit veszi figyelembe, és minden egyes egyperces időközhöz megszámlálja a nyomkövetést. Ha egy adott intervallumhoz nincs nyomkövetés, a szám nulla.

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