Sdílet prostřednictvím


Instalace vlastního modulu runtime Pythonu pro SQL Server

platí pro: SQL Server 2019 (15.x)

Zjistěte, jak nainstalovat vlastní modul runtime Pythonu pro spouštění externích skriptů Pythonu s SQL Serverem na:

  • Windows
  • Ubuntu Linux
  • Red Hat Enterprise Linux (RHEL)
  • SUSE Linux Enterprise Server (SLES)

Vlastní runtime může spouštět skripty strojového učení a používat SQL Server Language Extensions.

Použijte vlastní verzi modulu runtime Pythonu s SQL Serverem místo výchozí verze modulu runtime nainstalované se službou SQL Server Machine Learning Services.

Počínaje SQL Serverem 2022 (16.x) se moduly runtime pro R, Python a Java už s instalací SQL nenainstalují. Místo toho nainstalujte požadovaná vlastní prostředí a balíčky Pythonu. Další informace najdete v tématu Instalace služby SQL Server 2022 Machine Learning Services (Python a R) ve Windows nebo instalace služby SQL Server Machine Learning Services (Python a R) v Linuxu.

Požadavky

Před instalací vlastního modulu runtime Pythonu nainstalujte:

Instalace jazykových rozšíření

Poznámka:

Pokud máte na SQL Serveru 2019 nainstalovanou službu Machine Learning Services , je už nainstalovaná jazyková rozšíření a můžete tento krok přeskočit.

Postupujte podle následujících kroků a nainstalujte rozšíření SQL Server Language Extensions, která se používá pro vlastní modul runtime Pythonu.

  1. Spusťte průvodce instalací pro SQL Server 2019.

  2. Na kartě Instalace vyberte Samostatná instalace Nového SQL Serveru nebo přidejte funkce do existující instalace.

  3. Na stránce Výběr funkcí vyberte tyto možnosti:

    • Služby databázového stroje

      Pokud chcete používat jazyková rozšíření s SQL Serverem, musíte nainstalovat instanci databázového stroje. Můžete použít novou nebo existující instanci.

    • Služby strojového učení a rozšíření jazyka

      Vyberte Machine Learning Services a Jazykové rozšíření. Nevybírejte Python, protože budete později instalovat vlastní modul runtime Pythonu.

      Nastavení jazykových rozšíření SQL Serveru 2019

  4. Na stránce Připraveno k instalaci ověřte, že jsou tyto možnosti zahrnuté, a vyberte Nainstalovat.

    • Služby databázového stroje
    • Machine Learning Services a rozšíření jazyka
  5. Po dokončení instalace restartujte počítač, pokud se k tomu zobrazí výzva.

Důležité

Pokud nainstalujete novou instanci SQL Serveru 2019 s jazykovými rozšířeními, nainstalujte kumulativní aktualizaci (CU) 3 nebo novější , než budete pokračovat dalším krokem.

Instalace Pythonu

Rozšíření jazyka Python používané pro vlastní modul runtime Pythonu aktuálně podporuje pouze Python 3.7. Pokud chcete použít jinou verzi Pythonu, upravte a znovu sestavte rozšíření podle pokynů v úložišti GitHubu pro rozšíření jazyka Python .

  1. Stáhněte Python 3.7 pro Windows a spusťte instalační program na serveru.

  2. Vyberte Přidat Python 3.7 do PATH a pak vyberte Přizpůsobit instalaci.

    Instalace Pythonu 3.7 – Přidání Pythonu 3.7 do PATH

  3. V části Volitelné funkce ponechte výchozí hodnoty a vyberte Další.

  4. Vyberte Nainstalovat pro všechny uživatele a poznamenejte si umístění instalace.

    Instalace Pythonu 3.7 – Instalace pro všechny uživatele

  5. Vyberte volbu Instalovat.

Nainstalujte pandas

Nainstalujte balíček pandas pro Python z příkazového řádku se zvýšenými oprávněními (Spustit jako správce):

python.exe -m pip install pandas

Udělení přístupu ke složce Pythonu

Spuštěním následujících příkazů icacls z nového příkazového řádku se zvýšenými oprávněními udělte oprávnění ČÍST a EXECUTE k umístění instalace Pythonu službě SQL Server Launchpad a SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES).

Následující příklady používají umístění instalace Pythonu jako C:\Program Files\Python37. Pokud se vaše umístění liší, změňte ho v příkazu.

  1. Udělte oprávnění uživatelskému jménu služby SQL Server Launchpad.

    icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
    

    Pro pojmenovanou instanci bude icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T příkaz pro instanci s názvem SQL01.

  2. Udělte oprávnění SID S-1-15-2-1.

    icacls "C:\Program Files\Python37" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

    Předchozí příkaz uděluje oprávnění k identifikátoru SID počítače S-1-15-2-1, což odpovídá všem balíčkům aplikací v anglické verzi Systému Windows. Alternativně můžete použít icacls "C:\Program Files\Python37" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T v anglické verzi Windows.

Restartování spouštěcího panelu SQL Serveru

Chcete-li restartovat službu Launchpad SYSTÉMU SQL Server, postupujte podle těchto kroků.

  1. Otevřete SQL Server Configuration Manager.

  2. V části Služby SQL Serveru klikněte pravým tlačítkem na SQL Server Launchpad (MSSQLSERVER) a vyberte Restartovat. Pokud používáte pojmenovanou instanci, zobrazí se místo (MSSQLSERVER) název instance.

Zaregistrujte rozšíření jazyka

Pokud chcete stáhnout a zaregistrovat rozšíření jazyka Python, které se používá pro vlastní modul runtime Pythonu, postupujte podle těchto kroků.

  1. Stáhněte si souborpython-lang-extension-windows-release.zip z úložiště SQL Server Language Extensions na GitHubu.

    Alternativně můžete použít ladicí verzi (python-lang-extension-windows-debug.zip) ve vývojovém nebo testovacím prostředí. Ladicí verze poskytuje podrobný protokolovací výstup pro zkoumání chyb a nedoporučuje se pro produkční prostředí.

  2. Pomocí nástroje Azure Data Studio se připojte k instanci SQL Serveru a spuštěním následujícího příkazu T-SQL zaregistrujte rozšíření jazyka Python v jazyce CREATE EXTERNAL LANGUAGE.

    Upravte cestu v tomto příkazu tak, aby odrážela umístění staženého souboru ZIP s příponou jazyka (python-lang-extension-windows-release.zip) a umístění instalace Pythonu (C:\\Program Files\\Python37).

    CREATE EXTERNAL LANGUAGE [myPython]
    FROM (CONTENT = N'C:\path\to\python-lang-extension-windows-release.zip', 
        FILE_NAME = 'pythonextension.dll', 
        ENVIRONMENT_VARIABLES = N'{"PYTHONHOME": "C:\\Program Files\\Python37"}');
    GO
    

    Spusťte příkaz pro každou databázi, ve které chcete použít rozšíření jazyka Python.

    Poznámka:

    Python je vyhrazené slovo a nejde ho použít jako název nového názvu externího jazyka. Místo toho použijte jiný název. Například výše uvedený příkaz používá myPython.

Požadavky

Před instalací vlastního modulu runtime Pythonu nainstalujte následující požadavky:

Instalace jazykových rozšíření

Poznámka:

Pokud máte na SQL Serveru 2019 nainstalovanou službu Machine Learning Services , je už nainstalovaný balíček rozšíření mssql-server pro rozšíření jazyka a můžete tento krok přeskočit.

Spuštěním následujících příkazů nainstalujte sql Server Language Extensions v Ubuntu Linuxu, který se používá pro vlastní modul runtime Pythonu.

  1. Pokud je to možné, spusťte tento příkaz a aktualizujte balíčky v systému před instalací.

    # Install as root or sudo
    sudo apt-get update
    
  2. Ubuntu nemusí mít možnost přenosu https apt. Pokud ho chcete nainstalovat, spusťte tento příkaz.

    # Install as root or sudo
    apt-get install apt-transport-https
    
  3. Pomocí tohoto příkazu nainstalujte mssql-server-extensibility.

    # Install as root or sudo
    sudo apt-get install mssql-server-extensibility
    

Nainstalujte Python 3.7 a Pandas

Rozšíření jazyka Python používané pro vlastní modul runtime Pythonu aktuálně podporuje pouze Python 3.7 . Pokud chcete použít jinou verzi Pythonu, upravte a znovu sestavte rozšíření podle pokynů v úložišti GitHubu pro rozšíření jazyka Python .

  1. Spuštěním následujících příkazů nainstalujte Python 3.7.

    # Install python3.7 and the corresponding library:
    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt-get update
    sudo apt-get install python3.7 python3-pip libpython3.7
    
  2. Spuštěním následujícího příkazu nainstalujte balíček pandas.

    # Install pandas to /usr/lib:
    sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
    

Vlastní instalace Pythonu

Poznámka:

Pokud jste Python 3.7 nainstalovali do výchozího /usr/lib/python3.7umístění, můžete tuto část přeskočit a přejít k části Zaregistrovat rozšíření jazyka .

Pokud jste vytvořili vlastní verzi Pythonu 3.7, pomocí následujících příkazů dejte SQL Serveru vědět o vlastní instalaci.

Přidat proměnnou prostředí

Nejprve upravte službu mssql-launchpadd a přidejte do souboru proměnnou prostředí PYTHONHOME . /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Otevření souboru pomocí systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Do souboru, který se otevře, vložte následující text /etc/systemd/system/mssql-launchpadd.service.d/override.conf . Nastavte hodnotu PYTHONHOME na vlastní instalační cestu Pythonu.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Uložte soubor a zavřete editor.

Dále se ujistěte, že libpython3.7m.so.1.0 je možné načíst.

  1. Vytvořte soubor custom-python.conf v /etc/ld.so.conf.dsouboru .

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Do souboru, který se otevře, přidejte cestu k libpython3.7m.so.1.0 z vlastní instalace Pythonu.

    <path to the python3.7 lib>
    
  3. Uložte nový soubor a zavřete editor.

  4. Spusťte ldconfig a ověřte, zda lze libpython3.7m.so.1.0 načíst spuštěním následujících příkazů a ověřením, že všechny potřebné knihovny jsou dostupné.

    sudo ldconfig
    ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
    

Udělení přístupu ke složce Pythonu

Nastavte možnost datadirectories v oddílu rozšiřitelnosti souboru /var/opt/mssql/mssql.conf na vlastní instalaci Pythonu.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>

Restartování mssql-launchpadd

Spuštěním následujícího příkazu restartujte mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Registrace rozšíření jazyka

Pokud chcete stáhnout a zaregistrovat rozšíření jazyka Python, které se používá pro vlastní modul runtime Pythonu, postupujte podle těchto kroků.

  1. Stáhněte si souborpython-lang-extension-linux-release.zip z úložiště SQL Server Language Extensions na GitHubu.

    Alternativně můžete použít ladicí verzi (python-lang-extension-linux-debug.zip) ve vývojovém nebo testovacím prostředí. Ladicí verze poskytuje podrobný záznam protokolu pro účely vyhledávání chyb a není doporučeno pro použití v produkčním prostředí.

  2. Pomocí nástroje Azure Data Studio se připojte k instanci SQL Serveru a spuštěním následujícího příkazu T-SQL zaregistrujte rozšíření jazyka Python v jazyce CREATE EXTERNAL LANGUAGE.

    Upravte cestu v tomto příkazu tak, aby odrážela umístění staženého souboru ZIP s příponou jazyka (python-lang-extension-linux-release.zip).

    CREATE EXTERNAL LANGUAGE [myPython]
    FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1');
    GO
    

    Spusťte příkaz pro každou databázi, ve které chcete použít rozšíření jazyka Python.

    Poznámka:

    Python je vyhrazené slovo a nejde ho použít jako název nového názvu externího jazyka. Místo toho použijte jiný název. Například výše uvedený příkaz používá myPython.

Požadavky

Před instalací vlastního modulu runtime Pythonu nainstalujte následující požadavky:

Instalace jazykových rozšíření

Poznámka:

Pokud máte na SQL Serveru 2019 nainstalovanou službu Machine Learning Services , je už nainstalovaný balíček rozšíření mssql-server pro rozšíření jazyka a můžete tento krok přeskočit.

Spuštěním následujícího příkazu nainstalujte sql Server Language Extensions v Red Hat Enterprise Linuxu (RHEL), který se používá pro vlastní modul runtime Pythonu.

# Install as root or sudo
sudo yum install mssql-server-extensibility

Nainstalujte Python 3.7 a Pandas

Rozšíření jazyka Python používané pro vlastní modul runtime Pythonu aktuálně podporuje pouze Python 3.7 . Pokud chcete použít jinou verzi Pythonu, upravte a znovu sestavte rozšíření podle pokynů v úložišti GitHubu pro rozšíření jazyka Python .

  1. Spuštěním následujících příkazů nainstalujte Python 3.7.

    # Install python3.7 and the corresponding library:
    yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel
    
    cd /usr/src
    wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
    tar xzf Python-3.7.9.tgz
    
    cd Python-3.7.9
    ./configure --enable-optimizations --prefix=/usr
    make altinstall
    
  2. Spuštěním následujícího příkazu nainstalujte balíček pandas.

    # Install pandas to /usr/lib:
    sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
    

Vlastní instalace Pythonu

Poznámka:

Pokud jste Python 3.7 nainstalovali do výchozího /usr/lib/python3.7umístění, můžete tuto část přeskočit a přejít k části Zaregistrovat rozšíření jazyka .

Pokud jste vytvořili vlastní verzi Pythonu 3.7, pomocí následujících příkazů dejte SQL Serveru vědět o vlastní instalaci.

Přidejte proměnnou prostředí

Nejprve upravte službu mssql-launchpadd a přidejte do souboru proměnnou prostředí PYTHONHOME . /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Otevření souboru pomocí systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Do souboru, který se otevře, vložte následující text /etc/systemd/system/mssql-launchpadd.service.d/override.conf . Nastavte hodnotu PYTHONHOME na vlastní instalační cestu Pythonu.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Uložte soubor a zavřete editor.

Dále se ujistěte, že libpython3.7m.so.1.0 je možné načíst.

  1. Vytvořte soubor custom-python.conf v /etc/ld.so.conf.dsouboru .

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Do souboru, který se otevře, přidejte cestu k libpython3.7m.so.1.0 z vlastní instalace Pythonu.

    <path to the python3.7 lib>
    
  3. Uložte nový soubor a zavřete editor.

  4. Spusťte ldconfig a ověřte, že libpython3.7m.so.1.0 lze načíst spuštěním následujících příkazů a kontrolou, zda jsou všechny závislé knihovny nalezeny.

    sudo ldconfig
    ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
    

Udělení přístupu ke složce Pythonu

Nastavte možnost datadirectories v sekci rozšiřitelnosti souboru /var/opt/mssql/mssql.conf na vlastní instalaci Pythonu.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>

Restart mssql-launchpadd

Spuštěním následujícího příkazu restartujte mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Registrace jazykového rozšíření

Pokud chcete stáhnout a zaregistrovat rozšíření jazyka Python, které se používá pro vlastní modul runtime Pythonu, postupujte podle těchto kroků.

  1. Stáhněte si souborpython-lang-extension-linux-release.zip z úložiště SQL Server Language Extensions na GitHubu.

    Alternativně můžete použít ladicí verzi (python-lang-extension-linux-debug.zip) ve vývojovém nebo testovacím prostředí. Ladicí verze poskytuje podrobné záznamy protokolování pro zkoumání chyb a nedoporučuje se pro produkční prostředí.

  2. Pomocí nástroje Azure Data Studio se připojte k instanci SQL Serveru a spuštěním následujícího příkazu T-SQL zaregistrujte rozšíření jazyka Python v jazyce CREATE EXTERNAL LANGUAGE.

    Upravte cestu v tomto příkazu tak, aby odrážela umístění staženého souboru ZIP s příponou jazyka (python-lang-extension-linux-release.zip).

    CREATE EXTERNAL LANGUAGE [myPython]
    FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1');
    GO
    

    Spusťte příkaz pro každou databázi, ve které chcete použít rozšíření jazyka Python.

    Poznámka:

    Python je vyhrazené slovo a nejde ho použít jako název nového názvu externího jazyka. Místo toho použijte jiný název. Například výše uvedený příkaz používá myPython.

Požadavky

Před instalací vlastního modulu runtime Pythonu nainstalujte následující požadavky:

Instalace jazykových rozšíření

Poznámka:

Pokud máte na SQL Serveru 2019 nainstalovanou službu Machine Learning Services , je už nainstalovaný balíček rozšíření mssql-server pro rozšíření jazyka a můžete tento krok přeskočit.

Spuštěním následujícího příkazu nainstalujte sql Server Language Extensions na SUSE Linux Enterprise Server (SLES), který se používá pro vlastní modul runtime Pythonu.

# Install as root or sudo
sudo zypper install mssql-server-extensibility

Nainstalujte Python 3.7 a Pandas

Rozšíření jazyka Python používané pro vlastní modul runtime Pythonu aktuálně podporuje pouze Python 3.7 . Pokud chcete použít jinou verzi Pythonu, upravte a znovu sestavte rozšíření podle pokynů v úložišti GitHubu pro rozšíření jazyka Python .

  1. Nainstalujte Python 3.7 na server.

  2. Spuštěním následujícího příkazu nainstalujte balíček pandas.

    # Install pandas to /usr/lib:
    sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
    

Vlastní instalace Pythonu

Poznámka:

Pokud jste Python 3.7 nainstalovali do výchozího /usr/lib/python3.7umístění, můžete tuto část přeskočit a přejít k části Zaregistrovat rozšíření jazyka .

Pokud jste vytvořili vlastní verzi Pythonu 3.7, pomocí následujících příkazů dejte SQL Serveru vědět o vlastní instalaci.

Přidat proměnnou prostředí

Nejprve upravte službu mssql-launchpadd a přidejte do souboru proměnnou prostředí PYTHONHOME . /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Otevření souboru pomocí systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Do souboru, který se otevře, vložte následující text /etc/systemd/system/mssql-launchpadd.service.d/override.conf . Nastavte hodnotu PYTHONHOME na vlastní instalační cestu Pythonu.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Uložte soubor a zavřete editor.

Dále se ujistěte, že libpython3.7m.so.1.0 je možné načíst.

  1. Vytvořte soubor custom-python.conf v /etc/ld.so.conf.dsouboru .

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Do souboru, který se otevře, přidejte cestu k libpython3.7m.so.1.0 z vlastní instalace Pythonu.

    <path to the python3.7 lib>
    
  3. Uložte nový soubor a zavřete editor.

  4. Spusťte ldconfig a ověřte, zda lze libpython3.7m.so.1.0 načíst spuštěním následujících příkazů a ověřením, že všechny potřebné knihovny jsou dostupné.

    sudo ldconfig
    ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
    

Udělení přístupu ke složce Pythonu

Nastavte možnost datadirectories v oddílu rozšiřitelnosti souboru /var/opt/mssql/mssql.conf na vlastní instalaci Pythonu.

sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>

Restartování mssql-launchpadd

Spuštěním následujícího příkazu restartujte mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Registrace rozšíření jazyka

Pokud chcete stáhnout a zaregistrovat rozšíření jazyka Python, které se používá pro vlastní modul runtime Pythonu, postupujte podle těchto kroků.

  1. Stáhněte si souborpython-lang-extension-linux-release.zip z úložiště SQL Server Language Extensions na GitHubu.

    Alternativně můžete použít ladicí verzi (python-lang-extension-linux-debug.zip) ve vývojovém nebo testovacím prostředí. Ladicí verze poskytuje podrobný protokolovací výstup pro zkoumání chyb a nedoporučuje se pro produkční prostředí.

  2. Pomocí nástroje Azure Data Studio se připojte k instanci SQL Serveru a spuštěním následujícího příkazu T-SQL zaregistrujte rozšíření jazyka Python v jazyce CREATE EXTERNAL LANGUAGE.

    Upravte cestu v tomto příkazu tak, aby odrážela umístění staženého souboru ZIP s příponou jazyka (python-lang-extension-linux-release.zip).

    CREATE EXTERNAL LANGUAGE [myPython]
    FROM (CONTENT = N'/path/to/python-lang-extension-linux-release.zip', FILE_NAME = 'libPythonExtension.so.1.1');
    GO
    

    Spusťte příkaz pro každou databázi, ve které chcete použít rozšíření jazyka Python.

    Poznámka:

    Python je vyhrazené slovo a nejde ho použít jako název nového názvu externího jazyka. Místo toho použijte jiný název. Například výše uvedený příkaz používá myPython.

Povolení externích skriptů

Externí skripty Pythonu můžete provést pomocí uložené procedury sp_execute_external script.

Pokud chcete povolit externí skripty, spusťte následující příkaz pomocí nástroje Azure Data Studio .

sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;  

Ověření instalace

Pomocí následujícího skriptu SQL ověřte instalaci a funkčnost vlastního modulu runtime Pythonu. V následujícím ukázkovém skriptu se myPython používá jako název jazyka, protože výchozí název jazyka Python nelze pro vlastní runtime poskytnout.

EXEC sp_execute_external_script
@language =N'myPython',
@script=N'
import sys
print(sys.path)
print(sys.version)
print(sys.executable)'

Další kroky