在 RStudio (dplyr) 中从 SQL 服务器读取数据

Reading Data from a SQL server in RStudio (dplyr)

我确定这个问题很基础,但这是我第一次使用 R 连接到服务器,所以有些事情仍然让我感到困惑。

我在 Windows 上使用 ODBC 数据源创建了一个 DNS,并使用

con <- dbConnect(odbc::odbc(), "TEST_SERVER") 

这有效,现在在连接选项卡下我可以看到服务器,如果我双击我可以看到服务器中存在的数据库和 tables。我将如何去阅读其中一个数据库中的内容?

例如,如果数据库名称是 db1,table 名称是 t1,那么将 table 读入本地内存所需的代码是什么?我更喜欢使用 dbplyr,因为我熟悉语法。我只是不确定在连接到服务器后如何引用特定数据库和 table。

我之前没用过dbplyr,不过你可以用dbGetQuery查询数据库。

test <- dbGetQuery(
  con,
  "SELECT *
   FROM db1.t1
  "
)

您也可以将数据库传递到连接字符串中。

con <- dbConnect(
  drv      = odbc(),
  dsn      = "TEST_SERVER",
  database = "db1"
)

然后您的查询将只是 "SELECT * FROM t1"

编辑:使用dbplyr查询table:

tbl1 <- tbl(con, "t1")
qry <- tbl1 %>% head() %>% collect()

我喜欢用RODBC-

con <- RODBC::odbcConnect(dsn = 'your_dsn',
                          uid = 'userid',
                          pwd = 'password')

table_output <- RODBC::sqlQuery(con, 'SELECT * FROM Table')