備註
本教學課程是系列課程的一部分。 關於上一節,請參見: Real-Time 智慧教學第三部分:在你的事件串流上設定警報。
在教學的這一部分,你會利用更新策略在 KQL 資料庫中轉換資料,當新資料寫入資料表時觸發自動機制。 該政策透過執行查詢將匯入的資料轉換並將結果儲存到目的資料表,從而消除了特殊編排的需求。
可在單一資料表上定義多個更新策略,允許不同的轉換,並同時將資料儲存到多個資料表。 目標資料表可以具有與來源資料表不同的結構描述、保留原則和其他原則。
將原始資料表移到 Bronze 資料夾
在此步驟中,您會將原始資料表移至 Bronze 資料夾,以組織 KQL 資料庫中的資料。
回到你建立資源的工作區。
選擇你之前建立的 Tutorial KQL 資料庫。
在物件樹狀結構的 KQL 資料庫名稱下,選取名為 Tutorial_queryset 的查詢工作區。
將以下指令複製貼上到查詢編輯器,將 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 節點下。
建立目標數據表
在此步驟中,你會建立一個目標資料表,用來儲存由更新政策轉換的資料。
在新一行,游標與最後查詢之間至少有一行,複製貼上以下指令,建立一個名為 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")執行命令以建立表格。
你會看到一個名為 Silver 的新資料夾,裡面有一個叫 TransformedData 的資料表,位於物件樹的 Tables 節點下。
建立一個帶有轉換邏輯的函數
在此步驟中,您會建立預存函式,以保存要在更新原則中使用的轉換邏輯。 函式會剖析 BikepointID 資料行,並新增兩個新的計算資料行。
從功能表功能區中,選取 [資料庫]。
選擇 + 新增>函式。
編輯函式使其符合以下程式碼,或將以下指令複製貼上到查詢編輯器中。
.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") }執行命令以建立函數。
你可以在物件樹的 Functions 節點下看到 TransformRawData 這個函式。
套用更新政策
在此步驟中,您會將更新原則套用至目標資料表,以轉換資料。 更新原則會使用預存函數 TransformRawData() 來剖析 BikepointID 資料行,並新增兩個新的計算資料行。
從功能表功能區中,選取 [資料庫]。
選擇 + 新>資料表更新原則。
編輯原則,使其符合下列程式碼,或將下列命令複製/貼到查詢編輯器中。
.alter table TransformedData policy update ```[{ "IsEnabled": true, "Source": "RawData", "Query": "TransformRawData()", "IsTransactional": false, "PropagateIngestionProperties": false }]```執行命令以建立更新原則。
驗證轉換
在此步驟中,透過比較來源表與目標表的輸出,驗證轉換是否成功。
備註
可能需要幾秒鐘才能看到轉換後的資料表。
將以下查詢複製貼上到查詢編輯器,即可查看來源資料表中的 10 筆任意紀錄。 執行查詢。
RawData | take 10將以下查詢複製並貼上到查詢編輯器,即可查看目標資料表中任意 10 筆紀錄。 執行查詢。
TransformedData | take 10
請注意,目標資料表中的 BikepointID 資料行不再包含前置詞 「BikePoints_」。
相關內容
如想了解本教學課程中任務的詳細資訊,請參閱: