在DyanmoDb batchWriteItem中设置限制

时间:2017-05-03 21:45:38

标签: amazon-dynamodb

我们有什么办法可以在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);

1 个答案:

答案 0 :(得分:1)

DynamoDB Import-Export Tool有一个示例解决方案,用于以25个项目为一组批量处理项目。您可以使用Item sizing method in the DynamoDB Storage Backend for Titan扩展它以实现大小限制。最后,如果队列大小暂时没有改变,你需要第二个线程来处理工作队列并触发BatchWriteItem请求。