【问题标题】:Why does R upload data much faster than KNIME or Workbench?为什么 R 上传数据比 KNIME 或 Workbench 快得多?
【发布时间】:2019-07-01 13:02:57
【问题描述】:

我想知道的是,当我通过 R 上传数据并且它比 MySQL Workbench 或 KNIME 快得多时,到底发生了什么?

我处理数据,并且每天都将数据上传到 MySQL 服务器。我曾经使用 KNIME 上传数据,因为它比使用 MySQL Workbench 上传快得多(选择表 ->“导入数据”)。

一些信息:CSV 有 4000 行和 15 列。我在 R 中使用的库是 RMySQL。我在 KNIME 中使用的节点是数据库写入器。

library('RMySQL')

df=read.csv('C:/Users/my_user/Documents/file.csv', encoding = 'UTF-8', sep=';')

connection <- dbConnect(
    RMySQL::MySQL(),
    dbname = "db_name",
    host = "yyy.xxxxxxx.com",
    user = "vitor",
    password = "****"
)

dbWriteTable(connection, "table_name", df, append=TRUE, row.names=FALSE)

所以,为了测试,我使用相同的文件执行了完全相同的过程。在 KNIME 中用了 2 分钟,在 R 中只用了几秒钟。

【问题讨论】:

    标签: mysql r mysql-workbench rmysql knime


    【解决方案1】:

    一切都发生在幕后!数据上传到数据库取决于参数,例如数据库和工具之间的接口、网络连接、批量大小集、可用于工具的内存和工具数据处理速度本身,可能还有更多。在您的情况下,RMySQL 包默认使用 500 的批量大小,而 KNIME 仅使用 1,所以可能这就是差异的来源。尝试在 KNIME 中将其设置为 500,然后进行比较。不知道 MySQL Workbench 是如何工作的...

    【讨论】:

    • 酷!老实说,为了了解数据加载和数据库的工作原理,我还有很多工作要做。我会看看我使用的工具的批量大小。谢谢!
    • Vitor Costa,如果@ipazin 给你的解决方案适合你,请给出相应的评估和/或接受答案。如果您的问题仍未解决,此时其他用户可能不清楚。
    猜你喜欢
    • 1970-01-01
    • 2015-01-30
    • 2012-12-03
    • 2014-04-21
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多