Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Instância Gerenciada SQL do Azure
Neste guia de início rápido, você aprenderá a usar funções matemáticas e utilitárias do R com os Serviços de Aprendizado de Máquina do SQL Server ou em Clusters de Big Data. As funções estatísticas são muitas vezes complicadas de implementar em T-SQL, mas podem ser feitas em R com apenas algumas linhas de código.
Neste início rápido, você aprenderá a usar funções matemáticas e utilitárias do R com os Serviços de Aprendizado de Máquina do SQL Server. As funções estatísticas são muitas vezes complicadas de implementar em T-SQL, mas podem ser feitas em R com apenas algumas linhas de código.
Neste início rápido, você aprenderá a usar funções matemáticas e utilitárias do R com o SQL Server R Services. As funções estatísticas são muitas vezes complicadas de implementar em T-SQL, mas podem ser feitas em R com apenas algumas linhas de código.
Neste início rápido, você aprenderá a usar estruturas de dados e tipos de dados ao usar R nos Serviços de Aprendizado de Máquina de Instância Gerenciada SQL do Azure. Você aprenderá sobre como mover dados entre a Instância Gerenciada R e SQL e os problemas comuns que podem ocorrer.
Pré-requisitos
Você precisa dos seguintes pré-requisitos para executar este início rápido.
- Serviços de Aprendizado de Máquina do SQL Server. Para instalar os Serviços de Aprendizado de Máquina, consulte o guia de instalação do Windows ou o guia de instalação do Linux. Você também pode habilitar os Serviços de Aprendizado de Máquina em Clusters de Big Data do SQL Server.
- Serviços de Aprendizado de Máquina do SQL Server. Para instalar os Serviços de Aprendizado de Máquina, consulte o guia de instalação do Windows.
- Serviços do SQL Server 2016 R. Para instalar o R Services, consulte o guia de instalação do Windows.
- Serviços de Aprendizado de Máquina de Instância Gerenciada SQL do Azure. Para obter informações, consulte a visão geral dos Serviços de Aprendizado de Máquina da Instância Gerenciada SQL do Azure.
- Uma ferramenta para executar consultas SQL que contêm scripts R. Este guia de início rápido usa Azure Data Studio.
Criar um procedimento armazenado para gerar números aleatórios
Para simplificar, vamos usar o pacote R stats , que é instalado e carregado por padrão. O pacote contém centenas de funções para tarefas estatísticas comuns, entre elas a rnorm função, que gera um número especificado de números aleatórios usando a distribuição normal, dado um desvio padrão e média.
Por exemplo, o código R a seguir retorna 100 números em uma média de 50, dado um desvio padrão de 3.
as.data.frame(rnorm(100, mean = 50, sd = 3));
Para chamar essa linha de R do T-SQL, adicione a função R no parâmetro de script R de sp_execute_external_script, desta forma:
EXECUTE sp_execute_external_script
@language = N'R'
, @script = N'
OutputDataSet <- as.data.frame(rnorm(100, mean = 50, sd =3));'
, @input_data_1 = N' ;'
WITH RESULT SETS (([Density] float NOT NULL));
E se você quiser facilitar a geração de um conjunto diferente de números aleatórios?
Isso é fácil quando combinado com T-SQL. Você define um procedimento armazenado que obtém os argumentos do usuário e, em seguida, passa esses argumentos para o script R como variáveis.
CREATE PROCEDURE MyRNorm (
@param1 INT
, @param2 INT
, @param3 INT
)
AS
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- as.data.frame(rnorm(mynumbers, mymean, mysd));'
, @input_data_1 = N' ;'
, @params = N' @mynumbers int, @mymean int, @mysd int'
, @mynumbers = @param1
, @mymean = @param2
, @mysd = @param3
WITH RESULT SETS(([Density] FLOAT NOT NULL));
A primeira linha define cada um dos parâmetros de entrada SQL que são necessários quando o procedimento armazenado é executado.
A linha que começa com
@paramsdefine todas as variáveis usadas pelo código R e os tipos de dados SQL correspondentes.As linhas que se seguem imediatamente mapeiam os nomes dos parâmetros SQL para os nomes das variáveis R correspondentes.
Agora que você envolveu a função R em um procedimento armazenado, você pode facilmente chamar a função e passar valores diferentes, como este:
EXECUTE MyRNorm @param1 = 100,@param2 = 50, @param3 = 3
Use as funções do utilitário R para solucionar problemas
O pacote utils , instalado por padrão, fornece uma variedade de funções utilitárias para investigar o ambiente R atual. Essas funções podem ser úteis se você estiver encontrando discrepâncias na maneira como seu código R é executado no SQL Server e em ambientes externos.
Por exemplo, você pode usar as funções de temporização do sistema em R, como system.time e proc.time, para capturar o tempo usado pelos processos R e analisar problemas de desempenho. Para obter um exemplo, consulte o tutorial Criar recursos de dados onde as funções de temporização R são incorporadas na solução.
EXECUTE sp_execute_external_script
@language = N'R'
, @script = N'
library(utils);
start.time <- proc.time();
# Run R processes
elapsed_time <- proc.time() - start.time;'
Para outras funções úteis, consulte Usar funções de criação de perfil de código R para melhorar o desempenho.
Próximos passos
Para criar um modelo de aprendizado de máquina usando R com aprendizado de máquina SQL, siga este guia de início rápido: