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ışı
LAST analiz operatörü, tanımlanan kısıtlamalar içinde bir olay akışında en son olayı aramanıza olanak tanır. Bilinen son iyi değeri hesaplama (örneğin null değil), olayın belirli ölçütlerle eşleştiği son zamanı bulma gibi senaryolarda kullanışlıdır.
Stream Analytics'te, LIMIT DURATION yan tümcesi kullanılarak LAST kapsamı (yani, geçerli olaydan geçmişe ne kadar geri bakılması gerektiği) her zaman sınırlı bir zaman aralığıyla sınırlıdır. LAST isteğe bağlı olarak yalnızca PARTITION BY ve WHEN yan tümcelerini kullanarak belirli bir özellik veya koşuldaki geçerli olayla eşleşen olayları dikkate almakla sınırlı olabilir. LAST, WHERE yan tümcesindeki koşullardan, JOIN yan tümcesindeki birleştirme koşullarından veya geçerli sorgunun GROUP BY yan tümcesindeki ifadeleri gruplandırmadan etkilenmez.
Açıklama: LAST(<ifade>, <varsayılan>) LAG(<ifade>, 0, <varsayılan>) ile eşdeğerdir (yani uzaklık değeri '0' olarak ayarlanır). LAG(<ifade>, 0, <varsayılan>) aslında geçerli bir yapı değildir çünkü LAG 1'e eşit veya daha büyük bir uzaklık alır. Bu nedenle, kolaylık ve daha iyi okunabilirlik için tanıtılan LAST işlecini kullanmanız gerekir.
Sözdizimi
LAST(<scalar_expression >, [<default>])
OVER ( [PARTITION BY <partition key>] LIMIT DURATION(<unit>, <length>) [WHEN boolean_expression])
Tartışmalar
scalar_expression
Döndürülecek değer. Tek bir (skaler) değer döndüren herhangi bir türde bir ifade veya '*' joker ifadesidir. '*' için tüm olay döndürülür ve sonuç olayında (iç içe kayıt) yer alır. scalar_expression diğer analiz işlevlerini veya dış işlevleri içeremez.
varsayılan
Olay eşleştirme ölçütü olmadığında döndürülecek değer. Varsayılan değer belirtilmezse NULL döndürülür. limit_duration_clause belirtilen zaman aralığı içinde önceden olay yoksa veya olay mevcutsa ancak when_clause belirtilen koşulla eşleşmiyorsa 'Olay yok' durumu söz konusu olabilir. Olay varsa ve scalar_expression değeri NULL ise NULL döndürülür. varsayılan bir sütun, alt sorgu veya başka bir ifade olabilir, ancak diğer analitik işlevleri veya dış işlevleri içeremez. varsayılan, scalar_expression ile tam olarak aynı türe sahip olmalıdır.
OVER ( [ partition_by_clause ] limit_duration_clause [when_clause])
partition_by_clause PARTITION BY <bölüm anahtarı> yan tümcesi yalnızca değeri
<bölüm anahtarı> , geçerli olayın dikkate alınmasıyla aynıdır.
limit_duration_clause SÜRE(<birim>, <uzunluk>):
Geçerli olaydaki geçmişin ne kadarının dikkate alınması gerektiğini belirtir. Desteklenen birimlerin ve bunların kısaltmalarının ayrıntılı açıklaması için datediff bölümüne bakın. SÜRE aralığında yeterli eşleşen olay bulunmazsa, <varsayılan> değer döndürülür.
when_clause LAST hesaplamasında dikkate alınması gereken olayların boole koşulunu belirtir. SÜRE aralığı içinde eşleşen hiçbir olay bulunmazsa, <varsayılan> değer döndürülür. when_clause isteğe bağlıdır.
Dönüş Türleri
Belirtilen scalar_expression veri türü. scalar_expression null döndürülür
Genel Açıklamalar
LAST, belirsiz değildir. Olaylar zamana bağlı olarak işlenir. Aynı zaman damgasına sahip birkaç olay varsa olaylar varış sırasına göre işlenir.
Bir pencereleme işlevinin sonuç kümesine LAST uygulamak beklenmeyen sonuçlara neden olabilir. Pencereleme işlevleri, her pencere işlemi pencerenin sonundaki olayı çıkış olarak belirttiğinden olayların zaman damgasını değiştirir. Bir olayın geçerli zaman damgasına system.timestamp() ile erişilebilir, bir pencere işleminden sonra özgün olay zamanı özniteliğinden farklı olur. LAST, pencere işleminden önce taşınamıyorsa CollectTop kullanarak özgün olay zamanına göre sıralamayı göz önünde bulundurun.
Örnekler
En son null olmayan algılayıcı okumalarını bulun:
SELECT
sensorId,
LAST(reading) OVER (PARTITION BY sensorId LIMIT DURATION(hour, 1) WHEN reading IS NOT NULL)
FROM input
Okumanın en son 50'den büyük olduğu zamanı bulun:
SELECT
sensorId,
LAST(System.Timestamp()) OVER (PARTITION BY sensorId LIMIT DURATION(hour, 1) WHEN reading > 50 )
FROM input