我正在使用 Jaspersoft studio 6 并处理大型数据库。我的数据在 Mysql 中,一张表中有 700 万个文档。
当我使用 Jaspersoft studio 连接到 MySql 时,它将连接到 MySQL,运行查询,例如“从 table1 中选择 a,b”并从 MySql 中提取数据集。但是,这里我的表是 700 万个文档,它会引发 OutOfMemoryError 错误,如下所示:
net.sf.jasperreports.engine.JRException: java.lang.OutOfMemoryError: Java heap space
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.fillReport(ReportControler.java:524)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$20(ReportControler.java:499)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:380)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.OutOfMemoryError: Java heap space............
它似乎耗尽了 JVM 内存。
如何在不将数据集导入 Jaspersoft 的情况下直接查询(或建立实时连接)到 MySql 数据库?
从 Jaspersoft 手册来看,它也可以处理来自 Hadoop 等的大数据。我还没有使用过 hadoop,但是如果 Jaspersoft studio 每次都需要导入整个数据集而不是建立实时连接,它如何处理非常大的数据集?例如 TB 规模的数据