Aracılığıyla paylaş


LAST (Azure Stream Analytics)

LAST analiz işleci, tanımlanan kısıtlamalar içinde bir olay akışındaki en son olayı aramanıza olanak tanır. Bilinen son iyi değeri hesaplama (null değil), olayın belirli ölçütlerle eşleştiği son zamanı bulma gibi senaryolarda yararlıdır.

Stream Analytics'te LAST'in kapsamı (yani, geçerli olaydan geriye doğru ne kadar geriye bakması gerektiği) limit DURATION yan tümcesi kullanılarak 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şullar, JOIN yan tümcesindeki birleştirme koşulları veya geçerli sorgunun GROUP BY yan tümcesindeki gruplandırma ifadelerinden 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 sunulan LAST işlecini kullanmanız gerekir.

Söz dizimi

LAST(<scalar_expression >, [<default>])    
       OVER ( [PARTITION BY <partition key>] LIMIT DURATION(<unit>, <length>) [WHEN boolean_expression])  
  

Bağımsız değişkenler

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 analitik işlevleri veya dış işlevleri içeremez.

default

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. 'Olay yok', limit_duration_clause belirtilen zaman aralığında önceden olay yoksa veya olay mevcutsa ancak when_clause belirtilen koşulla eşleşmiyorsa bu durum 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 olan olayların
<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 kısaltmalarının ayrıntılı açıklaması için bkz. DATEDIFF. 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 için boole koşulunu belirtir. SÜRE aralığında eşleşen hiçbir olay bulunamazsa, <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, belirleyici 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 olayların zaman damgasını değiştirir, her pencere işlemi pencerenin sonunda olay çıkışı sağlar. 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ılık gösterir. LAST, pencere işleminden önce taşınamıyorsa, özgün olay zamanına göre sıralayarak CollectTop kullanmayı 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 50'den büyük olduğu son zamanı bulun:

SELECT
       sensorId,
       LAST(System.Timestamp()) OVER (PARTITION BY sensorId LIMIT DURATION(hour, 1) WHEN reading > 50 )
FROM input 

Ayrıca Bkz.

ISFIRST (Azure Stream Analytics)
LAG (Azure Stream Analytics)