使用 Visual Studio (預覽) 建立 Azure 串流分析的自訂 .NET 還原序列化程式
重要
Azure 串流分析的自訂 .net 還原序列化程式將於 2024 年 9 月 30 日淘汰。 在該日期之後,將無法使用該功能。 請依該日期轉換至 JSON、AVRO 或 CSV 內建還原序列化程式。
Azure 串流分析具有三種資料格式的內建支援: JSON、CSV 和 Avro。 透過自訂 .NET 還原序列化程式,您可以讀取其他格式的資料,例如通訊協定緩衝區、Bond,以及雲端和 Edge 作業的其他使用者定義格式。
本教學課程示範如何使用 Visual Studio 建立 Azure 串流分析雲端作業的自訂 .NET 還原序列化程式。 若要了解如何在 Visual Studio Code 中建立 .NET 還原序列化程式,請參閱在 Visual Studio Code 中建立適用於 Azure 串流分析作業的 .NET 還原序列化程式。
在本教學課程中,您會了解如何:
- 建立通訊協定緩衝區的自訂還原序列化程式。
- 在 Visual Studio 中建立 Azure 串流分析作業。
- 將您的串流分析作業設定為使用自訂還原序列化程式。
- 在本機執行串流分析作業,以測試自訂還原序列化程式,並進行偵錯。
必要條件
如果您沒有 Azure 訂閱,請建立免費帳戶。
安裝 Visual Studio 2019 (建議) 或 Visual Studio 2017。 支援 Enterprise (Ultimate/Premium)、Professional 和 Community 版本。 不支援 Express 版本。
安裝適用於 Visual Studio 的串流分析工具或更新至最新版本。
在 Visual Studio 中開啟 Cloud Explorer,然後登入您的 Azure 訂用帳戶。
在 Azure 儲存體帳戶中建立容器。 您建立的容器將用來儲存與串流分析作業有關的資產。 如果您的儲存體帳戶已經內含現有容器,則您可以使用它們。 如果沒有,您必須建立新的容器。
建立自訂還原序列化程式
開啟 Visual Studio,然後選取 [檔案 > 新增 > 專案]。 搜尋串流分析,並選取 [Azure 串流分析自訂還原序列化程式專案 (.NET)]。 指定專案的名稱,例如 Protobuf 還原序列化程式。
在方案總管中,以滑鼠右鍵按一下 Protobuf 還原序列化程式專案,然後從功能表中選取 [管理 NuGet 套件]。 然後,安裝 Microsoft.Azure.StreamAnalytics 和 Google.Protobuf NuGet 套件。
將 MessageBodyProto 類別和 MessageBodyDeserializer 類別新增至您的專案。
建置 Protobuf 還原序列化程式專案。
新增 Azure 串流分析專案
在方案總管中,以滑鼠右鍵按一下 [Protobuf 還原序列化程式] 方案,然後選取 [新增 > 新增專案]。 在 [Azure 串流分析 > 串流分析] 底下,選擇 [Azure 串流分析應用程式]。 將其命名 ProtobufCloudDeserializer,然後選取 [確定]。
以滑鼠右鍵按一下 ProtobufCloudDeserializer Azure 串流分析專案下的 [參考]。 在 [專案] 底下,新增 Protobuf 還原序列化程式。 此項目應該會自動填入。
設定串流分析作業
按兩下 JobConfig.json。 使用預設組態,但下列設定除外:
設定 建議的值 全域儲存體設定資源 選擇來自目前帳戶的資料來源 全域儲存體設定訂用帳戶 < 您的訂用帳戶 > 全域儲存體設定儲存體帳戶 < 您的儲存體帳戶 > 自訂程式碼儲存體設定資源 選擇來自目前帳戶的資料來源 自訂程式碼儲存體設定儲存體帳戶 < 您的儲存體帳戶 > 自訂程式碼儲存體設定容器 < 您的儲存體容器 > 在 [輸入] 底下,按兩下 Input.json。 使用預設組態,但下列設定除外:
設定 建議的值 來源 Blob 儲存體 資源 選擇來自目前帳戶的資料來源 訂用帳戶 < 您的訂用帳戶 > 儲存體帳戶 < 您的儲存體帳戶 > 容器 < 您的儲存體容器 > 事件序列化格式 其他 (Protobuf、XML、專屬...) 資源 從 ASA 專案參考或 CodeBehind 載入 CSharp 組件名稱 ProtobufDeserializer.dll 類別名稱 MessageBodyProto.MessageBodyDeserializer 事件壓縮類型 無 將下列查詢新增至 script.asaql 檔案。
SELECT * FROM Input
下載範例 protobuf 輸入檔。 在 [輸入] 資料夾中,以滑鼠右鍵按一下 [Input.json],然後選取 [新增本機輸入]。 然後,按兩下 local_Input.json,並設定下列設定:
設定 建議的值 輸入別名 輸入 來源類型 資料流 事件序列化格式 其他 (Protobuf、XML、專屬...) CSharp 組件名稱 ProtobufDeserializer.dll 類別名稱 MessageBodyProto.MessageBodyDeserializer 本機輸入檔案路徑 < 已下載的範例 protobuf 輸入檔的檔案路徑>
執行串流分析作業
開啟 script.asaql,並選取 [在本機執行]。
觀察 [串流分析本機執行結果] 中的結果。
您已成功為您的串流分析作業執行自訂還原序列化程式! 在本教學課程中,您在本機測試了自訂還原序列化程式。 針對您的實際資料,您應適當設定輸入和輸出。 然後,從 Visual Studio 將作業提交至 Azure,以使用您剛剛實作的自訂還原序列化程式在雲端中執行您的作業。
對還原序列化程式進行偵錯
您可以透過用來對標準 .NET 程式碼進行偵錯的相同方式,在本機對 .NET 還原序列化程式進行偵錯。
以滑鼠右鍵按一下 ProtobufCloudDeserializer 專案名稱,並將其設定為啟始專案。
在函式中新增中斷點。
按 F5 開始偵錯作業。 程式將如預期般地在您的中斷點處停止。
清除資源
若不再需要,可刪除資源群組、串流作業和所有相關資源。 刪除作業可避免因為作業使用串流單位而產生費用。 如果您計劃在未來使用該作業,您可以將其停止並在之後需要時重新啟動。 如果您不再繼續使用此作業,請使用下列步驟,刪除本教學課程所建立的所有資源:
從 Azure 入口網站的左側功能表中,選取 [資源群組],然後選取您所建立資源的名稱。
在資源群組頁面上,選取 [刪除],在文字方塊中輸入要刪除的資源名稱,然後選取 [刪除]。
下一步
在本教學課程中,您已了解如何為通訊協定緩衝區輸入序列化實作自訂的 .NET 還原序列化程式。 若要深入了解如何建立自訂還原序列化程式,請繼續閱讀下列文章: