通过DBI和ODBC使用R连接到Teradata

通过DBI和ODBC使用R连接到Teradata,r,odbc,teradata,teradata-sql-assistant,r-dbi,R,Odbc,Teradata,Teradata Sql Assistant,R Dbi,我使用Teradata SQL Assistant连接到Teradata。连接参数包括服务器地址和驱动程序(出于隐私原因更改了服务器信息),如下所示: Name: my_teradata_connection Teradata Server Info: 00.11.22.333 Data Source: Teradata Database ODBC Driver 16.20 UID: My_User_ID PWD: My_PWD 我正在尝试使用R连接到Teradata,使用DBI和odbc包

我使用Teradata SQL Assistant连接到Teradata。连接参数包括服务器地址和驱动程序(出于隐私原因更改了服务器信息),如下所示:

Name: my_teradata_connection
Teradata Server Info: 00.11.22.333
Data Source: Teradata Database ODBC Driver 16.20
UID: My_User_ID
PWD: My_PWD
我正在尝试使用R连接到Teradata,使用
DBI
odbc

con <- DBI::dbConnect(odbc::odbc(),
                      Driver = "[your driver's name]",
                      Host   = "[your server's path]",
                      DBCName = "[IP Address or Alias]"
                      UID    = rstudioapi::askForPassword("Database user"),
                      PWD    = rstudioapi::askForPassword("Database password"))

con通常,在大多数数据库API(包括ODBC连接)中,服务器和主机都是同义关键字,您不会同时看到这两个关键字,而只能看到一个(当然也有例外)。具体来说,根据
odbc
dbConnect
维护可选的
server
参数:

dbConnect(
     drv,
     dsn = NULL,
     ...,
     timezone = "UTC",
     timezone_out = "UTC",
     encoding = "",
     bigint = c("integer64", "integer", "numeric", "character"),
     timeout = 10,
     driver = NULL,
     server = NULL,
     database = NULL,
     uid = NULL,
     pwd = NULL,
     dbms.name = NULL,
     .connection_string = NULL
)
但是,
表示特定于相应驱动程序的其他ODBC驱动程序关键字,这里是Terdata ODBC驱动程序

。。。其他ODBC关键字,这些关键字将与其他参数连接到 形成最终的连接字符串


从Teradata 16.20的ODBC驱动程序中,
Driver
DBCName
必需的关键字。
DBCName
似乎是服务器或主机的同义词,给出了IP地址或别名指示

DBCName=


通常,在大多数数据库API(包括ODBC连接)中,服务器和主机都是同义词,您不会同时看到这两个关键字,而只能看到一个(当然也有例外)。具体来说,根据
odbc
dbConnect
维护可选的
server
参数:

dbConnect(
     drv,
     dsn = NULL,
     ...,
     timezone = "UTC",
     timezone_out = "UTC",
     encoding = "",
     bigint = c("integer64", "integer", "numeric", "character"),
     timeout = 10,
     driver = NULL,
     server = NULL,
     database = NULL,
     uid = NULL,
     pwd = NULL,
     dbms.name = NULL,
     .connection_string = NULL
)
但是,
表示特定于相应驱动程序的其他ODBC驱动程序关键字,这里是Terdata ODBC驱动程序

。。。其他ODBC关键字,这些关键字将与其他参数连接到 形成最终的连接字符串


从Teradata 16.20的ODBC驱动程序中,
Driver
DBCName
必需的关键字。
DBCName
似乎是服务器或主机的同义词,给出了IP地址或别名指示

DBCName=


DBCName
是一个IP地址(即
00.11.22.333
)或Teradata系统的网络名(通过DNS/等解析为所有Teradata节点的IP地址列表)@dnoeth当我使用Teradata SQL Assistant连接时,我记不起曾经被要求提供
主机=“[您的服务器路径]”
。需要这个吗?或者我可以放弃这个论点吗?我假设这是针对本地DBMS的,例如Access,因此不需要。另外请注意,Teradata为R和Teradata R包分析库提供了Teradata SQL驱动程序,它不依赖ODBC。请参阅
DBCName
是一个IP地址(即
00.11.22.333
)或Teradata系统的网络名称(通过DNS/等解析为所有Teradata节点的IP地址列表)@dnoeth当我使用Teradata SQL Assistant连接时,我记不起曾经被要求提供
主机=“[您的服务器路径]”
。需要这个吗?或者我可以放弃这个论点吗?我假设这是针对本地DBMS的,例如Access,因此不需要。另外请注意,Teradata为R和Teradata R包分析库提供了Teradata SQL驱动程序,它不依赖ODBC。看见
# KEYWORD APPROACH
con <- DBI::dbConnect(odbc::odbc(),
                      Driver   = "Teradata Database ODBC Driver 16.20",
                      DBCName  = "00.11.22.333",
                      Database = "myDatabase",
                      UID      = rstudioapi::askForPassword("Database user"),
                      PWD      = rstudioapi::askForPassword("Database password"))

# CONNECTION STRING APPROACH
con_str = "Driver={Teradata Database ODBC Driver 16.20};DBCName=00.11.22.333;Database=myDatabase;"

con <- DBI::dbConnect(odbc::odbc(),
                      .connection_string = con_str,
                      UID = rstudioapi::askForPassword("Database user"),
                      PWD = rstudioapi::askForPassword("Database password")