Ćwiczenie — tworzenie zapytania przy użyciu okien tumowania

Ukończone

W tym ćwiczeniu utworzysz zapytanie Synapse Analytics przy użyciu okna tygowania. Zapytanie będzie agregować dane przesyłane strumieniowo odebrane z danych wejściowych centrum zdarzeń i wysyłać je Power BI i Azure Synapse Analytics do wizualizacji i analizy.

  1. W bloku Stream Analytics zadania w witrynie Azure Portalwybierz pozycję Zapytanie w menu nawigacji po lewej stronie.

    Link Zapytanie jest wybrany w menu po lewej stronie.

  2. Wyczyść okno edycji zapytania i wklej w jego miejscu następujące elementy:

    WITH Averages AS (
        SELECT
            AVG(engineTemperature) averageEngineTemperature,
            AVG(speed) averageSpeed
        FROM
            eventhub TIMESTAMP BY [timestamp]
        GROUP BY
            TumblingWindow(Duration(second, 2))
    ),
    Anomalies AS (
        select
            t.vin,
            t.[timestamp],
            t.city,
            t.region,
            t.outsideTemperature,
            t.engineTemperature,
            a.averageEngineTemperature,
            t.speed,
            a.averageSpeed,
            t.fuel,
            t.engineoil,
            t.tirepressure,
            t.odometer,
            t.accelerator_pedal_position,
            t.parking_brake_status,
            t.headlamp_status,
            t.brake_pedal_status,
            t.transmission_gear_position,
            t.ignition_status,
            t.windshield_wiper_status,
            t.abs,
            (CASE WHEN a.averageEngineTemperature >= 405 OR a.averageEngineTemperature <= 15 THEN 1 ELSE 0 END) AS enginetempanomaly,
            (CASE WHEN t.engineoil <= 1 THEN 1 ELSE 0 END) AS oilanomaly,
            (CASE WHEN (t.transmission_gear_position = 'first' OR
                t.transmission_gear_position = 'second' OR
                t.transmission_gear_position = 'third') AND
                t.brake_pedal_status = 1 AND
                t.accelerator_pedal_position >= 90 AND
                a.averageSpeed >= 55 THEN 1 ELSE 0 END) AS aggressivedriving
        FROM eventhub t TIMESTAMP BY [timestamp]
        INNER JOIN Averages a ON DATEDIFF(second, t, a) BETWEEN 0 And 2
    ),
    VehicleAverages AS (
        SELECT
            AVG(engineTemperature) averageEngineTemperature,
            AVG(speed) averageSpeed,
            System.TimeStamp() AS snapshot
        FROM
            eventhub TIMESTAMP BY [timestamp]
        GROUP BY
            TumblingWindow(Duration(minute, 2))
    )
    
    -- INSERT INTO POWER BI
    SELECT
        *
    INTO
        powerBIAlerts
    FROM
        Anomalies
    WHERE aggressivedriving = 1 OR enginetempanomaly = 1 OR oilanomaly = 1
    
    -- INSERT INTO SYNAPSE ANALYTICS
    SELECT
        *
    INTO
        synapse
    FROM
        VehicleAverages
    

    Powyższe zapytanie zostało wstawione do okna Zapytanie.

    Zapytanie uśrednia temperaturę i szybkość silnika w ciągu dwóch sekund, dodając do TumblingWindow(Duration(second, 2)) klauzuli GROUP BY zapytania. Następnie wybiera wszystkie dane telemetryczne, w tym średnie wartości z poprzedniego kroku, i określa następujące anomalie jako nowe pola:

    a. enginetempanomaly: Gdy średnia temperatura silnika > wynosi = 405 lub < = 15.

    b. oilanomaly: Gdy oil silnika < = 1.

    c. aggressivedriving: Gdy pozycja koła zębatego transmisji znajduje się w pierwszej, drugiej lub trzeciej, a stan siły krętej wynosi 1, pozycja koła zębatego akceleratora = 90, a średnia szybkość > > wynosi = 55.

    Zapytanie wyprowadza wszystkie pola ze kroku anomalii do danych wyjściowych powerBIAlerts gdzie lub na temat aggressivedriving = 1 enginetempanomaly = 1 oilanomaly = 1 raportowania. Zapytanie agreguje również średnią temperaturę i szybkość silnika wszystkich pojazdów w ciągu ostatnich dwóch minut przy użyciu funkcji i zwraca te pola TumblingWindow(Duration(minute, 2)) do synapse danych wyjściowych.

  3. Po zakończeniu aktualizowania zapytania wybierz pozycję Zapisz zapytanie na górnym pasku narzędzi.

  4. Aby uruchomić zapytanie, wybierz pozycję Przegląd Stream Analytics menu nawigacji po lewej stronie bloku zadania. W górnej części bloku Przegląd wybierz pozycję Uruchom.

    Przycisk Uruchom został wyróżniony w górnej części bloku Przegląd.

  5. W wyświetlonym bloku Uruchom zadanie wybierz pozycję Teraz jako czas rozpoczęcia danych wyjściowych zadania, a następnie wybierz pozycję Uruchom. Spowoduje to uruchomienie Stream Analytics, więc będzie gotowe do rozpoczęcia przetwarzania i wysyłania zdarzeń do Power BI później.

    Przyciski Teraz i Uruchom zostały wyróżnione w bloku Uruchamianie zadania.