新增 Azure 時間序列深入解析 Gen2 中的 Long 資料類型支援

注意

2025 年 3 月之後,將不再支援時間序列深入解析 (TSI) 服務。 請考慮盡快將現有 TSI 環境移轉至替代解決方案。 如需淘汰和移轉的詳細資訊,請造訪我們的文件

新增 Long 資料類型支援只會影響我們在 Azure 時間序列深入解析 Gen2 環境中儲存數值資料和對其編製索引的方式。 如果您有 Gen1 環境,則可以忽略這些變更。

從 2020 年 6 月 29 日或 6 月 30 日開始 (視您的所在區域而定),您的資料會編製索引為 LongDouble。 如果您有關於這項變更的任何問題或疑慮,請透過 Azure 入口網站提交支援票證,並提及此通訊。

如果您受到下列任何案例的影響,請進行建議的變更:

  • 案例 1:您目前使用時間序列模型變數,並只在遙測資料中傳送整數資料類型。
  • 案例 2:您目前使用時間序列模型變數,並在遙測資料中同時傳送整數和非整數資料類型。
  • 案例 3:您使用類別變數將整數值對應至類別。
  • 案例 4:您使用 JavaScript SDK 建置自訂前端應用程式。
  • 案例 5:您即將達到溫存放區 1,000 個屬性名稱的限制,並同時傳送整數和非整數資料。 您可以在 Azure 入口網站中檢視以計量形式表示的屬性計數。

如果您適用以上所述的任何案例,請對您的模型進行變更。 使用建議的變更,更新變數定義中的時間序列運算式 (TSX)。 同時更新以下兩項:

  • Azure 時間序列深入解析總管
  • 任何使用我們 API 的自訂用戶端

根據您的 IoT 解決方案和條件約束,您可能無法看到傳送至 Azure 時間序列深入解析 Gen2 環境的資料。 如果您不確定您只擁有整數資料,還是同時擁有整數和非整數資料,您有幾個選項:

  • 您可以等候功能釋出。 然後,在總管 UI 中探索原始事件,以了解是哪些屬性儲存到這兩個不同的資料行。
  • 您可以事先針對所有數值標籤進行建議的變更。
  • 您可以暫時將事件子集路由傳送至儲存體,以進一步了解並探索您的結構描述。

若要儲存事件,請開啟 Azure 事件中樞的事件擷取功能,或從 IoT 中樞路由傳送至 Azure Blob 儲存體。

您也可以透過事件中樞總管或使用事件處理器主機來觀察資料。

如果您使用 IoT 中樞,請移至從內建端點讀取裝置到雲端的訊息,以了解如何存取內建端點。

注意

如果您沒有進行建議的變更,則可能會遇到中斷事件。 例如,透過查詢 API 或時間序列深入解析總管來存取受影響的時間序列深入解析變數時,會傳回 null (亦即,總管中不會顯示任何資料)。

案例 1:使用時間序列模型變數,並只在遙測資料中傳送整數資料類型

案例 1 的建議變更與案例 2 相同。 遵循案例 2 一節中的指示來操作。

案例 2:使用時間序列模型變數,並同時在遙測資料中傳送整數和非整數類型

如果您目前傳送整數遙測資料,您的資料將會分成兩個資料行:

  • propertyValue_double
  • propertyValue_long

您的整數資料會寫入到 propertyValue_longpropertyValue_double 中先前擷取 (和未來擷取) 的數值資料不會複製過去。

如果您想要跨這兩個資料行查詢 propertyValue 屬性的資料,您必須在 TSX 中使用 coalesce() 純量函式。 此函式會接受相同 DataType 的引數,並傳回引數清單中的第一個非 Null 值。 如需詳細資訊,請參閱 Azure 時間序列深入解析 Gen2 資料存取概念

TSX 中的變數定義 - 數值

先前的變數定義:

Screenshot shows the Add a new variable dialog box for the PropertyValue Variable, numeric.

新的變數定義:

Screenshot shows the Add a new variable dialog box for the PropertyValue Variable with a custom value, numeric.

您也可以使用 coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) 作為自訂的時間序列運算式

使用 TSX 查詢 API 的內嵌變數定義 - 數值

先前的變數定義:

"PropertyValueVariable": {

    "kind": "numeric",

    "value": {

        "tsx": "$event.propertyValue.Double"

    },

    "filter": null,

    "aggregation": {

        "tsx": "avg($value)"
    }
}

新的變數定義:

"PropertyValueVariable ": {

    "kind": "numeric",

    "value": {

        "tsx": "coalesce($event.propertyValue.Long, toLong($event.propertyValue.Double))"

    },

    "filter": null,

    "aggregation": {

        "tsx": "avg($value)"
    }
}

您也可以使用 coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) 作為自訂的時間序列運算式

注意

建議您在所有可能使用到這些變數的地方更新這些變數。 這些地方包括時間序列模型、已儲存的查詢和 Power BI 連接器查詢。

案例 3:使用類別變數將整數值對應至類別

如果您目前使用類別變數將整數值對應至類別,您可能會使用 toLong 函式將資料從 Double 類型轉換成 Long 類型。 和案例 1 與案例 2 一樣,您需要聯合 DoubleLongDataType 資料行。

時間序列總管中的變數定義 - 類別

先前的變數定義:

Screenshot shows the Add a new variable dialog box for the PropertyValue Variable, categorical.

新的變數定義:

Screenshot shows the Add a new variable dialog box for the PropertyValue Variable with a custom value, categorical.

您也可以使用 coalesce($event.propertyValue.Double, toDouble($event.propertyValue.Long)) 作為自訂的時間序列運算式

類別變數仍然需要值為整數類型。 coalesce() 中所有引數的 DataType,在自訂時間序列運算式中必須是 Long 類型。

使用 TSX 查詢 API 的內嵌變數定義 - 類別

先前的變數定義:

"PropertyValueVariable_Long": {

    "kind": "categorical",

    "value": {

        "tsx": "tolong($event.propertyValue.Double)"

    },

    "categories": [

    {
        "label": "Good",

        "values": [0, 1, 2 ]

    },

    {

        "label": "Bad",

        "values": [ 3, 4 ]

    } ],

    "defaultCategory": {

        "label": "Unknown"

    }
}

新的變數定義:

"PropertyValueVariable_Long": {

    "kind": "categorical",

    "value": {

        "tsx": "coalesce($event.propertyValue.Long, tolong($event.propertyValue.Double))"

    },

    "categories": [

    {
        "label": "Good",

        "values": [0, 1, 2 ]

    },

    {

        "label": "Bad",

        "values": [ 3, 4 ]

    } ],

    "defaultCategory": {

        "label": "Unknown"

    }
}

類別變數仍然需要值為整數類型。 coalesce() 中所有引數的 DataType,在自訂時間序列運算式中必須是 Long 類型。

注意

建議您在所有可能使用到這些變數的地方更新這些變數。 這些地方包括時間序列模型、已儲存的查詢和 Power BI 連接器查詢。

案例 4:使用 JavaScript SDK 建置自訂前端應用程式

如果您受到案例 1 到案例 3 的影響,並建置自訂應用程式,則需要更新查詢以使用 coalesce() 函式,如先前的範例所示。

案例 5:即將達到溫存放區 1,000 個屬性的限制

如果您是具有大量屬性的溫存放區使用者,並認為這項變更會將您的環境推升到超過 1,000 個溫存放區屬性名稱的限制,請透過 Azure 入口網站提交支援票證,並提及此通訊。

下一步