程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 R 查询 SQLite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 R 查询 sqlite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢

开发过程中遇到使用 R 查询 sqlite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 R 查询 sqlite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢的解决方法建议,希望对你解决使用 R 查询 sqlite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢有所启发或帮助;

我有一个 sqlite 文件,其中包含一个包含 900 万行左右和 30 多列的表。直到几天前,以下代码运行良好:

path <- file.path(basepath,"Rmark_web","sql_Data","2020Q3_Enterprise_Exposure_Wind.sqlite")
cn <- DBI::dbConnect(Rsqlite::sqlite(),path)
df <- DBI::dbGetquery(cn,"SELEct Longitude,Latitude,City,State,@R_637_10586@l_Value,GrIDID,new_LOB from [2020Q3_Enterprise_Exposure_Wind] where State in ('GA')")
DBI::dbdisconnect(cn)

当我在本地机器上运行包含此查询的代码时,它需要一些时间,但它确实完成了。我目前正在尝试使用以下指标在 docker 映像中运行它:

docker run --memory=10g --rm -d -p 8787:8787     -v /efs:/home/rstudio/efs     -e ROOT=TRUE     -e disABLE_AUTH=true     myrstudio        

有没有办法调试 Rsqlite 包?是否有另一种方法可以在不使用此包的情况下执行此查询?其余代码运行良好,但会在此特定步骤中停滞不前并且通常无法完成(尤其是当这段代码在 docker 映像中第二次或第三次运行时)。

查询中包含的状态数会随着运行而变化。

解决方法

如果您遇到此问题,请务必从 SQL 文件中删除您未使用的任何列。最后,我将其作为 POSTGRes 数据库在线加载,这似乎解决了我遇到的问题。这是对任何人都有益的新查询。

library(RPOSTGRes)
library(RPOSTGReSQL)
library(DBI)
db <- 'airflow_db'  #provide the name of your db
    
host_db <- [omitted for privacy] 
    
db_port <- [omitted for privacy]  # or any other port specified by the DBA
    
db_user <- [omitted for privacy]  
    
db@R_197_3988@ <- Sys.getenv("DB_PASS")
    
con <- dbConnect(RPOSTGRes::POSTGRes(),dbname = db,host=host_db,port=db_port,user=db_user,password=db@R_197_3988@)
query <- paste('SELEct * from weather_report.ent_expo_data where "State" in (',in_states_clause,')',sep='')
print(query)
df <- dbGetQuery(con,query)

大佬总结

以上是大佬教程为你收集整理的使用 R 查询 SQLite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢全部内容,希望文章能够帮你解决使用 R 查询 SQLite 文件帮助:DBI::dbGetQuery() 永远不会完成,非常慢所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。