SQL Server R Services

此程序中的 odbcConnect 函数对于在 SQL Server 和 R 之间建立连接非常方便。此 odbcConnect 函数启动 SQL Server R Services。sqlQuery 函数从表中提取数据并将数据存储在 Data Frame 中。

我将通过一个示例展示如何使用 RODBC 库提供的 ODBC 和 Native Client 连接来设置 R Services。

SQL Server R Services 语法

下面显示了启动 R Services dbcConnect 和 SqlQuery 的语法。

odbcConnect(ConnectionName, uid = "User name", pwd = "password")
  • Name: 在这里,指定 ODBC 或 Native Client 连接名称。
  • uid: 请指定有权访问服务器的用户名。
  • pwd: 请指定上述用户名的密码。

R 程序 sqlQuery 数据提取背后的语法是

sqlQuery(ConnectionString, query, errors = TRUE,..., rows_at_time)

R 程序中的 sqlQuery 函数支持许多参数,以下是一些在实际中最常用的参数

  • ConnectionString: 在这里,指定连接字符串详细信息。
  • query: 请指定任何有效的语句。
  • errors: 它接受布尔值。如果为 TRUE,并且在遇到错误时,它将返回 -1 或错误消息。
  • rows_at_time: 您可以限制一次获取的行数,该值可以在 1 到 1024 之间。

在开始 SQL Server R Services 示例之前,我将向您展示我们将要提取的数据。请在 SSMS 中键入以下代码,以查看我们从 DimCustomers 表中选择的前 50 行。我们在示例中使用的 SELECT 语句

注意:RODBC 库不是内置库。因此,您必须从 CRAN 镜像安装该库。请参阅 安装包 文章,了解如何在 R 程序 中安装包。

SELECT TOP 50 [CustomerKey]
      ,[FirstName]
      ,[LastName]
      ,[BirthDate]
      ,[MaritalStatus]
      ,[Gender]
      ,[EmailAddress]
      ,[YearlyIncome]
      ,[EnglishEducation]
      ,[EnglishOccupation]
  FROM [AdventureWorksDW2014].[dbo].[DimCustomer]

设置 SQL Server R Services ODBC 连接

在此示例中,我们将通过实际示例展示如何使用 ODBC 将 SQL Server 与 R 语言建立连接。

# Importing RDBOC Library
library(RODBC)

# Setting up connection to Database
conn <- odbcConnect("SQL Server", uid = "tutorialgateway", pwd = "password")

# Query we are going to use
data <- "SELECT TOP 50 [CustomerKey], [FirstName], [LastName], [BirthDate], [MaritalStatus], [Gender]
        ,[EmailAddress],[YearlyIncome], [EnglishEducation], [EnglishOccupation]
      FROM [AdventureWorksDW2014].[dbo].[DimCustomer]"

# Import Data 
query.Result <- sqlQuery(conn, data)
odbcClose(conn)
dim(query.Result)
query.Result
Setting Up SQL Server R Services 2

首先,我们导入 RODBC 库,它包含从 R Studio 设置与 SQL Server 连接所需的所有函数。

library(RODBC)

接下来,我们使用 odbcConnect 函数启动 SQL Server R Services。此处,“SQL Server”是我们前一篇文章中创建的 ODBC。请用您的凭据替换连接名称、uid、pwd 值。

conn <- odbcConnect("SQL Server", uid = "tutorialgateway", pwd = "password")

接下来,我们从 SQL Server 导入数据

query.Result <- sqlQuery(conn, data)

以下语句关闭已建立的连接。

odbcClose(conn)

dim 函数返回由 Data Frame query.result 查询返回的行数和列数。

dim(query.Result)

最后,我们打印输出

query.Result

设置 SQL Server R Services Native Client 连接

此示例通过实际示例展示如何使用 Native Client 连接将 SQL Server 与 R 程序建立连接。此处,第一个参数是我们前一篇文章中创建的连接名称。

# Importing RDBOC Library
library(RODBC)

conn <- odbcConnect("SQLServer", uid = "tutorialgateway", pwd = "password")

# Query we are going to use
data <- "SELECT TOP 10 [FirstName], [LastName], [BirthDate], [MaritalStatus], [Gender]
        ,[YearlyIncome], [EnglishEducation], [EnglishOccupation]
      FROM [AdventureWorksDW2014].[dbo].[DimCustomer]"

# Import Data 
query.Result <- sqlQuery(conn, data)
odbcClose(conn)
dim(query.Result)
query.Result
Setting Up SQL Server R Services 3