【问题标题】:Knime too slow - performanceKnime 太慢 - 性能
【发布时间】:2013-11-27 11:57:49
【问题描述】:

我刚开始使用 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

【问题讨论】:

    标签: bigdata knime


    【解决方案1】:

    我遇到了同样的问题...并且能够非常简单地解决它,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:

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-22
          相关资源
          最近更新 更多