RevoScaleR (pacote R em SQL Server Machine Learning Services)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

O RevoScaleR é um pacote R da Microsoft que suporta computação distribuída, contextos de computação remota e algoritmos de ciência de dados de alto desempenho. Também suporta importação de dados, transformação de dados, sumarização, visualização e análise. O pacote está incluído no SQL Server Machine Learning Services e no SQL Server 2016 R Services.

Em contraste com as funções base R, as operações RevoScaleR podem ser realizadas contra grandes conjuntos de dados, em paralelo e em sistemas de ficheiros distribuídos. As funções podem operar sobre conjuntos de dados que não cabem na memória usando o chunking e reassemblando os resultados quando as operações estão concluídas.

As funções RevoScaleR são indicadas com um prefixo rx** ou Rx para facilitar a identificação.

O RevoScaleR serve como uma plataforma para ciência de dados distribuída. Por exemplo, pode usar os contextos de computação e transformações do RevoScaleR com os algoritmos de última geração do MicrosoftML. Também podes usar o rxExec para executar funções base R em paralelo.

Documentação de referência completa

O pacote RevoScaleR é distribuído em vários produtos Microsoft, mas o uso é o mesmo quer receba o pacote no SQL Server ou noutro produto. Como as funções são as mesmas, a documentação para funções individuais do RevoScaleR é publicada apenas num local sob a referência R. Se existirem comportamentos específicos do produto, as discrepâncias serão assinaladas na página de ajuda da função.

Versões e plataformas

O pacote RevoScaleR baseia-se no R 3.4.3 e está disponível apenas quando instalar um dos seguintes produtos Microsoft ou descarregar:

Note

As versões completas do produto são apenas para Windows no SQL Server 2017. Tanto o Windows como o Linux são suportados para o RevoScaleR no SQL Server 2019.

Funções por categoria

Esta secção lista as funções por categoria para lhe dar uma ideia de como cada uma é utilizada. Também pode usar o índice para encontrar funções por ordem alfabética.

1-Fonte de dados e cálculo

O RevoScaleR inclui funções para criar fontes de dados e definir a localização, ou contexto de computação, de onde os cálculos são realizados. Um objeto fonte de dados é um contentor que especifica uma cadeia de ligação juntamente com o conjunto de dados que deseja, definido seja como tabela, vista ou consulta. Chamadas de stored procedure não são suportadas. As funções relevantes para cenários SQL Server estão listadas na tabela abaixo.

SQL Server e R usam tipos de dados diferentes em alguns casos. Para uma lista de mapeamentos entre os tipos de dados SQL e R, veja tipos de dados R-para-SQL.

Função Description
RxInSqlServer Crie um objeto de contexto de computação SQL Server para enviar os cálculos para uma instância remota. Várias funções RevoScaleR tomam o contexto computacional como argumento.
rxGetComputeContext / rxSetComputeContext Obtenha ou defina o contexto de computação ativa.
RxSqlServerData Crie um objeto de dados baseado numa consulta ou tabela SQL Server.
RxOdbcData Crie uma fonte de dados baseada numa ligação ODBC.
RxXdfData Crie uma fonte de dados baseada num ficheiro XDF local. Os ficheiros XDF são frequentemente usados para descarregar dados em memória para o disco. Um ficheiro XDF pode ser útil quando se trabalha com mais dados do que os transferidos da base de dados num só lote, ou mais dados do que cabem na memória. Por exemplo, se mover regularmente grandes quantidades de dados de uma base de dados para uma estação de trabalho local, em vez de consultar a base de dados repetidamente para cada operação R, pode usar o ficheiro XDF como uma espécie de cache para guardar os dados localmente e depois trabalhar com eles no seu espaço de trabalho R.

Tip

Se é novo na ideia de fontes de dados ou contextos computacionais, recomendamos que comece pelo artigo Computação Distribuída.

Executar instruções DDL

Podes executar instruções DDL a partir do R, se tiveres as permissões necessárias na instância e na base de dados. As seguintes funções utilizam chamadas ODBC para executar instruções DDL ou recuperar o esquema da base de dados.

Função Description
rxSqlServerTableExists e rxSqlServerDropTable Eliminar uma tabela no SQL Server ou verificar a existência de uma tabela de base de dados ou objeto.
rxExecuteSQLDDL Executar um comando de Linguagem de Definição de Dados (DDL) que defina ou manipule objetos da base de dados. Esta função não pode devolver dados e é usada apenas para recuperar ou modificar o esquema ou metadados do objeto.

2-Manipulação de dados (ETL)

Depois de criar um objeto fonte de dados, pode usar o objeto para carregar dados nele, transformar dados ou escrever novos dados no destino especificado. Dependendo do tamanho dos dados na fonte, também pode definir o tamanho do lote como parte da fonte de dados e mover os dados em blocos.

Função Description
rxOpen-methods Verifique se uma fonte de dados está disponível, abra ou feche uma fonte de dados, leia dados de uma fonte, escreva dados para o destino e feche uma fonte de dados.
rxImport Mover dados de uma fonte de dados para armazenamento de ficheiros ou para um quadro de dados.
rxDataStep Transforma os dados enquanto os move entre fontes de dados.

3-Funções de representação gráfica

Nome da função Description
rxHistogram Cria um histograma a partir dos dados.
rxLinePlot Cria um gráfico de linhas a partir dos dados.
rxLorenz Calcula uma curva de Lorenz, que pode ser representada graficamente.
rxRocCurve Calcula e plota curvas ROC a partir de dados reais e previstos.

4-Estatísticas descritivas

Nome da função Description
rxQuantile* Calcula quantis aproximados para ficheiros .xdf e quadros de dados sem ordenação.
rxSummary* Estatísticas resumidas básicas dos dados, incluindo cálculos por grupo. A escrita de cálculos de grupo para ficheiro .xdf não é suportada.
rxCrossTabs* Tabulação cruzada baseada em fórmulas dos dados.
rxCube* Tabulação cruzada baseada em fórmulas alternativas, concebida para representações eficientes que retornam os resultados do cubo. Escrita de saída para ficheiro .xdf não é suportada.
rxMarginals Resumos marginais de tabulações cruzadas.
as.xtabs Converte resultados de tabulação cruzada num objeto xtabs.
rxChiSquaredTest Efetua o teste do qui-quadrado sobre o objeto xtabs. Usado com conjuntos de dados pequenos e não fragmenta dados.
rxFisherTest Realiza o Teste Exato de Fisher no objeto xtabs. Usado com conjuntos de dados pequenos e não fragmenta dados.
rxKendallCor Calcula o coeficiente de correlação ordinal Tau de Kendall a partir do objeto xtabs.
rxPairwiseCrossTab Aplique uma função a combinações par a par de linhas e colunas de um objeto xtabs.
rxRiskRatio Calcule o risco relativo num objeto xtabs de dois por dois.
rxOddsRatio Calcule a razão de probabilidades num objeto xtabs de dois por dois.

* Indica as funções mais populares nesta categoria.

5-Funções de predição

Nome da função Description
rxLinMod* Ajusta um modelo linear aos dados.
rxLogit* Ajusta um modelo de regressão logística aos dados.
rxGlm* Ajusta um modelo linear generalizado aos dados.
rxCovCor* Calcule a covariância, a correlação ou a matriz de somas de quadrados e produtos cruzados para um conjunto de variáveis.
rxDTree* Ajusta uma árvore de classificação ou de regressão aos dados.
rxBTrees* Ajusta-se a uma floresta de decisão de classificação ou regressão aos dados usando um algoritmo de aumento de gradiente estocástico.
rxDForest* Ajusta uma floresta de decisão de classificação ou regressão aos dados.
rxPredict* Calcula previsões para modelos ajustados. A saída deve ser uma fonte de dados XDF.
rxKmeans* Realiza o agrupamento k-means.
rxNaiveBayes* Realiza a classificação Naive Bayes.
rxCov Calcule a matriz de covariância para um conjunto de variáveis.
rxCor Calcule a matriz de correlação para um conjunto de variáveis.
rxSSCP Calcule a matriz de soma de quadrados/produtos cruzados para um conjunto de variáveis.
rxRoc Cálculos de Característica Operacional do Recetor (ROC) usando valores reais e previstos de sistemas binários de classificadores.

* Indica as funções mais populares nesta categoria.

Como trabalhar com o RevoScaleR

As funções no RevoScaleR são chamáveis em código R encapsulado em procedimentos armazenados. A maioria dos programadores constrói soluções RevoScaleR localmente e depois migra código R finalizado para procedimentos armazenados como exercício de implementação.

Ao correr localmente, normalmente executa um script R a partir da linha de comandos, ou de um ambiente de desenvolvimento R, e especifica um contexto de computação do SQL Server usando uma das funções RevoScaleR. Pode usar o contexto de computação remota para todo o código, ou para funções individuais. Por exemplo, pode querer transferir o treino do modelo para o servidor para usar os dados mais recentes e evitar o movimento de dados.

Quando estiver pronto para encapsular um script R dentro de um procedimento armazenado, sp_execute_external_script, recomendamos reescrever o código como uma única função que tenha entradas e saídas claramente definidas.