CREATE TABLE RTestData (col1 INT NOT NULL)
INSERT INTO RTestData
VALUES (1);
INSERT INTO RTestData
VALUES (10);
INSERT INTO RTestData
VALUES (100);
GO
使用 SELECT 语句来查询表。
SELECT *
FROM RTestData
结果
运行以下 R 脚本。 它使用 SELECT 语句从表中检索数据,通过 R 运行时传递数据,并以数据帧的形式返回数据。 WITH RESULT SETS 子句为 SQL 定义返回的数据表的架构,并添加了列名称“NewColName”。
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet <- InputDataSet;'
, @input_data_1 = N'SELECT * FROM RTestData;'
WITH RESULT SETS(([NewColName] INT NOT NULL));
EXECUTE sp_execute_external_script @language = N'R'
, @script = N' SQL_out <- SQL_in;'
, @input_data_1 = N' SELECT 12 as Col;'
, @input_data_1_name = N'SQL_in'
, @output_data_1_name = N'SQL_out'
WITH RESULT SETS(([NewColName] INT NOT NULL));
请注意 R 区分大小写。 R 脚本中使用的输入和输出变量(SQL_out、SQL_in)需要匹配使用 @input_data_1_name 和 @output_data_1_name 定义的名称,包括大小写 。
提示
只能将一个输入数据集作为参数传递,并且只能返回一个数据集。 但是,可以从 R 代码内部调用其他数据集,并且可以返回除数据集之外的其他类型的输出。 也可向任何参数添加 OUTPUT 关键字,让该参数随结果一起返回。
还可以仅使用没有输入数据的 R 脚本(@input_data_1 设置为空白)生成值。
以下脚本输出文本“hello”和“world”。
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
mytextvariable <- c("hello", " ", "world");
OutputDataSet <- as.data.frame(mytextvariable);
'
, @input_data_1 = N''
WITH RESULT SETS(([Col1] CHAR(20) NOT NULL));
结果
@script 作为输入" /> 查询结果
检查 R 版本
若要查看已安装的 R 的版本,请运行以下脚本。
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
R print 函数将该版本返回到“消息”窗口。 在下面的示例输出中,可以看到本例中安装的是 R 版本 3.4.4。
结果
STDOUT message(s) from external script:
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.4
year 2018
month 03
day 15
svn rev 74408
language R
version.string R version 3.4.4 (2018-03-15)
nickname Someone to Lean On
列出 R 包
Microsoft 提供了许多随机器学习服务预安装的 R 包。
Microsoft 提供了许多随 R Services 预安装的 R 包。
若要查看已安装的 R 包列表(包括版本、依赖项、许可证和库路径的信息),请运行以下脚本。
EXEC sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- data.frame(installed.packages()[,c("Package", "Version", "Depends", "License", "LibPath")]);'
WITH result sets((
Package NVARCHAR(255)
, Version NVARCHAR(100)
, Depends NVARCHAR(4000)
, License NVARCHAR(1000)
, LibPath NVARCHAR(2000)
));
Службы машинного обучения — это компонент SQL Server, который дает возможность выполнять скрипты Python и R с реляционными данными. В этой статье объясняются основы Служб машинного обучения SQL Server и описывается, как приступить к работе с ними.
В этой серии руководств, состоящий из пяти частей, вы узнаете, как внедрять код R в хранимые процедуры SQL Server и функции T-SQL с использованием машинного обучения SQL для прогнозирования стоимости поездки в нью-йоркском такси с помощью двоичной классификации.
В этом кратком руководстве вы создадите и обучите прогнозную модель с помощью T. Затем вы сохраните эту модель в таблицу и примените ее для прогнозирования значений на основе новых данных с помощью машинного обучения SQL.
Запустите ряд простых сценариев Python с помощью Служб машинного обучения в SQL Server, Кластерах больших данных или Управляемых экземплярах SQL Azure. Узнайте, как применять хранимую процедуру sp_execute_external_script для выполнения сценария.
R Services — это компонент SQL Server 2016, который дает возможность выполнять скрипты R с реляционными данными. Вы можете использовать платформы и пакеты с открытым кодом и пакеты Майкрософт R для прогнозной аналитики и машинного обучения. Скрипты выполняются в базе данных без перемещения данных за пределы SQL Server или по сети. В этой статье объясняются основы SQL Server R Services.
Управление приемом и подготовкой данных, обучением моделей и развертыванием, а также мониторингом решений машинного обучения с помощью Python, Машинное обучение Azure и MLflow.