Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Si applica a: SQL Server 2016 (13.x) e versioni successive
Istanza gestita di SQL di Azure
In questo argomento di avvio rapido verrà eseguito un set di script R semplici con Machine Learning Services per SQL Server oppure in cluster Big Data. Si apprenderà come usare la stored procedure sp_execute_external_script per eseguire lo script in un'istanza di SQL Server.
In questo argomento di avvio rapido verrà seguito un set di semplici script R con Machine Learning Services per SQL Server. Si apprenderà come usare la stored procedure sp_execute_external_script per eseguire lo script in un'istanza di SQL Server.
In questo argomento di avvio rapido verrà eseguito un set di script R semplici con R Services per SQL Server. Si apprenderà come usare la stored procedure sp_execute_external_script per eseguire lo script in un'istanza di SQL Server.
In questo argomento di avvio rapido verrà eseguito un set di script R semplici con Machine Learning Services per Istanza gestita di SQL di Azure. Si apprenderà come usare la stored procedure sp_execute_external_script per eseguire lo script nel database in uso.
Per completare questo argomento di avvio rapido è necessario soddisfare i prerequisiti seguenti.
Per eseguire uno script R, passarlo come argomento alla stored procedure di sistema sp_execute_external_script. Questa stored procedure di sistema avvia il runtime R, passa i dati a R, gestisce le sessioni utente di R in modo sicuro e restituisce i risultati al client.
Nei passaggi seguenti si eseguirà questo script R di esempio:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Aprire Azure Data Studio e connettersi al server.
Passare lo script R completo alla stored procedure sp_execute_external_script
.
Lo script viene passato tramite l'argomento @script
. Tutti gli elementi all'interno dell'argomento @script
devono essere costituiti da codice R valido.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
'
Viene calcolato il risultato corretto e la funzione print
di R restituisce il risultato nella finestra Messaggi.
Dovrebbe essere simile al seguente.
Risultati
STDOUT message(s) from external script:
0.5 2
Uno script di esempio tipico è quello che restituisce come output la stringa "Hello World". Esegui il comando seguente:
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
Gli input per la stored procedure sp_execute_external_script
includono:
Input | Descrizione |
---|---|
@language | Definisce l'estensione del linguaggio da chiamare, in questo caso R |
@script | Definisce i comandi passati al runtime R. L'intero script R deve essere incluso in questo argomento, come testo Unicode. È anche possibile aggiungere il testo a una variabile di tipo nvarchar e quindi chiamare la variabile |
@input_data_1 | Dati restituiti dalla query, passati al runtime R, che restituisce i dati come frame di dati |
WITH RESULT SETS | Clausola che definisce lo schema della tabella dati restituita, aggiungendo "Hello World" come nome di colonna e int per il tipo di dati |
Il comando restituisce il testo seguente:
Hello World |
---|
1 |
Per impostazione predefinita, sp_execute_external_script
accetta un singolo set di dati come input, che in genere viene fornito sotto forma di query SQL valida. Restituisce quindi un singolo frame di dati R come output.
Per il momento, verranno usate le variabili di input e di output predefinite di sp_execute_external_script
: InputDataSet e OutputDataSet.
Creare una piccola tabella di dati di test.
CREATE TABLE RTestData (col1 INT NOT NULL)
INSERT INTO RTestData
VALUES (1);
INSERT INTO RTestData
VALUES (10);
INSERT INTO RTestData
VALUES (100);
GO
Usare l'istruzione SELECT
per eseguire una query sulla tabella.
SELECT *
FROM RTestData
Risultati
Eseguire lo script R seguente. Questo script recupera i dati dalla tabella usando l'istruzione SELECT
, li passa nel runtime R e restituisce i dati come frame di dati. La clausola WITH RESULT SETS
definisce lo schema della tabella dati restituita per SQL, aggiungendo il nome di colonna 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));
Risultati
Modificare ora i nomi delle variabili di input e di output. I nomi delle variabili di input e di output predefiniti sono InputDataSet e OutputDataSet. Questo script cambia i nomi in SQL_in e 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));
Si noti che R fa distinzione tra maiuscole e minuscole. Le variabili di input e di output usate nello script R (SQL_out, SQL_in) devono corrispondere ai nomi definiti con @input_data_1_name
e @output_data_1_name
, inclusa la distinzione tra maiuscole e minuscole.
Suggerimento
È possibile passare come parametro un solo set di dati di input e si può restituire un solo set di dati. Tuttavia, è possibile chiamare altri set di dati dall'interno del codice R e restituire output di altri tipi in aggiunta al set di dati. È anche possibile aggiungere la parola chiave OUTPUT a qualsiasi parametro per fare in modo che venga restituito con i risultati.
È anche possibile generare i valori usando solo lo script R senza dati di input (@input_data_1
è impostato su un valore vuoto).
Lo script seguente restituisce il testo "hello" e "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));
Risultati
@script come input" />
Per vedere la versione di R installata, eseguire lo script seguente.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
La funzione R print
restituisce la versione nella finestra Messaggi. Nell'output di esempio seguente si può notare che in questo caso è installata la versione di R 3.4.4.
Risultati
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
Microsoft offre una serie di pacchetti R preinstallati con Machine Learning Services.
Microsoft offre una serie di pacchetti R preinstallati con R Services.
Per visualizzare un elenco dei pacchetti R installati, incluse le informazioni su versione, dipendenze, licenza e percorso della libreria, eseguire lo script seguente.
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)
));
L'output proviene da installed.packages()
in R e viene restituito come set di risultati.
Risultati
Per informazioni su come usare le strutture di dati quando si usa R con Machine Learning in SQL, seguire questo argomento di avvio rapido:
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stesso