WriteRecords - Amazon Timestream

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

WriteRecords

可讓您將時間序列資料寫入 Timestream。您可以指定要插入系統的單一資料點或一批資料點。Timestream 為您提供彈性結構描述,可根據您調用寫入資料庫時指定的資料點的維度名稱和資料類型,自動偵測 Timestream 資料表的資料欄名稱和資料類型。

Timestream 支援最終一致性僅供讀取語義。這表示當您在將一批資料寫入 Timestream 後立即查詢資料時,查詢結果可能不會反映最近完成的寫入操作的結果。結果也可能包含一些過時的資料。如果您在短時間內重複查詢請求,結果應傳回最新的資料。服務配額適用

有關詳細資訊,請參閱程式碼範例

Upserts

您可以在 WriteRecords 請求中使用 Version 參數來更新資料點。Timestream 會追蹤每個記錄的版本編號。 未針對請求中的記錄指定1時, Version預設為 。Timestream 會在收到寫入請求Version時,更新現有記錄的測量值及其 ,該記錄的寫入請求具有較高的Version數字。當它收到更新請求時,其測量值與現有記錄的值相同,如果其大於現有值 Version,則 Timestream 仍會更新 Version。只要 的值Version持續增加,您就可以視需要更新資料點多次。

例如,假設您在請求Version中沒有指示的情況下撰寫新記錄。Timestream 會儲存此記錄,並Version設定為 1。現在,假設您嘗試使用具有不同量值的相同記錄WriteRecords請求來更新此記錄,但和之前一樣,不提供 Version。在此情況下,Timestream 會使用 拒絕此更新,RejectedRecordsException因為更新的記錄版本不大於 版本的現有值。

不過,如果您要重新傳送Version設定為 的更新請求2,則 Timestream 會成功更新記錄的值,而 Version會設定為 2。接下來,假設您已傳送具有相同記錄和相同量值的WriteRecords請求,但將 Version 設定為 3。在此情況下,Timestream 只會更新Version3。任何進一步的更新都需要傳送大於 的版本號碼3,否則更新請求會收到 RejectedRecordsException

請求語法

{ "CommonAttributes": { "Dimensions": [ { "DimensionValueType": "string", "Name": "string", "Value": "string" } ], "MeasureName": "string", "MeasureValue": "string", "MeasureValues": [ { "Name": "string", "Type": "string", "Value": "string" } ], "MeasureValueType": "string", "Time": "string", "TimeUnit": "string", "Version": number }, "DatabaseName": "string", "Records": [ { "Dimensions": [ { "DimensionValueType": "string", "Name": "string", "Value": "string" } ], "MeasureName": "string", "MeasureValue": "string", "MeasureValues": [ { "Name": "string", "Type": "string", "Value": "string" } ], "MeasureValueType": "string", "Time": "string", "TimeUnit": "string", "Version": number } ], "TableName": "string" }

請求參數

如需所有動作的一般參數資訊,請參閱《Common Parameters》。

請求接受 JSON 格式的下列資料。

CommonAttributes

包含請求中所有記錄之間共用的常見量值、維度、時間和版本屬性的記錄。將資料寫入 Timestream 時,指定的量值和維度屬性會與記錄物件中的量值和維度屬性合併。維度可能不會重疊,或ValidationException會擲回 。換句話說,記錄必須包含具有唯一名稱的維度。

類型:Record 物件

必要:否

DatabaseName

Timestream 資料庫的名稱。

類型:字串

長度限制:長度下限為 3。長度上限為 256。

必要:是

Records

包含每個時間序列資料點之唯一量值、維度、時間和版本屬性的記錄陣列。

類型:Record 物件陣列

陣列成員:項目數下限為 1。項目數上限為 100。

必要:是

TableName

Timestream 資料表的名稱。

類型:字串

長度限制:長度下限為 3。長度上限為 256。

必要:是

回應語法

{ "RecordsIngested": { "MagneticStore": number, "MemoryStore": number, "Total": number } }

回應元素

如果動作成功,服務會傳回 HTTP 200 回應。

服務會以 JSON 格式傳回下列資料。

RecordsIngested

此請求擷取的記錄相關資訊。

類型:RecordsIngested 物件

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

AccessDeniedException

您無權執行此動作。

HTTP狀態碼:400

InternalServerException

由於內部伺服器錯誤,Timestream 無法完全處理此請求。

HTTP狀態碼:500

InvalidEndpointException

請求的端點無效。

HTTP狀態碼:400

RejectedRecordsException

在下列情況下, WriteRecords 會擲回此例外狀況:

  • 具有重複資料的記錄,其中有多個記錄具有相同的維度、時間戳記和量值名稱,但:

    • 測量值不同

    • 請求中沒有版本,新記錄中的版本值等於或低於現有值

    在此情況下,如果 Timestream 拒絕資料,RejectedRecords回應中的ExistingVersion欄位會指出目前記錄的版本。若要強制更新,您可以將記錄集的 版本 重新傳送請求,使其值大於 ExistingVersion

  • 時間戳記位於記憶體存放區保留期間以外的記錄。

  • 維度或量值超過 Timestream 定義限制的記錄。

如需詳細資訊,請參閱 Amazon Timestream 開發人員指南中的配額

HTTP狀態碼:400

ResourceNotFoundException

操作嘗試存取不存在的資源。資源可能未正確指定,或其狀態可能不是 ACTIVE。

HTTP狀態碼:400

ThrottlingException

使用者提出的請求太多,而且超過服務配額。請求受到調節。

HTTP狀態碼:400

ValidationException

無效或格式不正確的請求。

HTTP狀態碼:400

另請參閱

如需在其中一種語言特定的 API 中使用此 AWS SDKs 的詳細資訊,請參閱下列內容: