RevoScaleR (pacchetto R in Machine Learning Services per SQL Server)
Si applica a: SQL Server 2016 (13.x) e versioni successive
RevoScaleR è un pacchetto R di Microsoft che supporta l'elaborazione distribuita, i contesti di calcolo remoti e gli algoritmi di data science con prestazioni elevate. Supporta inoltre l'importazione dei dati, la trasformazione dei dati, il riepilogo, la visualizzazione e l'analisi. Il pacchetto è incluso in Machine Learning Services per SQL Server e R Services per SQL Server 2016.
Diversamente dalle funzioni R di base, le operazioni RevoScaleR possono essere eseguite su set di dati di grandi dimensioni, in parallelo e in file system distribuiti. Le funzioni possono operare su set di dati che non rientrano nella memoria usando la divisione in blocchi e riassemblando i risultati al termine delle operazioni.
Le funzioni RevoScaleR vengono indicate con un prefisso rx** o Rx che ne facilita l'identificazione.
RevoScaleR funge da piattaforma per la data science distribuita. È ad esempio possibile usare i contesti di calcolo e le trasformazioni di RevoScaleR con gli algoritmi all'avanguardia in MicrosoftML. È anche possibile usare rxExec per eseguire le funzioni R di base in parallelo.
Documentazione di riferimento completa
Il pacchetto RevoScaleR è distribuito in più prodotti Microsoft, ma l'utilizzo è lo stesso indipendentemente dal fatto che sia incluso in SQL Server o in un altro prodotto. Poiché le funzioni sono le stesse, la documentazione per le singole funzioni RevoScaleR viene pubblicata in una sola posizione nelle informazioni di riferimento per R. In caso di comportamenti specifici per un prodotto, le discrepanze verranno indicate nella pagina della Guida delle funzioni in questione.
Versioni e piattaforme
Il pacchetto RevoScaleR è basato su R 3.4.3 ed è disponibile solo quando si installa uno dei prodotti o download Microsoft seguenti:
Nota
Le versioni complete del prodotto sono solo per Windows in SQL Server 2017. Sia Windows che Linux sono supportati per RevoScaleR in SQL Server 2019.
Funzioni per categoria
Questa sezione elenca le funzioni per categoria per offrire un'idea di come vengono usate. È anche possibile usare il sommario per trovare le funzioni in ordine alfabetico.
1 - Origine dati e calcolo
RevoScaleR include funzioni per la creazione di origini dati e l'impostazione della posizione, o contesto di calcolo, in cui vengono eseguiti i calcoli. Un oggetto origine dati è un contenitore che specifica una stringa di connessione con il set di dati desiderato, definito come tabella, vista o query. Le chiamate di stored procedure non sono supportate. Nella tabella seguente sono elencate le funzioni relative agli scenari con SQL Server.
In alcuni casi SQL Server e R usano tipi di dati diversi. Per un elenco dei mapping tra i tipi di dati SQL e R, vedere Tipi di dati da R a SQL.
Funzione | Descrizione |
---|---|
RxInSqlServer | Crea un oggetto contesto di calcolo di SQL Server per eseguire il push dei calcoli in un'istanza remota. Diverse funzioni RevoScaleR accettano il contesto di calcolo come argomento. |
rxGetComputeContext / rxSetComputeContext | Ottiene o imposta il contesto di calcolo attivo. |
RxSqlServerData | Crea un oggetto dati basato su una query o una tabella SQL Server. |
RxOdbcData | Crea un'origine dati basata su una connessione ODBC. |
RxXdfData | Crea un'origine dati basata su un file XDF locale. I file XDF vengono spesso usati per l'offload dei dati in memoria su disco. Un file XDF può essere utile quando si usano più dati di quanti sia possibile trasferire dal database in un batch o più dati di quanti sia possibile archiviare in memoria. Se ad esempio si spostano regolarmente grandi quantità di dati da un database a una workstation locale, invece di eseguire ripetutamente query sul database per ogni operazione R, è possibile usare il file XDF come una sorta di cache per salvare i dati localmente e quindi lavorare nell'area di lavoro R. |
Suggerimento
Se non si ha familiarità con il concetto di origini dati o di contesti di calcolo, è consigliabile iniziare con l'articolo relativo al calcolo distribuito.
Eseguire istruzioni DDL
È possibile eseguire istruzioni DDL da R, se si hanno le autorizzazioni necessarie per l'istanza e il database. Le funzioni seguenti usano le chiamate ODBC per eseguire le istruzioni DDL o recuperare lo schema del database.
Funzione | Descrizione |
---|---|
rxSqlServerTableExists e rxSqlServerDropTable | Elimina una tabella di SQL Server o verifica l'esistenza di un oggetto o una tabella di database. |
rxExecuteSQLDDL | Esegue un comando DDL (Data Definition Language) che definisce o modifica gli oggetti di database. Questa funzione non può restituire dati e viene usata solo per recuperare o modificare lo schema o i metadati dell'oggetto. |
2 - Manipolazione dei dati (ETL)
Dopo aver creato un oggetto di origine dati, è possibile usare l'oggetto per caricarvi i dati, trasformare i dati o scrivere nuovi dati nella destinazione specificata. A seconda delle dimensioni dei dati nell'origine, è anche possibile definire le dimensioni del batch come parte dell'origine dati e spostare i dati in blocchi.
Funzione | Descrizione |
---|---|
rxOpen-methods | Controlla se un'origine dati è disponibile, apre o chiude un'origine dati, legge i dati da un'origine, scrive i dati nella destinazione e chiude un'origine dati. |
rxImport | Sposta i dati da un'origine dati in una risorsa di archiviazione file o in un frame di dati. |
rxDataStep | Trasforma i dati mentre li sposta tra le origini dati. |
3 - Funzioni di creazione di grafici
Nome della funzione | Descrizione |
---|---|
rxHistogram | Crea un istogramma dai dati. |
rxLinePlot | Crea un tracciato di linea dai dati. |
rxLorenz | Calcola una curva di Lorenz, che è possibile rappresentare con un tracciato. |
rxRocCurve | Calcola e traccia curve ROC da dati effettivi e stimati. |
4 - Statistiche descrittive
Nome della funzione | Descrizione |
---|---|
rxQuantile * | Calcola i quantili approssimativi dei file XDF e dei frame di dati senza ordinamento. |
rxSummary * | Statistiche di riepilogo di base dei dati, inclusi i calcoli per gruppo. La scrittura di calcoli per gruppo nel file XDF non è supportata. |
rxCrossTabs * | Tabulazione incrociata dei dati basata su formule. |
rxCube * | Tabulazione incrociata alternativa basata su formule progettata per una rappresentazione efficiente che restituisce i risultati del cubo. La scrittura dell'output nel file XDF non è supportata. |
rxMarginals | Riepiloghi marginali delle tabulazioni incrociate. |
as.xtabs | Converte i risultati della tabulazione incrociata in un oggetto xtabs. |
rxChiSquaredTest | Esegue un test del chi quadrato sugli oggetti xtabs. Viene usata con set di dati di piccole dimensioni e non divide i dati in blocchi. |
rxFisherTest | Esegue un test esatto di Fisher su un oggetto xtabs. Viene usata con set di dati di piccole dimensioni e non divide i dati in blocchi. |
rxKendallCor | Calcola il coefficiente di correlazione tau per ranghi di Kendall usando un oggetto xtabs. |
rxPairwiseCrossTab | Applica una funzione a combinazioni pairwise di righe e colonne di un oggetto xtabs. |
rxRiskRatio | Calcola il rischio relativo di un oggetto xtabs due per due. |
rxOddsRatio | Calcola il rapporto di probabilità di un oggetto xtabs due per due. |
* Indica le funzioni più usate di questa categoria.
5 - Funzioni di stima
Nome della funzione | Descrizione |
---|---|
rxLinMod * | Adatta un modello lineare ai dati. |
rxLogit * | Adatta un modello di regressione logistica ai dati. |
rxGlm * | Adatta un modello lineare generalizzato ai dati. |
rxCovCor * | Calcola la covarianza, la correlazione o la matrice di somme di quadrati/prodotti vettoriali per un set di variabili. |
rxDTree * | Adatta un albero di classificazione o di regressione ai dati. |
rxBTrees * | Adatta una foresta delle decisioni di classificazione o di regressione ai dati usando un algoritmo di gradient boosting stocastico. |
rxDForest * | Adatta una foresta delle decisioni di classificazione o di regressione ai dati. |
rxPredict * | Calcola le stime per i modelli adattati. L'output deve essere un'origine dati XDF. |
rxKmeans * | Esegue il clustering k-medie. |
rxNaiveBayes * | Esegue la classificazione bayesiana naif. |
rxCov | Calcola la matrice delle covarianze per un set di variabili. |
rxCor | Calcola la matrice delle correlazioni per un set di variabili. |
rxSSCP | Calcola la matrice di somme di quadrati/prodotti vettoriali per un set di variabili. |
rxRoc | Calcoli di curve ROC (Receiver Operating Characteristic) tramite valori effettivi e stimati del sistema di classificazione binaria. |
* Indica le funzioni più usate di questa categoria.
Come utilizzare RevoScaleR
Le funzioni in RevoScaleR possono essere chiamate nel codice R incapsulato nelle stored procedure. La maggior parte degli sviluppatori compila in locale le soluzioni RevoScaleR e quindi esegue la migrazione del codice R completato alle stored procedure, come esercizio di distribuzione.
Durante un'esecuzione locale, si esegue in genere uno script R dalla riga di comando o da un ambiente di sviluppo R e si specifica un contesto di calcolo di SQL Server usando una delle funzioni di RevoScaleR. È possibile usare il contesto di calcolo remoto per l'intero codice o per singole funzioni. Ad esempio, potrebbe essere necessario eseguire l'offload del training del modello nel server per usare i dati più recenti ed evitare lo spostamento dati.
Quando si è pronti per incapsulare lo script R all'interno di una stored procedure, sp_execute_external_script, è consigliabile riscrivere il codice come una singola funzione con input e output chiaramente definiti.