練習 - 使用輪轉視窗建立查詢

已完成

在此練習中,您會使用輪轉視窗來建立 Synapse Analytics 查詢。 查詢將會彙總從事件中樞輸入接收到的串流資料,並將其傳送至 Power BI 和 Azure Synapse Analytics 以用於呈現和分析。

  1. Azure 入口網站中的串流分析作業的刀鋒視窗,選取左側導覽功能表中的 [查詢]。

    The Query link is selected in the left-hand menu.

  2. 清除 [查詢] 編輯視窗,並在其位置貼上下列內容:

    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
    

    The query above has been inserted into the Query window.

    此查詢會將 TumblingWindow(Duration(second, 2)) 新增至查詢的 GROUP BY 子句,以計算兩秒持續時間的平均引擎溫度和速度。 接著將選取所有遙測資料,包括上一個步驟中的平均值,並指定下列異常作為新欄位:

    a. enginetempanomaly:當平均引擎溫度為 >= 405 或 <= 15 時。

    b. oilanomaly:當機油 <= 1 時。

    c. aggressivedriving:當傳動檔位為一檔、二檔或三檔、煞車踏板狀態為 1、油門踏板位置 >= 90,且平均速度為 >= 55 時。

    此查詢會將異常步驟中的所有欄位輸出到 aggressivedriving = 1enginetempanomaly = 1oilanomaly = 1powerBIAlerts 輸出中,以供報告之用。 此查詢也會使用 synapse 來彙總過去兩分鐘內所有車輛的平均引擎溫度和速度,並將這些欄位輸出至 TumblingWindow(Duration(minute, 2)) 輸出。

  3. 完成查詢的更新後,請選取頂端工具列中的 [儲存查詢]。

  4. 若要開始查詢,請在串流分析作業刀鋒視窗的左側導覽功能表中選取 [概觀]。 在 [概觀] 刀鋒視窗頂端,選取 [啟動]。

    The Start button is highlighted on top of the Overview blade.

  5. 在出現的 [啟動作業] 刀鋒視窗中,針對作業輸出開始時間選取 [現在],然後選取 [啟動]。 這會啟動串流分析作業,使其準備好稍後開始處理您的事件並將其傳送至 Power BI。

    The Now and Start buttons are highlighted within the Start job blade.