我是 DynamoDb 的新手,并尝试使用 Java 在本地运行的 DynamoDb 上批量插入大约 5.5k 个项目。尽管我尽了最大的努力,并进行了各种调整,但我能够在大约 100 秒内完成此操作(即使在使用 executor 框架之后)。
我在这里发布了我的代码,但没有得到答案。
为了提高插入率,我在创建表时尝试了多次更改预置吞吐量值,然后我知道在本地运行时,dynamodb 会忽略吞吐量值。所以我认为我的 dynamodb 不能一次处理这么多的写请求,当我在 AWS 服务器上执行时,性能可能会提高。
这是我运行创建表的代码:
public static void main(String[] args) throws Exception {
AmazonDynamoDBClient client = new AmazonDynamoDBClient().withEndpoint("http://localhost:8000");
DynamoDB dynamoDB = new DynamoDB(client);
String tableName = "Database";
try {
System.out.println("Creating the table, wait...");
Table table = dynamoDB.createTable(tableName, Arrays.asList(new KeySchemaElement("Type", KeyType.HASH),
new KeySchemaElement("ID", KeyType.RANGE)
), Arrays.asList(new AttributeDefinition("Type", ScalarAttributeType.S),
new AttributeDefinition("ID", ScalarAttributeType.S)),
new ProvisionedThroughput(10000L, 10000L));
table.waitForActive();
System.out.println("Table created successfully. Status: " + table.getDescription().getTableStatus());
} catch (Exception e) {
System.err.println("Cannot create the table: ");
System.err.println(e.getMessage());
}
}
但是为了确定我想知道本地运行的 dynamodb 实例的默认读写容量单位是多少?