Java Dynamo db写操作

Java Dynamo db写操作,java,amazon-web-services,amazon-dynamodb,throughput,Java,Amazon Web Services,Amazon Dynamodb,Throughput,Dynamo db每批仅允许25个请求。在Java中,有没有任何方法可以提高这一点,因为我必须每秒处理1000条记录?有比分批处理更好的解决方案吗?每批25个写入项是一个硬性的dynamodb限制,如下所述: 没有任何东西可以阻止您并行执行多个批处理写入。决定您可以写多少的是表上写配置的吞吐量 DynamoDB中引入批写操作是为了减少执行多个写操作所需的往返次数,这些语言不提供并行线程执行工作(如PHP)的机会 虽然由于使用批处理API减少了往返次数,您仍然可以获得更好的性能,但是仍然存在个别写

Dynamo db每批仅允许25个请求。在Java中,有没有任何方法可以提高这一点,因为我必须每秒处理1000条记录?有比分批处理更好的解决方案吗?

每批25个写入项是一个硬性的dynamodb限制,如下所述:


没有任何东西可以阻止您并行执行多个批处理写入。决定您可以写多少的是表上写配置的吞吐量

DynamoDB中引入批写操作是为了减少执行多个写操作所需的往返次数,这些语言不提供并行线程执行工作(如PHP)的机会

虽然由于使用批处理API减少了往返次数,您仍然可以获得更好的性能,但是仍然存在个别写入失败的可能性,您的代码将需要查找这些失败。使用Java执行大规模并行写入的健壮方法是使用该类。这提供了一种使用多个线程执行插入的简单机制。但是,正如批处理中的单个项目可能失败一样,您需要跟踪未来的对象,以确保成功执行写入

另一种提高吞吐量的方法是在EC2上运行代码。如果您是从笔记本电脑或AWS以外的数据中心呼叫DynamoDB,往返时间将更长,请求速度将稍慢


底线是使用标准Java多线程技术来获得所需的性能。然而,超过某一点时,您可能需要扇出并使用额外的硬件来驱动更高的写入操作。

每当您有大量实时数据流需要在AWS中结束时,运动数据流可能就是一种方法。特别是使用,您可以大规模地将数据传输到S3,而无需管理开销。然后,您可以使用DataPipeline将其移动到Dynamo