Delen via


Python-pakketten installeren met sqlmlutils

Van toepassing op: SQL Server 2019 (15.x) en latere versies Azure SQL Managed Instance

In dit artikel wordt beschreven hoe u functies in het sqlmlutils-pakket gebruikt om nieuwe Python-pakketten te installeren op een exemplaar van Machine Learning Services op SQL Server en op Big Data-clusters. De pakketten die u installeert, kunnen worden gebruikt in Python-scripts die in de database worden uitgevoerd met behulp van 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. De pakketten die u installeert, kunnen worden gebruikt in Python-scripts die in de database worden uitgevoerd met behulp van de sp_execute_external_script T-SQL-instructie.

Opmerking

U kunt geen pakketten bijwerken of verwijderen die vooraf zijn geïnstalleerd op een exemplaar 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

Het sqlmlutils-pakket dat in dit artikel wordt beschreven, wordt gebruikt voor het toevoegen van Python-pakketten aan SQL Server 2019 of hoger. Zie Pakketten installeren met Python-hulpprogramma's voor SQL Server 2017 en eerder.

Vereiste voorwaarden

  • Installeer Azure Data Studio op de clientcomputer die u gebruikt om verbinding te maken met SQL Server. U kunt andere hulpprogramma's voor databasebeheer of query's gebruiken, maar in dit artikel wordt ervan uitgegaan dat Azure Data Studio wordt gebruikt.

  • Installeer de Python-kernel in Azure Data Studio. U kunt Python ook installeren en gebruiken vanaf de opdrachtregel en u kunt een alternatieve Python-ontwikkelomgeving zoals Visual Studio Code gebruiken met de Python-extensie.

    De versie van Python op de clientcomputer moet overeenkomen met de versie van Python op de server en pakketten die u installeert, moeten compatibel zijn met de versie van Python die u 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)
    '
    

Andere overwegingen

  • De Python-pakketbibliotheek bevindt zich in de map Program Files van uw SQL Server-exemplaar en de installatie in deze map vereist standaard beheerdersmachtigingen. 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. Als u het pakket in meerdere SQL-exemplaren of -databases of voor verschillende gebruikers wilt gebruiken, moet u het pakket voor elk exemplaar installeren. De uitzondering hierop is dat als het pakket is geïnstalleerd door een lid van dbo, het pakket openbaar is en wordt gedeeld met alle gebruikers. Als een gebruiker een nieuwere versie van een openbaar pakket installeert, wordt het openbare pakket niet beïnvloed, maar heeft die gebruiker toegang tot de nieuwere versie.

  • Voordat u een pakket toevoegt, moet u overwegen of het pakket geschikt is voor de SQL Server-omgeving.

    • U wordt aangeraden Python-in-database te gebruiken voor taken die profiteren van een nauwe integratie met de database-engine, zoals machine learning, in plaats van taken die eenvoudig een query uitvoeren op de database.

    • Als u pakketten toevoegt die te veel rekenkracht op de server hebben, zullen de prestaties lijden.

    • In een beperkte SQL Server-omgeving wilt u het volgende voorkomen:

      • 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
    • Het Python-pakket tensorflow kan niet worden geïnstalleerd met behulp van 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.

In Azure Data Studio

Als u sqlmlutils in Azure Data Studio gebruikt, kunt u deze installeren met behulp van de functie Pakketten beheren in een Python-kernelnotebook.

  1. Klik in een Python-kernelnotebook in Azure Data Studio op Pakketten beheren.
  2. Klik op Nieuwe toevoegen.
  3. Voer 'sqlmlutils' in het veld Pip-pakketten zoeken in en klik op Zoeken.
  4. Selecteer de pakketversie die u wilt installeren (de meest recente versie wordt aanbevolen).
  5. Klik op Installeren en vervolgens sluiten.

Vanuit de Python-opdrachtregel

Als u sqlmlutils gebruikt vanaf een Python-opdrachtprompt of IDE, kunt u sqlmlutils installeren met een eenvoudige pip-opdracht :

pip install sqlmlutils

U kunt sqlmlutils ook installeren vanuit een zip-bestand:

  1. Zorg ervoor dat pip is geïnstalleerd. Zie pip-installatie voor meer informatie.
  2. Download het meest recente zip-bestand vanhttps://github.com/microsoft/sqlmlutils/tree/master/R/dist sqlmlutils naar de clientcomputer. Pak het bestand niet uit.
  3. Open een opdrachtprompt en voer de volgende opdrachten uit om het sqlmlutils-pakket te installeren. Vervang het volledige pad naar het zip-bestand sqlmlutils dat u hebt gedownload. In dit voorbeeld wordt ervan uitgegaan dat het gedownloade bestand is c:\temp\sqlmlutils-1.0.0.zip.
    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
    

Een Python-pakket toevoegen in SQL Server

Met behulp van sqlmlutils kunt u Python-pakketten toevoegen aan een SQL-exemplaar. U kunt deze pakketten vervolgens gebruiken in uw Python-code die wordt uitgevoerd in het SQL-exemplaar. sqlmlutils maakt gebruik van CREATE EXTERNAL LIBRARY om het pakket en alle bijbehorende afhankelijkheden te installeren.

In het volgende voorbeeld voegt u het pakket teksthulpprogramma's toe aan SQL Server.

Het pakket online toevoegen

Als de clientcomputer die u gebruikt om verbinding te maken met SQL Server internettoegang heeft, kunt u sqlmlutils gebruiken om het pakket teksthulpprogramma's en eventuele afhankelijkheden via internet te vinden en het pakket vervolgens op afstand te installeren op een SQL Server-exemplaar.

  1. Open Python of een Python-omgeving op de clientcomputer.

  2. 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 uid en pwd parameters niet nodig).

  1. Open Python of een Python-omgeving op de clientcomputer.

  2. Gebruik de volgende opdrachten om het pakket teksthulpprogramma's te installeren. Vervang uw eigen SQL Server-databaseverbindingsgegevens.

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 u gebruikt om verbinding te maken met SQL Server geen internetverbinding heeft, kunt u pip gebruiken op een computer met internettoegang om het pakket en eventuele afhankelijke pakketten naar een lokale map te downloaden. Vervolgens kopieert u de map naar de clientcomputer waar u het pakket offline kunt installeren.

Op een computer met internettoegang

  1. 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-tools
    
  2. Kopieer de text-tools map naar de clientcomputer. In het volgende voorbeeld wordt ervan uitgegaan dat u deze hebt gekopieerd naar c:\temp\packages\text-tools.

Op de clientcomputer

Gebruik sqlmlutils om elk pakket (WHL-bestand) te installeren dat u vindt in de lokale map die pip heeft gemaakt. Het maakt niet uit in welke volgorde u de pakketten installeert.

In dit voorbeeld hebben teksthulpprogramma's geen afhankelijkheden, dus er is slechts één bestand uit de text-tools map die u kunt installeren. Een pakket zoals scikit-plot heeft daarentegen 11 afhankelijkheden, dus u vindt 12 bestanden in de map (het scikit-plot-pakket en de 11 afhankelijke pakketten) en u installeert ze allemaal.

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). Herhaal de sqlmlutils.SQLPackageManager instructie voor elk pakketbestand in de map.

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. Herhaal de sqlmlutils.SQLPackageManager instructie voor elk pakketbestand in de map.

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

Als u het pakket teksthulpprogramma's wilt verwijderen, gebruikt u de volgende Python-opdracht op de clientcomputer met dezelfde verbindingsvariabele die u eerder hebt gedefinieerd.

sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")

Meer sqlmlutils-functies

Het sqlmlutils-pakket bevat een aantal functies voor het beheren van Python-pakketten en voor het maken, beheren en uitvoeren van opgeslagen procedures en query's in een SQL Server. Zie het README-bestand sqlmlutils Python voor meer informatie.

Gebruik de Help-functie van Python voor informatie over een sqlmlutils-functie. Voorbeeld:

import sqlmlutils
help(SQLPackageManager.install)

Volgende stappen