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 início rápido, você executará um conjunto de scripts R simples usando os Serviços de Aprendizado de Máquina do SQL Server ou em Clusters de Big Data. Você aprenderá como usar o sp_execute_external_script de procedimento armazenado para executar o script em uma instância do SQL Server.
Neste início rápido, você executará um conjunto de scripts R simples usando os Serviços de Aprendizado de Máquina do SQL Server. Você aprenderá como usar o sp_execute_external_script de procedimento armazenado para executar o script em uma instância do SQL Server.
Neste início rápido, você executará um conjunto de scripts R simples usando o SQL Server R Services. Você aprenderá como usar o sp_execute_external_script de procedimento armazenado para executar o script em uma instância do SQL Server.
Neste início rápido, você executará um conjunto de scripts R simples usando os Serviços de Aprendizado de Máquina de Instância Gerenciada SQL do Azure. Você aprenderá como usar o sp_execute_external_script de procedimento armazenado para executar o script em seu banco de dados.
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.
Executar um script simples
Para executar um script R, você o passará como um argumento para o procedimento armazenado do sistema, sp_execute_external_script. Este procedimento armazenado do sistema inicia o tempo de execução do R, passa dados para R, gerencia sessões de usuário do R com segurança e retorna todos os resultados para o cliente.
Nas etapas a seguir, você executará este exemplo de script R:
a <- 1
b <- 2
c <- a/b
d <- a*b
print(c(c, d))
Abra o Azure Data Studio e conecte-se ao seu servidor.
Passe o script R completo para o
sp_execute_external_scriptprocedimento armazenado.O script é passado através do
@scriptargumento. Tudo dentro do@scriptargumento deve ser um código R válido.EXECUTE sp_execute_external_script @language = N'R' , @script = N' a <- 1 b <- 2 c <- a/b d <- a*b print(c(c, d)) 'O resultado correto é calculado e a função R
printretorna o resultado para a janela Mensagens .Deveria ser algo assim.
Results
STDOUT message(s) from external script: 0.5 2
Executar um script Hello World
Um script de exemplo típico é aquele que apenas produz a string "Hello World". Execute o seguinte comando.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'OutputDataSet<-InputDataSet'
, @input_data_1 = N'SELECT 1 AS hello'
WITH RESULT SETS(([Hello World] INT));
GO
As entradas para o sp_execute_external_script procedimento armazenado incluem:
| Entrada | Description |
|---|---|
| @language | Define a extensão de linguagem a ser chamada, neste caso, R |
| @script | Define-se os comandos passados para o ambiente de execução R. Todo o script R deve ser contido neste argumento, como texto Unicode. Você também pode adicionar o texto a uma variável do tipo nvarchar e, em seguida, chamar a variável |
| @input_data_1 | dados retornados pela consulta, passados para o ambiente de execução R, que retorna os dados em forma de um quadro de dados |
| COM CONJUNTOS DE RESULTADOS | define o esquema da tabela de dados retornada, adicionando "Hello World" como o nome da coluna, int para o tipo de dados |
O comando produz o seguinte texto:
| Hello World |
|---|
| 1 |
Usar entradas e saídas
Por padrão, sp_execute_external_script aceita um único conjunto de dados como entrada, que normalmente você fornece na forma de uma consulta SQL válida. Em seguida, ele retorna um único quadro de dados R como saída.
Por enquanto, vamos usar as variáveis de entrada e saída padrão de sp_execute_external_script: InputDataSet e OutputDataSet.
Crie uma pequena tabela de dados de teste.
CREATE TABLE RTestData (col1 INT NOT NULL) INSERT INTO RTestData VALUES (1); INSERT INTO RTestData VALUES (10); INSERT INTO RTestData VALUES (100); GOUse a
SELECTinstrução para consultar a tabela.SELECT * FROM RTestDataResults
Execute o seguinte script R. Ele recupera os dados da tabela usando a
SELECTinstrução, passa-os pelo tempo de execução do R e retorna os dados como um quadro de dados. AWITH RESULT SETScláusula define o esquema da tabela de dados retornada para SQL, adicionando o nome da coluna NewColName.EXECUTE sp_execute_external_script @language = N'R' , @script = N'OutputDataSet <- InputDataSet;' , @input_data_1 = N'SELECT * FROM RTestData;' WITH RESULT SETS(([NewColName] INT NOT NULL));Results
Agora vamos alterar os nomes das variáveis de entrada e saída. Os nomes das variáveis de entrada e saída padrão são InputDataSet e OutputDataSet, esse script altera os nomes para SQL_in e SQL_out:
EXECUTE sp_execute_external_script @language = N'R' , @script = N' SQL_out <- SQL_in;' , @input_data_1 = N' SELECT 12 as Col;' , @input_data_1_name = N'SQL_in' , @output_data_1_name = N'SQL_out' WITH RESULT SETS(([NewColName] INT NOT NULL));Observe que R diferencia maiúsculas de minúsculas. As variáveis de entrada e saída usadas no script R (SQL_out, SQL_in) precisam corresponder aos nomes definidos com
@input_data_1_namee@output_data_1_name, incluindo maiúsculas e minúsculas.Sugestão
Apenas um conjunto de dados de entrada pode ser passado como um parâmetro e você pode retornar apenas um conjunto de dados. No entanto, você pode chamar outros conjuntos de dados de dentro do seu código R e pode retornar saídas de outros tipos além do conjunto de dados. Você também pode adicionar a palavra-chave OUTPUT a qualquer parâmetro para que ela seja retornada com os resultados.
Você também pode gerar valores apenas usando o script R sem dados de entrada (
@input_data_1está definido como em branco).O script a seguir produz o texto "olá" e "mundo".
EXECUTE sp_execute_external_script @language = N'R' , @script = N' mytextvariable <- c("hello", " ", "world"); OutputDataSet <- as.data.frame(mytextvariable); ' , @input_data_1 = N'' WITH RESULT SETS(([Col1] CHAR(20) NOT NULL));Results
@script como entrada" />
Verifique a versão R
Se você gostaria de ver qual versão do R está instalada, execute o seguinte script.
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'print(version)';
GO
A função R print retorna a versão para a janela Mensagens . No exemplo de saída abaixo, você pode ver que, neste caso, R versão 3.4.4 está instalado.
Results
STDOUT message(s) from external script:
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.4
year 2018
month 03
day 15
svn rev 74408
language R
version.string R version 3.4.4 (2018-03-15)
nickname Someone to Lean On
Listar pacotes R
A Microsoft fornece vários pacotes R pré-instalados com os Serviços de Aprendizado de Máquina.
A Microsoft fornece vários pacotes R pré-instalados com o R Services.
Para ver uma lista de quais pacotes R estão instalados, incluindo informações sobre versão, dependências, licença e caminho da biblioteca, execute o script a seguir.
EXEC sp_execute_external_script @language = N'R'
, @script = N'
OutputDataSet <- data.frame(installed.packages()[,c("Package", "Version", "Depends", "License", "LibPath")]);'
WITH result sets((
Package NVARCHAR(255)
, Version NVARCHAR(100)
, Depends NVARCHAR(4000)
, License NVARCHAR(1000)
, LibPath NVARCHAR(2000)
));
A saída é de installed.packages() em R e é retornada como um conjunto de resultados.
Results
Próximos passos
Para saber como usar estruturas de dados ao usar R com aprendizado de máquina SQL, siga este guia de início rápido: