Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Managed Instance
I den här snabbstarten kör du en uppsättning enkla R-skript med HJÄLP av SQL Server Machine Learning Services eller stordatakluster. Du får lära dig hur du använder den lagrade proceduren sp_execute_external_script för att köra skriptet i en SQL Server-instans.
I den här snabbstarten kör du en uppsättning enkla R-skript med SQL Server Machine Learning Services. Du får lära dig hur du använder den lagrade proceduren sp_execute_external_script för att köra skriptet i en SQL Server-instans.
I den här snabbstarten kör du en uppsättning enkla R-skript med SQL Server R Services. Du får lära dig hur du använder den lagrade proceduren sp_execute_external_script för att köra skriptet i en SQL Server-instans.
I den här snabbstarten kör du enkla R-skript med hjälp av Azure SQL Managed Instance Machine Learning Services. Du får lära dig hur du använder den lagrade proceduren sp_execute_external_script för att köra skriptet i databasen.
Förutsättningar
Du behöver följande förutsättningar för att köra den här snabbstarten.
- SQL Server Machine Learning Services. Information om hur du installerar Machine Learning Services finns i installationsguiden för Windows eller installationsguiden för Linux. Du kan också aktivera Machine Learning Services på SQL Server Big Data Clusters.
- SQL Server Machine Learning Services. Information om hur du installerar Machine Learning Services finns i installationsguiden för Windows.
- SQL Server 2016 R Services. Information om hur du installerar R Services finns i installationsguiden för Windows.
- Azure SQL Managed Instance Machine Learning Services. Mer information finns i Översikt över Azure SQL Managed Instance Machine Learning Services.
- Ett verktyg för att köra SQL-frågor som innehåller R-skript. Den här snabbstarten använder Azure Data Studio.
Köra ett enkelt skript
Om du vill köra ett R-skript skickar du det som ett argument till den system lagrade proceduren , sp_execute_external_script. Den här system lagrade proceduren startar R-körningen, skickar data till R, hanterar R-användarsessioner på ett säkert sätt och returnerar eventuella resultat till klienten.
I följande steg kör du det här R-exempelskriptet:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Öppna Azure Data Studio och anslut till servern.
Skicka det fullständiga R-skriptet till den
sp_execute_external_scriptlagrade proceduren.Skriptet skickas via
@scriptargumentet. Allt i@scriptargumentet måste vara giltig R-kod.EXECUTE sp_execute_external_script @language = N'R' , @script = N' a <- 1 b <- 2 c <- a/b d <- a*b print(c(c, d)) 'Rätt resultat beräknas och R-funktionen
printreturnerar resultatet till fönstret Meddelanden .Det borde se ut ungefär så här.
Results
STDOUT message(s) from external script: 0.5 2
Köra ett Hello World-skript
Ett typiskt exempelskript är ett skript som bara matar ut strängen "Hello World". Kör följande kommando.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet<-InputDataSet'
, @input_data_1 = N'SELECT 1 AS hello'
WITH RESULT SETS(([Hello World] INT));
GO
Indata till den sp_execute_external_script lagrade proceduren omfattar:
| Indata | Description |
|---|---|
| @language | definierar språktillägget för att anropa, i det här fallet R |
| @script | definierar de kommandon som skickas till R-miljön. Hela R-skriptet måste omges av det här argumentet som Unicode-text. Du kan också lägga till texten i en variabel av typen nvarchar och sedan anropa variabeln |
| @input_data_1 | Data som returneras av frågan skickas till R-runtime, som returnerar datan som en dataframe. |
| MED RESULTATUPPSÄTTNINGAR | -satsen definierar schemat för den returnerade datatabellen och lägger till "Hello World" som kolumnnamn, int för datatypen |
Kommandot matar ut följande text:
| Hello World |
|---|
| 1 |
Använda indata och utdata
Som standard sp_execute_external_script accepterar en enskild datauppsättning som indata, som du vanligtvis anger i form av en giltig SQL-fråga. Den returnerar sedan en enda R-dataram som utdata.
Nu ska vi använda standardvariablerna sp_execute_external_scriptför in- och utdata i : InputDataSet och OutputDataSet.
Skapa en liten tabell med testdata.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOAnvänd -instruktionen
SELECTför att fråga tabellen.SELECT * FROM RTestDataResults
Kör följande R-skript. Den hämtar data från tabellen med hjälp av -instruktionen
SELECT, skickar dem genom R-körningen och returnerar data som en dataram. SatsenWITH RESULT SETSdefinierar schemat för den returnerade datatabellen för SQL och lägger till kolumnnamnet 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));Results
Nu ska vi ändra namnen på indata- och utdatavariablerna. Standardnamnen för in- och utdatavariabler är InputDataSet och OutputDataSet. Det här skriptet ändrar namnen till SQL_in och SQL_out:
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));Observera att R är skiftlägeskänsligt. De indata- och utdatavariabler som används i R-skriptet (SQL_out, SQL_in) måste matcha namnen som definierats med
@input_data_1_nameoch@output_data_1_name, inklusive skiftläge.Tips/Råd
Endast en indatauppsättning kan skickas som en parameter och du kan bara returnera en datauppsättning. Du kan dock anropa andra datauppsättningar inifrån R-koden och du kan returnera utdata av andra typer utöver datauppsättningen. Du kan också lägga till nyckelordet OUTPUT i valfri parameter så att det returneras med resultatet.
Du kan också generera värden bara med hjälp av R-skriptet utan indata (
@input_data_1är inställt på tom).Följande skript matar ut texten "hello" och "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));Results
som indataSökfrågeresultat med
Kontrollera R-versionen
Om du vill se vilken version av R som är installerad kör du följande skript.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
R-funktionen print returnerar versionen till fönstret Meddelanden . I exemplet nedan ser du att R version 3.4.4 är installerad i det här fallet.
Results
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
Listan över R-paket
Microsoft tillhandahåller ett antal R-paket som är förinstallerade med Machine Learning Services.
Microsoft tillhandahåller ett antal R-paket som är förinstallerade med R Services.
Om du vill se en lista över vilka R-paket som är installerade, inklusive information om version, beroenden, licens och bibliotekssökväg, kör du följande skript.
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)
));
Utdata kommer från installed.packages() i R och returneras som en resultatuppsättning.
Results
Nästa steg
Följ den här snabbstarten om du vill lära dig hur du använder datastrukturer när du använder R med SQL-maskininlärning: