3

有可能通過數據管道轉儲DynamoDb並在DynamoDb中導入數據。導入進行得很順利,但是所有時間數據都附加到DynamoDb中已存在的數據中。截斷DynamoDb或通過數據管道重寫數據

現在我找到了掃描DynamoDb並逐個刪除項目或通過批處理的工作示例。但無論如何,對於大量的數據來說,這並不是好的變體。

也可以根本刪除表並創建它。但是隨着這個變體索引將會丟失。

因此,最好的方法是通過數據管道導入或以某種方式截斷來覆蓋DynamoDb數據。有可能嗎?如果是的話,怎麼可能?

+0

可能的重複[刪除從亞馬遜dynamodb](http://stackoverflow.com/questions/15963833/deletion-from-amazon-dynamodb) – LuFFy

回答

2

截斷表功能在DynamoDB可用,所以笑納刪除表&再次創建,

原因:DynamoDB收費您可以根據您已經使用ReadCapacityUnits & WriteCapacityUnits。如果使用BatchWriteItem函數刪除所有項目,則將使用WriteCapacityUnits。因此,要保存這些WriteCapacityUnits用於刪除項目,如果您截斷表格&將會更好地重新創建它。

步驟刪除&創建DynamoDB表如下:

Delete Table via AWS CLI

aws dynamodb delete-table --table-name *tableName* 

Delete Table via AmazonDynamoDB API

樣品申請

POST/HTTP/1.1 
Host: dynamodb.<region>.<domain>; 
Accept-Encoding: identity 
Content-Length: <PayloadSizeBytes>  
User-Agent: <UserAgentString> 
Content-Type: application/x-amz-json-1.0 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> 
X-Amz-Date: <Date> 
X-Amz-Target: DynamoDB_20120810.DeleteTable 

{ 
    "TableName": "Reply" 
} 

Creating DynamoDB Table via AmazonDynamoDB API

POST/HTTP/1.1 
Host: dynamodb.<region>.<domain>; 
Accept-Encoding: identity 
Content-Length: <PayloadSizeBytes>  
User-Agent: <UserAgentString> 
Content-Type: application/x-amz-json-1.0 
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> 
X-Amz-Date: <Date> 
X-Amz-Target: DynamoDB_20120810.CreateTable 

{ 
    "AttributeDefinitions": [ 
     { 
      "AttributeName": "ForumName", 
      "AttributeType": "S" 
     }, 
     { 
      "AttributeName": "Subject", 
      "AttributeType": "S" 
     }, 
     { 
      "AttributeName": "LastPostDateTime", 
      "AttributeType": "S" 
     } 
    ], 
    "TableName": "Thread", 
    "KeySchema": [ 
     { 
      "AttributeName": "ForumName", 
      "KeyType": "HASH" 
     }, 
     { 
      "AttributeName": "Subject", 
      "KeyType": "RANGE" 
     } 
    ], 
    "LocalSecondaryIndexes": [ 
     { 
      "IndexName": "LastPostIndex", 
      "KeySchema": [ 
       { 
        "AttributeName": "ForumName", 
        "KeyType": "HASH" 
       }, 
       { 
        "AttributeName": "LastPostDateTime", 
        "KeyType": "RANGE" 
       } 
      ], 
      "Projection": { 
       "ProjectionType": "KEYS_ONLY" 
      } 
     } 
    ], 
    "ProvisionedThroughput": { 
     "ReadCapacityUnits": 5, 
     "WriteCapacityUnits": 5 
    } 
} 

摘要刪除表&再次創建這將是最好的解決辦法。

+1

謝謝。所以 - 是的。現在刪除然後創建方法是最好的方法。之前當我通過cli命令創建新表時,我遇到了索引問題。但現在修好了,一切都很好。 –