0

我刚开始使用 KNIME,它假设管理了大量数据,但事实并非如此,它很慢而且通常没有响应。我将管理比我现在使用的更多的数据,我做错了什么?我在我的配置文件“knime.ini”中设置:

-XX:MaxPermSize=1024m
-Xmx2048m

我还从数据库节点(数百万行)读取数据,但我不能通过 SQL 来限制它(我不介意,我需要这些数据)。

SELECT * FROM foo LIMIT 1000

错误:

WARN     Database Reader     com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0' at line 1
4

3 回答 3

2

我有同样的问题......并且能够非常简单地解决它,KNIME有一个KNIME.ini文件,这个文件就像KNIME用来执行的参数......

真正的问题是 JBDC 驱动程序设置为 10 Fetch Size。默认情况下,当 Oracle JDBC 运行查询时,它  一次从数据库游标中检索10 行的结果集。这是默认的 Oracle 行获取大小值......所以每当您阅读数据库时,您都会非常痛苦地等待检索所有行。

解决方法很简单,进入安装KNIME的文件夹,找到KNIME.ini文件,打开后在底部添加如下语句,会覆盖默认的JBDC抓取,然后就可以获取到里面的数据了从字面上看是几秒钟。

-Dknime.database.fetchsize=50000 -Dknime.url.timeout=9000

希望这会有所帮助:slight_smile:

于 2019-03-12T02:34:58.880 回答
1

有关此讨论的其余部分和解决方案,请参见http ://tech.knime.org/forum/knime-users/knime-performance-reading-from-a-database...

于 2013-12-03T05:02:13.463 回答
0

我不确定您的问题是关于性能问题还是 SQL 问题。

对于前者,我遇到了同样的问题,并且在我开始搜索 Eclipse 性能修复而不是 KNIME 性能修复时才找到解决方案。确实,增加 Java 堆大小是一件好事,但我的性能问题(也许还有你的问题)是由保存的工作区元数据中发生的一些问题引起的。解决方法:删除 knime/workspace/.metadata 目录的内容。

至于后者,不确定为什么会出现该错误;也许尝试在 SQL 语句的末尾添加一个分号。

于 2014-04-11T23:01:19.697 回答