Stream Analytics pencere işlevlerine giriş
Zaman akışı senaryolarında, zamansal pencerelerde bulunan veriler üzerinde işlem gerçekleştirmek yaygın bir desendir. Stream Analytics, geliştiricilerin karmaşık akış işleme işlerini en az çabayla yazmasına olanak tanıyan pencere işlevleri için yerel desteğe sahiptir.
Aralarından seçim yapabileceğiniz beş tür zamansal pencere vardır:
- Yuvarlanan
- Atlamalı
- Sürgülü
- Oturum
- Anlık görüntü pencereleri.
Stream Analytics işlerinizde sorgu söz diziminin GROUP BY yan tümcesindeki pencere işlevlerini kullanırsınız. Ayrıca Windows() işlevini kullanarak birden çok pencere üzerinde olayları toplayabilirsiniz.
Tüm pencereleme işlemleri, pencerenin sonunda elde edilir. Bir akış analizi işini başlattığınızda, İş çıkış başlangıç zamanını belirtebilirsiniz ve sistem gelen akışlardaki önceki olayları otomatik olarak getirerek belirtilen zamanda ilk pencerenin çıkışını verir; örneğin, Şimdi seçeneğiyle başladığınızda veriler hemen yaymaya başlar. Pencerenin çıkışı, kullanılan toplama işlevini temel alan tek bir olay olacaktır. Çıkış olayı, pencerenin sonunun zaman damgasına sahiptir ve tüm pencere işlevleri sabit uzunlukta tanımlanır.
Atlayan pencere
Bir veri akışını ayrı zaman dilimlerine ayırmak ve bunlara karşı bir işlev gerçekleştirmek için Atlayan pencere işlevlerini kullanın.
Atlayan pencerenin anahtar ayırıcıları şunlardır:
- Tekrarlamaz.
- Üst üste binemezler.
- Bir olay birden fazla yuvarlanan pencereye ait olamaz.
Örnek için giriş verileri şunlardır:
Damga pulu | CreatedAt | TimeZone |
---|---|---|
1 | 2021-10-26T10:15:01 | PST |
5 | 2021-10-26T10:15:03 | PST |
4 | 2021-10-26T10:15:06 | PST |
... | ... | ... |
Örnek sorgu şu şekildedir:
SELECT System.Timestamp() as WindowEndTime, TimeZone, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY TimeZone, TumblingWindow(second,10)
Örnek çıktı şu şekildedir:
WindowEndTime | TimeZone | Sayı |
---|---|---|
2021-10-26T10:15:10 | PST | 5 |
2021-10-26T10:15:20 | PST | 2 |
2021-10-26T10:15:30 | PST | 4 |
Atlama penceresi
Atlamalı pencere işlevleri, belirli bir süre boyunca ileri doğru atlar. Bunları çakışan ve pencere boyutundan daha sık yayılabilir yuvarlanan pencereler olarak düşünmek kolay olabilir. Olaylar birden fazla Atlama penceresi sonuç kümesine ait olabilir. Atlama penceresini Atlayan pencereyle aynı yapmak için atlama boyutunu pencere boyutuyla aynı olacak şekilde belirtin.
Örnek veriler şunlardır:
Damga pulu | CreatedAt | Konu |
---|---|---|
1 | 2021-10-26T10:15:01 | Akışlar |
5 | 2021-10-26T10:15:03 | Akışlar |
4 | 2021-10-26T10:15:06 | Akışlar |
... | ... | ... |
Örnek sorgu şu şekildedir:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, HoppingWindow(second,10,5)
Örnek çıktı şu şekildedir:
WindowEndTime | Konu | Sayı |
---|---|---|
2021-10-26T10:15:10 | Akışlar | 5 |
2021-10-26T10:15:15 | Akışlar | 3 |
2021-10-26T10:15:20 | Akışlar | 2 |
2021-10-26T10:15:25 | Akışlar | 4 |
2021-10-26T10:15:30 | Akışlar | 4 |
Kayan pencere
Kayan pencereler, yuvarlanan veya atlamalı pencerelerden farklı olarak, yalnızca zaman içindeki noktalarda, pencerenin içeriği gerçekten değiştiğinde olayları çıkış olarak görüntüler. Başka bir deyişle, bir olay pencereye girdiğinde veya pencereden çıktığında. Bu nedenle, her pencerede en az bir olay vardır. Atlama pencerelerine benzer şekilde, olaylar birden fazla kayan pencereye ait olabilir.
Örnek giriş verileri şunlardır:
Damga pulu | CreatedAt | Konu |
---|---|---|
1 | 2021-10-26T10:15:10 | Akışlar |
5 | 2021-10-26T10:15:12 | Akışlar |
9 | 2021-10-26T10:15:15 | Akışlar |
7 | 2021-10-26T10:15:15 | Akışlar |
8 | 2021-10-26T10:15:27 | Akışlar |
Örnek sorgu şu şekildedir:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SlidingWindow(second,10)
HAVING COUNT(*) >=3
Çıkış:
WindowEndTime | Konu | Sayı |
---|---|---|
2021-10-26T10:15:15 | Akışlar | 4 |
2021-10-26T10:15:20 | Akışlar | 3 |
Oturum penceresi
Oturum penceresi işlevleri, benzer zamanlarda gelen olayları gruplandırır ve veri bulunmayan zaman aralıklarını filtreler. Üç ana parametresi vardır:
- Timeout
- Maksimum süre
- Bölümleme anahtarı (isteğe bağlı).
Oturum penceresi ilk olay gerçekleştiğinde başlar. Son alınan olaydan belirtilen zaman aşımı içinde başka bir olay oluşursa, pencere yeni olayı içerecek şekilde genişletilir. Aksi takdirde, zaman aşımı içinde hiçbir olay gerçekleşmezse, zaman aşımı sırasında pencere kapatılır.
Olaylar belirtilen zaman aşımı içinde gerçekleşmeye devam ederse, oturum penceresi en uzun süreye ulaşılana kadar uzatılır. Maksimum süre denetim aralıkları, belirtilen maksimum süreyle aynı boyuta ayarlanır. Örneğin, maksimum süre 10 ise, pencerenin maksimum süreyi aşıp aşmadiğini denetler, t = 0, 10, 20, 30 vb.
Bölüm anahtarı sağlandığında olaylar anahtara göre gruplandırılır ve oturum penceresi her gruba bağımsız olarak uygulanır. Bu bölümleme, farklı kullanıcılar veya cihazlar için farklı oturum pencerelerine ihtiyaç duyduğunuz durumlarda kullanışlıdır.
Örnek giriş verileri şunlardır:
Damga pulu | CreatedAt | Konu |
---|---|---|
1 | 2021-10-26T10:15:01 | Akışlar |
2 | 2021-10-26T10:15:04 | Akışlar |
3 | 2021-10-26T10:15:13 | Akışlar |
... | ... | ... |
Örnek sorgu şu şekildedir:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SessionWindow(second,5,10)
Çıkış:
WindowEndTime | Konu | Sayı |
---|---|---|
2021-10-26T10:15:09 | Akışlar | 2 |
2021-10-26T10:15:24 | Akışlar | 4 |
2021-10-26T10:15:31 | Akışlar | 2 |
2021-10-26T10:15:39 | Akışlar | 1 |
Anlık görüntü penceresi
Aynı zaman damgasına sahip anlık görüntü pencereleri grubu olayları. 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.
Örnek giriş verileri şunlardır:
Damga pulu | CreatedAt | Konu |
---|---|---|
1 | 2021-10-26T10:15:04 | Akışlar |
2 | 2021-10-26T10:15:04 | Akışlar |
3 | 2021-10-26T10:15:04 | Akışlar |
... | ... | ... |
Örnek sorgu şu şekildedir:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Örnek çıktı şu şekildedir:
WindowEndTime | Konu | Sayı |
---|---|---|
2021-10-26T10:15:04 | Akışlar | 4 |
2021-10-26T10:15:10 | Akışlar | 2 |
2021-10-26T10:15:13 | Akışlar | 1 |
2021-10-26T10:15:22 | Akışlar | 2 |
Sonraki adımlar
Aşağıdaki makalelere bakın:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin