Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2019 (15.x) e versioni
successive di Istanza gestita di SQL di Azure
Questo articolo descrive come utilizzare le funzioni nel pacchetto sqlmlutils per installare nuovi pacchetti Python su un'istanza di Machine Learning Services su SQL Server. Puoi usare i pacchetti che installi negli script Python eseguiti nel database tramite l'istruzione T-SQL sp_execute_external_script.
Questo articolo descrive come usare le funzioni del pacchetto sqlmlutils per installare nuovi pacchetti Python in un'istanza di Machine Learning Services per Istanza gestita di SQL di Azure. Puoi usare i pacchetti che installi negli script Python eseguiti nel database tramite l'istruzione T-SQL sp_execute_external_script.
Nota
Non puoi aggiornare o disinstallare pacchetti preinstallati su un'istanza di Istanza gestita di SQL Machine Learning Services. Per visualizzare un elenco di pacchetti attualmente installati, vedere Elencare tutti i pacchetti Python installati.
Per altre informazioni sulla posizione dei pacchetti e sui percorsi di installazione, vedere Ottenere informazioni sui pacchetti Python.
Nota
Usa il pacchetto sqlmlutils descritto in questo articolo per aggiungere pacchetti Python a SQL Server 2019 o versioni successive. Per SQL Server 2017 e versioni precedenti, vedere Installare i pacchetti con gli strumenti Python.
Prerequisiti
- SQL Server Machine Learning Services installati con l'opzione del linguaggio Python.
Python installato sul computer client che usi per connetterti a SQL Server. Puoi eseguire script dalla riga di comando, oppure usare un ambiente di sviluppo Python come Visual Studio Code con l'estensione Python.
La versione di Python sul computer client deve corrispondere a quella di Python sul server, e i pacchetti che installi devono essere compatibili con la versione di Python che possiedi. Per informazioni sulla versione di Python inclusa con ogni versione di SQL Server, vedere Versioni di Python e R.
Per verificare la versione di Python in una particolare istanza di SQL Server, usare il comando T-SQL seguente.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) 'Estensione MSSQL per Visual Studio Code installata sul computer client che usi per connetterti a SQL Server. È possibile usare altri strumenti di gestione del database o di query.
Altre considerazioni
La libreria di pacchetti Python si trova nella cartella Program Files della tua istanza di SQL Server. Di default, installare in questa cartella richiede i permessi di amministratore. Per altre informazioni, vedi Percorso della libreria dei pacchetti.
L'installazione del pacchetto è specifica dell'istanza di SQL, del database e dell'utente indicati nelle informazioni di connessione specificate per sqlmlutils. Per utilizzare il pacchetto in più istanze SQL o database, o per utenti diversi, installa il pacchetto per ciascuno. L'eccezione è un pacchetto installato in ambito pubblico , condiviso con tutti gli utenti. SQLMlutils seleziona di default l'ambito pubblico solo quando ti connetti come membro del
sysadminruolo server, e l'ambito privato altrimenti. Per installare in ambito pubblico come un altro principale, passascope=sqlmlutils.Scope.public_scope()ainstall, che richiede il ruolo didb_ownerdatabase. Se un utente installa una versione più recente di un pacchetto pubblico, il pacchetto pubblico non viene interessato, ma quell'utente ha accesso alla versione più recente.Prima di aggiungere un pacchetto, valutare se è adatto all'ambiente di SQL Server.
Usa Python in-database per compiti che beneficiano di una stretta integrazione con il motore di database, come il machine learning, piuttosto che per compiti che si limitano a interrogare il database.
Se aggiungi pacchetti che mettono troppa pressione computazionale sul server, le prestazioni ne risentono.
In un ambiente SQL Server consolidato, evita i seguenti tipi di pacchetti:
- Pacchetti che richiedono l'accesso alla rete
- Pacchetti che richiedono l'accesso al file system con privilegi elevati
- Pacchetti usati per lo sviluppo Web o altre attività che non traggono vantaggio dall'esecuzione all'interno di SQL Server
Non puoi installare il pacchetto Python tensorflow con sqlmlutils. Per altre informazioni e per una soluzione alternativa, vedere Problemi noti in Machine Learning Services per SQL Server.
Installare sqlmlutils nel computer client
Prima di usare sqlmlutils, è necessario installarlo nel computer client usato per connettersi a SQL Server.
Installare sqlmlutils online
Se il computer client ha accesso a internet, installa sqlmlutils usando pip:
pip install sqlmlutils
Installare sqlmlutils offline
Se il computer client non ha accesso a internet, installa sqlmlutils da un file scaricato:
Assicurati di avere installato pip. Per maggiori informazioni, vedi installazione di pip.
Scarica l'ultimo file sqlmlutils dalla pagina delle versioni sqlmlutils sul computer cliente. Non decomprimere il file.
Apri un prompt dei comandi ed esegui il seguente comando per installare il pacchetto sqlmlutils . Sostituisci il percorso completo al file che hai scaricato. Questo esempio presuppone che il file scaricato sia
c:\temp\sqlmlutils-1.0.0.zip.pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
Aggiungere un pacchetto Python in SQL Server
Usando sqlmlutils, puoi aggiungere pacchetti Python a un'istanza SQL e poi usarli in codice Python che gira in quell'istanza. sqlmlutils usa CREATE EXTERNAL LIBRARY per installare il pacchetto e tutte le relative dipendenze.
Il seguente esempio aggiunge il pacchetto text-tools a SQL Server.
Aggiungere il pacchetto online
Se il computer client che usi per connetterti a SQL Server ha accesso a internet, puoi usare sqlmlutils per trovare il pacchetto text-tools e eventuali dipendenze online, e poi installare il pacchetto su un'istanza di SQL Server da remoto.
Nel computer client aprire Python o un ambiente per Python.
Usare i comandi seguenti per installare il pacchetto text-tools. Usare le proprie informazioni di connessione al database di SQL Server. Se si usa l'autenticazione di Windows, i parametri
uidepwdnon sono necessari.
Nel computer client aprire Python o un ambiente per Python.
Usare i comandi seguenti per installare il pacchetto text-tools. Sostituire le informazioni di connessione del database di SQL Server personalizzate. Passa anche il nome di un driver ODBC installato sul computer client, come
driver="ODBC Driver 18 for SQL Server", perché il nome del driver che SQLMutils usa di default si applica solo a Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Aggiungi il pacchetto offline
Se il computer client che usi per collegarti a SQL Server non ha una connessione internet, usa pip su un computer che ce l'ha per scaricare il pacchetto in una cartella locale. Poi copi la cartella sul computer client e installi il pacchetto offline.
Nota
Questa procedura funziona per un pacchetto che non ha dipendenze.
SQLPackageManager.install() risolve le dipendenze da PyPI anche quando passi un file locale .whl , quindi per aggiungere un pacchetto con dipendenze, usa un computer client con accesso a internet e segui Aggiungi il pacchetto online.
Su un computer con accesso a internet
Aprire un prompt dei comandi ed eseguire il comando seguente per creare una cartella locale contenente il pacchetto text-tools. Questo esempio crea la cartella
c:\temp\text-tools.pip download text-tools -d c:\temp\text-toolsCopiare la cartella
text-toolsnel computer client. Nell'esempio seguente si presuppone che sia stata copiata inc:\temp\packages\text-tools.
Sul computer client
Usa sqlmlutils per installare il pacchetto (.whl file) che ha scaricato pip nella cartella locale.
In questo esempio, text-tools non ha dipendenze, quindi la text-tools cartella contiene un singolo file.
Eseguire lo script Python seguente. Usare il percorso e il nome effettivi del pacchetto e le proprie informazioni di connessione al database di SQL Server. Se si usa l'autenticazione di Windows, i parametri uid e pwd non sono necessari.
Eseguire lo script Python seguente. Sostituire il percorso effettivo del file, il nome del pacchetto e le proprie informazioni di connessione al database SQL Server. Passa anche il nome di un driver ODBC installato sul computer client, come driver="ODBC Driver 18 for SQL Server", perché il nome del driver che SQLMutils usa di default si applica solo a 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")
Usa il pacchetto
È ora possibile usare il pacchetto in uno script Python in SQL Server. Ad esempio:
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)
'
Rimuovere il pacchetto da SQL Server
Per rimuovere il pacchetto text-tools, esegui il seguente comando Python sul computer client, usando la stessa variabile di connessione che hai definito prima.
sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")
Altre funzioni sqlmlutils
Il pacchetto sqlmlutils contiene diverse funzioni per la gestione di pacchetti Python e per creare, gestire ed eseguire stored procedure e query in un SQL Server. Per maggiori informazioni, consulta il file Python README di sqlmlutils.
Per informazioni su qualsiasi funzione di sqlmlutils, usare la funzione help di Python. Ad esempio:
import sqlmlutils
help(sqlmlutils.SQLPackageManager.install)