Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
van Azure SQL Managed Instance
In deze quickstart voert u een set eenvoudige R-scripts uit met behulp van SQL Server Machine Learning Services of op Big Data-clusters. U leert hoe u de opgeslagen procedure sp_execute_external_script gebruikt om het script uit te voeren in een SQL Server-exemplaar.
In deze quickstart voert u een set eenvoudige R-scripts uit met behulp van SQL Server Machine Learning Services. U leert hoe u de opgeslagen procedure sp_execute_external_script gebruikt om het script uit te voeren in een SQL Server-exemplaar.
In deze quickstart voert u een set eenvoudige R-scripts uit met behulp van SQL Server R Services. U leert hoe u de opgeslagen procedure sp_execute_external_script gebruikt om het script uit te voeren in een SQL Server-exemplaar.
In deze quickstart voert u een set eenvoudige R-scripts uit met behulp van Azure SQL Managed Instance Machine Learning Services. U leert hoe u de opgeslagen procedure sp_execute_external_script gebruikt om het script in uw database uit te voeren.
Vereiste voorwaarden
U hebt de volgende vereisten nodig om deze quickstart uit te voeren.
- SQL Server Machine Learning Services. Als u Machine Learning Services wilt installeren, raadpleegt u de Windows-installatiehandleiding of de Linux-installatiehandleiding. U kunt Machine Learning Services ook inschakelen op BIG Data-clusters van SQL Server.
- SQL Server Machine Learning Services. Als u Machine Learning Services wilt installeren, raadpleegt u de Windows-installatiehandleiding.
- SQL Server 2016 R Services. Als u R Services wilt installeren, raadpleegt u de Windows-installatiehandleiding.
- Azure SQL Managed Instance Machine Learning Services. Zie het overzicht van Azure SQL Managed Instance Machine Learning Services voor meer informatie.
- Een hulpprogramma voor het uitvoeren van SQL-query's die R-scripts bevatten. In deze quickstart wordt Gebruikgemaakt van Azure Data Studio.
Een eenvoudig script uitvoeren
Als u een R-script wilt uitvoeren, geeft u het als argument door aan de door het systeem opgeslagen procedure , sp_execute_external_script. Deze door het systeem opgeslagen procedure start de R-runtime, geeft gegevens door aan R, beheert R-gebruikerssessies veilig en retourneert eventuele resultaten aan de client.
In de volgende stappen voert u dit R-voorbeeldscript uit:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Open Azure Data Studio en maak verbinding met uw server.
Geef het volledige R-script door aan de
sp_execute_external_scriptopgeslagen procedure.Het script wordt doorgegeven via het
@scriptargument. Alles binnen het@scriptargument moet geldige R-code zijn.EXECUTE sp_execute_external_script @language = N'R' , @script = N' a <- 1 b <- 2 c <- a/b d <- a*b print(c(c, d)) 'Het juiste resultaat wordt berekend en de functie R
printretourneert het resultaat in het venster Berichten .Het ziet er ongeveer als volgt uit.
resultaten
STDOUT message(s) from external script: 0.5 2
Een Hallo wereld-script uitvoeren
Een typisch voorbeeldscript is een script dat alleen de string 'Hello World' uitvoert. Voer de volgende opdracht uit.
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
Invoer voor de sp_execute_external_script opgeslagen procedure is onder andere:
| Invoer | Description |
|---|---|
| @language | definieert de taalextensie die moet worden aangeroepen, in dit geval R |
| @script | definieert de opdrachten die worden doorgegeven aan de R-runtime. Uw hele R-script moet in dit argument zijn opgenomen als Unicode-tekst. U kunt de tekst ook toevoegen aan een variabele van het type nvarchar en vervolgens de variabele aanroepen |
| @input_data_1 | gegevens die worden geretourneerd door de query, doorgegeven aan de R-runtime, die de gegevens als een gegevensframe retourneert |
| MET RESULTAATSETS | clausule definieert het schema van de geretourneerde gegevenstabel door 'Hallo wereld' toe te voegen als de kolomnaam, int voor het gegevenstype |
De opdracht voert de volgende tekst uit:
| Hello World |
|---|
| 1 |
Invoer en uitvoer gebruiken
Accepteert standaard sp_execute_external_script één gegevensset als invoer, die doorgaans wordt opgegeven in de vorm van een geldige SQL-query. Vervolgens wordt één R-gegevensframe als uitvoer geretourneerd.
Voorlopig gebruiken we de standaardinvoer- en uitvoervariabelen van sp_execute_external_script: InputDataSet en OutputDataSet.
Maak een kleine tabel met testgegevens.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOGebruik de
SELECTinstructie om een query uit te voeren op de tabel.SELECT * FROM RTestDataresultaten
Voer het volgende R-script uit. Hiermee worden de gegevens opgehaald uit de tabel met behulp van de
SELECTinstructie, doorgegeven aan de R-runtime en worden de gegevens geretourneerd als een gegevensframe. DeWITH RESULT SETScomponent definieert het schema van de geretourneerde gegevenstabel voor SQL, waarbij de kolomnaam NewColName wordt toegevoegd.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));resultaten
Nu gaan we de namen van de invoer- en uitvoervariabelen wijzigen. De standaardnamen voor invoer- en uitvoervariabelen zijn InputDataSet en OutputDataSet. Met dit script worden de namen gewijzigd in SQL_in en 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));Houd er rekening mee dat R hoofdlettergevoelig is. De invoer- en uitvoervariabelen die worden gebruikt in het R-script (SQL_out, SQL_in) moeten overeenkomen met de namen die zijn gedefinieerd met
@input_data_1_nameen@output_data_1_name, inclusief hoofdletters.Aanbeveling
Er kan slechts één invoergegevensset worden doorgegeven als parameter en u kunt slechts één gegevensset retourneren. U kunt echter andere gegevenssets aanroepen vanuit uw R-code en u kunt naast de gegevensset ook uitvoer van andere typen retourneren. U kunt ook het trefwoord OUTPUT toevoegen aan elke parameter om deze met de resultaten te laten retourneren.
U kunt ook waarden genereren met behulp van het R-script zonder invoergegevens (
@input_data_1is ingesteld op leeg).Met het volgende script wordt de tekst 'hello' en 'world' uitgevoerd.
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));resultaten
@script als invoer" />
R-versie controleren
Als u wilt zien welke versie van R is geïnstalleerd, voert u het volgende script uit.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
De R-functie print retourneert de versie naar het venster Berichten . In de onderstaande voorbeelduitvoer ziet u dat in dit geval R versie 3.4.4 is geïnstalleerd.
resultaten
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-pakketten vermelden
Microsoft biedt een aantal R-pakketten die vooraf zijn geïnstalleerd met Machine Learning Services.
Microsoft biedt een aantal R-pakketten die vooraf zijn geïnstalleerd met R Services.
Voer het volgende script uit om een lijst weer te geven van welke R-pakketten zijn geïnstalleerd, inclusief versie, afhankelijkheden, licentie en bibliotheekpadinformatie.
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)
));
De uitvoer is afkomstig uit installed.packages() R en wordt geretourneerd als een resultatenset.
resultaten
Volgende stappen
Volg deze quickstart voor meer informatie over het gebruik van gegevensstructuren bij het gebruik van R met SQL Machine Learning: