Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Este é o tutorial 1 da série de tutoriais RevoScaleR sobre como usar funções RevoScaleR com SQL Server.
Este tutorial descreve como criar uma base de dados SQL Server e definir as permissões necessárias para completar os outros tutoriais desta série. Utilize SQL Server Management Studio (SSMS) ou outro editor de consultas para completar as seguintes tarefas:
- Criar uma nova base de dados para armazenar os dados para treinar e pontuar dois modelos R
- Crie um login de utilizador de base de dados com permissões para criar e usar objetos de base de dados
Criar a base de dados
Este tutorial requer uma base de dados para armazenar dados e código. Se não for administrador, peça ao seu DBA para criar a base de dados e iniciar sessão por si. Vais precisar de permissões para escrever e ler dados, e para executar scripts R.
No SQL Server Management Studio, ligue-se a uma instância de base de dados habilitada para R.
Clique com o botão direito em Bases de Dados e selecione Nova base de dados.
Escreva um nome para a nova base de dados: RevoDeepDive.
Criar um login
Clique em Nova Consulta e altere o contexto da base de dados para a base de dados principal.
Na nova janela de Consulta , execute os seguintes comandos para criar as contas de utilizador e atribuí-las à base de dados utilizada neste tutorial. Certifique-se de mudar o nome da base de dados se necessário.
Para verificar o login, selecione a nova base de dados, expanda Segurança e expanda Utilizadores.
Usuário do Windows
-- Create server user based on Windows account
USE master
GO
CREATE LOGIN [<DOMAIN>\<user_name>] FROM WINDOWS WITH DEFAULT_DATABASE=[RevoDeepDive]
--Add the new user to tutorial database
USE [RevoDeepDive]
GO
CREATE USER [<user_name>] FOR LOGIN [<DOMAIN>\<user_name>] WITH DEFAULT_SCHEMA=[db_datareader]
Login SQL
-- Create new SQL login
USE master
GO
CREATE LOGIN [DDUser01] WITH PASSWORD='<type password here>', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
-- Add the new SQL login to tutorial database
USE RevoDeepDive
GO
CREATE USER [DDUser01] FOR LOGIN [DDUser01] WITH DEFAULT_SCHEMA=[db_datareader]
Atribuir permissões
Este tutorial demonstra operações de script R e DDL, incluindo a criação e eliminação de tabelas e procedimentos armazenados, e a execução de script R num processo externo no SQL Server. Neste passo, atribua permissões para permitir estas tarefas.
Este exemplo assume um login SQL (DDUser01), mas se criaste um login Windows, usa esse em vez disso.
USE RevoDeepDive
GO
EXEC sp_addrolemember 'db_owner', 'DDUser01'
GRANT EXECUTE ANY EXTERNAL SCRIPT TO DDUser01
GO
Solucionar problemas de conexões
Esta secção lista alguns problemas comuns que poderá encontrar durante a configuração da base de dados.
Como posso verificar a conectividade da base de dados e verificar consultas SQL?
Antes de executar código R usando o servidor, pode querer verificar se a base de dados pode ser acedida a partir do seu ambiente de desenvolvimento R. Tanto o Server Explorer no Visual Studio como o SQL Server Management Studio (SSMS) são ferramentas gratuitas com poderosas funcionalidades de conectividade e gestão de bases de dados.
Se não quiser instalar ferramentas adicionais de gestão de bases de dados, pode criar uma ligação de teste à instância do SQL Server usando o ODBC Data Source Administrator no Painel de Controlo. Se a base de dados estiver configurada corretamente e introduzires o nome de utilizador e a palavra-passe corretos, deves conseguir ver a base de dados que acabaste de criar e selecioná-la como base de dados predefinida.
Razões comuns para falhas de ligação incluem que as ligações remotas não estão ativadas para o servidor e o protocolo Named Pipes não está ativado. Pode encontrar mais dicas de resolução de problemas neste artigo: Resolução de Problemas para Ligar ao Motor de Base de Dados SQL Server.
O nome da minha tabela tem o prefixo de leitor de dados – porquê?
Quando especifica o esquema padrão para este utilizador como db_datareader, todas as tabelas e outros novos objetos criados por este utilizador são prefixados com o nome do esquema . Um esquema é como uma pasta que podes adicionar a uma base de dados para organizar objetos. O esquema também define os privilégios do utilizador dentro da base de dados.
Quando o esquema está associado a um nome de utilizador em particular, o utilizador é o proprietário do esquema. Quando crias um objeto, crias-no sempre no teu próprio esquema, a menos que peças especificamente para ser criado noutro esquema.
Por exemplo, se criar uma tabela com o nome TestData, e o seu esquema padrão for db_datareader, a tabela é criada com o nome
<database_name>.db_datareader.TestData.Por esta razão, uma base de dados pode conter múltiplas tabelas com os mesmos nomes, desde que as tabelas pertençam a esquemas diferentes.
Se procurar uma tabela e não especificar um esquema, o servidor de base de dados procurará por um esquema que lhe pertença. Portanto, não é necessário especificar o nome do esquema ao aceder a tabelas num esquema associado ao seu login.
Não tenho privilégios DDL. Ainda posso correr o tutorial??
Sim, mas deves pedir a alguém para pré-carregar os dados nas tabelas SQL Server e avançar para o próximo tutorial. As funções que requerem privilégios DDL são indicadas no tutorial sempre que possível.
Além disso, pede ao teu administrador que te conceda a permissão, EXECUTA QUALQUER SCRIPT EXTERNO. É necessário para a execução de scripts R, seja remotamente ou usando
sp_execute_external_script.