如何在 R 中设置 ODBC 连接?

问题描述 投票:0回答:2

这是该主题的后续问题。

将 R 数据集中的数据写入 Redshift

如何在 R 中设置 ODBC 连接?换句话说,我在其中输入诸如

之类的详细信息

驱动程序、网址和端口?

r odbc amazon-redshift
2个回答
1
投票

按照引用的问题,如果您使用的是 Windows,则在 ODBC 数据源管理器中创建用户 DSN 或系统 DSN ODBC 连接(在开始按钮的搜索框中搜索 ODBC)。然后在以下代码的第二行中使用该名称。哪里写着

"mydsn"

library(RODBC)
myconn <-odbcConnect("mydsn", uid="Rob", pwd="aardvark")
crimedat <- sqlFetch(myconn, "Crime")
pundat <- sqlQuery(myconn, "select * from Punishment")
close(myconn) 

如果您尚未安装 Amazon Redshift ODBC 驱动程序,则必须先安装它们。我找到了一个链接这里


0
投票

我创建了一个类来封装连接。首先,您必须设置 odbc 数据源 64 位(取决于数据库驱动程序)。之后,我使用 setRefClass 创建一个新类:

library(odbc)
library(methods)

MyDatabaseConnection <-
  setRefClass("MyDatabaseConnection", fields = list(conn = "ANY"))
MyDatabaseConnection$methods(
  initialize = function() {
    conn <<- dbConnect(
      odbc(),
      dsn = "your data source name from odbc",
      uid = "your user",
      pwd = "Your password")
    )
  },
  finalize = function() {
    if (is.null(conn) == FALSE) {
      conn <<- NULL
    }
  },
  query = function(sql) {
    if (is.null(conn) == FALSE)
    {
      dataf <- dbGetQuery(conn, sql)
      print(class(dataf))
      return(dataf)
    }
    else
    {
      print("No connection")
    }
  }
)

您可以从此类创建一个对象

my_conn <- MyDatabaseConnection$new()

您可以运行返回 data.frame 的函数

data <- my_conn$query("SELECT * FROM TABLE")

本课程将帮助您更好地组织和整理您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.