Vamos supor que eu tenha 3 máquinas comigo.
Minha primeira máquina tem SQL Server 2016 com R Services instalado.
Minha segunda máquina possui o SQL Server 2016 sem os serviços R habilitados.
Minha terceira máquina tem um Microsoft R Server autônomo instalado nela.
Entendo que como minha primeira máquina possui SQL Server com R Services, posso armazenar o script R como stored procedures no SQL Server e chamá-lo posteriormente para análise.
Minha pergunta é como meu Microsoft R Server autônomo se conecta a SQL Servers (com e sem R Services habilitados).
Pelo que entendi, ele usa ODBC para se conectar ao SQL Server e usa as funções RevoscaleR para consultar ou analisar os dados SQL - em ambos os casos.
Se for esse o caso,
- Qual benefício ou limitação minha máquina 3 (MRS independente) tem ao conectar-se ao SQL Server com R Services versus SQL Server sem R Services?
- Em ambos os casos, posso invocar quaisquer procedimentos armazenados do meu R IDE remotamente?
- Posso enviar o contexto de computação para o servidor SQL em ambos os casos?
- Existe algo especial que o SQL Server com R Services oferece para um Microsoft R Server autônomo em comparação com um SQL Server sem R Services.
- Existe alguma diferença na capacidade do mecanismo de banco de dados de executar outras tarefas de qualquer maneira?
Imagine que estou relutante em habilitar o R Services no meu SQL Server porque pode ocupar a memória e diminuir o desempenho do próprio mecanismo de banco de dados. Tudo o que quero fazer é obter um Microsoft R Server autônomo e conectá-lo ao SQL Server sem R Services e obter toda a escalabilidade e desempenho de qualquer maneira.
O que estou perdendo fazendo isso?
Eu posso responder a algumas dessas perguntas, esperançosamente:
você pode invocar procedimentos armazenados do SQL Server de R usando a biblioteca RODBC, por exemplo, isso funcionou para mim:
Resultados:
ScaleR
biblioteca, por exemplo, functionRxInSqlServer
. Veja aqui para mais detalhes.sp_execute_external_script
de R usando RODBC, mas isso parece um pouco inútil. Uma caixa dedicada do SQL Server (ou seja, sem o R Services habilitado) não precisa compartilhar seus recursos, e isso responde à sua última pergunta, eu acho; o ponto de ter uma caixa dedicada de qualquer tipo (somente MRS ou somente SQL Server) seria para que nenhum dos dois tivesse que compartilhar seus recursos. O objetivo de ter um SQL Server com R Services habilitado seria para que a caixa pudesse desempenhar funções duplas, se os recursos permitissem, além de manter a análise próxima aos dados. Espero que faça sentido.Aqui está um bom artigo sobre a persistência de modelos de aprendizado de máquina em uma tabela usando SQL Server com R Services. Como você faria isso no R autônomo?
Talvez outra pessoa possa intervir porque, honestamente, isso parece muito semelhante às suas outras perguntas. Você pode imaginar que não há muitas pessoas fazendo isso, então uma das melhores pessoas para fazer isso é você; tente essas coisas, reporte de volta :)