4

你好,

我想做什么?

我目前正在研究一个 ESB 项目(apache-camel + spring boot 2),我在其中读取了一个超过 100 000 000 行的 MySQL 表。我一次清空该表 1 行,转换该行并将其发送到另一个数据库。

我该怎么做?

目前我使用 camel-sql 读取数据

//edited .from(sql:SELECT * FROM mytable?outputType=StreamList&outpuClass=MyClass) .split(body()).streaming() .bean(mybean, "transform") .end()

问题 :

由于我无法选择 * 并在我的 RAM 中获取所有 100M 行,因为它可能不够大,所以我想使用流。

因此:似乎使用 StreamList 作为 outputType 仍然首先获取所有行,然后才将其作为“流”(ResultSet)返回。

问题

难道我们不能只使用 PreparedStatement 的属性来真正“一次一行”地从我的数据库中流式传输数据,而不是一次获取所有数据并破坏我的 VM 内存吗?

谢谢。

4

0 回答 0