Verileri seçmek, filtrelemek ve toplamak için sorgu tanımlama

Tamamlandı

Azure Stream Analytics işiniz için girişleri ve çıkışları tanımladıktan sonra, bir girişten gelen verileri işlemek ve sonuçları bir çıkışa yazmak için bir sorgu tanımlayabilirsiniz.

Giriş alanlarını seçme

Akış verilerini Azure Synapse Analytics'e almak için en basit yaklaşım, SELECT kullanarak her olay için gerekli alan değerlerini yakalamaktır... BURADA gösterildiği gibi INTO sorgusu:

SELECT
    EventEnqueuedUtcTime AS ReadingTime,
    SensorID,
    ReadingValue
INTO
    [synapse-output]
FROM
    [streaming-input] TIMESTAMP BY EventEnqueuedUtcTime

Bahşiş

Sonuçları ayrılmış sql havuzundaki bir tabloya yazmak için Azure Synapse Analytics çıkışı kullanılırken, sorgu tarafından oluşturulan sonuçların şeması verilerin yükleneceği tabloyla eşleşmelidir. As yan tümcelerini kullanarak alanları yeniden adlandırabilir ve gerektiğinde alternatif (uyumlu) veri türlerine dönüştürebilirsiniz.

Olay verilerini filtreleme

Bazı durumlarda, WHERE yan tümcesi ekleyerek verileri yalnızca belirli olayları içerecek şekilde filtrelemek isteyebilirsiniz. Örneğin, aşağıdaki sorgu yalnızca negatif ReadingValue alan değerine sahip olaylar için veri yazar.

SELECT
    EventEnqueuedUtcTime AS ReadingTime,
    SensorID,
    ReadingValue
INTO
    [synapse-output]
FROM
    [streaming-input] TIMESTAMP BY EventEnqueuedUtcTime
WHERE ReadingValue < 0

Zamansal pencereler üzerinden olayları toplama

Akış sorgularının yaygın desenlerinden biri, olay verilerini zamana bağlı (zamana bağlı) aralıklar veya pencereler üzerinden toplamaktır. Bunu başarmak için, tanımlamak istediğiniz pencere türünü tanımlayan bir Window işlevi içeren bir GROUP BY yan tümcesi kullanabilirsiniz (örneğin, atlayan, atlamalı veya kayan).

Bahşiş

Pencere işlevleri hakkında daha fazla bilgi için Azure Stream Analytics belgelerindeki Stream Analytics pencere işlevlerine giriş bölümüne bakın.

Aşağıdaki örnek, akış algılayıcısı okumalarını 1 dakikalık yuvarlanma (seri, örtüşmeyen) pencereler halinde gruplandırır, her pencerenin başlangıç ve bitiş saatini ve her algılayıcı için maksimum okumayı kaydeder. HAVING yan tümcesi, sonuçları yalnızca en az bir olayın gerçekleştiği pencereleri içerecek şekilde filtreler.

SELECT
    DateAdd(second, -60, System.TimeStamp) AS StartTime,
    System.TimeStamp AS EndTime,
    SensorID,
    MAX(ReadingValue) AS MaxReading
INTO
    [synapse-output]
FROM
    [streaming-input] TIMESTAMP BY EventEnqueuedUtcTime
GROUP BY SensorID, TumblingWindow(second, 60)
HAVING COUNT(*) >= 1

Bahşiş

Sorgular için yaygın kullanılan patter'ler hakkında daha fazla bilgi için Azure Stream Analytics belgelerindeki Azure Stream Analytics'te yaygın sorgu desenleri bölümüne bakın.