sqlrutils (pacchetto R in Machine Learning Services per SQL Server)
Si applica a: SQL Server 2016 (13.x) e versioni successive
sqlrutils è un pacchetto R di Microsoft che fornisce un meccanismo che consente agli utenti di R di inserire gli script R in una stored procedure T-SQL, registrare la stored procedure con un database ed eseguirla da un ambiente di sviluppo R. Il pacchetto è incluso in Machine Learning Services per SQL Server e R Services per SQL Server 2016.
Effettuando la conversione del codice R per consentirne l'esecuzione all'interno di una singola stored procedure, è possibile ottimizzare l'uso di SQL Server R Services. Per questo è necessario che uno script R sia incorporato come parametro in sp_execute_external_script. Il pacchetto sqlrutils consente di creare questo script R incorporato e di impostare i parametri correlati in modo appropriato.
Il pacchetto sqlrutils esegue queste attività:
- Salva lo script T-SQL generato come stringa all'interno di una struttura di dati R.
- Facoltativamente, genera un file SQL per lo script T-SQL, che è possibile modificare o eseguire per creare una stored procedure
- Registra la stored procedure creata con l'istanza di SQL Server dall'ambiente di sviluppo R.
È anche possibile eseguire la stored procedure da un ambiente R, passando i parametri corretti ed elaborando i risultati. In alternativa, è possibile usare la stored procedure da SQL Server per supportare scenari comuni di integrazione di database, ad esempio i processi di estrazione, trasformazione e caricamento (ETL, Extract, Transform, Load), il training di modelli e l'assegnazione di punteggi a grandi volumi di dati.
Nota
Se si intende eseguire la stored procedure da un ambiente R chiamando la funzione executeStoredProcedure , è necessario usare un provider ODBC 3.8, ad esempio ODBC Driver 13 for SQL Server.
Documentazione di riferimento completa
Il pacchetto sqlrutils è distribuito in più prodotti Microsoft, ma l'utilizzo è lo stesso indipendentemente dal fatto che sia incluso in SQL Server o in un altro prodotto. In caso di comportamenti specifici per un prodotto, le discrepanze verranno indicate nella pagina della Guida delle funzioni in questione.
Elenco delle funzioni
La sezione seguente offre una panoramica delle funzioni che è possibile chiamare dal pacchetto sqlrutils per sviluppare una stored procedure contenente codice R incorporato. Per informazioni dettagliate sui parametri di ogni metodo o funzione, vedere la Guida di R per il pacchetto help(package="sqlrutils")
Funzione | Descrizione |
---|---|
executeStoredProcedure | Esegue una stored procedure SQL. |
getInputParameters | Ottiene un elenco di parametri di input per la stored procedure. |
InputData | Definisce l'origine dei dati di SQL Server che verranno usati nel frame di dati R. Specificare il nome del frame di dati in cui archiviare i dati di input e una query per ottenere i dati o un valore predefinito. Sono supportate solo query SELECT. |
InputParameter | Definisce un singolo parametro di input che verrà incorporato nello script T-SQL. È necessario specificare il nome del parametro e il tipo di dati R corrispondente. |
OutputData | Genera un oggetto dati intermedio che è necessario se la funzione R restituisce un elenco contenente un frame di dati. L'oggetto OutputData viene usato per archiviare il nome di un singolo frame di dati ottenuto dall'elenco. |
OutputParameter | Genera un oggetto dati intermedio che è necessario se la funzione R restituisce un elenco. L'oggetto OutputParameter archivia il nome e il tipo di dati di un singolo membro dell'elenco, presupponendo che tale membro non sia un frame di dati. |
registerStoredProcedure | Registrare la stored procedure in un database. |
setInputDataQuery | Assegna una query a un parametro di dati di input della stored procedure. |
setInputParameterValue | Assegna un valore a un parametro di input della stored procedure. |
StoredProcedure | Un oggetto stored procedure. |
Come usare sqlrutils
Le funzioni del pacchetto sqlrutils devono essere eseguite in un computer con Machine Learning per SQL Server con R. Se si sta usando una workstation client, impostare un contesto di calcolo remoto per passare l'esecuzione a SQL Server. Il flusso di lavoro per l'uso di questo pacchetto prevede i passaggi seguenti:
- Definire i parametri della stored procedure (di input, di output o entrambi)
- Generare e registrare la stored procedure
- Eseguire la stored procedure
In una sessione di R, caricare sqlrutils dalla riga di comando digitando library(sqlrutils)
.
Nota
È possibile caricare questo pacchetto in un computer in cui non è installato SQL Server (ad esempio, in un'istanza di R Client) se si modifica il contesto di calcolo in SQL Server e si esegue il codice in tale contesto.
Definire i parametri e gli input della stored procedure
StoredProcedure
è il costruttore principale usato per creare la stored procedure. Questo costruttore genera un oggetto stored procedure di SQL Server e, facoltativamente, crea un file di testo contenente una query che può essere usata per generare la stored procedure tramite un comando T-SQL.
Facoltativamente, la funzione StoredProcedure può anche registrare la stored procedure con il database e l'istanza specificati.
Usare l'argomento
func
per specificare una funzione R valida. Tutte le variabili usate dalla funzione devono essere definite all'interno della funzione o specificate come parametri di input. Questi parametri possono includere al massimo un frame di dati.La funzione R deve restituire un frame di dati, un elenco denominato o un valore NULL. Se la funzione restituisce un elenco, questo può contenere al massimo un frame di dati.
Usare l'argomento
spName
per specificare il nome della stored procedure che si vuole creare.È possibile passare parametri di output e input facoltativi usando gli oggetti creati da queste funzioni helper:
setInputData
,setInputParameter
esetOutputParameter
.Facoltativamente, usare
filePath
per specificare il percorso e il nome di un file con estensione sql da creare. È possibile eseguire questo file nell'istanza di SQL Server per generare la stored procedure mediante T-SQL.Per definire il server e il database in cui verrà salvata la stored procedure, usare gli argomenti
dbName
econnectionString
.Per ottenere l'elenco degli oggetti InputData e InputParameter usati per creare un oggetto StoredProcedure specifico, chiamare
getInputParameters
.Per registrare la stored procedure con il database specificato, usare
registerStoredProcedure
.
All'oggetto stored procedure non sono in genere associati dati o valori, a meno che non sia stato specificato un valore predefinito. I dati non vengono recuperati finché non viene eseguita la stored procedure.
Specificare gli input ed eseguire la stored procedure
Usare
setInputDataQuery
per assegnare una query a un oggetto InputParameter . Se ad esempio è stato creato un oggetto stored procedure in R, è possibile usaresetInputDataQuery
per passare argomenti alla funzione StoredProcedure in modo da eseguire la stored procedure con gli input desiderati.Usare
setInputValue
per assegnare valori specifici a un parametro archiviato come oggetto InputParameter . Passare quindi l'oggetto parametro e il valore assegnato relativo alla funzione StoredProcedure per eseguire la stored procedure con i valori impostati.Usare
executeStoredProcedure
per eseguire una stored procedure definita come oggetto StoredProcedure . Chiamare questa funzione solo quando si esegue una stored procedure dal codice R. Non usarla quando si esegue la stored procedure da SQL Server mediante T-SQL.
Nota
La funzione executeStoredProcedure richiede un provider ODBC 3.8, ad esempio ODBC Driver 13 for SQL Server.