使用 AWS IoT SiteWise API 導入資料 - AWS IoT SiteWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS IoT SiteWise API 導入資料

您可以使用 AWS IoT SiteWise API 將時間戳記的工業資料傳送至資產屬性和衡量值屬性。API 接受包含timestamp-quality-value(TQV) 結構.

使用BatchPutAssetProperty數值操作上傳您的資料。透過此操作,您可以一次上傳多個資料項目,以便從多個裝置收集資料,並透過單一要求傳送所有資料。

重要

所以此BatchPutAssetProperty數值操作會受限於每個要求的項目數量配額,以及每個項目的 TQV 資料點數量。AWS IoT SiteWise也會拒絕過去 7 天或超過未來 10 分鐘時間戳記的任何資料。如需這些配額的詳細資訊,請參BatchPutAssetProperty數值中的AWS IoT SiteWiseAPI 參考

若要標識資產屬性,您可以指定下列其中一個選項:

  • 所以此assetIdpropertyId您要向其發送資料的資產屬性。

  • 所以此propertyAlias,這是資料串流別名 (例如/company/windfarm/3/turbine/7/temperature。若要使用這個選項,您必須先設定您的資產屬性別名。若要了解如何設定屬性別名,請參閱將工業資料串流對應到資產屬性

以下範例示範如何從儲存在 JSON 檔案的承載中,設定風力渦輪機的溫度和每分鐘旋轉 (RPM) 讀數。

aws iotsitewise batch-put-asset-property-value --cli-input-json file://batch-put-payload.json

batch-put-payload.json 中的範例裝載包含以下內容。

{ "entries": [ { "entryId": "unique entry ID", "propertyAlias": "/company/windfarm/3/turbine/7/temperature", "propertyValues": [ { "value": { "integerValue": 38 }, "timestamp": { "timeInSeconds": 1575691200 } } ] }, { "entryId": "unique entry ID", "propertyAlias": "/company/windfarm/3/turbine/7/rpm", "propertyValues": [ { "value": { "doubleValue": 15.09 }, "timestamp": { "timeInSeconds": 1575691200 }, "quality": "GOOD" } ] } ] }

承載中的每個項目都包含 entryId,您可以將其定義為任何獨特的字串。如果有任何請求項目失敗,每個錯誤都會包含對應請求的 entryId,這樣您就可以知道要重試哪些請求。

列表中的每個結構propertyValues是一個timestamp-quality-value(TQV) 結構,其中包含value, 一個timestamp,並可以選擇一個quality

  • value— 包含下列其中一個字段的結構,取決於要設定的屬性類型。

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

  • timestamp— 包含目前 Unix Epoch 時間的結構,以秒為單位,timeInSeconds。您也可以設定offsetInNanos項中的timestamp結構(如果您有時間精確的數據)。AWS IoT SiteWise會拒絕過去 7 天或未來 10 分鐘時間戳記的任何資料點。

  • quality— (選用) 下列其中一個品質字串:

    • GOOD— (默認) 資料不會被任何問題影響。

    • BAD— 資料會被例如感應器失敗的問題影響。

    • UNCERTAIN— 資料會被例如感應器不準確的問題影響。

    如需 AWS IoT SiteWise 如何運算處理資料品質的詳細資訊,請參閱資料品質的公式表達式