我想從postgres中獲取數據到另一個數據庫,我正在使用camel-jdbc組件來完成它。我有一張大桌子,所以我想一次只讀幾行,而不是整個表格。所以我的路線如下所示(僅用於測試目的) from(fromUri).setBody(「select * from table limit 10」).to(「jdbc:// myDataSource?resetAutoCommit = false & statement.fetchSize = 2」)如上所示,我一次只能獲得10行用於測試目的,並且我已將fetchSize設置爲2,以便只在接收2行時獲得2行時間。但是,我仍然收到所有10行。當我從查詢中刪除「limit 10」時,在split命令之前出現Out of Memory錯誤,它告訴我它嘗試將整個結果集加載到內存中。駱駝jdbc內存不足異常
我在這裏錯過了什麼或者我做錯了什麼?
感謝您的幫助。
statement.maxRows = 2確實沒有用。它所做的只是返回2行並丟棄剩餘的8行,這不是我想要的。 – Pri
在Camel JDBC uri中設置outputType = StreamList並閱讀文檔:http://camel.apache.org/jdbc –
我已經試過了。這就是我最初開始的地方,我的路線看起來像從(fromUri).setBody(select * from table).to(「jdbc:// myDataSource?outputType = StreamList).split(body()).streaming().process測試)。上面的路由不會嘗試加載內存中表的所有數據,並在分割主體之前拋出內存錯誤。 – Pri