我刚刚开始使用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
请参阅http://tech.knime.org/forum/knime-users/knime-performance-reading-from-a-database,了解其余的讨论和解决方案......
我有同样的问题......并且能够真正解决它,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:
我不确定您的问题是关于性能问题还是SQL问题。
对于前者,我遇到了同样的问题,并且在我开始搜索Eclipse性能修复而不是KNIME性能修复时才找到了解决方案。确实,增加Java堆大小是一件好事,但是我的性能问题(也许是你的)是由保存的工作空间元数据中发生的不良事件引起的。解决方案:删除knime / workspace / .metadata目录的内容。
至于后者,不确定为什么你会得到那个错误;也许尝试在SQL语句的末尾添加分号。