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ışı
Anlık görüntü pencereleri, aynı zaman damgasına sahip olayları gruplar. Belirli bir pencere işlevi gerektiren diğer pencereleme türlerinden farklı olarak ( SessionWindow() gibi), GROUP BY yan tümcesine System.Timestamp() ekleyerek anlık görüntü penceresi uygulayabilirsiniz.
Aşağıdaki diyagramda bir dizi olay içeren bir akış ve bunların anlık görüntü pencerelerine nasıl eşlendiği gösterilmektedir.
System.Timestamp(), GROUP BY yan tümcesinde bir anahtar sütunu veya anlık görüntü penceresi tanımı olarak düşünülebilir çünkü olayları zaman damgalarının eşitliğine göre bir pencerede gruplandırabilir. System.Timestamp() başka bir pencere işleviyle birleştirildiğinde, pencere tanımı olarak değil anahtar olarak değerlendirilir. System.Timestamp(), GROUP BY yan tümcesinde birden çok pencere işlevinin kullanıldığı durumlardan farklı olarak diğer pencere işlevleriyle kullanıldığında hata oluşturmaz. Hem System.Timestamp() hem de GROUP BY içindeki bir pencere işlevinin kullanılması sonuçları toplu hale getirmek için yararlı olabilir.
System.Timestamp() içeren ifadeler pencere olarak kabul edilmez. Örneğin, GROUP BY DATEPART(minute, System.Timestamp()) "bir pencere belirtilmelidir" hatasıyla başarısız olur.
Sözdizimi
System.Timestamp()
Örnekler
Temel örnek
Aşağıdaki örnek, tam olarak aynı anda gerçekleşen aynı konu türüne sahip tweetlerin sayısını döndürür:
SELECT Topic, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Atlayan pencere anlık görüntüsü örneği
Anlık görüntü pencerelerinde yaygın olarak kullanılanlardan biri, aşağıdaki TumblingWindow gibi önceki bir pencere işlevi aracılığıyla tek bir zaman damgasında gruplandırıldıktan sonra olayları toplamaktır.
Aşağıdaki örnek, 30 dakikalık aralıklarla aynı kullanıcı tarafından aynı konu türüne sahip tweetlerin sayısını döndürür:
WITH PerInterval AS (
SELECT Topic, User, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, User, TumblingWindow(minute, 30)
)
SELECT * INTO UserTopicsCount FROM PerInterval
Aynı aralık içinde konu başına kullanıcı sayısını ve toplam tweet sayısını bulmak için önceki sorgunun sonucunu kullanabilirsiniz. Yuvarlanan pencere sonuçları 30 dakikalık sınıra hizalanmış zaman damgalarına sahip olacağından, her bir sınırdaki olayları döndürmek için bir anlık görüntü penceresi kullanabilirsiniz çünkü hepsinin aynı zaman damgası değeri vardır.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp()
Önceki sorgu, aynı 30 dakikalık aralık içinde konu başına kullanıcı sayısını ve toplam tweet sayısını döndürdü. Her 2 saatte bir aynı sonuçları almak için GROUP BY yan tümcesine 2 saatlik bir atlayan pencere ekleyin.
Aşağıdaki sorgu, her 2 saatlik pencerenin sonundaki dört 30 dakikalık aralığın sonuçlarını döndürür.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp(), Tumbling (hour, 2)
Toplama pencereleri örneği
System.Timestamp() öğesini, toplama Windows() yapısındaki pencerelerden biri olarak kullanabilirsiniz.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
System.Timestamp())