Azure 串流分析可支援處理資料格式為 Protocol Buffer (Protobuf) 的事件。 設定輸入時,您可以使用內建的 Protobuf 還原序列化程式。 若要使用內建還原序列化程式,請指定 Protobuf 定義檔、訊息類型和前置詞樣式。
注意
Azure 串流分析不支援通訊協定緩衝區 (Protobuf) 資料格式的結構描述登錄。
設定串流分析作業的步驟
將您的串流分析作業設定為 Protobuf 中的還原序列化事件:
在您建立了串流分析作業之後,選取 [輸入]。
選取 [新增輸入],然後選取您要設定的輸入以開啟輸入設定的窗格。
選取 [事件串行化格式 ] 以顯示下拉式清單,然後選取 [Protobuf]。
使用下列指導完成設定:
屬性名稱 描述 Protobuf 定義檔 指定 Protobuf 事件結構和資料類型的檔案 訊息類型 您想要還原序列化的訊息類型 前置詞樣式 決定訊息多長才能正確還原序列化 Protobuf 事件的設定
若要深入了解 Protobuf 資料類型,請參閱 官方通訊協定緩衝區文件。
限制
Protobuf 還原序列化程式一次只接受一個 Protobuf 定義檔。 不支援匯入以自訂 Protobuf 定義檔。 例如:
這個 Protobuf 定義檔會參考其匯入中的另一個 Protobuf 定義檔。 由於 Protobuf 還原序列化程式只會有目前的 Protobuf 定義檔,而且不知道 carseat.proto 是什麼 ,所以無法正確還原序列化。
當 Protobuf 定義檔包含命名空間或套件時,訊息類型必須包含它。 例如:
在入口網站的 Protobuf 還原序列化程式中,訊息類型必須為
Namespacetest.Volunteer
,而不是一般的Volunteer
。如果原始套件或命名空間全部是大寫或小寫,訊息類型就必須包含它,且套件或命名空間的第一個字元為大寫。 例如,如果命名空間為
nameSpaceTest
,請使用nameSpaceTest.Volunteer
。 此規則適用於沒有命名空間或套件的訊息類型。您必須在 Protobuf 定義檔中指定訊息,而不使用
Optional
關鍵詞。 在 Proto 3 中,所有欄位都是選擇性的。 例如:此 Protobuf 定義檔會顯示具有
Optional
關鍵詞的訊息。 若要正確還原序列化,您必須移除關鍵詞:傳送透過
google.protobuf
序列化的訊息時,前置詞類型應該設定為base128
,因為這是最相容的類型。Protobuf 還原序列化程式不支援服務訊息。 如果您嘗試使用服務訊息,您的作業會擲回例外狀況。 例如:
不支援這些資料類型:
Any
-
One of
(與列舉相關) Durations
Struct
-
Field Mask
(protobuf-net 不支援) List Value
Value
Null Value
Empty
注意
如需使用 Protobuf 還原序列化程式的直接協助,請將電子郵件傳送至 askasa@microsoft.com。