Instalar Serviços de Machine Learning do SQL Server (R e Python) no Windows

Aplica-se a: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Este artigo explica como instalar os Serviços de Machine Learning do SQL Server no Windows. Você pode usar os Serviços de Machine Learning para executar scripts de Python e R no banco de dados.

Importante

Essas instruções se aplicam ao SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x). Para o SQL Server 2022 (16.x), confira Instalar os Serviços de Machine Learning do SQL Server 2022 no Windows.

Lista de verificação da pré-instalação

  • Uma instância do mecanismo de banco de dados é necessária. Não é possível instalar somente os recursos do R ou do Python, embora seja possível adicioná-los incrementalmente a uma instância autônoma existente.

  • Para continuidade dos negócios, os grupos de disponibilidade Always On são compatíveis com os Serviços de Machine Learning. Instale os Serviços de Machine Learning e configure os pacotes em cada nó.

  • Não há suporte para a instalação dos Serviços de Machine Learning em uma instância de cluster de failover Always On no SQL Server 2017. Ela tem suporte com o SQL Server 2019 e posteriores. Você deve instalar os Serviços de Machine Learning no momento da instalação e os recursos não podem ser adicionados a uma instância de cluster de failover existente depois de instalados.

  • Não instale os Serviços de Machine Learning em um controlador de domínio. A parte dos Serviços de Machine Learning da instalação falhará.

  • Não instale Recursos Compartilhados>Machine Learning Server (Autônomo) no mesmo computador que executa uma instância do banco de dados. Um servidor autônomo competirá pelos mesmos recursos, prejudicando o desempenho das duas instalações.

  • A instalação lado a lado com outras versões do R e do Python é compatível, mas não recomendada. Ela é compatível porque a instância do SQL Server usa as próprias cópias das distribuições do R e do Anaconda de software livre. Não é recomendável porque a execução de código que usa R e Python em um computador fora do SQL Server pode gerar problemas:

    • Usar uma biblioteca e arquivos executáveis diferentes criará resultados inconsistentes do que o que você está executando no SQL Server.
    • O SQL Server não pode gerenciar scripts do R e do Python executados em bibliotecas externas, levando à contenção de recursos.

Observação

Os Serviços de Machine Learning são instalados por padrão em Clusters de Big Data do SQL Server. Não será preciso seguir as etapas deste artigo se você usar um cluster de Big Data. Para obter mais informações, confira Usar Serviços de Machine Learning (Python e R) em Clusters de Big Data.

Importante

Após a conclusão da instalação, conclua as etapas de pós-configuração descritas neste artigo. Essas etapas incluem a habilitação do SQL Server para usar scripts externos e a adição de contas necessárias para o SQL Server executar trabalhos do R e do Python em seu nome. Geralmente, as alterações na configuração exigem uma reinicialização da instância ou do serviço Launchpad.

Obtenha a mídia de instalação

O local de download para SQL Server depende da edição:

  • Edições SQL Server Enterprise, Standard e Express. Essas edições são licenciadas para uso em produção. Para as edições Enterprise e Standard, entre em contato com seu fornecedor de software para obter a mídia de instalação. Você pode encontrar informações de compra e um diretório de parceiros da Microsoft no site de compras da Microsoft.
  • A última edição gratuita.

Para saber mais sobre quais edições do SQL Server são compatíveis com as integrações de Python e R com os Serviços de Machine Learning, confira Edições e recursos compatíveis com o SQL Server 2017.

Para saber mais sobre quais edições do SQL Server são compatíveis com as integrações de Python e R com os Serviços de Machine Learning, confira Edições e recursos compatíveis com o SQL Server 2019.

Executar a instalação

Em instalações locais, você deve executar a instalação como um administrador. Se você instalar o SQL Server de um compartilhamento remoto, deverá usar uma conta de domínio que tenha permissões de leitura e de execução no compartilhamento remoto.

  1. Inicie o assistente de instalação do SQL Server.

  2. Na guia Instalação, selecione Nova instalação autônoma do SQL Server ou adicionar recursos a uma instalação existente.

    Screenshot that shows the option for creating a SQL Server standalone installation or adding features to an existing installation.

    Screenshot that shows the option for using a new SQL Server standalone installation or adding features to an existing installation.

  3. Na página Seleção de Recursos , selecione estas opções:

    • Serviços do Mecanismo de Banco de Dados

      Para usar o R e o Python com o SQL Server, você deverá instalar uma instância do mecanismo de banco de dados. Você pode usar uma instância padrão ou uma nomeada.

    • Serviços de Machine Learning (no banco de dados)

      Esta opção instala os serviços de banco de dados que dão suporte à execução de scripts R e Python.

    • Serviços do Mecanismo de Banco de Dados

      Para usar o R ou o Python com o SQL Server, você deverá instalar uma instância do mecanismo de banco de dados. Você pode usar uma instância padrão ou uma nomeada.

    • Serviços de Machine Learning e Extensões de Linguagem

      Esta opção instala os serviços de banco de dados que dão suporte à execução de scripts R e Python.

    • R

      Selecione esta opção para adicionar os pacotes do Microsoft R, o interpretador e o R de código aberto.

    • Python

      Selecione esta opção para adicionar os pacotes do Microsoft Python e o executável do Python 3.5. Depois, selecione as bibliotecas da distribuição do Anaconda.

    Para saber mais sobre como instalar e usar o Java, confira Instalar extensões de linguagem do Java para SQL Server no Windows.

    Screenshot that shows feature options for R and Python.

    Screenshot that shows selecting feature options for R and Python.

    Observação

    Não selecione a opção Machine Learning Server (Autônomo) em Recursos Compartilhados. Essa opção destina-se a uso em um computador separado.

  1. Na página Consentimento para instalar o Microsoft R Open, selecione Aceitar>Avançar.

    O contrato de licença abrange:

    • Microsoft R Open.
    • Pacotes e ferramentas de base do R de código aberto.
    • Pacotes R aprimorados e provedores de conectividade da equipe de desenvolvimento da Microsoft.
  2. Na página Consentimento para instalar o Python, selecione Aceitar>Avançar. O contrato de licença de código aberto do Python também abrange o Anaconda e as ferramentas relacionadas, além de algumas novas bibliotecas do Python da equipe de desenvolvimento da Microsoft.

    Observação

    Se o computador usado não tiver acesso à Internet, você poderá pausar a instalação neste ponto para baixar os instaladores separadamente. Para obter mais informações, confira Instalar componentes de machine learning sem acesso à Internet.

  3. Na página Pronto para instalar, verifique se essas seleções estão incluídas e selecione Instalar:

    • Serviços do Mecanismo de Banco de Dados
    • Serviços de Machine Learning (no banco de dados)
    • R, Python ou os dois

    Observação da localização da pasta no caminho ..\Setup Bootstrap\Log em que os arquivos de configuração são armazenados. Quando a instalação for concluída, você poderá examinar os componentes instalados no arquivo de resumo.

  4. Após a conclusão da instalação, se você receber instruções para reiniciar o computador, faça-o. É importante ler a mensagem do Assistente de Instalação ao concluir a instalação. Para saber mais, veja Exibir e ler arquivos de log da instalação do SQL Server.

  1. Na página Consentimento para instalar o Microsoft R Open, selecione Aceitar>Avançar. Este contrato de licença abrange o Microsoft R Open, que inclui uma distribuição de pacotes e ferramentas base do R de código aberto. Ele também inclui pacotes aprimorados do R e provedores de conectividade da equipe de desenvolvimento da Microsoft.

  2. Na página Consentimento para instalar o Python, selecione Aceitar>Avançar. O contrato de licença de código aberto do Python também abrange o Anaconda e as ferramentas relacionadas, além de algumas novas bibliotecas do Python da equipe de desenvolvimento da Microsoft.

  3. Na página Pronto para instalar, verifique se essas seleções estão incluídas e selecione Instalar:

    • Serviços do Mecanismo de Banco de Dados
    • Serviços de Machine Learning (no banco de dados)
    • R, Python ou os dois

    Observação da localização da pasta no caminho ..\Setup Bootstrap\Log em que os arquivos de configuração são armazenados. Quando a instalação for concluída, você poderá examinar os componentes instalados no arquivo de resumo.

  4. Após a conclusão da instalação, se você receber instruções para reiniciar o computador, faça-o. É importante ler a mensagem do assistente de instalação ao concluir a instalação. Para saber mais, veja Exibir e ler arquivos de log da instalação do SQL Server.

Definir variáveis de ambiente

Somente para a integração de recursos do R, é necessário definir a variável de ambiente MKL_CBWR para garantir a saída consistente dos cálculos da Intel MKL (Math Kernel Library):

  1. No Painel de Controle, selecione Sistema e Segurança>Sistema>Configurações Avançadas do Sistema>Variáveis de Ambiente.

  2. Crie uma variável de usuário ou do sistema:

    • Defina o nome da variável como MKL_CBWR.
    • Defina o valor da variável como AUTO.

Esta etapa requer uma reinicialização do servidor. Se estiver prestes a habilitar a execução de script, você poderá manter a reinicialização até que todo o trabalho de configuração seja concluído.

Habilitar a execução do script

  1. Use o SSMS (SQL Server Management Studio) ou o Azure Data Studio para se conectar à instância em que você instalou os Serviços de Machine Learning do SQL Server.

  2. Selecione Nova Consulta para abrir uma janela de consulta e execute o seguinte comando:

    EXEC sp_configure
    
  3. O valor da propriedade external scripts enabled deve ser 0 neste momento. O recurso é desativado por padrão. Para ativá-lo para que você possa executar scripts do R ou do Python, execute a seguinte instrução:

    EXEC sp_configure  'external scripts enabled', 1
    RECONFIGURE WITH OVERRIDE
    

    Se você já tiver habilitado o recurso para a linguagem R, não será necessário executar RECONFIGURE uma segunda vez para o Python. A plataforma de extensibilidade subjacente dá suporte às duas linguagens.

Reinicie o serviço.

Quando a instalação estiver concluída, reinicie o mecanismo de banco de dados. Reiniciar o serviço também reinicia automaticamente o serviço SQL Server Launchpad relacionado.

Você pode reiniciar o serviço usando qualquer um desses métodos:

  • O comando Reiniciar com clique com o botão direito do mouse para a instância no Pesquisador de Objetos no SSMS
  • O item MMC (Console de Gerenciamento Microsoft) de serviços no Painel de Controle
  • SQL Server Configuration Manager

Verifique a instalação

Use as seguintes etapas para verificar se todos os componentes usados para iniciar os scripts externos estão em execução:

  1. No SQL Server Management Studio, abra uma nova janela de consulta e execute o seguinte comando:

    EXECUTE sp_configure  'external scripts enabled'
    

    Então, run_value é definido como 1.

  2. Abra o item de painel de controle Serviços ou o SQL Server Configuration Manager e verifique se o serviço SQL Server Launchpad está em execução. Você deve ter um serviço para toda instância do mecanismo de banco de dados que tem o R ou o Python instalados. Para obter mais informações sobre o serviço, confira Arquitetura de extensibilidade nos Serviços de Machine Learning do SQL Server.

  3. Se o Launchpad estiver em execução, você deverá executar scripts R e Python simples para verificar se os runtimes de script externo podem se comunicar com o SQL Server.

    Abra uma nova janela Consulta no SQL Server Management Studio e, em seguida, execute um script como o seguinte:

    • Para o R:

      EXEC sp_execute_external_script  @language =N'R',
      @script=N'
      OutputDataSet <- InputDataSet;
      ',
      @input_data_1 =N'SELECT 1 AS hello'
      WITH RESULT SETS (([hello] int not null));
      GO
      
    • Para o Python:

      EXEC sp_execute_external_script  @language =N'Python',
      @script=N'
      OutputDataSet = InputDataSet;
      ',
      @input_data_1 =N'SELECT 1 AS hello'
      WITH RESULT SETS (([hello] int not null));
      GO
      

    Na primeira vez que o runtime de script externo for carregado, o script poderá demorar um pouco para ser executado. Os resultados devem ser semelhantes a estes:

    hello
    1

Observação

Colunas ou cabeçalhos usados no script Python não são retornados automaticamente. Para adicionar nomes de coluna para a saída, você deve especificar o esquema para o conjunto de dados de retorno. Faça isso usando o parâmetro WITH RESULTS do procedimento armazenado, nomeando as colunas e especificando o tipo de dados SQL.

Por exemplo, você pode adicionar a seguinte linha para gerar um nome de coluna arbitrário: WITH RESULT SETS ((Col1 AS int)).

Aplicar atualizações

Instalação existente

Se você adicionou Serviços de Machine Learning a uma instância existente do SQL Server e aplicou anteriormente uma CU (atualização cumulativa), as versões do mecanismo de banco de dados e do recurso de Serviços de Machine Learning poderão ser diferentes. Essa diferença pode resultar em um comportamento ou em erros inesperados, porque launchpad.exe e sqlservr.exe têm versões diferentes.

Siga estas etapas para levar os Serviços de Machine Learning para a mesma versão de seu mecanismo de banco de dados:

  1. Determine a atualização cumulativa que você tem para o mecanismo de banco de dados. Execute esta instrução T-SQL:

    SELECT @@VERSION
    

    Veja uma saída de exemplo da CU 8 do SQL Server 2019:

    Microsoft SQL Server 2019 (RTM-CU8-GDR) (KB4583459) - 15.0.4083.2 (X64)   Nov  2 2020 18:35:09   Copyright (C) 2019 Microsoft Corporation  Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (X64) (Build 19042: ) (Hypervisor)
    

    Para saber mais, confira Determinar a versão, a edição e o nível de atualização do SQL Server e seus componentes.

  2. Se necessário, baixe a atualização cumulativa que você instalou para o mecanismo de banco de dados.

  3. Execute a instalação da atualização cumulativa e siga as instruções para instalá-la para os Serviços de Machine Learning novamente. Selecione a instância existente em que os Serviços de Machine Learning estão instalados. O status da atualização mostra Instalação Incompleta na página Seleção de Recursos.

  4. Selecione Avançar e continue com a instalação.

Nova instalação

Se você instalar os Serviços de Machine Learning com uma nova instalação do mecanismo de banco de dados do SQL Server, recomendamos que aplique a atualização cumulativa mais recente aos componentes do mecanismo de banco de dados e do machine learning.

Em dispositivos conectados à Internet, as atualizações cumulativas normalmente são aplicadas por meio do Windows Update. Mas você também pode usar as etapas a seguir para atualizações controladas. Quando você aplica a atualização ao mecanismo de banco de dados, a instalação obtém as atualizações cumulativas para recursos de R ou Python que você tenha instalado na mesma instância.

Em servidores desconectados, são necessárias etapas adicionais. Para obter mais informações, confira Instalar em computadores sem acesso à Internet > Aplicar atualizações cumulativas.

  1. Comece com uma instância de linha de base já instalada: Versão inicial do SQL Server.

  2. Confira a lista de atualizações mais recentes do Microsoft SQL Server.

  3. Selecione a atualização cumulativa mais recente. Um executável é baixado e extraído automaticamente.

  4. Execute a instalação e aceite os termos de licença.

  5. Na página Seleção de recursos, examine os recursos para os quais as atualizações cumulativas são aplicadas. Você deve ver todos os recursos instalados para a instância atual, incluindo os recursos de aprendizado de máquina. A instalação baixa os arquivos CAB necessários para atualizar todos os recursos.

    Screenshot that shows a summary of installed features.

  6. Continue com o assistente. Aceite os termos de licença para distribuições de R e Python.

Configuração adicional

Se a etapa de verificação de script externo tiver sido bem-sucedida, você poderá executar comandos do R ou do Python por meio do SQL Server Management Studio, do Azure Data Studio, do Visual Studio Code ou de qualquer outro cliente que possa enviar instruções T-SQL para o servidor.

Se você tiver um erro ao executar o comando, talvez seja necessário fazer configurações adicionais para o serviço ou banco de dados. No nível da instância, a configuração adicional pode incluir:

No SQL Server 2019 no Windows, o mecanismo de isolamento foi alterado. Esse mecanismo afeta SQLRUserGroup, regras de firewall, permissão de arquivo e autenticação implícita. Para obter mais informações, confira Alterações no isolamento para os Serviços de Machine Learning.

No banco de dados, talvez você precise de atualizações de configuração. Para obter mais informações, confira Conceder aos usuários permissão para os Serviços de Machine Learning do SQL Server.

Observação

A necessidade de configuração adicional depende do seu esquema de segurança, de onde você instalou o SQL Server e como você espera que os usuários se conectem ao banco de dados e executem scripts externos.

Otimizações sugeridas

Agora que tudo está funcionando, talvez convenha também otimizar o servidor para compatibilidade com aprendizado de máquina ou então instalar um modelo de machine learning pré-treinado.

Adicionar mais contas de trabalho

Se você esperar que vários usuários executem scripts simultaneamente, aumente o número de contas de trabalho atribuídas ao serviço Launchpad. Para obter mais informações, confira a execução simultânea da escala de scripts externos nos Serviços de Machine Learning do SQL Server.

Otimizar o servidor para execução de script

As configurações padrão da instalação do SQL Server destinam-se a otimizar o equilíbrio do servidor para uma variedade de serviços e aplicativos.

Nas configurações padrão, os recursos de aprendizado de máquina são algumas vezes restritos ou limitados, especialmente em operações com uso intensivo de memória.

Para verificar se os trabalhos de machine learning são priorizados e têm os recursos apropriados, recomendamos que você use o SQL Server Resource Governor para configurar um pool de recursos externo. Talvez convenha também alterar a quantidade de memória alocada ao mecanismo de banco de dados do SQL Server ou aumentar o número de contas executadas no serviço SQL Server Launchpad.

Se estiver usando a Edição Standard e não tiver o Resource Governor, você poderá usar exibições de gerenciamento dinâmico, Eventos Estendidos do SQL Server, assim como o monitoramento de eventos do Windows, para ajudar a gerenciar os recursos do servidor.

Instalar pacotes adicionais do Python e do R

As soluções do Python e do R que você cria para SQL Server podem chamar:

  • Funções básicas.
  • Funções dos pacotes proprietários instalados com o SQL Server.
  • Os pacotes de terceiros compatíveis com a versão do Python e do R de código aberto que o SQL Server instala.

Os pacotes do SQL Server que você desejar usar deverão ser instalados na biblioteca padrão usada pela instância. Se tiver uma instalação separada do Python ou do R no computador ou se tiver instalado pacotes em bibliotecas do usuário, você não poderá usar os pacotes do T-SQL.

Para instalar e gerenciar pacotes adicionais, você pode configurar grupos de usuários para compartilhar pacotes em um nível por banco de dados ou configurar funções de banco de dados para permitir que os usuários instalem seus próprios pacotes. Para obter mais informações, confira Instalar pacotes do Python e Instalar novos pacotes do R.

Próximas etapas

Os desenvolvedores do Python podem aprender a usar o Python com o SQL Server seguindo estes tutoriais:

Os desenvolvedores do R podem começar com alguns exemplos simples e aprender os fundamentos de como o R funciona com o SQL Server. Para a próxima etapa, confira os links a seguir: