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

Aplica-se a: SQL Server 2022 (16.x)

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

Observação

Essas instruções são específicas do SQL Server 2022 (16.x) no Windows. Para instalar os Serviços de Machine Learning do SQL Server no Windows para SQL Server 2016 (13.x), SQL Server 2017 (14.x) ou SQL Server 2019 (15.x), confira Instalar os Serviços de Machine Learning do SQL Server (Python e R) no Windows.

Para Linux, confira Instalar os Serviços de Machine Learning do SQL Server (R e Python) no Linux.

Lista de verificação de 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 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ó.

  • Também 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 2019 e posteriores.

  • 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á.

  • 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.

Importante

Após a conclusão da instalação, conclua as etapas de pós-configuração descritas neste artigo. Essas etapas podem incluir habilitar o SQL Server para usar scripts externos. 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.

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.

Se você encontrar erros durante a instalação, verifique o log de resumo na pasta de log Configurar Inicialização (por exemplo, %ProgramFiles%\Microsoft SQL Server\160\Setup Bootstrap\Log\Summary.txt).

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

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

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

    • 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 nomeada.

    • Serviços de Machine Learning e linguagem

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

    Esta captura de tela mostra os recursos mínimos da instância a serem verificados ao instalar os Serviços de Machine Learning do SQL Server 2022 (16.x).

    Screenshot of feature selection showing check boxes next to Database Engine Services and Machine Learning Services and Language.

Instalar runtimes e pacotes

A partir do SQL Server 2022 (16.x), os runtimes do R, do Python e do Java não são mais enviados nem instalados com a instalação do SQL Server. Em vez disso, use as seções a seguir para instalar seus runtimes e pacotes personalizados.

Suporte à instalação do R

Instalar runtime do R

  1. Baixe e instale a versão mais recente do R 4.2 para Windows.

  2. Instale as dependências para CompatibilityAPI e RevoScaleR. No terminal R da versão que você instalou, execute os seguintes comandos:

    # R Terminal
    install.packages("iterators")
    install.packages("foreach")
    install.packages("R6")
    install.packages("jsonlite")
    
  3. Baixe e instale a versão mais recente dos pacotes CompatibilityAPI e RevoScaleR:

    install.packages("https://aka.ms/sqlml/r4.2/windows/CompatibilityAPI_1.1.0.zip", repos=NULL)
    
    install.packages("https://aka.ms/sqlml/r4.2/windows/RevoScaleR_10.0.1.zip", repos=NULL)
    

Configurar o runtime do R com SQL Server

  1. Configure o runtime do R instalado com o SQL Server. Você pode alterar a versão padrão usando o utilitário de linha de comando RegisterRext.exe. O utilitário fica em uma pasta de aplicativo R dependendo da instalação. Normalmente, está em %ProgramFiles%\R\R-4.2.3\library\RevoScaleR\rxLibs\x64.

    O script a seguir pode ser usado para configurar o runtime do R instalado no local da pasta de instalação do RegisterRext.exe. O nome da instância é MSSQLSERVER para uma instância padrão do SQL Server ou o nome da instância de uma instância nomeada do SQL Server.

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"MSSQLSERVER"
    

    Se você estiver configurando uma instância nomeada do SQL Server à qual normalmente se referiria como ".\SQLEXPRESS" ou "MACHINENAME\SQLEXPRESS", inclua apenas o nome da instância. Por exemplo:

    .\RegisterRext.exe /configure /rhome:"%ProgramFiles%\R\R-4.2.3" /instance:"SQLEXPRESS"
    
  2. Usando o SSMS (SQL Server Management Studio) ou o Azure Data Studio, conecte-se à instância em que você instalou os Serviços de Machine Learning do SQL Server. Selecione Nova Consulta para abrir uma janela de consulta e execute o seguinte comando para habilitar o recurso de script externo:

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

    Se você já tiver habilitado o recurso para outra linguagem, não precisará executar RECONFIGURE novamente para R. A plataforma de extensibilidade subjacente dá suporte às duas linguagens. Para verificar, confirme se o seguinte comando retorna um 1 para config_value e run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Reinicie o serviço SQL Server. Reiniciar o serviço também reinicia automaticamente o serviço SQL Server Launchpad relacionado.

    Você pode reiniciar o serviço usando o clique com o botão direito do mouse no comando Reiniciar da instância no Pesquisador de Objetos do SSMS, usando o item Serviços no Painel de Controle ou usando o SQL Server Configuration Manager.

  4. Verifique a instalação executando um comando T-SQL simples para retornar a versão do R:

    EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R';
    GO
    

Configurar o suporte ao Python

Instalar o runtime do Python

  1. Baixe a versão mais recente do Python 3.10 para Windows. Instale-a usando as seguintes opções:

    1. Abra o aplicativo de Instalação do Python e selecione Personalizar instalação.

    2. Verifique se a caixa de seleção Instalar inicializador para todos os usuários (recomendado) está selecionada.

    3. Para Recursos Opcionais, selecione os recursos desejados (ou selecione todos eles).

    4. Na página Opções Avançadas, selecione Instalar para todos os usuários, aceite outras opções padrão e selecione Instalar.

      É recomendável usar um caminho de instalação do Python que todos os usuários possam acessar (como C:\Program Files\Python310), e não um que seja específico para um único usuário.

  2. Baixe e instale a versão mais recente do pacote revoscalepy e suas dependências de um novo prompt de comando com privilégios elevados:

    cd "C:\Program Files\Python310\"
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" dill numpy==1.22.0 pandas patsy python-dateutil
    python -m pip install -t "C:\Program Files\Python310\Lib\site-packages" https://aka.ms/sqlml/python3.10/windows/revoscalepy-10.0.1-py3-none-any.whl
    

    Execute os comandos icacls a seguir para conceder acesso READ e EXECUTE às bibliotecas instaladas ao serviço SQL Server Launchpad e SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES). É necessário conceder permissões à conta de serviço associada ao serviço Launchpad, verifique no SQL Server Configuration Manager.

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    Se você instalou o SQL Server como uma instância nomeada, a conta de serviço pode ter um $ no meio, por exemplo:

    icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD$SQLEXPRESS":(OI)(CI)RX /T
    icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

Configurar o runtime do Python com SQL Server

  1. Configure o runtime do Python instalado com o SQL Server. Você pode alterar a versão padrão usando o utilitário de linha de comando RegisterRext.exe. O utilitário está no local de instalação personalizado, (por exemplo, C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs).

    De um prompt de comando elevado, o script a seguir pode ser usado para configurar o runtime do Python instalado no local da pasta de instalação do RegisterRext.exe. O nome da instância é MSSQLSERVER para uma instância padrão do SQL Server ou o nome da instância de uma instância nomeada do SQL Server.

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"MSSQLSERVER"
    

    Se você estiver configurando uma instância nomeada do SQL Server à qual normalmente se referiria como ".\SQLEXPRESS" ou "MACHINENAME\SQLEXPRESS", inclua apenas o nome da instância. Por exemplo:

    cd "C:\Program Files\Python310\Lib\site-packages\revoscalepy\rxLibs"
    .\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Python310" /instance:"SQLEXPRESS"
    
  2. Use o 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. Selecione Nova Consulta para abrir uma janela de consulta e execute o seguinte comando para habilitar o recurso de script externo:

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

    Se você já tiver habilitado o recurso para outra linguagem, não precisará executar RECONFIGURE novamente para R. A plataforma de extensibilidade subjacente dá suporte às duas linguagens. Para verificar, confirme se o seguinte comando retorna um 1 para config_value e run_value:

    EXEC sp_configure  'external scripts enabled';
    
  3. Reinicie o serviço SQL Server. Reiniciar o serviço também reinicia automaticamente o serviço SQL Server Launchpad relacionado.

    Você pode reiniciar o serviço usando o clique com o botão direito do mouse no comando Reiniciar da instância no Pesquisador de Objetos do SSMS, usando o item Serviços no Painel de Controle ou usando o SQL Server Configuration Manager.

  4. Verifique a instalação executando um comando simples para retornar a versão do Python:

    EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'
    GO
    

Instalar o Java

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

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.

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.

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:

Do SQL Server 2019 no Windows em diante, 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.

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.

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 você pode 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.

Pacotes autônomos do RevoScale para runtime do Python e do R

Os pacotes RevoScale também são compatíveis como pacotes autônomos com runtimes do Python e do R. Para configurar o runtime do Python ou do R para o cenário autônomo, siga as instruções nas seções Instalar runtime do Python e Instalar runtime do R, respectivamente.

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: