3

Существует возможность сбрасывать DynamoDb через Data Pipeline, а также импортировать данные в DynamoDb. Импорт идет хорошо, но все время данные добавляются к уже существующим данным в DynamoDb.Truncate DynamoDb или переписать данные через Data Pipeline

На данный момент я нашел примеры работы, которые сканируют DynamoDb и удаляют элементы по одному или через Batch. Но во всяком случае для большого количества данных это нехороший вариант.

Также можно удалить таблицу и создать ее. Но с этим вариантом индексы будут потеряны.

Таким образом, наилучшим способом было бы переопределить данные DynamoDb через импорт по Data Pipeline или как-либо усечь. Можно ли это сделать? И как это возможно, если да?

+0

Возможный дубликат [Удаление из Amazon 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, у меня была проблема с индексами. Но теперь это исправлено, и все в порядке. –