RevoScaleR (pacote de R nos Serviços de Machine Learning do SQL Server)

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

O RevoScaleR é um pacote de R da Microsoft que dá suporte à computação distribuída, a contextos de computação remota e a algoritmos de ciência de dados de alto desempenho. Ele também dá suporte à importação de dados, à transformação de dados, ao resumo, à visualização e à análise. O pacote está incluído nos Serviços de Machine Learning do SQL Server e no SQL Server 2016 R Services.

Em contraste com as funções base do R, as operações do RevoScaleR podem ser executadas em conjuntos de dados grandes, em paralelo e em Sistemas de Arquivos Distribuído. As funções podem operar em conjuntos de dados que não cabem na memória usando o agrupamento e remontando os resultados quando as operações são concluídas.

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

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

Documentação de referência completa

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

Versões e plataformas

O pacote RevoScaleR é baseado no R 3.4.3 e está disponível somente quando você instala um dos seguintes produtos ou downloads da Microsoft:

Observação

As versões completas do produto são somente Windows no SQL Server 2017. Há suporte no Windows e no Linux para o RevoScaleR no SQL Server 2019.

Funções por categoria

Esta seção lista as funções por categoria para dar uma ideia de como cada uma é usada. Use também o sumário para localizar as funções em ordem alfabética.

1 – Fonte de dados e computação

O RevoScaleR inclui funções para criar fontes de dados e definir a localização ou o contexto de computação, de execução dos cálculos. Um objeto de fonte de dados é um contêiner que especifica uma cadeia de conexão com o conjunto de dados que você deseja, definido como uma tabela, exibição ou consulta. Não há suporte para chamadas de procedimento armazenado. Funções relevantes para cenários do SQL Server são listadas na tabela abaixo.

O SQL Server e o R usam diferentes tipos de dados em alguns casos. Para obter uma lista de mapeamentos entre os tipos de dados SQL e R, confira Tipos de dados do R para SQL.

Função Descrição
RxInSqlServer Crie um objeto de contexto de computação do SQL Server para efetuar push de cálculos para uma instância remota. Várias funções do RevoScaleR usam o contexto de computação como argumento.
rxGetComputeContext / rxSetComputeContext Obtenha ou defina o contexto de computação ativo.
RxSqlServerData Crie um objeto de dados com base em uma consulta ou uma tabela do SQL Server.
RxOdbcData Crie uma fonte de dados com base em uma conexão ODBC.
RxXdfData Crie uma fonte de dados com base em um arquivo XDF local. Os arquivos XDF geralmente são usados para descarregar dados na memória no disco. Um arquivo XDF pode ser útil ao trabalhar com mais dados do que é possível transferir do banco de dados em um lote ou mais dados do que cabem na memória. Por exemplo, se você mover regularmente grandes quantidades de dados de um banco de dados para uma estação de trabalho local, em vez de consultar o banco de dados repetidamente para cada operação do R, use o arquivo XDF como um tipo de cache para salvar os dados localmente e, em seguida, trabalhar com eles no workspace do R.

Dica

Se a ideia de fontes de dados ou contextos de computação for uma novidade para você, recomendamos que comece com o artigo Computação distribuída.

Executar instruções DDL

Você poderá executar instruções DDL no R caso tenha as permissões necessárias na instância e no banco de dados. As funções a seguir usam chamadas ODBC para executar instruções DDL ou recuperar o esquema de banco de dados.

Função Descrição
rxSqlServerTableExists e rxSqlServerDropTable Remova uma tabela do SQL Server ou verifique a existência de uma tabela ou um objeto de banco de dados.
rxExecuteSQLDDL Execute um comando DDL (linguagem de definição de dados) que define ou manipula objetos de banco de dados. Essa função não pode retornar dados e é usada somente para recuperar ou modificar o esquema de objeto ou os metadados.

2 – Manipulação de dados (ETL)

Depois de criar um objeto de fonte de dados, use o objeto para carregar dados nele, transformar dados ou gravar novos dados no destino especificado. Dependendo do tamanho dos dados de origem, você também poderá definir o tamanho do lote como parte da fonte de dados e mover dados em partes.

Função Descrição
rxOpen-methods Verifique se uma fonte de dados está disponível, abra ou feche uma fonte de dados, leia os dados de uma fonte, grave dados no destino e feche uma fonte de dados.
rxImport Mova os dados de uma fonte de dados para um armazenamento de arquivos ou um quadro de dados.
rxDataStep Transforme os dados ao movê-los entre fontes de dados.

3 – Funções de grafo

Nome da função Descrição
rxHistogram Cria um histograma com base nos dados.
rxLinePlot Cria um gráfico de linha com base nos dados.
rxLorenz Calcula uma curva Lorenz, que pode ser plotada.
rxRocCurve Calcula e plota curvas ROC com base nos dados reais e previstos.

4 – Estatísticas descritivas

Nome da função Descrição
rxQuantile* Calcula quantidades aproximadas para arquivos .xdf e quadros de dados sem classificação.
rxSummary* Estatísticas básicas de resumo de dados, incluindo cálculos por grupo. Não há suporte para a gravação por cálculos de grupo no arquivo .xdf.
rxCrossTabs* Tabulação cruzada de dados baseada em fórmula.
rxCube* Tabulação cruzada alternativa baseada em fórmula, projetada para uma representação eficiente que retorna os resultados do cubo. Não há suporte para gravação da saída no arquivo .xdf.
rxMarginals Resumos marginais de tabulações cruzadas.
as.xtabs Converte os resultados da tabulação cruzada em um objeto xtabs.
rxChiSquaredTest Executa o teste qui quadrado no objeto xtabs. Usado com os conjuntos de dados pequenos e não agrupa os dados.
rxFisherTest Executa um Teste Exato de Fisher em um objeto xtabs. Usado com os conjuntos de dados pequenos e não agrupa os dados.
rxKendallCor Calcula o Coeficiente de Correlação da Classificação Tau de Kendall usando um objeto xtabs.
rxPairwiseCrossTab Aplica uma função a combinações de pares de linhas e colunas de um objeto xtabs.
rxRiskRatio Calcula o risco relativo em um objeto xtabs de dois por dois.
rxOddsRatio Calcula a proporção de probabilidade em um objeto xtabs de dois por dois.

* Significa as funções mais populares nessa categoria.

5 – Funções de previsão

Nome da função Descrição
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* Calcula a covariância, a correlação ou a soma de matriz de quadrados/produto cruzado para um conjunto de variáveis.
rxDTree* Ajusta uma árvore de classificação ou regressão aos dados.
rxBTrees* Ajusta uma floresta de decisão de classificação ou regressão aos dados usando um algoritmo de gradient boosting alheatório.
rxDForest* Ajusta uma floresta de decisão de classificação ou regressão aos dados.
rxPredict* Calcula as previsões para os modelos ajustados. A saída precisa ser uma fonte de dados XDF.
rxKmeans* Executa o cluster K-means.
rxNaiveBayes* Executa a classificação Naive Bayes.
rxCov Calcula a matriz de covariância para um conjunto de variáveis.
rxCor Calcula a matriz de correlação para um conjunto de variáveis.
rxSSCP Calcula a soma de matriz de quadrados/produto cruzado para um conjunto de variáveis.
rxRoc Cálculos ROC (Característica de Operação do Receptor) usando os valores reais e previstos de um sistema de classificador binário.

* Significa as funções mais populares nessa categoria.

Como trabalhar com o RevoScaleR

As funções do RevoScaleR podem ser chamadas no código R encapsulado em procedimentos armazenados. A maioria dos desenvolvedores cria soluções do RevoScaleR localmente e, em seguida, migra o código R concluído para procedimentos armazenados como um exercício de implantação.

Na execução local, normalmente, você executa um script R na linha de comando ou em um ambiente de desenvolvimento do R e especifica um contexto de computação do SQL Server usando uma das funções do RevoScaleR. Use o contexto de computação remota para todo o código ou para funções individuais. Por exemplo, talvez você queira descarregar o treinamento do modelo no servidor para usar os dados mais recentes e evitar a movimentação de dados.

Quando você estiver pronto para encapsular o 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.

Confira também