2017-05-03 1 views
0

Gibt es eine Möglichkeit, Schwellenwerte für batchWriteItem in DynamoDb: Wenn TableWriteItems 25 Elemente Grenze erreicht hat, Daten einfügen (dies kann durch Überprüfung der Größe von TableWriteItems getan werden, aber was ist, wenn wir nie erhalten 25 Produkte von Back-End für eine signifikante Zeit)Setzen Sie Grenzen in DyanmoDb batchWriteItem

Was ich suche hier: -> wenn TableWriteItems hat eine dieser drei Bedingungen erreicht: timelimit, itemSizeLimit oder dataSizeLimit, legen Sie eine Charge in DynamoDB

TableWriteItems testTableWriteItems = new TableWriteItems("TestTable"); 
      for (int i = 1; i <= 25; i++) { 

       PrimaryKey primaryKey = new PrimaryKey(); 
       primaryKey.addComponent("testId", testId.toString()); 
       primaryKey.addComponent("testName", "testbatch"+i); 
       Item item = new Item().withPrimaryKey(primaryKey); 

       testTableWriteItems.addItemToPut(item); 

      } 



      BatchWriteItemOutcome outcome = dynamoDB.batchWriteItem(testTableWriteItems); 

Antwort

1

Die DynamoDB Import-Export Tool enthält eine Beispiellösung für die Batch-Verarbeitung ms in Gruppen von 25 Elementen. Sie können das mithilfe der Item sizing method in the DynamoDB Storage Backend for Titan erweitern, um die Größenbeschränkung zu implementieren. Schließlich benötigen Sie einen zweiten Thread, um die Arbeitswarteschlange zu streichen und BatchWriteItem-Anforderungen auszulösen, wenn sich die Warteschlangengröße für eine Weile nicht ändert.