共用方式為


Real-Time Intelligence 教學課程第 4 部分:轉換 KQL 資料庫中的資料

備註

本教學課程是系列課程的一部分。 關於上一節,請參見: Real-Time 智慧教學第三部分:在你的事件串流上設定警報

在教學的這一部分,你會利用更新策略在 KQL 資料庫中轉換資料,當新資料寫入資料表時觸發自動機制。 該政策透過執行查詢將匯入的資料轉換並將結果儲存到目的資料表,從而消除了特殊編排的需求。

可在單一資料表上定義多個更新策略,允許不同的轉換,並同時將資料儲存到多個資料表。 目標資料表可以具有與來源資料表不同的結構描述、保留原則和其他原則。

將原始資料表移到 Bronze 資料夾

在此步驟中,您會將原始資料表移至 Bronze 資料夾,以組織 KQL 資料庫中的資料。

  1. 回到你建立資源的工作區。

  2. 選擇你之前建立的 Tutorial KQL 資料庫。

  3. 在物件樹狀結構的 KQL 資料庫名稱下,選取名為 Tutorial_queryset 的查詢工作區。

    從資料庫項目樹中選擇 **Tutorial_queryset**** 的截圖。

  4. 將以下指令複製貼上到查詢編輯器,將 RawData 資料表移到 Bronze 資料夾。 請在選單功能區選擇執行按鈕或同時按下Shift + Enter

    .alter table RawData (BikepointID:string,Street:string,Neighbourhood:string,Latitude:real,Longitude:real,No_Bikes:long,No_Empty_Docks:long,Timestamp:datetime) with (folder="Bronze")
    

    你會看到一個名為 Bronze 的新資料夾,裡面有一個叫 RawData 的資料表,位於物件樹的 Tables 節點下。

    包含 RawData 資料表的 Bronze 子資料夾截圖。

建立目標數據表

在此步驟中,你會建立一個目標資料表,用來儲存由更新政策轉換的資料。

  1. 在新一行,游標與最後查詢之間至少有一行,複製貼上以下指令,建立一個名為 TransformedData 的新資料表,並設定特定結構。

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: real, Longitude: real, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. 執行命令以建立表格。

    你會看到一個名為 Silver 的新資料夾,裡面有一個叫 TransformedData 的資料表,位於物件樹的 Tables 節點下。

    Silver 子資料夾的截圖,裡面包含 TransformedData 資料表。

建立一個帶有轉換邏輯的函數

在此步驟中,您會建立預存函式,以保存要在更新原則中使用的轉換邏輯。 函式會剖析 BikepointID 資料行,並新增兩個新的計算資料行。

  1. 從功能表功能區中,選取 [資料庫]。

  2. 選擇 + 新增>函式

  3. 編輯函式使其符合以下程式碼,或將以下指令複製貼上到查詢編輯器中。

    .create-or-alter function TransformRawData() {
    RawData
    | parse BikepointID with * "BikePoints_" BikepointID:int
    | extend BikesToBeFilled = No_Empty_Docks - No_Bikes
    | extend Action = iff(BikesToBeFilled > 0, tostring(BikesToBeFilled), "NA")
     }
    
  4. 執行命令以建立函數。

    你可以在物件樹的 Functions 節點下看到 TransformRawData 這個函式。

    包含 TransformedData 函式的 Functions 資料夾截圖。

套用更新政策

在此步驟中,您會將更新原則套用至目標資料表,以轉換資料。 更新原則會使用預存函數 TransformRawData() 來剖析 BikepointID 資料行,並新增兩個新的計算資料行。

  1. 從功能表功能區中,選取 [資料庫]。

  2. 選擇 + 新>資料表更新原則

  3. 編輯原則,使其符合下列程式碼,或將下列命令複製/貼到查詢編輯器中。

     .alter table TransformedData policy update
     ```[{
         "IsEnabled": true,
         "Source": "RawData",
         "Query": "TransformRawData()",
         "IsTransactional": false,
         "PropagateIngestionProperties": false
     }]```
    
  4. 執行命令以建立更新原則。

驗證轉換

在此步驟中,透過比較來源表與目標表的輸出,驗證轉換是否成功。

備註

可能需要幾秒鐘才能看到轉換後的資料表。

  1. 將以下查詢複製貼上到查詢編輯器,即可查看來源資料表中的 10 筆任意紀錄。 執行查詢。

    RawData
    | take 10
    
  2. 將以下查詢複製並貼上到查詢編輯器,即可查看目標資料表中任意 10 筆紀錄。 執行查詢。

    TransformedData
    | take 10
    

請注意,目標資料表中的 BikepointID 資料行不再包含前置詞 「BikePoints_」。

如想了解本教學課程中任務的詳細資訊,請參閱:

後續步驟