共用方式為


新環境的 JSON 壓平合併和逸出規則即將變更

注意

「時間序列深入解析」服務將於 2024 年 7 月 7 日淘汰。 請考慮盡快將現有的環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請造訪我們的文件

重要

這些變更只會套用到新建立的 Microsoft Azure 時間序列深入解析 Gen2 環境。 這些變更不會套用到 Gen1 環境。

您的 Azure 時間序列深入解析 Gen2 環境會依照一組特定的命名慣例,動態建立儲存體資料行。 在擷取事件時,時間序列深入解析會將一組規則套用到 JSON 承載和屬性名稱。 新的 Azure 時間序列深入解析 Gen2 環境在針對壓平合併並儲存 JSON 資料的方式所進行的變更,已於 2020 年 7 月生效。 這項變更會在下列情況對您有影響:

  • 您的 JSON 承載包含巢狀物件。
  • 您的 JSON 承載包含陣列。
  • 您在 JSON 屬性名稱中使用下列四個特殊字元之一:[\.'
  • 您的一或多個時間序列 (TS) 識別碼屬性位於巢狀物件內。

如果您建立新環境,且您的事件承載有以下一或多個情況,則您的資料會以不同方式壓平合併並儲存。 下表摘要說明這些變更:

目前的規則 新增規則 範例 JSON 先前的資料行名稱 新資料行名稱
巢狀 JSON 會使用底線作為描述項來壓平合併。 巢狀 JSON 會使用句號作為描述項來壓平合併。 {"series" : { "value" : 19.338 }} series_value_double series.value_double
特殊字元不會逸出。 包含特殊字元 .[\' 的 JSON 屬性名稱,會使用 [''] 來逸出。 在 [''] 內,有額外的單引號和反斜線逸出。 單引號會寫入為 \',反斜線會寫入為 \\ "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
基本類型的陣列會儲存為字串。 基本類型的陣列會儲存為動態類型。 "values": [154, 149, 147] values_string values_dynamic
物件的陣列一律會壓平合併,以產生多個事件。 如果陣列內的物件沒有 TS 識別碼或時間戳記屬性,則會將物件的陣列整個儲存為動態類型。 "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

如果您的 TS 識別碼和/或時間戳記屬性於物件內行成巢狀

任何新的部署都需要符合新的擷取規則。 例如,如果您的 TS 識別碼是 telemetry_tagId,您必須更新任何 Azure Resource Manager 範本或自動化部署指令碼,以將 telemetry.tagId 設定為環境 TS 識別碼。 巢狀 JSON 中的事件來源時間戳記也需要進行此變更。

如果您的承載包含巢狀 JSON 或特殊字元,而且您將撰寫時間序列模型變數運算式的作業自動化

請將會執行 TypesBatchPut 的用戶端程式碼更新為符合新的擷取規則。 例如,您應該將先前的時間序列運算式 "value": {"tsx": "$event.series_value.Double"} 更新為下列其中一個選項:

  • "value": {"tsx": "$event.series.value.Double"}
  • "value": {"tsx": "$event['series']['value'].Double"}

下一步