簡體   English   中英

使用dplyr 0.7和R連接到Microsoft SQL數據庫

[英]Connect to Microsoft SQL database with dplyr 0.7 and R

我正在嘗試對數據庫( Microsoft SQL Server 2014 )使用dplyr / dbplyrversion 0.7 )。 我已經能夠使用RODBCDBIodbc軟件包連接到該數據庫並提取數據。 當我嘗試直接將dplyr動詞與基數一起使用時,就會出現問題。

當我嘗試使用dplyr ,出現以下錯誤:

Error in new_result(connection@ptr, statement) : std::bad_alloc

我在dplyr倉庫中提出了這個問題,哈德利在那兒告訴我這很可能是odbc錯誤。 當我在odbc庫中提出問題時,Jim超級有幫助,但無法解決問題。

要清楚:

RODBC::sqlQuery()DBI::dbGetQuery()都可以工作:我得到了一個預期的數據DBI::dbGetQuery() ,並且可以使用SQL查詢取回我想要的任何東西。 我只在嘗試使用dplyr動詞時碰到內存分配錯誤(實際上,即使嘗試tbl() )。 有很多數據,但是我正在查詢它的一個子集,它很適合R存儲器。

理想情況下,我寧願保持數據 R的記憶完全,如果可能的話。 這樣做的原因是,我正在構建一個Shiny應用程序,該應用程序將根據用戶選擇的數據的各個方面生成繪圖等。 可以想象,每次用戶這樣做都連接到數據庫,發送查詢和接收數據,這會使應用程序變得毫無用處,因為它太慢了。 我的理想情況是RStudio示例:

my_db <- src_mysql(
  dbname = "shinydemo",
  host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
  user = "guest",
  password = "guest"
)

> my_db %>% tbl("City") %>% head(5)
# Source:   lazy query [?? x 5]
# Database: mysql 10.0.17-MariaDB [guest@shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com:/shinydemo]
     ID           Name CountryCode      District Population
  <dbl>          <chr>       <chr>         <chr>      <dbl>
1     1          Kabul         AFG         Kabol    1780000
2     2       Qandahar         AFG      Qandahar     237500
3     3          Herat         AFG         Herat     186800
4     4 Mazar-e-Sharif         AFG         Balkh     127800
5     5      Amsterdam         NLD Noord-Holland     731200

但是,以我為基地,我無法做到這一點。 任何幫助將非常感激。

嘆。 (回答遇到類似問題的任何人。)

原來這是我要訪問的特定表的問題。

該表可以很好地恢復正常,而RODBCDBI/odbc卻沒有問題,但是一旦我使用dplyr它就會吐出此錯誤。

數據庫中的其他表可以與dplyr配合dplyr ,因此必須與該特定表有關。 更糟糕的是,我不知道為什么。

Sybase我有一個非常相似的問題。 我的問題原來與odbcDBI軟件包完全無關。

我的解決方案是確保我使用的是支持8字節SQLLEN數據類型的ODBC驅動程序。 在Linux上,運行命令odbcinst -j向我顯示,對於在64位RHEL Server 7.5上運行的已安裝unixODBC版本2.3.1,SQLLEN大小為8。

缺省情況下,Sybase驅動程序被符號鏈接到4字節版本。 按照下面的說明,我確保我已鏈接到8字節版本,並且我的問題已解決。 奇怪的是,當我通過isql發出命令時,我從未遇到過這些問題,但是...也許這對於帶有SQL Server的@robertmc來說是有效的。

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc20155.1600/doc/html/san1361915533650.html

也在相關的GitHub問題之一中發布此內容: https : //github.com/r-dbi/odbc/issues/174#issuecomment-403106647

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM