使用 Java dsl 使用 Alpakka 和 Slick 处理大表如何管理记录的提取大小以避免 OutOfMemory 问题?

问题描述

我正在尝试使用 Alpakka 和 Slick 和 Postgres DB 来实现流解决方案。我正在使用 Slick 从包含数百万条记录的表中获取记录并尝试进一步处理。我在 Slick 文档中看到我们需要提供 Fetch Size 以避免内存不足问题,但没有找到如何通过 Java DSL 提供该问题。下面是我的示例代码

final CompletionStage<Done> done = Slick.source(
                                                    session,"select ROW_NUMBER() over(),s.fname,s.lastname " +
                                                    "from student s ",(slickrow row) -> new Student(row.nextInt(),row.nextString(),row.nextString())
                                                )
                                                .map(s -> {
                                                    
                                                    log.info("Student details,rownum={},sfname={},slname={}",s.getRowNumber(),s.getFname(),sts.getLname());
                                                    
                                                    return sts;
                                                })
                                                .runWith(Sink.ignore(),materializer);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...