本地 运行 DynamoDb 的默认预配置吞吐量(读写容量单位)是多少?

What is the default Provisioned Throughput(read and write capacity unit) for locally running DynamoDb?

我是 DynamoDb 的新手,正在尝试使用 Java 在我的本地 运行 DynamoDb 上批量插入大约 5.5k 个项目。尽管我尽了最大努力并进行了各种调整,但我还是能够在大约 100 秒内完成此操作(即使在使用执行程序框架之后)。

我发布了我的代码 here,但没有得到答案。

为了提高插入率,我在创建 table 时尝试多次更改 Provisioned Throughput 值,然后我知道当 运行 在本地时,dynamodb 会忽略吞吐量值。所以我认为是我的 dynamodb 无法一次处理这么多写请求,当我在 AWS 服务器上处理时,性能可能会提高。

这是我 运行 创建的代码 table:

    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 实例的默认读写容量单位是多少?

DynamoDBLocal 不以任何方式实施吞吐量限制。如果您的吞吐量有限,则它会受到您所使用的硬件的限制 运行。

来自DynamoDB Local docs

The speed of read and write operations on table data is limited only by the speed of your computer.

根据 this answer 一个相关问题,性能明显很差,因为 DynamoDB 本地在幕后使用 SQLite。由于实现与真正的 DynamoDB 不同,我们应该期望性能也会有所不同。

如果您需要使用 DynamoDB 进行任何性能测试,您应该使用真正的 DynamoDB。我的公司已经将 DynamoDB 用于每秒数万次读取和写入的应用程序,而 DynamoDB 没有任何扩展问题,因此我可以证明真正的 DynamoDB 将比 DynamoDB Local 执行得更好。