通过DBI和ODBC使用R连接到Teradata
我使用Teradata SQL Assistant连接到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包
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")