我们有什么办法可以在dynamoDb中为batchWriteItem设置阈值限制: 如果TableWriteItems已达到25个项目限制,则插入数据(这可以通过检查tableWriteItems的大小来完成,但是如果我们从未在后端收到25个项目会有很长时间)
我在这看的是: - >如果TableWriteItems已达到以下三个条件之一:timeLimit,itemSizeLimit或dataSizeLimit,则在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);
答案 0 :(得分:1)
DynamoDB Import-Export Tool有一个示例解决方案,用于以25个项目为一组批量处理项目。您可以使用Item sizing method in the DynamoDB Storage Backend for Titan扩展它以实现大小限制。最后,如果队列大小暂时没有改变,你需要第二个线程来处理工作队列并触发BatchWriteItem请求。