我想知道在执行带有精巧的akka流集成的DBAction时是否存在默认结果集大小。
确实(我正在使用akka-stream slick)。当我编写以下查询时:
Slick.source(sql"""select * FROM DRUG""".as[(Map[String,String])])
如
val tableRows =
Slick.source(sql"""select * FROM DRUG""".as[(Map[String,String])])
.map{e => RawData("DRUG", "/Users/xxxx/xxxx/WSP1WS5-DRUG-auto-model.ttl", "OBJECT", "", e)}
.mapAsyncUnordered(8){value =>
Future{
println(s"Writing {${value.toString}}")
val kryo = kryoPool.obtain()
val outStream = new ByteArrayOutputStream()
val output = new Output(outStream, 4096)
kryo.writeClassAndObject(output, value)
output.close()
kryoPool.free(kryo)
new ProducerRecord[String, Array[Byte]]("test", outStream.toByteArray)
}
}
.runWith(Producer.plainSink(producerSettings))
我的查询返回多达400条记录,然后就挂在那里。该表中有大约5k条记录。那是正常的吗?
尽管如此,我仍然可以通过使用以下语句来全部检索它们:
Slick.source(sql“”“ select * FROM DRUG,其中ROWNUM <= 1000000000“”“。as [(Map [String,String])])
我正在使用的数据库是oracle。因此,我想知道是导致这种情况的是Oracle,slick还是akka-stream集成。
对此有何建议?