【问题标题】:How to speed up collect() from a dbconnect database如何从 dbconnect 数据库加速 collect()
【发布时间】:2020-11-06 06:14:00
【问题描述】:

我正在从 amazonaws 服务器上的 odbc 驱动程序读取表格。 我在 64 位 Windows 计算机上使用 R 4.0.0。 在家工作并使用公司的 VPN,所以我的互联网速度约为 17 Mbps 下载。

我用这个语句连接到数据库 con

我用这个语句访问表 case_tbl

该表有 500K 行和 60 列,所以并不大,但下载大约需要 2 分钟。 如果我的网速很慢,有时需要 30 分钟。

有什么办法可以加快速度吗?也许用 data.table 而不是 dplyr 的东西?

我尝试过滤我选择的列,但有时我需要更多列并且必须重新运行。

也许我只需要为更快的互联网付费。

谢谢, 詹妮弗

【问题讨论】:

    标签: r database collect dbplyr


    【解决方案1】:

    由于您不在这里进行任何数据操作 data.table 不会帮助您加快流程。
    为确保延迟是由于您的互联网连接速度造成的,与dbplyr无关,请直接使用DBI

    library(DBI)
    con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)
    system.time({case_tbl <- dbGetQuery(con, "SELECT * FROM fhv_owner.case")})
    

    【讨论】:

    • 谢谢,速度非常快,只有 5 秒
    • 我会打赌互联网连接 ;)。如果它回答了你的问题,你能接受吗?
    • 是的,我认为它是互联网。因为当我以前在没有 vpn 的办公室里做这件事时,它非常快。感谢您的帮助。
    • 好的,否则我会感到惊讶。您能否接受答案,以便其他人知道问题已结束?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2017-04-09
    • 2020-02-28
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多