SON

✅ 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 

Ayrıca Bkz.

ISFIRST
LAG