Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
✅ Azure Stream Analytics ✅ Fabric Olay Akışı
Pencereleme, belirli pencere tanımlarına bağlı olarak çeşitli zaman aralıklarında olayları toplamanın bir yolunu sağlar. Aralarından seçim yapabileceğiniz dört tür zaman penceresi vardır: Atlayan, Atlamalı, Kayan ve Oturum.
Windows() işlevi, birden çok farklı pencere tanımının sonuçlarını aynı anda hesaplamak için bu kavramı genişletir. Windows() işlevi, birden fazla pencere tanımı belirtmenize olanak tanır. Sorgu mantığı bu pencere tanımlarının her biri için hesaplanır ve sonuç tüm pencere sonuçlarının birleşimidir.
Windows() işlevinin sonucu birden çok pencere bileşimi içerdiğinden, farklı sonuçları ayırt etmeniz gerekir. Bu işlem, system.Window() sistem işlevi kullanılarak erişilebilen her pencereye bir kimlik atanarak gerçekleştirilir . Id. System.Window() , alanı Kimliği olan bir kayıt döndürür.
Windows'un tanımlanmasının iki yolu vardır:
Window() işlevini (Id , window_definition ) kullanarak benzersiz kimlikler atayın; burada kimlik, window_definition kimliğidir ve Windows yapısındaki benzersiz büyük/küçük harfe duyarsız varchar(max) değeridir.
Kimlikler olmadan, bu durumda System.Window(). Kimlik , null değerle sonuç verir.
Sözdizimi
| Windows ( window_definition, … )
| Windows ( Window ( id , window_definition ), … )
window_definition =
| HoppingWindow ( …
| TumblingWindow ( …
| SlidingWindow ( …
| SessionWindow ( …
| Hopping ( …
| Tumbling ( …
| Sliding ( …
| Session ( …
Uyarı
Windows yapıları iç içe yerleştirilemez. Kimlikler tüm pencere tanımlarına verilmelidir veya hiçbiri verilmelidir.
gibi "window" sözcüğünün tekrarlanmaması için Windows() içinde kullanılabilen "Atlayan" gibi Windows(Window('MyWindow', TumblingWindow(…kısaltılmış pencere tanımı adları vardır. Kısaltılmış adlar, Windows yapısının dışında da kullanılabilir.
System.Window() kullanmak bir hata değildir. Windows yapısı olmayan kimlik, ancak penceresine hiçbir kimlik verilmediğinden değeri null olur.
Pencere tanımları Window() işlevi kullanılarak belirtilirse, tüm pencere tanımları Window() işlevini kullanmalıdır ve tüm büyük/küçük harfe duyarsız kimlikler benzersiz olmalıdır. Null'a izin verilmiyor.
System.Window() işlevi
System.Window() işlevi, gruplandırma zaman penceresiyle ilgili meta verileri almak için yalnızca GROUP BY deyiminin SELECT yan tümcesinde kullanılabilir.
İşlev, olayın ait olduğu pencerenin kimliğini tutan tek bir alan kimliği içeren Kayıt türünde bir değer döndürür.
Örnekler
Pencere kimliği olmadan 10, 20, 30, 40, 50 ve 60 dakikalık sürelerin her birine ait arabaları saymak için pencere oluşturun.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
TumblingWindow(minute, 30),
TumblingWindow(minute, 40),
TumblingWindow(minute, 50),
TumblingWindow(minute, 60))
1 dakikalık atlama ve dört farklı süreyle pencereler oluşturun - 1 dk, 15 dk, 30 dk ve 60 dk.
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('1 min', TumblingWindow(minute, 1)),
Window('15 min', HoppingWindow(minute, 15, 1)),
Window('30 min', HoppingWindow(minute, 30, 1)),
Window('60 min', HoppingWindow(minute, 60, 1)))
Başvuru tablosunda belirtilen pencere süresine göre farklı boyutlarda pencereler oluşturun ve sonuçları filtreleyin.
WITH HoppingWindowResults AS
(
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('H10', Hopping(minute, 10, 5)),
Window('H20', Hopping(minute, 20, 5)),
Window('H30', Hopping(minute, 30, 5)),
Window('H40', Hopping(minute, 40, 5)),
Window('H50', Hopping(minute, 50, 5)),
Window('H60', Hopping(minute, 60, 5)))
)
SELECT HoppingWindowResults.*
FROM HoppingWindowResults
JOIN ReferenceTable ON
HoppingWindowResults.TollId = ReferenceTable.TollId
AND HoppingWindowResults.Id = ReferenceTable.windowId