

如需與 Amazon Timestream for LiveAnalytics 類似的功能，請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間，以進行即時分析。[在這裡](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)進一步了解。

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

# WriteRecords
<a name="API_WriteRecords"></a>

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

Timestream 支援最終一致性讀取語意。這表示當您在將一批資料寫入 Timestream 後立即查詢資料時，查詢結果可能不會反映最近完成的寫入操作的結果。結果也可能包含一些過時的資料。如果您在短時間內重複查詢請求，結果應該會傳回最新的資料。[服務配額適用](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html)。

有關詳細資訊，請參閱[程式碼範例](https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.write.html)。

 **Upserts** 

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

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

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

## 請求語法
<a name="API_WriteRecords_RequestSyntax"></a>

```
{
   "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"
}
```

## 請求參數
<a name="API_WriteRecords_RequestParameters"></a>

如需所有動作的一般參數資訊，請參閱《[Common Parameters](CommonParameters.md)》。

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

 ** [CommonAttributes](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-CommonAttributes"></a>
包含請求中所有記錄之間共用的常見度量、維度、時間和版本屬性的記錄。將資料寫入 Timestream 時，指定的量值和維度屬性將與記錄物件中的量值和維度屬性合併。維度可能不會重疊，或者`ValidationException`會擲回 。換句話說，記錄必須包含具有唯一名稱的維度。  
類型：[Record](API_Record.md) 物件  
必要：否

 ** [DatabaseName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-DatabaseName"></a>
Timestream 資料庫的名稱。  
類型：字串  
長度限制：長度下限為 3。長度上限為 256。  
必要：是

 ** [Records](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-Records"></a>
記錄陣列，其中包含每個時間序列資料點的唯一度量、維度、時間和版本屬性。  
類型：[Record](API_Record.md) 物件陣列  
陣列成員：項目數下限為 1。項目數上限為 100。  
必要：是

 ** [TableName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-TableName"></a>
Timestream 資料表的名稱。  
類型：字串  
長度限制：長度下限為 3。長度上限為 256。  
必要：是

## 回應語法
<a name="API_WriteRecords_ResponseSyntax"></a>

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

## 回應元素
<a name="API_WriteRecords_ResponseElements"></a>

如果動作成功，則服務傳回 HTTP 200 回應。

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

 ** [RecordsIngested](#API_WriteRecords_ResponseSyntax) **   <a name="timestream-WriteRecords-response-RecordsIngested"></a>
此請求所擷取之記錄的相關資訊。  
類型：[RecordsIngested](API_RecordsIngested.md) 物件

## 錯誤
<a name="API_WriteRecords_Errors"></a>

如需所有動作常見錯誤的資訊，請參閱[常見錯誤](CommonErrors.md)。

 ** AccessDeniedException **   
您無權執行此動作。  
HTTP 狀態碼：400

 ** InternalServerException **   
 由於內部伺服器錯誤，Timestream 無法完整處理此請求。  
HTTP 狀態碼：500

 ** InvalidEndpointException **   
請求的端點無效。  
HTTP 狀態碼：400

 ** RejectedRecordsException **   
 WriteRecords 會在下列情況下擲回此例外狀況：  
+ 具有重複資料的記錄，其中有多個記錄具有相同的維度、時間戳記和度量名稱，但：
  + 測量值不同
  + 版本不存在於請求中，*或*新記錄中的版本值等於或低於現有值

   在此情況下，如果 Timestream 拒絕資料，`RejectedRecords`回應中的 `ExistingVersion` 欄位會指出目前記錄的版本。若要強制更新，您可以將記錄集的版本 重新傳送請求至大於 的值`ExistingVersion`。
+  時間戳記超過記憶體存放區保留期間的記錄。
+  維度或量值超過 Timestream 定義限制的記錄。
 如需詳細資訊，請參閱《Amazon Timestream 開發人員指南[》中的配額](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html)。    
 ** RejectedRecords **   
 
HTTP 狀態碼：400

 ** ResourceNotFoundException **   
操作嘗試存取不存在的資源。資源可能未正確指定，或其狀態可能不是 ACTIVE。  
HTTP 狀態碼：400

 ** ThrottlingException **   
 使用者提出的請求太多，而且超過服務配額。請求受到調節。  
HTTP 狀態碼：400

 ** ValidationException **   
 無效或格式不正確的請求。  
HTTP 狀態碼：400

## 另請參閱
<a name="API_WriteRecords_SeeAlso"></a>

如需在其中一種語言特定 AWS SDKs中使用此 API 的詳細資訊，請參閱下列內容：
+  [AWS 命令列界面 V2](https://docs.aws.amazon.com/goto/cli2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 .NET V4 的 SDK](https://docs.aws.amazon.com/goto/DotNetSDKV4/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 Go 的 SDK v2](https://docs.aws.amazon.com/goto/SdkForGoV2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 Java V2 的 SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 JavaScript V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 PHP V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 Python 的 SDK](https://docs.aws.amazon.com/goto/boto3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS 適用於 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/timestream-write-2018-11-01/WriteRecords) 