Jaspersoft studio 运行 如何直接查询或实时连接到大数据库

How could Jaspersoft studio run direct query or live connection to Big database

我正在使用 Jaspersoft studio 6 并处理大型数据库。我的数据在 Mysql 中并且在一个 table 中有 700 万个文档。

当我使用 Jaspersoft studio 连接到 MySql 时,它将连接到 MySQL、运行 查询,例如 'select a, b from table1' 并从 MySql。但是,这里我的 table 是 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(ReportControler.java:499)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.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级的数据

您需要在 JSS 中配置一个报表虚拟器,这样当一个大报表是 运行 时,磁盘上的临时文件用于存储文档页面并避免消耗内存。

在 JSS 中,您需要转到 Preferences/Jaspersoft Studio/Report 执行并查看用于激活基于文件的虚拟器的复选框。您可以先尝试使用默认配置,看看效果如何。