共用方式為


即將對新環境的 JSON 壓平和逸出規則進行變更

注意

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

重要

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

您的 Azure 時間序列見解 Gen2 環境會根據一組特定的命名慣例,動態建立您的儲存欄位。 當事件被接收時,時間序列洞察會將一組規則應用於 JSON 負載和屬性名稱。 2020 年 7 月,Azure Time Series Insights Gen2 環境的 JSON 資料扁平化和儲存方式的變更開始生效。 這項變更會在下列情況下影響您:

  • 您的 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 ID 和/或時間戳記屬性嵌套在物件中

任何新的部署都需要符合新的擷取規則。 例如,如果您的 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"}

後續步驟