Tutorial: Desenvolvimento de SQL Server para cientistas de dados em R

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

Neste tutorial para cientistas de dados, aprenda como construir uma solução de ponta a ponta para modelação preditiva baseada no suporte a funcionalidades R no SQL Server 2017. Este tutorial utiliza uma base de dados demo NYC Taxi no SQL Server.

Utiliza-se uma combinação de código R, dados SQL Server e funções SQL personalizadas para construir um modelo de classificação que indica a probabilidade de o condutor receber uma gorjeta numa determinada viagem de táxi. Também implementas o teu modelo R no SQL Server e usas os dados do servidor para gerar pontuações com base no modelo.

Pode estender este exemplo a todo o tipo de problemas da vida real, como prever as respostas dos clientes a campanhas de vendas, ou prever gastos ou participação em eventos. Como pode invocar o modelo a partir de um procedimento armazenado, pode facilmente incorporá-lo numa aplicação.

Como o guia foi concebido para apresentar aos programadores R os Serviços R (In-Database), é utilizado sempre que possível. No entanto, isto não significa que o R seja necessariamente a melhor ferramenta para cada tarefa. Em muitos casos, o SQL Server pode proporcionar melhor desempenho, especialmente para tarefas como agregação de dados e engenharia de funcionalidades. Estas tarefas podem beneficiar particularmente de novas funcionalidades no SQL Server, como índices de coluna otimizados para memória. Tentamos apontar possíveis otimizações ao longo do caminho.

Pré-requisitos

Recomendamos que faça este walkthrough numa estação de trabalho do cliente. Deve ser capaz de ligar, na mesma rede, a um computador SQL Server com o SQL Server e a linguagem R ativados. Para instruções sobre configuração de estações de trabalho, consulte Configurar um cliente de ciência de dados para desenvolvimento R no SQL Server.

Alternativamente, pode correr o guia num computador que tenha tanto SQL Server como um ambiente de desenvolvimento R, mas não recomendamos esta configuração para um ambiente de produção. Se precisares de colocar cliente e servidor no mesmo computador, certifica-te de instalar um segundo conjunto de bibliotecas Microsoft R para enviar scripts R a partir de um cliente "remoto". Não uses as bibliotecas R que estão instaladas nos ficheiros de programa da instância do SQL Server. Especificamente, se estiveres a usar um computador, precisas da biblioteca RevoScaleR em ambos os locais para suportar operações de cliente e servidor.

  • C:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleR
  • C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library\RevoScaleR

Pacotes R adicionais

Este guia requer várias bibliotecas R que não estejam instaladas por defeito como parte dos Serviços R (In-Database). Deve instalar os pacotes tanto no cliente onde desenvolve a solução, como no computador SQL Server onde implementa a solução.

Numa estação de trabalho cliente

No seu ambiente R, copie as linhas seguintes e execute o código numa janela de Consola (Rgui ou um IDE). Alguns pacotes também instalam os pacotes necessários. No total, estão instalados cerca de 32 pacotes. Tem de ter uma ligação à Internet para concluir este passo.

# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}

No servidor

Tem várias opções para instalar pacotes no SQL Server. Por exemplo, o SQL Server fornece os pacotes Install R com a funcionalidade sqlmlutils, que permite aos administradores de bases de dados criar um repositório de pacotes e atribuir direitos de utilizador para instalar os seus próprios pacotes. No entanto, se fores administrador no computador, podes instalar novos pacotes usando o R, desde que instales na biblioteca correta.

Observação

No servidor, não instale na biblioteca do utilizador mesmo que lhe seja solicitado. Se instalares numa biblioteca de utilizador, a instância do SQL Server não consegue encontrar nem executar os pacotes. Para obter mais informações, consulte Instalar pacotes R com sqlmlutils.

  1. No computador SQL Server, abre RGui.exe como administrador. Se instalar SQL Server R Services com as definições padrão, pode encontrar RGui.exe em C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64.

  2. No prompt R, execute os seguintes comandos R:

install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])

Este exemplo utiliza a função R grep para pesquisar o vetor dos caminhos disponíveis e encontrar o caminho que inclui "Program Files". Para mais informações, consulte RDocumentation para o pacote base.

Se acha que os pacotes já estão instalados, verifique a lista de pacotes instalados ao executar installed.packages().

Passo seguinte