Instalar SQL Server Machine Learning Services (Python e R) no Docker

Aplica-se a: SQL Server 2019 (15.x) no Linux

Este artigo explica como instalar os Serviços de Machine Learning do SQL Server no Docker. Você pode usar Serviços do Machine Learning (no banco de dados) para executar scripts de Python e R no banco de dados. Não fornecemos contêineres pré-construídos com Serviços de Aprendizado de Máquina. Crie um com base nos contêineres do SQL Server usando um modelo de exemplo disponível no GitHub.

Pré-requisitos

  • Interface de linha de comando Git.

  • O Docker Engine 1.8 ou superior em qualquer distribuição do Linux com suporte. Para obter mais informações, confira Obter o Docker. Containers do SQL Server não são suportados no Windows ou macOS para uso em produção.

  • Confira também os requisitos do sistema para o SQL Server em Linux.

Clonar o repositório mssql-docker

O comando a seguir clona o mssql-docker repositório Git para um diretório local.

  1. Abra um terminal Bash no Linux ou macOS.

  2. Mude para o diretório onde você quer criar o repositório local mssql-docker .

  3. Execute o comando clone do Git para clonar o mssql-docker repositório:

    git clone https://github.com/microsoft/mssql-docker mssql-docker
    

Construa e execute uma imagem de contêiner Linux do SQL Server

Complete os seguintes passos para construir e executar a imagem Docker:

  1. Altere o diretório para mssql-mlservices:

    cd mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. No mesmo diretório, execute o seguinte comando:

    docker build -t mssql-server-mlservices .
    

    Note

    Para construir a imagem do Docker, você deve instalar pacotes de vários GB de tamanho. A execução do script pode levar algum tempo para ser concluída dependendo da largura de banda da rede.

  3. Rode o contêiner:

    Importante

    A variável de ambiente SA_PASSWORD foi preterida. Use MSSQL_SA_PASSWORD em seu lugar.

    docker run -d -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e ACCEPT_EULA_ML=Y -e MSSQL_SA_PASSWORD=<password> -v <directory on the host OS>:/var/opt/mssql -p 1433:1433 mssql-server-mlservices
    

    Note

    Qualquer um dos valores com suporte pode ser usado para MSSQL_PID. Se você usar uma edição paga, verifique se comprou uma licença. Substitua <password> pela senha real. A montagem de volume usando -v é opcional. Substitua <directory on the host OS> por um diretório real em que você deseja montar os dados do banco de dados e os arquivos de log.

Verifique o contêiner Linux do SQL Server

docker ps -a

Executar a imagem de contêiner do SQL Server Linux

  1. Defina suas variáveis de ambiente antes de executar o contêiner. Defina a variável de ambiente PATH_TO_MSSQL como um diretório de host:

    export MSSQL_PID='Developer'
    export ACCEPT_EULA='Y'
    export ACCEPT_EULA_ML='Y'
    export PATH_TO_MSSQL='/home/mssql/'
    

    Note

    O processo para executar edições de produção do SQL Server em contêineres é um pouco diferente. Para obter mais informações, consulte Implantar contêineres do SQL Server no Linux e conectar-se a eles. Se você usar os mesmo nomes e portas de contêiner, o restante deste tutorial ainda funcionará com contêineres de produção.

  2. Para exibir seus contêineres, execute o comando docker ps:

    sudo docker ps -a
    
  3. Se a coluna STATUS mostrar o status Up, o SQL Server estará em execução no contêiner e será escutado na porta especificada na coluna PORTS. Se a coluna STATUS do contêiner do SQL Server mostrar Exited, consulte a solução de problemas de contêineres do Docker do SQL Server.

    Saída:

    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour     0.0.0.0:1401->1433/tcp   sql1
    

Habilitar Serviços de Machine Learning

Para habilitar Machine Learning Services, conecte-se à sua instância SQL Server e execute a seguinte declaração Transact-SQL:

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