Megosztás a következőn keresztül:


Python-csomagok telepítése sqlmlutils használatával

Vonatkozik a következőkre: SQL Server 2019 (15.x) és későbbi verziók Azure SQL Managed Instance

Ez a cikk azt ismerteti, hogyan használhatja az sqlmlutils csomag funkcióit új Python-csomagok telepítésére a Machine Learning Services egy példányára az SQL Serveren és a Big Data-fürtökön. A telepített csomagok az adatbázisban futó Python-szkriptekben használhatók a sp_execute_external_script T-SQL utasítással.

Ez a cikk azt ismerteti, hogyan használhat függvényeket az sqlmlutils-csomagban új Python-csomagok telepítéséhez az Azure SQL Managed Instance Machine Learning Services egy példányára. A telepített csomagok az adatbázisban futó Python-szkriptekben használhatók a sp_execute_external_script T-SQL utasítással.

Megjegyzés:

Az SQL Managed Instance Machine Learning Services egy példányán előre telepített csomagok nem frissíthetők vagy távolíthatók el. Az aktuálisan telepített csomagok listájának megtekintéséhez tekintse meg az összes telepített Python-csomagot.

A csomag helyével és telepítési útvonalaival kapcsolatos további információkért lásd: Python-csomaginformációk lekérése.

Megjegyzés:

A cikkben ismertetett sqlmlutils-csomag Python-csomagok SQL Server 2019-es vagy újabb verziójához való hozzáadására szolgál. Az SQL Server 2017-ben és korábbi verzióiban lásd: Csomagok telepítése Python-eszközökkel.

Előfeltételek

  • Telepítse az Azure Data Studiót az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépre. Más adatbázis-kezelési vagy lekérdezési eszközöket is használhat, de ez a cikk az Azure Data Studiót feltételezi.

  • Telepítse a Python-kernelt az Azure Data Studióban. A Parancssorból is telepítheti és használhatja a Pythont, és használhat egy másik Python-fejlesztési környezetet, például a Visual Studio Code-ot a Python-bővítménysel.

    A Python verziójának az ügyfélszámítógépen meg kell egyeznie a Python verziójával a kiszolgálón, és a telepített csomagoknak meg kell felelniük a Python verziójának. További információ arról, hogy az egyes SQL Server-verziók mely Python-verziókat tartalmazzák: Python- és R-verziók.

    A Python egy adott SQL Server-példányon való verziójának ellenőrzéséhez használja a következő T-SQL-parancsot.

    EXECUTE sp_execute_external_script
      @language = N'Python',
      @script = N'
    import sys
    print(sys.version)
    '
    

Egyéb szempontok

  • A Python-csomagtár az SQL Server-példány Program Files mappájában található, és alapértelmezés szerint ehhez a mappához rendszergazdai engedély szükséges. További információ: Csomagtár helye.

  • A csomagtelepítés az SQL-példányra, az adatbázisra és a felhasználóra vonatkozik, amelyet az sqlmlutils számára megadott kapcsolati információkban megadott. Ha a csomagot több SQL-példányban vagy adatbázisban, illetve különböző felhasználók számára szeretné használni, mindegyikhez telepítenie kell a csomagot. A kivétel az, hogy ha a csomagot egy tagja dbotelepíti, a csomag nyilvános , és minden felhasználóval meg van osztva. Ha egy felhasználó egy nyilvános csomag újabb verzióját telepíti, a nyilvános csomagra nincs hatással, de a felhasználónak hozzáférése lesz az újabb verzióhoz.

  • Mielőtt hozzáad egy csomagot, gondolja át, hogy a csomag megfelelő-e az SQL Server-környezethez.

    • Javasoljuk, hogy az adatbázison belüli Pythont olyan feladatokhoz használja, amelyek az adatbázismotorral való szoros integrációt élvezik, például gépi tanulást, és nem az adatbázist egyszerűen lekérdező feladatokhoz.

    • Ha olyan csomagokat ad hozzá, amelyek túl nagy számítási nyomást gyakorolnak a kiszolgálóra, a teljesítmény romlik.

    • Egy megkeményített SQL Server-környezetben érdemes lehet elkerülni a következőket:

      • Hálózati hozzáférést igénylő csomagok
      • Emelt szintű fájlrendszer-hozzáférést igénylő csomagok
      • Webfejlesztéshez vagy más olyan feladatokhoz használt csomagok, amelyek nem hasznosak az SQL Serveren való futtatással
    • A Python-csomag tensorflow nem telepíthető sqlmlutils használatával. További információkért és kerülő megoldásért tekintse meg az SQL Server Machine Learning Services ismert problémáit.

Sqlmlutils telepítése az ügyfélszámítógépen

Az sqlmlutils használatához először telepítenie kell az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógépen.

Az Azure Data Studióban

Ha sqlmlutils-t fog használni az Azure Data Studióban, telepítheti azt egy Python-kerneljegyzetfüzet Csomagok kezelése funkciójával.

  1. Az Azure Data Studióban található Python-kerneljegyzetfüzetben kattintson aCsomagok kezelése elemre.
  2. Kattintson az Új hozzáadása gombra.
  3. Írja be az "sqlmlutils" kifejezést a Keresési pip csomagok mezőbe, és kattintson a Keresés gombra.
  4. Válassza ki a telepíteni kívánt csomagverziót (a legújabb verzió ajánlott).
  5. Kattintson a Telepítés , majd a Bezárás gombra.

Python parancssorból

Ha sqlmlutils-t fog használni egy Python-parancssorból vagy IDE-ből, az sqlmlutils egyszerű pip paranccsal telepíthető:

pip install sqlmlutils

Az sqlmlutils zip-fájlból is telepíthető:

  1. Győződjön meg arról, hogy a pip telepítve van. További információt a pip telepítésével kapcsolatban talál.
  2. Töltse le a legújabb sqlmlutils zip-fájlt az ügyfélszámítógépre https://github.com/microsoft/sqlmlutils/tree/master/R/dist . Ne bontsa ki a fájlt.
  3. Nyisson meg egy parancssort , és futtassa a következő parancsokat az sqlmlutils-csomag telepítéséhez. Cserélje le a letöltött sqlmlutils zip-fájl teljes elérési útját – ez a példa feltételezi, hogy a letöltött fájl a c:\temp\sqlmlutils-1.0.0.zip.
    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
    

Python-csomag hozzáadása az SQL Serveren

Az sqlmlutils használatával Python-csomagokat adhat hozzá egy SQL-példányhoz. Ezután használhatja ezeket a csomagokat az SQL-példányban futó Python-kódban. Az sqlmlutils a CREATE EXTERNAL LIBRARY használatával telepíti a csomagot és annak minden függőségét.

Az alábbi példában a szövegeszközök csomagját fogja hozzáadni az SQL Serverhez.

A csomag online hozzáadása

Ha az SQL Serverhez való csatlakozáshoz használt ügyfélszámítógép internet-hozzáféréssel rendelkezik, az sqlmlutils használatával megkeresheti a szövegeszközök csomagjait és az interneten keresztüli függőségeket, majd távolról telepítheti a csomagot egy SQL Server-példányra .

  1. Az ügyfélszámítógépen nyissa meg a Pythont vagy a Python-környezetet.

  2. A szövegeszközök csomagjának telepítéséhez használja az alábbi parancsokat . Cserélje le a saját SQL Server-adatbázis kapcsolati adatait. Ha Windows-hitelesítést használ, nincs szüksége a uid és pwd paraméterekre.

  1. Az ügyfélszámítógépen nyissa meg a Pythont vagy a Python-környezetet.

  2. A szövegeszközök csomagjának telepítéséhez használja az alábbi parancsokat . Cserélje le a saját SQL Server-adatbázis kapcsolati adatait.

import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")

A csomag offline hozzáadása

Ha az ügyfélszámítógép, amelyet az SQL Serverhez való csatlakozáshoz használ, nem rendelkezik internetkapcsolattal, akkor egy internetkapcsolattal rendelkező számítógépen a pip segítségével letöltheti a csomagot és a függő csomagokat egy helyi mappába. Ezután másolja a mappát az ügyfélszámítógépre, ahol offline módban telepítheti a csomagot.

Internet-hozzáféréssel rendelkező számítógépen

  1. Nyisson meg egy parancssort , és futtassa a következő parancsot a szövegeszközök csomagot tartalmazó helyi mappa létrehozásához. Ez a példa létrehozza a mappát c:\temp\text-tools.

    pip download text-tools -d c:\temp\text-tools
    
  2. Másolja a text-tools mappát az ügyfélszámítógépre. Az alábbi példa feltételezi, hogy azt c:\temp\packages\text-tools másolta.

Az ügyfélszámítógépen

Az sqlmlutils használatával telepítse azokat a csomagokat (WHL-fájlokat), amelyeket a pip által létrehozott helyi mappában talál. Nem számít, hogy milyen sorrendben telepíti a csomagokat.

Ebben a példában a szövegeszközöknek nincsenek függőségei, ezért a mappából text-tools csak egy fájl telepíthető. Ezzel szemben egy csomag, például a scikit-plot 11 függőséget tartalmaz, ezért 12 fájlt talál a mappában (a scikit-plot csomagot és a 11 függő csomagot), és mindegyiket telepíti.

Futtassa a következő Python-szkriptet. Cserélje le a csomag tényleges fájl elérési útját és nevét, valamint a saját SQL Server adatbázis-kapcsolati adatait (ha Windows-hitelesítést használ, nincs szüksége a uid és pwd paraméterekre). Ismételje meg az utasítást a sqlmlutils.SQLPackageManager mappában lévő egyes csomagfájlokhoz.

Futtassa a következő Python-szkriptet. Cserélje le a csomag tényleges fájl elérési útját és nevét, valamint a saját SQL Server-adatbázis kapcsolati adatait. Ismételje meg az utasítást a sqlmlutils.SQLPackageManager mappában lévő egyes csomagfájlokhoz.

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")

A csomag használata

Mostantól egy Python-szkriptben is használhatja a csomagot az SQL Serveren. Például:

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)
  '

A csomag eltávolítása az SQL Serverről

Ha el szeretné távolítani a text-tools csomagot, használja az alábbi Python-parancsot az ügyfélszámítógépen a korábban definiált kapcsolati változóval.

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

További sqlmlutils-függvények

Az sqlmlutils-csomag számos függvényt tartalmaz a Python-csomagok kezeléséhez, valamint a tárolt eljárások és lekérdezések SQL Serveren való létrehozásához, kezeléséhez és futtatásához. További részletekért tekintse meg az sqlmlutils Python README-fájlt.

Az sqlmlutils függvényekkel kapcsolatos információkért használja a Python súgófüggvényét . Például:

import sqlmlutils
help(SQLPackageManager.install)

Következő lépések