Partilhar via


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

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

Este artigo mostra-lhe como instalar SQL Server Machine Learning Services no Windows. Pode usar o Machine Learning Services para executar scripts em Python e R na base de dados.

Importante

Estas instruções aplicam-se ao SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x). Para SQL Server 2022 (16.x), consulte Install SQL Server 2022 Machine Learning Services em Windows.

Referência de versões de Python e R

A tabela seguinte mostra as versões de runtime em Python e R incluídas em cada versão do SQL Server. Use esta tabela para determinar que versões de linguagem estão disponíveis para a sua instância do SQL Server.

Versão do SQL Server Versão em Python Versão R
SQL Server 2016 (13.x) N/A (apenas R) 3.2.2
SQL Server 2017 (14.x) RTM - CU21 3.5.2 3.3.3
SQL Server 2017 (14.x) CU22 e posteriores 3.5.2 e 3.7.2 3.3.3 e 3.5.2
SQL Server 2019 (15.x) 3.7.1 3.5.2
SQL Server 2022 (16.x) 3.10.2 4.2.0

Observação

A partir do SQL Server 2022 (16.x), os runtimes para R, Python e Java deixaram de estar instalados com o SQL Server Setup. Em vez disso, instale os ambientes de execução e pacotes personalizados que pretende. Para mais informações, consulte Install SQL Server 2022 Machine Learning Services em Windows.

Para mais informações sobre todas as versões suportadas, consulte O que é SQL Server Machine Learning Services?

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

  • É necessária uma instância do mecanismo de banco de dados. Não podes instalar apenas funcionalidades em Python ou R, embora possas adicioná-las incrementalmente a uma instância autónoma existente.

  • Para a continuidade do negócio, grupos de disponibilidade Always On estão disponíveis para Machine Learning Services. Instale o Machine Learning Services e configure os pacotes em cada nó.

  • A instalação do Machine Learning Services não é suportada numa instância de cluster de failover Always On em SQL Server de 2017. É suportado com o SQL Server 2019 e versões posteriores. Tem de instalar o Machine Learning Services no momento da instalação, e as funcionalidades não podem ser adicionadas a uma instância de cluster de failover existente uma vez instaladas.

  • Não instale o Machine Learning Services num controlador de domínio. A parte de Machine Learning Services da configuração vai falhar.

  • Não instales Shared Features>Machine Learning Server (Standalone) no mesmo computador que está a correr uma instância de base de dados. Um servidor autônomo competirá pelos mesmos recursos e diminuirá o desempenho de ambas as instalações.

  • A instalação lado a lado com outras versões de Python e R é suportada, mas não a recomendamos. É suportado porque a instância do SQL Server usa as suas próprias cópias das distribuições open-source R e Anaconda. Não recomendamos porque executar código que usa Python e R num computador fora do SQL Server pode causar problemas:

    • Usar uma biblioteca diferente e ficheiros executáveis diferentes vai criar resultados inconsistentes com o que está a executar no SQL Server.
    • O SQL Server não consegue gerir scripts em R e Python que correm em bibliotecas externas, o que leva a contenção de recursos.

Observação

O Machine Learning Services está instalado por defeito no SQL Server Big Data Clusters. Você não precisa seguir as etapas neste artigo se usar um cluster de Big Data. Para mais informações, consulte Use Machine Learning Services (Python e R) em Big Data Clusters.

Importante

Depois de concluir a instalação, conclua as etapas de pós-configuração descritas neste artigo. Estes passos incluem permitir que o SQL Server use scripts externos e adicionar contas necessárias para que o SQL Server execute trabalhos em R e Python em seu nome. As alterações de configuração geralmente exigem uma reinicialização da instância ou uma reinicialização do serviço Launchpad.

Obtenha a mídia de instalação

A localização de download do SQL Server depende da edição:

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

  • A última edição gratuita.

Para mais informações sobre quais as edições SQL Server suportam integração Python e R com Machine Learning Services, consulte Edições e funcionalidades suportadas de SQL Server 2017.

Para mais informações sobre quais edições SQL Server suportam integração Python e R com Machine Learning Services, consulte Edições e funcionalidades suportadas de SQL Server 2019.

Executar a configuração

Para instalações locais, você deve executar a instalação como administrador. Se instalar o SQL Server a partir de uma partilha remota, deve usar uma conta de domínio que tenha permissões de leitura e execução na partilha remota.

  1. Inicia o assistente de configuração do SQL Server.

  2. No separador Installation, selecione Nova SQL Server instalação autónoma ou adicionar funcionalidades a uma instalação existente.

    Captura de ecrã que mostra a opção de criar uma instalação independente SQL Server ou adicionar funcionalidades a uma instalação existente.

    Captura de ecrã que mostra a opção de usar uma nova instalação independente SQL Server ou adicionar funcionalidades a uma instalação existente.

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

    • Serviços de Motor da Base de Dados

      Para usar R e Python com SQL Server, deve instalar uma instância do motor de base de dados. Você pode usar uma instância padrão ou uma instância nomeada.

    • Serviços de Machine Learning (In-Database)

      Esta opção instala os serviços de base de dados que suportam a execução de scripts em R e Python.

    • Serviços do Motor de Base de Dados

      Para usar R ou Python com SQL Server, deve instalar uma instância do motor de base de dados. Você pode usar uma instância padrão ou uma instância nomeada.

    • Serviços de Aprendizagem Automática e Extensão de Linguagem

      Esta opção instala os serviços de base de dados que suportam a execução de scripts em R e Python.

    • R

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

    • Python

      Selecione esta opção para adicionar os pacotes Microsoft Python, o executável Python e selecione as bibliotecas da distribuição Anaconda. Para a versão específica do Python incluída na sua versão do SQL Server, consulte a referência de versão do Python e R.

    Para informações sobre a instalação e utilização de Java, consulte Install SQL Server Java Language Extension em Windows.

    Captura de ecrã que mostra opções de funcionalidades para R e Python.

    Captura de ecrã que mostra as opções de seleção de funcionalidades para R e Python.

    Observação

    Não selecione a opção Machine Learning Server (Standalone) em Funcionalidades Partilhadas. Esta opção destina-se a ser utilizada num 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 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 Python, selecione Aceitar>Next. O acordo de licença open-source Python também cobre o Anaconda e ferramentas relacionadas, além de algumas novas bibliotecas Python da equipa de desenvolvimento da Microsoft.

    Observação

    Se o computador que você está usando não tiver acesso à Internet, você pode pausar a configuração neste momento para baixar os instaladores separadamente. Para obter mais informações, consulte Instalar componentes de aprendizado de máquina 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 Motor de Base de Dados
    • Machine Learning Services (dentro da base de dados)
    • R, Python, ou ambos

    Observe o local da pasta sob o caminho ..\Setup Bootstrap\Log onde os arquivos de configuração estão armazenados. Quando a instalação estiver concluída, você poderá revisar os componentes instalados no arquivo de resumo.

  4. Após a conclusão da configuração, se você for instruído a reiniciar o computador, faça isso. É importante ler a mensagem do Assistente de Instalação quando terminar a configuração. Para mais informações, consulte Ver e ler os Ficheiros de Registo de Configuraçã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 dos pacotes e ferramentas base R de código aberto. Ele também inclui pacotes R aprimorados e provedores de conectividade da equipe de desenvolvimento da Microsoft.

  2. Na página Consentimento para Instalar Python, selecione Aceitar>Next. O acordo de licença open-source Python também cobre o Anaconda e ferramentas relacionadas, além de algumas novas bibliotecas Python da equipa 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 Motor de Base de Dados
    • Machine Learning Services (dentro da base de dados)
    • R, Python, ou ambos

    Observe o local da pasta sob o caminho ..\Setup Bootstrap\Log onde os arquivos de configuração estão armazenados. Quando a instalação estiver concluída, você poderá revisar os componentes instalados no arquivo de resumo.

  4. Após a conclusão da configuração, se você for instruído a reiniciar o computador, faça isso. É importante ler a mensagem do assistente de instalação quando concluir a instalação. Para mais informações, consulte Ver e ler ficheiros de registo de instalação do SQL Server.

Definir variáveis de ambiente

Somente para integração de recursos R, você deve definir a variável de ambiente para garantir uma MKL_CBWRsaída consistente dos cálculos da Intel Math Kernel Library (MKL):

  1. No Control Panel, selecione Sistema e Segurança>Sistema>Definições Avançadas do Sistema>Variáveis de Ambiente.

  2. Crie um novo usuário ou variável de 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 você estiver prestes a habilitar a execução de script, poderá adiar a reinicialização até que todo o trabalho de configuração seja concluído.

Habilitar a execução de scripts

  1. Use SQL Server Management Studio (SSMS) para se ligar à instância onde instalou o SQL Server Machine Learning Services.

  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 estar 0 neste momento. O recurso está desativado por padrão. Para o ativar e executar scripts em R ou Python, execute a seguinte instrução:

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

    Se já ativaste a funcionalidade para a linguagem R, não precisas de executar RECONFIGURE uma segunda vez para Python. A plataforma de extensibilidade subjacente suporta ambos os idiomas.

Reiniciar 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 destes métodos:

  • O comando de clique direito Reiniciar para a instância no Explorador de Objetos no SSMS
  • O item Serviços da Consola de Gestão Microsoft (MMC) no Painel de Controlo
  • SQL Server Configuration Manager

Verificar a instalação

Use as seguintes etapas para verificar se todos os componentes usados para iniciar 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'
    

    Em seguida, run_value é definido como 1.

  2. Abra o item Serviços do painel de controlo ou o SQL Server Configuration Manager e verifique se o serviço SQL Server Launchpad está a funcionar. Deverias ter um serviço para cada instância do motor de base de dados que tenha R ou Python instalado. Para mais informações sobre o serviço, consulte Extensibility architecture in SQL Server Machine Learning Services.

  3. Se o Launchpad estiver a correr, pode executar scripts simples em Python e R para verificar se os runtimes de scripts externos podem comunicar com o SQL Server.

    Abrir uma nova janela Query em SQL Server Management Studio e depois executar um script como:

    • Para 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 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 tempo de execução do script externo é carregado, o script pode demorar um pouco para ser executado. Os resultados devem ser algo assim:

    olá
    1

Observação

Colunas ou cabeçalhos usados no script Python não são devolvidos automaticamente. Para adicionar nomes de coluna para sua saída, você deve especificar o esquema para o conjunto de dados de retorno. Faça isso usando o WITH RESULTS parâmetro 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 adicionou Machine Learning Services a uma instância SQL Server existente e já aplicou uma atualização cumulativa (), as versões do seu motor de base de dados e da funcionalidade Machine Learning Services podem ser diferentes. Essa diferença pode resultar em comportamento inesperado ou erros porque launchpad.exe e sqlservr.exe têm versões diferentes.

Siga estes passos para trazer o Machine Learning Services à mesma versão do seu motor de base 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
    

    Aqui está um exemplo de saída do SQL Server 2019 CU 8:

    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 mais informações, consulte Determine a versão, edição e nível de atualização do SQL Server e dos seus componentes.

  2. Se necessário, baixe a atualização cumulativa instalada para o mecanismo de banco de dados.

  3. Execute a instalação da atualização cumulativa e siga as instruções para a instalar novamente para o Machine Learning Services. Selecione a instância existente onde o Machine Learning Services está instalado. O status da atualização mostra Incompletamente instalado na página Seleção de recursos .

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

Nova instalação

Se instalar o Machine Learning Services com uma nova instalação do motor de base de dados SQL Server, recomendamos que aplique a atualização cumulativa mais recente tanto ao motor de base de dados como aos componentes de machine learning.

Em dispositivos ligados à internet, as atualizações cumulativas são normalmente aplicadas através do Windows Update. Mas você também pode usar as etapas a seguir para atualizações controladas. Quando aplicas a atualização ao motor de base de dados, a configuração recolhe atualizações cumulativas para quaisquer funcionalidades em Python ou R que instalaste na mesma instância.

Servidores desconectados exigem etapas extras. Para obter mais informações, consulte Instalar em computadores sem acesso à > Internet Aplicar atualizações cumulativas.

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

  2. Vá à lista de atualizações para 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 da licença.

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

    Captura de ecrã que mostra um resumo das funcionalidades instaladas.

  6. Continue pelo assistente. Aceita os termos de licença para distribuições R e Python.

Configuração adicional

Se o passo de verificação de scripts externos foi bem-sucedido, pode executar comandos R ou Python do SQL Server Management Studio, Visual Studio Code ou qualquer outro cliente que possa enviar instruções T-SQL para o servidor.

Se você recebeu 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, as configurações adicionais podem incluir:

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

No banco de dados, talvez você precise de atualizações de configuração. Para mais informações, consulte Conceder permissão aos utilizadores para SQL Server Machine Learning Serviços.

Observação

Se a configuração adicional é necessária depende do seu esquema de segurança, do local onde instalou o SQL Server e de como espera que os utilizadores se conectem à base de dados e executem scripts externos.

Otimizações sugeridas

Agora que você tem tudo funcionando, você também pode querer otimizar o servidor para suportar o aprendizado de máquina ou instalar um modelo de aprendizado de máquina pré-treinado.

Adicionar mais contas de trabalhador

Se você espera que muitos usuários executem scripts simultaneamente, você pode aumentar o número de contas de trabalho atribuídas ao serviço Launchpad. Para mais informações, veja Escalar execução concorrente de scripts externos em SQL Server Machine Learning Services.

Otimizar o servidor para execução de scripts

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

Nas configurações padrão, os recursos para aprendizado de máquina às vezes são restritos ou limitados, particularmente em operações que consomem muita memória.

Para garantir que os trabalhos de aprendizagem automática são priorizados e devidamente dotados de recursos, recomendamos que utilize SQL Server Resource Governor para configurar um pool externo de recursos. Também pode querer alterar a quantidade de memória alocada ao motor de base de dados do SQL Server, ou aumentar o número de contas que correm no serviço SQL Server Launchpad.

Se estiveres a usar a Standard Edition e não tiveres o Resource Governor, podes usar vistas de gestão dinâmica, SQL Server Extended Events e monitorização de eventos do Windows para ajudar a gerir os recursos do servidor.

Instale pacotes adicionais de Python e R

As soluções Python e R que cria para SQL Server podem chamar-se:

  • Funções básicas.
  • Funções dos pacotes proprietários instalados com o SQL Server.
  • Pacotes de terceiros compatíveis com a versão de Python e R open-source que o SQL Server instala.

Os pacotes que queres usar do SQL Server devem estar instalados na biblioteca padrão que a instância utiliza. Se tiver uma instalação separada de Python ou R no computador, ou se instalou pacotes para bibliotecas de utilizador, não pode usar esses pacotes a partir 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 pode configurar funções de banco de dados para permitir que os usuários instalem seus próprios pacotes. Para mais informações, consulte Instalar novos pacotes R.