新環境的 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"}
下一步
了解如何使用時間序列查詢 API 來查詢您的資料。
深入了解新的時間序列運算式語法。