gpt4 book ai didi

java - 如何使用 Spring Data Cassandra 从 cassandra 数据库读取超过百万条记录并使用 Spring Batch 将其写入文件?

转载 作者:行者123 更新时间:2023-12-01 19:13:47 25 4
gpt4 key购买 nike

我需要使用 Spring Data Cassandra 从 Cassandra 数据库读取超过一百万条记录,并使用 Spring Batch 将其写入文件中。现在我正在使用 Spring data Cassandra 的分页功能,但它似乎正在执行 select * from table 然后过滤记录。这可能不是一个好的选择,因为该表将拥有超过一百万条记录,将它们一次性全部加载到内存中会很糟糕。

我还需要将其与 Spring Batch 集成,以便我能够将每条记录纠正到文件中。我正在寻找一种从 Cassandra 读取数据并将其分块保存在文件中的方法。最好的方法是什么?

这是我使用分页从 Cassandra 获取记录的代码:

public void startJob() {
Pageable pageable = PageRequest.of(0, pageSize);
Slice<FLProductATPEntity> slice = repository.findAll(pageable);
List<FLProductATPEntity> entityList;
if (slice.hasContent()) {
entityList = slice.getContent();
entityList.forEach(entity -> log.info("Entity: {}", entity));
}
while (slice.hasNext()) {
slice = repository.findAll(slice.nextPageable());
entityList = slice.getContent();
entityList.forEach(entity -> log.info("Entity: {}", entity));
}
}

最佳答案

I'm looking for a way to read data from Cassandra and save it in file in chunks

Spring Batch 提供 RepositoryItemReader您可以将其与 cassandra PagingAndSortingRepository 作为委托(delegate)一起使用。因此,您可以使用此读取器和 FlatFileItemWriter 创建面向 block 的步骤,以将数据写入文件。

关于java - 如何使用 Spring Data Cassandra 从 cassandra 数据库读取超过百万条记录并使用 Spring Batch 将其写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59442523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com