Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 使用Typesafe Slick检索约10亿个大型结果_Postgresql_Scala_Slick 2.0 - Fatal编程技术网

Postgresql 使用Typesafe Slick检索约10亿个大型结果

Postgresql 使用Typesafe Slick检索约10亿个大型结果,postgresql,scala,slick-2.0,Postgresql,Scala,Slick 2.0,我正在做一个cron工作,每天都需要查询Postgres。这张桌子是巨大的~万亿记录。平均而言,我希望每次执行检索大约10亿条记录。我找不到任何关于在Slick 2.1.0中使用游标或分页的文档。我能想到的一个简单方法是,首先获取计数,然后使用拖放循环。有没有更好、更有效的方法来实现这一点?使用akka、postgresql async映射reduce,首先计数,然后使用偏移量+限制查询将数据分发给参与者,然后在需要时映射数据,然后将结果减少到elasticsearch或其他存储?您(1)是否依

我正在做一个cron工作,每天都需要查询Postgres。这张桌子是巨大的~万亿记录。平均而言,我希望每次执行检索大约10亿条记录。我找不到任何关于在Slick 2.1.0中使用游标或分页的文档。我能想到的一个简单方法是,首先获取计数,然后使用拖放循环。有没有更好、更有效的方法来实现这一点?

使用akka、postgresql async映射reduce,首先计数,然后使用偏移量+限制查询将数据分发给参与者,然后在需要时映射数据,然后将结果减少到elasticsearch或其他存储?

您(1)是否依赖于客户端上的大量RAM,或者(2)是否计划使用游标获取少于整个结果集的数据?我不确定我是否理解你的问题的细节。如果我没有正确解释,我深表歉意。我肯定在寻找一个类似(2)的选项,我认为Richard Huxton的意思是,如果你使用游标,你不会一次将所有这些记录拉入内存。你将一次一个(或者一次一块,取决于数据库驱动程序)将十亿个结果读入内存。@AmigoNico更新了这个问题。啊,这很有帮助。你可能会对这个问题感兴趣:这个答案看起来更像是一个评论。尝试将您的THEN设置为多个步骤,并提供更多细节。