Usare ODBC per salvare e caricare oggetti R in SQL Server Machine Learning Services
Si applica a: SQL Server 2016 (13.x) e versioni successive
Informazioni su come usare il pacchetto RevoScaleR per archiviare oggetti R serializzati in una tabella e quindi caricare l'oggetto dalla tabella in base alle esigenze con SQL Server Machine Learning Services. Questo pacchetto può essere usato durante il training e il salvataggio di un modello e successivamente per l'assegnazione di punteggi o l'analisi.
Pacchetto RevoScaleR
Il pacchetto RevoScaleR include funzioni di serializzazione e deserializzazione che consentono di archiviare in modo compatto oggetti R in SQL Server e quindi di leggere gli oggetti dalla tabella. Ogni chiamata di funzione usa in genere un archivio di valori chiave semplice, in cui la chiave è il nome dell'oggetto e il valore associato alla chiave è l'oggetto R varbinary da spostare all'interno o all'esterno dalla tabella.
Per salvare gli oggetti R in SQL Server direttamente da un ambiente R, è necessario:
- Stabilire una connessione a SQL Server tramite l'origine dati RxOdbcData.
- Chiamare le nuove funzioni tramite la connessione ODBC
- Facoltativamente, è possibile specificare che l'oggetto non deve essere serializzato. Scegliere quindi un nuovo algoritmo di compressione da usare al posto dell'algoritmo di compressione predefinito.
Per impostazione predefinita, qualsiasi oggetto chiamato da R per lo spostamento in SQL Server viene serializzato e compresso. Al contrario, quando si carica un oggetto da una tabella SQL Server da usare nel codice R, l'oggetto viene deserializzato e decompresso.
Elenco di nuove funzioni
rxWriteObject
scrive un oggetto R in SQL Server usando l'origine dati ODBC.rxReadObject
legge un oggetto R da un database di SQL Server usando un'origine dati ODBC.rxDeleteObject
elimina un oggetto R dal database di SQL Server specificato nell'origine dati ODBC. Se sono presenti più oggetti identificati dalla combinazione chiave/versione, vengono eliminati tutti.rxListKeys
elenca tutti gli oggetti disponibili come coppie chiave-valore. Ciò consente di determinare i nomi e le versioni degli oggetti R.
Per informazioni dettagliate sulla sintassi di ogni funzione, usare la Guida di R. I dettagli sono disponibili anche nelle informazioni di riferimento per ScaleR.
Come archiviare gli oggetti R in SQL Server tramite ODBC
Questa procedura illustra come è possibile usare le nuove funzioni per creare un modello e salvarlo in SQL Server.
Impostare la stringa di connessione per SQL Server.
conStr <- 'Driver={SQL Server};Server=localhost;Database=storedb;Trusted_Connection=true'
Creare un oggetto origine dati rxOdbcData in R usando la stringa di connessione.
ds <- RxOdbcData(table="robjects", connectionString=conStr)
Eliminare la tabella se esiste già e non si vuole tenere traccia delle versioni precedenti degli oggetti.
if(rxSqlServerTableExists(ds@table, ds@connectionString)) { rxSqlServerDropTable(ds@table, ds@connectionString) }
Definire una tabella che può essere usata per archiviare oggetti binari.
ddl <- paste(" CREATE TABLE [", ds@table, "] ("," [id] varchar(200) NOT NULL, "," [value] varbinary(max), "," CONSTRAINT unique_id UNIQUE (id))", sep = "")
Aprire la connessione ODBC per creare la tabella e quando l'istruzione DDL è stata completata, chiudere la connessione.
rxOpen(ds, "w") rxExecuteSQLDDL(ds, ddl) rxClose(ds)
Generare gli oggetti R che si vuole archiviare.
infertLogit <- rxLogit(case ~ age + parity + education + spontaneous + induced, data = infert)
Usare l'oggetto RxOdbcData creato in precedenza per salvare il modello nel database.
rxWriteObject(ds, "logit.model", infertLogit)
Come leggere gli oggetti R da SQL Server tramite ODBC
Questa procedura illustra come è possibile usare le nuove funzioni per caricare un modello da SQL Server.
Impostare la stringa di connessione per SQL Server.
conStr2 <- 'Driver={SQL Server};Server=localhost;Database=storedb;Trusted_Connection=true'
Creare un oggetto origine dati rxOdbcData in R usando la stringa di connessione.
ds <- RxOdbcData(table="robjects", connectionString=conStr2)
Leggere il modello dalla tabella specificandone il nome di oggetto R.
infertLogit2 <- rxReadObject(ds, "logit.model")
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per