什么是用于本地运行DynamoDB的默认配置吞吐量(读写能力单位)



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

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

为了提高插入率,我尝试在创建表格时几次更改配置的吞吐量值,然后我知道,在本地运行时,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实例的默认读取和写入容量单位是什么?

dynamodblocal不会以任何方式实现吞吐量限制。如果您的吞吐量有限,则受您正在运行的硬件的限制。

来自DynamoDB本地文档:

在表数据上读取和写入操作的速度仅受计算机速度的限制。

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

如果您需要使用DynamoDB进行任何性能测试,则应使用真实的DynamoDB。我的公司已使用DynamoDB进行了数以万计的读取和每秒写入的应用程序,而没有任何dynamoDB的缩放问题,因此我可以证明,真正的DynamoDB的性能将比DynamoDB local更好。

相关内容

  • 没有找到相关文章

最新更新