Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores
da Instância Gerenciada de SQL do Azure
Este artigo descreve como usar funções no pacote sqlmlutils para instalar novos pacotes Python em uma instância de Machine Learning Services no SQL Server. Você pode usar os pacotes que instalar em scripts Python executados no banco de dados por meio da instrução T-SQL sp_execute_external_script.
Este artigo descreve como usar funções no pacote sqlmlutils para instalar novos pacotes do Python em uma instância dos Serviços de Machine Learning da Instância Gerenciada de SQL do Azure. Você pode usar os pacotes que instala em scripts Python executados no banco de dados por meio da instrução T-SQL sp_execute_external_script.
Observação
Você não pode atualizar ou desinstalar pacotes que vêm pré-instalados em uma instância do Instância Gerenciada de SQL Machine Learning Services. Para exibir uma lista de pacotes instalados no momento, confira Listar todos os pacotes Python instalados.
Para obter mais informações sobre a localização e os caminhos de instalação do pacote, confira Obter informações do pacote de Python.
Observação
Use o pacote sqlmlutils descrito neste artigo para adicionar pacotes Python ao SQL Server 2019 ou versões posteriores. Para o SQL Server 2017 e anterior, consulte Instalar pacotes com ferramentas do Python.
Pré-requisitos
- SQL Server Machine Learning Services instalados com a opção de linguagem Python.
Python instalado no computador cliente que você usa para se conectar ao SQL Server. Você pode rodar scripts pela linha de comando ou usar um ambiente de desenvolvimento em Python, como o Visual Studio Code com a extensão Python.
A versão do Python no computador cliente deve coincidir com a versão do Python do servidor, e os pacotes que você instalar devem ser compatíveis com a versão do Python que você tem. Para obter mais informações sobre qual versão do Python está incluída em cada versão do SQL Server, confira Versões do Python e do R.
Para verificar a versão do Python em uma instância específica do SQL Server, use o comando T-SQL a seguir.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) 'Extensão MSSQL para Visual Studio Code instalada no computador cliente que você usa para se conectar ao SQL Server. Você pode usar outras ferramentas de consulta ou gerenciamento de banco de dados.
Outras considerações
A biblioteca de pacotes em Python está na pasta Program Files da sua instância do SQL Server. Por padrão, instalar nessa pasta requer permissões de administrador. Para obter mais informações, confira Localização da biblioteca de pacotes.
A instalação do pacote é específica da instância SQL, do banco de dados e dos usuários indicados por você nas informações de conexão fornecidas para sqlmlutils. Para usar o pacote em múltiplas instâncias SQL ou bancos de dados, ou para diferentes usuários, instale o pacote para cada um. A exceção é um pacote instalado em escopo público , que é compartilhado com todos os usuários. sqlmlutils seleciona o escopo público por padrão apenas quando você se conecta como membro da
sysadminfunção de servidor, e seleciona o escopo privado caso contrário. Para instalar no escopo público como outro principal, passescope=sqlmlutils.Scope.public_scope()parainstall, o que requer a função de banco de dadosdb_owner. Se um usuário instalar uma versão mais recente de um pacote público, o pacote público não é afetado, mas esse usuário tem acesso à versão mais recente.Antes de adicionar um pacote, considere se ele é uma boa opção para o ambiente do SQL Server.
Use Python dentro do banco de dados para tarefas que se beneficiam de uma integração estreita com o motor de banco de dados, como aprendizado de máquina, em vez de tarefas que simplesmente consultam o banco de dados.
Se você adicionar pacotes que colocam pressão computacional demais no servidor, o desempenho sofre.
Em um ambiente SQL Server reforçado, evite os seguintes tipos de pacotes:
- Pacotes que exigem acesso à rede
- Pacotes que exigem acesso elevado ao sistema de arquivos
- Pacotes usados para desenvolvimento Web ou outras tarefas que não se beneficiam da execução dentro do SQL Server
Você não pode instalar o pacote Python tensorflow com sqlmlutils. Para obter mais informações e uma solução alternativa, confira Problemas conhecidos nos Serviços de Machine Learning do SQL Server.
Instalar sqlmlutils no computador cliente
Para usar sqlmlutils, primeiro você precisa instalá-lo no computador cliente que usa para se conectar ao SQL Server.
Instalar sqlmlutils online
Se o computador cliente tiver acesso à internet, instale o sqlmlutils usando pip:
pip install sqlmlutils
Instalar sqlmlutils offline
Se o computador cliente não tiver acesso à internet, instale o sqlmlutils a partir de um arquivo baixado:
Certifique-se de ter o pip instalado. Para mais informações, veja instalação de tubulações.
Baixe o arquivo sqlmlutils mais recente da página de releases do sqlmlutils para o computador cliente. Não descompacte o arquivo.
Abra um Prompt de Comando e execute o seguinte comando para instalar o pacote sqlmlutils . Substitua o caminho completo para o arquivo que você baixou. Este exemplo assume que o arquivo baixado é
c:\temp\sqlmlutils-1.0.0.zip.pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
Adicionar um pacote de Python ao SQL Server
Usando sqlmlutils, você pode adicionar pacotes Python a uma instância SQL e depois usá-los em código Python que roda nessa instância. sqlmlutils usa CREATE EXTERNAL LIBRARY para instalar o pacote e cada uma de suas dependências.
O exemplo a seguir adiciona o pacote text-tools ao SQL Server.
Adicionar o pacote online
Se o computador cliente que você usa para se conectar ao SQL Server tiver acesso à internet, você pode usar o sqlmlutils para encontrar o pacote text-tools e quaisquer dependências online, e então instalar o pacote em uma instância do SQL Server remotamente.
No computador cliente, abra o Python ou um ambiente de Python.
Use os comandos a seguir para instalar o pacote text-tools. Substitua suas informações de conexão de banco de dados SQL Server (se você usar a autenticação do Windows, não precisará dos parâmetros
uidepwd).
No computador cliente, abra o Python ou um ambiente de Python.
Use os comandos a seguir para instalar o pacote text-tools. Substitua suas informações de conexão de banco de dados do SQL Server. Também passe o nome de um driver ODBC instalado no computador cliente, como
driver="ODBC Driver 18 for SQL Server", porque o nome do driver que o sqlmlutils usa por padrão se aplica apenas ao Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Adicionar o pacote offline
Se o computador cliente que você usa para se conectar ao SQL Server não tem conexão com a internet, use o pip em um computador que tenha para baixar o pacote para uma pasta local. Depois, você copia a pasta para o computador cliente e instala o pacote offline.
Observação
Esse procedimento funciona para um pacote que não possui dependências.
SQLPackageManager.install() resolve dependências do PyPI mesmo quando você passa um arquivo local .whl , então para adicionar um pacote que tenha dependências, use um computador cliente com acesso à internet e siga Adicionar o pacote online.
Em um computador com acesso à internet
Abra um Prompt de Comando e execute o comando a seguir para criar uma pasta local que contenha o pacote text-tools. Este exemplo cria a pasta
c:\temp\text-tools.pip download text-tools -d c:\temp\text-toolsCopie a pasta
text-toolspara o computador cliente. O exemplo a seguir pressupõe que você a copiou parac:\temp\packages\text-tools.
No computador cliente
Use sqlmlutils para instalar o pacote (.whl arquivo) que o pip baixou para a pasta local.
Neste exemplo, text-tools não possui dependências, então a text-tools pasta contém um único arquivo.
Execute o script Python a seguir. Substitua o caminho do arquivo real e o nome do pacote, bem como suas informações de conexão de banco de dados SQL Server (se você usar a autenticação do Windows, não precisará dos parâmetros uid e pwd).
Execute o script Python a seguir. Substitua o caminho real do arquivo e o nome do pacote, bem como suas próprias informações de conexão com o banco de dados do SQL Server. Também passe o nome de um driver ODBC instalado no computador cliente, como driver="ODBC Driver 18 for SQL Server", porque o nome do driver que o sqlmlutils usa por padrão se aplica apenas ao Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="yourserver", database="yourdatabase", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text_tools-1.0.0-py3-none-any.whl")
Usar o pacote
Agora, você pode usar o pacote em um script de Python no SQL Server. Por exemplo:
EXECUTE sp_execute_external_script
@language = N'Python',
@script = N'
from text_tools.finders import find_best_string
corpus = "Lorem Ipsum text"
query = "Ipsum"
first_match = find_best_string(query, corpus)
print(first_match)
'
Remover o pacote do SQL Server
Para remover o pacote text-tools, execute o seguinte comando Python no computador cliente, usando a mesma variável de conexão que você definiu anteriormente.
sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")
Mais funções do sqlmlutils
O pacote sqlmlutils contém várias funções para gerenciar pacotes Python, bem como para criar, gerenciar e executar procedimentos armazenados e consultas em um SQL Server. Para mais informações, veja o arquivo Python README do sqlmlutils.
Para obter informações sobre qualquer função do sqlmlutils, use a função help do Python. Por exemplo:
import sqlmlutils
help(sqlmlutils.SQLPackageManager.install)