Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en latere versies
Azure SQL Managed Instance
Dit artikel beschrijft hoe je functies in het sqlmlutils-pakket kunt gebruiken om nieuwe Python-pakketten te installeren op een instantie van Machine Learning Services op SQL Server. Je kunt de pakketten die je installeert in Python scripts gebruiken die in de database draaien via de sp_execute_external_script T-SQL-instructie.
In dit artikel wordt beschreven hoe u functies in het sqlmlutils-pakket gebruikt om nieuwe Python-pakketten te installeren op een exemplaar van Azure SQL Managed Instance Machine Learning Services. Je kunt de pakketten die je installeert in Python scripts gebruiken die in de database draaien via de sp_execute_external_script T-SQL-instructie.
Opmerking
Je kunt geen pakketten updaten of verwijderen die vooraf geïnstalleerd zijn op een instantie van SQL Managed Instance Machine Learning Services. Zie Alle geïnstalleerde Python-pakketten weergeven om een lijst met pakketten weer te geven die momenteel zijn geïnstalleerd.
Zie Python-pakketgegevens ophalen voor meer informatie over pakketlocatie en installatiepaden.
Opmerking
Gebruik het sqlmlutils-pakket dat in dit artikel wordt beschreven om Python-pakketten toe te voegen aan SQL Server 2019 of later. Zie Pakketten installeren met Python-hulpprogramma's voor SQL Server 2017 en eerder.
Vereiste voorwaarden
- SQL Server Machine Learning Services geïnstalleerd met de Python taaloptie.
Python geïnstalleerd op de clientcomputer die je gebruikt om verbinding te maken met SQL Server. Je kunt scripts uitvoeren via de commandoregel, of een Python-ontwikkelomgeving gebruiken zoals Visual Studio Code met de Python-extensie.
De versie van Python op de clientcomputer moet overeenkomen met de versie van Python op de server, en pakketten die je installeert moeten compatibel zijn met de versie van Python die je hebt. Zie Python- en R-versies voor informatie over welke versie van Python is opgenomen in elke SQL Server-versie.
Gebruik de volgende T-SQL-opdracht om de versie van Python op een bepaald SQL Server-exemplaar te controleren.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) 'MSSQL-extensie voor Visual Studio Code geïnstalleerd op de clientcomputer die je gebruikt om verbinding te maken met SQL Server. U kunt andere hulpprogramma's voor databasebeheer of query's gebruiken.
Andere overwegingen
De Python-pakketbibliotheek bevindt zich in de Program Files-map van je SQL Server-instantie. Standaard vereist installeren in deze map beheerdersrechten. Zie De locatie van de pakketbibliotheek voor meer informatie.
Pakketinstallatie is specifiek voor het SQL-exemplaar, de database en de gebruiker die u opgeeft in de verbindingsgegevens die u opgeeft voor sqlmlutils. Om het pakket in meerdere SQL-instanties of databases te gebruiken, of voor verschillende gebruikers, installeer je het pakket voor elke instantie. De uitzondering is een pakket dat in public scope is geïnstalleerd en met alle gebruikers wordt gedeeld. SQLMLUTILS selecteert standaard alleen Public Scope als je verbinding maakt als lid van de
sysadminserverrol, en Privatescope anders. Om als een andere principal in het openbare bereik te installeren, geef jescope=sqlmlutils.Scope.public_scope()door aaninstall; hiervoor is de databaseroldb_ownervereist. Als een gebruiker een nieuwere versie van een publiek pakket installeert, wordt het publieke pakket niet beïnvloed, maar die gebruiker heeft wel toegang tot de nieuwere versie.Voordat u een pakket toevoegt, moet u overwegen of het pakket geschikt is voor de SQL Server-omgeving.
Gebruik Python in de database voor taken die profiteren van een nauwe integratie met de database-engine, zoals machine learning, in plaats van taken die simpelweg de database opvragen.
Als je pakketten toevoegt die te veel rekenkracht op de server leggen, lijdt de prestatie.
Vermijd in een geharde SQL Server-omgeving de volgende soorten pakketten:
- Pakketten waarvoor netwerktoegang is vereist
- Pakketten waarvoor verhoogde toegang tot het bestandssysteem is vereist
- Pakketten die worden gebruikt voor webontwikkeling of andere taken die geen voordeel hebben door in SQL Server uit te voeren
Je kunt het Python-pakket tensorflow niet installeren met sqlmlutils. Zie Bekende problemen in SQL Server Machine Learning Services voor meer informatie en een tijdelijke oplossing.
Sqlmlutils installeren op de clientcomputer
Als u sqlmlutils wilt gebruiken, moet u deze eerst installeren op de clientcomputer die u gebruikt om verbinding te maken met SQL Server.
Sqlmlutils online installeren
Als de clientcomputer internettoegang heeft, installeer sqlmlutils via pip:
pip install sqlmlutils
Sqlmlutils offline installeren
Als de clientcomputer geen internettoegang heeft, installeer sqlmlutils dan vanuit een gedownload bestand:
Zorg dat je pip hebt geïnstalleerd. Raadpleeg voor meer informatie de installatie van pip.
Download het nieuwste sqlmlutils-bestand van de sqlmlutils-releasepagina naar de clientcomputer. Pak het bestand niet uit.
Open een opdrachtprompt en voer het volgende commando uit om het sqlmlutils-pakket te installeren . Vervang het volledige pad naar het bestand dat je hebt gedownload. Dit voorbeeld gaat ervan uit dat het gedownloade bestand
c:\temp\sqlmlutils-1.0.0.zipis.pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
Een Python-pakket toevoegen in SQL Server
Door sqlmlutils te gebruiken, kun je Python-pakketten toevoegen aan een SQL-instantie en ze vervolgens gebruiken in Python-code die in die instantie draait. sqlmlutils gebruikt CREATE EXTERNAL LIBRARY om het pakket en elk van de afhankelijkheden te installeren.
Het volgende voorbeeld voegt het teksttools-pakket toe aan SQL Server.
Het pakket online toevoegen
Als de clientcomputer die je gebruikt om verbinding te maken met SQL Server internettoegang heeft, kun je sqlmlutils gebruiken om het text-tools-pakket en eventuele afhankelijkheden online te vinden, en vervolgens het pakket op afstand installeren in een SQL Server-instantie.
Open Python of een Python-omgeving op de clientcomputer.
Gebruik de volgende opdrachten om het pakket teksthulpprogramma's te installeren. Vervang uw eigen SQL Server-databaseverbindingsinformatie (als u Windows-verificatie gebruikt, hebt u de
uidenpwdparameters niet nodig).
Open Python of een Python-omgeving op de clientcomputer.
Gebruik de volgende opdrachten om het pakket teksthulpprogramma's te installeren. Vervang uw eigen SQL Server-databaseverbindingsgegevens. Geef ook de naam door van een ODBC-driver die op de clientcomputer is geïnstalleerd, zoals
driver="ODBC Driver 18 for SQL Server", omdat de drivernaam die sqlmlutils standaard gebruikt, alleen voor Windows geldt.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Het pakket offline toevoegen
Als de clientcomputer die je gebruikt om verbinding te maken met SQL Server geen internetverbinding heeft, gebruik dan pip op een computer die dat wel heeft om het pakket naar een lokale map te downloaden. Vervolgens kopieer je de map naar de clientcomputer en installeer je het pakket offline.
Opmerking
Deze procedure werkt voor een pakket zonder afhankelijkheden.
SQLPackageManager.install() haalt afhankelijkheden op van PyPI, zelfs als je een lokaal .whl-bestand opgeeft. Gebruik daarom een clientcomputer met internettoegang om een pakket met afhankelijkheden toe te voegen en volg Het pakket online toevoegen.
Op een computer met internettoegang
Open een opdrachtprompt en voer de volgende opdracht uit om een lokale map te maken die het pakket teksthulpmiddelen bevat. In dit voorbeeld wordt de map
c:\temp\text-toolsgemaakt.pip download text-tools -d c:\temp\text-toolsKopieer de
text-toolsmap naar de clientcomputer. In het volgende voorbeeld wordt ervan uitgegaan dat u deze hebt gekopieerd naarc:\temp\packages\text-tools.
Op de clientcomputer
Gebruik sqlmlutils om het pakket (.whl bestand) te installeren dat pip naar de lokale map heeft gedownload.
In dit voorbeeld heeft text-tools geen afhankelijkheden, dus de text-tools map bevat één bestand.
Voer het volgende Python-script uit. Vervang het werkelijke bestandspad en de naam van het pakket en uw eigen sql Server-databaseverbindingsgegevens (als u Windows-verificatie gebruikt, hebt u de uid en pwd parameters niet nodig).
Voer het volgende Python-script uit. Vervang het werkelijke bestandspad en de naam van het pakket en de verbindingsgegevens van uw eigen SQL Server-database. Geef ook de naam door van een ODBC-driver die op de clientcomputer is geïnstalleerd, zoals driver="ODBC Driver 18 for SQL Server", omdat de drivernaam die sqlmlutils standaard gebruikt, alleen voor Windows geldt.
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")
Het pakket gebruiken
U kunt het pakket nu gebruiken in een Python-script in SQL Server. Voorbeeld:
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)
'
Het pakket verwijderen uit SQL Server
Om het text-tools-pakket te verwijderen, voer je het volgende Python-commando uit op de clientcomputer, met dezelfde verbindingsvariabele die je eerder hebt gedefinieerd.
sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")
Meer sqlmlutils-functies
Het sqlmlutils-pakket bevat verschillende functies voor het beheren van Python-pakketten en voor het creëren, beheren en uitvoeren van opgeslagen procedures en queries in een SQL Server. Voor meer informatie, zie het sqlmlutils Python README-bestand.
Gebruik de Help-functie van Python voor informatie over een sqlmlutils-functie. Voorbeeld:
import sqlmlutils
help(sqlmlutils.SQLPackageManager.install)