Bagikan melalui


Menginstal runtime kustom Python untuk SQL Server

Berlaku untuk: SQL Server 2019 (15.x)

Pelajari cara menginstal runtime kustom Python untuk menjalankan skrip Python eksternal dengan SQL Server pada:

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

Runtime kustom dapat menjalankan skrip pembelajaran mesin dan menggunakan Ekstensi Bahasa SQL Server.

Gunakan versi runtime Python Anda sendiri dengan SQL Server, alih-alih versi runtime default yang diinstal dengan SQL Server Pembelajaran Mesin Services.

Dimulai dengan SQL Server 2022 (16.x), runtime untuk R, Python, dan Java, tidak lagi diinstal dengan Penyiapan SQL. Sebagai gantinya, instal runtime dan paket kustom Python yang Anda inginkan. Untuk informasi selengkapnya, lihat Menginstal SQL Server 2022 Pembelajaran Mesin Services (Python dan R) di Windows atau Menginstal SQL Server Pembelajaran Mesin Services (Python dan R) di Linux.

Prasyarat

Sebelum menginstal runtime kustom Python, instal:

Menginstal Ekstensi Bahasa

Catatan

Jika Anda telah menginstal Layanan Pembelajaran Mesin di SQL Server 2019, Ekstensi Bahasa sudah diinstal dan Anda dapat melewati langkah ini.

Ikuti langkah-langkah di bawah ini untuk menginstal Ekstensi Bahasa SQL Server, yang digunakan untuk runtime kustom Python.

  1. Mulai wizard penyetelan untuk SQL Server 2019.

  2. Pada tab Penginstalan , pilih Penginstalan mandiri SQL Server baru atau tambahkan fitur ke penginstalan yang sudah ada.

  3. Pada halaman Pilihan Fitur, pilih opsi ini:

    • Layanan Mesin Database

      Untuk menggunakan Ekstensi Bahasa dengan SQL Server, Anda harus menginstal instans mesin database. Anda dapat menggunakan instans baru atau yang sudah ada.

    • Layanan Pembelajaran Mesin dan Ekstensi Bahasa

      Pilih Layanan Pembelajaran Mesin dan Ekstensi Bahasa. Jangan pilih Python, karena Anda akan menginstal runtime Python kustom nanti.

      Penyiapan Ekstensi Bahasa SQL Server 2019.

  4. Pada halaman Siap Diinstal , verifikasi bahwa pilihan ini disertakan, dan pilih Instal.

    • Mengelola Database Engine Services
    • Layanan Pembelajaran Mesin dan Ekstensi Bahasa
  5. Setelah penyiapan selesai, hidupkan ulang komputer jika Anda diminta untuk melakukannya.

Penting

Jika Anda menginstal instans baru SQL Server 2019 dengan Ekstensi Bahasa, instal Pembaruan Kumulatif (CU) 3 atau yang lebih baru sebelum Anda melanjutkan ke langkah berikutnya.

Pasang Python

Ekstensi bahasa Python yang digunakan untuk runtime bahasa umum Python kustom saat ini hanya mendukung Python 3.7. Jika Anda ingin menggunakan versi Python yang berbeda, ikuti instruksi dalam repositori GitHub Ekstensi Bahasa Python untuk memodifikasi dan membangun ulang ekstensi.

  1. Unduh Python 3.7 untuk Windows dan jalankan Penyetelan di server.

  2. Pilih Tambahkan Python 3.7 ke PATH lalu pilih Kustomisasi penginstalan.

    Penginstalan Python 3.7 - Tambahkan Python 3.7 ke PATH

  3. Di bawah Fitur Opsional, biarkan default dan pilih Berikutnya.

  4. Pilih Instal untuk semua pengguna dan catat lokasi penginstalan.

    Penginstalan Python 3.7 - Instal untuk semua pengguna

  5. Pilih Instal.

Memasang panda

Instal paket panda untuk Python dari prompt perintah yang ditinggikan (Jalankan sebagai Administrator):

python.exe -m pip install pandas

Memberikan akses ke folder Python

Jalankan perintah icacls berikut dari prompt perintah baru yang ditingkatkan untuk memberikan akses READ & EXECUTE ke lokasi penginstalan Python ke SQL Server Launchpad Service dan SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES).

Contoh di bawah ini menggunakan lokasi penginstalan Python sebagai C:\Program Files\Python37. Jika lokasi Anda berbeda, ubah di perintah .

  1. Berikan izin ke nama pengguna SQL Server Launchpad Service.

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

    Untuk instans bernama, perintahnya adalah icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T untuk instans yang disebut SQL01.

  2. Berikan izin ke SID S-1-15-2-1.

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

    Perintah sebelumnya memberikan izin ke komputer SID S-1-15-2-1, yang setara dengan SEMUA PAKET APLIKASI pada Windows versi bahasa Inggris. Atau, Anda dapat menggunakan icacls "C:\Program Files\Python37" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T windows versi bahasa Inggris.

Mulai ulang Launchpad SQL Server

Ikuti langkah-langkah ini untuk memulai ulang layanan Launchpad SQL Server.

  1. Buka Pengelola Konfigurasi SQL Server.

  2. Di bawah SQL Server Services, klik kanan pada SQL Server Launchpad (MSSQLSERVER) dan pilih Mulai Ulang. Jika Anda menggunakan instans bernama, nama instans akan ditampilkan alih-alih (MSSQLSERVER).

Mendaftarkan ekstensi bahasa

Ikuti langkah-langkah ini untuk mengunduh dan mendaftarkan ekstensi bahasa Python, yang digunakan untuk runtime kustom Python.

  1. Unduh file python-lang-extension-windows-release.zip dari repositori GitHub Ekstensi Bahasa SQL Server.

    Atau, Anda dapat menggunakan versi debug (python-lang-extension-windows-debug.zip) di lingkungan pengembangan atau pengujian. Versi debug menyediakan informasi pengelogan verbose untuk menyelidiki kesalahan apa pun, dan tidak disarankan untuk lingkungan produksi.

  2. Gunakan Azure Data Studio untuk menyambungkan ke instans SQL Server Anda dan jalankan perintah T-SQL berikut untuk mendaftarkan ekstensi bahasa Python dengan CREATE EXTERNAL LANGUAGE.

    Ubah jalur dalam pernyataan ini untuk mencerminkan lokasi file zip ekstensi bahasa yang diunduh (python-lang-extension-windows-release.zip) dan lokasi penginstalan Python Anda (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
    

    Jalankan pernyataan untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa Python.

    Catatan

    Python adalah kata yang dicadangkan dan tidak dapat digunakan sebagai nama untuk nama bahasa eksternal baru. Gunakan nama yang berbeda sebagai gantinya. Misalnya, pernyataan di atas menggunakan myPython.

Prasyarat

Sebelum menginstal runtime Python kustom, instal prasyarat berikut:

Menginstal Ekstensi Bahasa

Catatan

Jika Anda memiliki Layanan Pembelajaran Mesin yang terinstal di SQL Server 2019, paket mssql-server-extensibility untuk Ekstensi Bahasa sudah diinstal dan Anda dapat melewati langkah ini.

Jalankan perintah di bawah ini untuk menginstal Ekstensi Bahasa SQL Server di Ubuntu Linux, yang digunakan untuk runtime kustom Python.

  1. Jika memungkinkan, jalankan perintah ini untuk menyegarkan paket pada sistem sebelum penginstalan.

    # Install as root or sudo
    sudo apt-get update
    
  2. Ubuntu mungkin tidak memiliki opsi transportasi apt https. Untuk menginstalnya, jalankan perintah ini.

    # Install as root or sudo
    apt-get install apt-transport-https
    
  3. Instal mssql-server-extensibility dengan perintah ini.

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

Instal Python 3.7 dan pandas

Ekstensi bahasa Python yang digunakan untuk runtime bahasa umum Python kustom saat ini hanya mendukung Python 3.7 . Jika Anda ingin menggunakan versi Python yang berbeda, ikuti instruksi dalam repositori GitHub Ekstensi Bahasa Python untuk memodifikasi dan membangun ulang ekstensi.

  1. Jalankan perintah di bawah ini untuk menginstal 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. Jalankan perintah di bawah ini untuk menginstal paket panda

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

Penginstalan kustom Python

Catatan

Jika Anda telah menginstal Python 3.7 di lokasi /usr/lib/python3.7default , Anda dapat melewati bagian ini dan melanjutkan ke bagian Daftarkan ekstensi bahasa.

Jika Anda membuat versi Python 3.7 Anda sendiri, gunakan perintah berikut untuk memungkinkan SQL Server mengetahui penginstalan kustom Anda.

Menambahkan variabel lingkungan

Pertama, edit layanan mssql-launchpadd untuk menambahkan variabel lingkungan PYTHONHOME ke file /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Buka file dengan systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Sisipkan teks berikut dalam /etc/systemd/system/mssql-launchpadd.service.d/override.conf file yang terbuka. Atur nilai PYTHONHOME ke jalur penginstalan Python kustom.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Simpan file dan tutup editor.

Selanjutnya, pastikan libpython3.7m.so.1.0 dapat dimuat.

  1. Buat file custom-python.conf di /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Dalam file yang terbuka, tambahkan jalur ke libpython3.7m.so.1.0 dari penginstalan Python kustom.

    <path to the python3.7 lib>
    
  3. Simpan file baru dan tutup editor.

  4. Jalankan ldconfig dan verifikasi libpython3.7m.so.1.0 dapat dimuat dengan menjalankan perintah berikut dan memeriksa apakah semua pustaka dependen dapat ditemukan.

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

Memberikan akses ke folder Python

Atur datadirectories opsi di bagian /var/opt/mssql/mssql.conf ekstensibilitas file ke penginstalan python kustom.

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

Mulai ulang mssql-launchpadd

Jalankan perintah berikut untuk memulai ulang mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Mendaftarkan ekstensi bahasa

Ikuti langkah-langkah ini untuk mengunduh dan mendaftarkan ekstensi bahasa Python, yang digunakan untuk runtime kustom Python.

  1. Unduh file python-lang-extension-linux-release.zip dari repositori GitHub Ekstensi Bahasa SQL Server.

    Atau, Anda dapat menggunakan versi debug (python-lang-extension-linux-debug.zip) di lingkungan pengembangan atau pengujian. Versi debug menyediakan informasi pengelogan verbose untuk menyelidiki kesalahan apa pun, dan tidak disarankan untuk lingkungan produksi.

  2. Gunakan Azure Data Studio untuk menyambungkan ke instans SQL Server Anda dan jalankan perintah T-SQL berikut untuk mendaftarkan ekstensi bahasa Python dengan CREATE EXTERNAL LANGUAGE.

    Ubah jalur dalam pernyataan ini untuk mencerminkan lokasi file zip ekstensi bahasa yang diunduh (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
    

    Jalankan pernyataan untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa Python.

    Catatan

    Python adalah kata yang dicadangkan dan tidak dapat digunakan sebagai nama untuk nama bahasa eksternal baru. Gunakan nama yang berbeda sebagai gantinya. Misalnya, pernyataan di atas menggunakan myPython.

Prasyarat

Sebelum menginstal runtime Python kustom, instal prasyarat berikut:

Menginstal Ekstensi Bahasa

Catatan

Jika Anda memiliki Layanan Pembelajaran Mesin yang terinstal di SQL Server 2019, paket mssql-server-extensibility untuk Ekstensi Bahasa sudah diinstal dan Anda dapat melewati langkah ini.

Jalankan perintah di bawah ini untuk menginstal Ekstensi Bahasa SQL Server di Red Hat Enterprise Linux (RHEL), yang digunakan untuk runtime kustom Python.

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

Instal Python 3.7 dan pandas

Ekstensi bahasa Python yang digunakan untuk runtime bahasa umum Python kustom saat ini hanya mendukung Python 3.7 . Jika Anda ingin menggunakan versi Python yang berbeda, ikuti instruksi dalam repositori GitHub Ekstensi Bahasa Python untuk memodifikasi dan membangun ulang ekstensi.

  1. Jalankan perintah di bawah ini untuk menginstal 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. Jalankan perintah di bawah ini untuk menginstal paket panda

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

Penginstalan kustom Python

Catatan

Jika Anda telah menginstal Python 3.7 di lokasi /usr/lib/python3.7default , Anda dapat melewati bagian ini dan melanjutkan ke bagian Daftarkan ekstensi bahasa.

Jika Anda membuat versi Python 3.7 Anda sendiri, gunakan perintah berikut untuk memungkinkan SQL Server mengetahui penginstalan kustom Anda.

Menambahkan variabel lingkungan

Pertama, edit layanan mssql-launchpadd untuk menambahkan variabel lingkungan PYTHONHOME ke file /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Buka file dengan systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Sisipkan teks berikut dalam /etc/systemd/system/mssql-launchpadd.service.d/override.conf file yang terbuka. Atur nilai PYTHONHOME ke jalur penginstalan Python kustom.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Simpan file dan tutup editor.

Selanjutnya, pastikan libpython3.7m.so.1.0 dapat dimuat.

  1. Buat file custom-python.conf di /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Dalam file yang terbuka, tambahkan jalur ke libpython3.7m.so.1.0 dari penginstalan Python kustom.

    <path to the python3.7 lib>
    
  3. Simpan file baru dan tutup editor.

  4. Jalankan ldconfig dan verifikasi libpython3.7m.so.1.0 dapat dimuat dengan menjalankan perintah berikut dan memeriksa apakah semua pustaka dependen dapat ditemukan.

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

Memberikan akses ke folder Python

Atur datadirectories opsi di bagian /var/opt/mssql/mssql.conf ekstensibilitas file ke penginstalan python kustom.

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

Mulai ulang mssql-launchpadd

Jalankan perintah berikut untuk memulai ulang mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Mendaftarkan ekstensi bahasa

Ikuti langkah-langkah ini untuk mengunduh dan mendaftarkan ekstensi bahasa Python, yang digunakan untuk runtime kustom Python.

  1. Unduh file python-lang-extension-linux-release.zip dari repositori GitHub Ekstensi Bahasa SQL Server.

    Atau, Anda dapat menggunakan versi debug (python-lang-extension-linux-debug.zip) di lingkungan pengembangan atau pengujian. Versi debug menyediakan informasi pengelogan verbose untuk menyelidiki kesalahan apa pun, dan tidak disarankan untuk lingkungan produksi.

  2. Gunakan Azure Data Studio untuk menyambungkan ke instans SQL Server Anda dan jalankan perintah T-SQL berikut untuk mendaftarkan ekstensi bahasa Python dengan CREATE EXTERNAL LANGUAGE.

    Ubah jalur dalam pernyataan ini untuk mencerminkan lokasi file zip ekstensi bahasa yang diunduh (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
    

    Jalankan pernyataan untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa Python.

    Catatan

    Python adalah kata yang dicadangkan dan tidak dapat digunakan sebagai nama untuk nama bahasa eksternal baru. Gunakan nama yang berbeda sebagai gantinya. Misalnya, pernyataan di atas menggunakan myPython.

Prasyarat

Sebelum menginstal runtime Python kustom, instal prasyarat berikut:

Menginstal Ekstensi Bahasa

Catatan

Jika Anda memiliki Layanan Pembelajaran Mesin yang terinstal di SQL Server 2019, paket mssql-server-extensibility untuk Ekstensi Bahasa sudah diinstal dan Anda dapat melewati langkah ini.

Jalankan perintah di bawah ini untuk menginstal Ekstensi Bahasa SQL Server di SUSE Linux Enterprise Server (SLES), yang digunakan untuk runtime kustom Python.

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

Instal Python 3.7 dan pandas

Ekstensi bahasa Python yang digunakan untuk runtime bahasa umum Python kustom saat ini hanya mendukung Python 3.7 . Jika Anda ingin menggunakan versi Python yang berbeda, ikuti instruksi dalam repositori GitHub Ekstensi Bahasa Python untuk memodifikasi dan membangun ulang ekstensi.

  1. Instal Python 3.7 di server.

  2. Jalankan perintah di bawah ini untuk menginstal paket panda

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

Penginstalan kustom Python

Catatan

Jika Anda telah menginstal Python 3.7 di lokasi /usr/lib/python3.7default , Anda dapat melewati bagian ini dan melanjutkan ke bagian Daftarkan ekstensi bahasa.

Jika Anda membuat versi Python 3.7 Anda sendiri, gunakan perintah berikut untuk memungkinkan SQL Server mengetahui penginstalan kustom Anda.

Menambahkan variabel lingkungan

Pertama, edit layanan mssql-launchpadd untuk menambahkan variabel lingkungan PYTHONHOME ke file /etc/systemd/system/mssql-launchpadd.service.d/override.conf

  1. Buka file dengan systemctl

    sudo systemctl edit mssql-launchpadd
    
  2. Sisipkan teks berikut dalam /etc/systemd/system/mssql-launchpadd.service.d/override.conf file yang terbuka. Atur nilai PYTHONHOME ke jalur penginstalan Python kustom.

    [Service]
    Environment="PYTHONHOME=<path to the python3.7 lib>"
    
  3. Simpan file dan tutup editor.

Selanjutnya, pastikan libpython3.7m.so.1.0 dapat dimuat.

  1. Buat file custom-python.conf di /etc/ld.so.conf.d.

    sudo vi /etc/ld.so.conf.d/custom-python.conf
    
  2. Dalam file yang terbuka, tambahkan jalur ke libpython3.7m.so.1.0 dari penginstalan Python kustom.

    <path to the python3.7 lib>
    
  3. Simpan file baru dan tutup editor.

  4. Jalankan ldconfig dan verifikasi libpython3.7m.so.1.0 dapat dimuat dengan menjalankan perintah berikut dan memeriksa apakah semua pustaka dependen dapat ditemukan.

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

Memberikan akses ke folder Python

Atur datadirectories opsi di bagian /var/opt/mssql/mssql.conf ekstensibilitas file ke penginstalan python kustom.

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

Mulai ulang mssql-launchpadd

Jalankan perintah berikut untuk memulai ulang mssql-launchpadd.

sudo systemctl restart mssql-launchpadd

Mendaftarkan ekstensi bahasa

Ikuti langkah-langkah ini untuk mengunduh dan mendaftarkan ekstensi bahasa Python, yang digunakan untuk runtime kustom Python.

  1. Unduh file python-lang-extension-linux-release.zip dari repositori GitHub Ekstensi Bahasa SQL Server.

    Atau, Anda dapat menggunakan versi debug (python-lang-extension-linux-debug.zip) di lingkungan pengembangan atau pengujian. Versi debug menyediakan informasi pengelogan verbose untuk menyelidiki kesalahan apa pun, dan tidak disarankan untuk lingkungan produksi.

  2. Gunakan Azure Data Studio untuk menyambungkan ke instans SQL Server Anda dan jalankan perintah T-SQL berikut untuk mendaftarkan ekstensi bahasa Python dengan CREATE EXTERNAL LANGUAGE.

    Ubah jalur dalam pernyataan ini untuk mencerminkan lokasi file zip ekstensi bahasa yang diunduh (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
    

    Jalankan pernyataan untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa Python.

    Catatan

    Python adalah kata yang dicadangkan dan tidak dapat digunakan sebagai nama untuk nama bahasa eksternal baru. Gunakan nama yang berbeda sebagai gantinya. Misalnya, pernyataan di atas menggunakan myPython.

Mengaktifkan skrip eksternal

Anda dapat menjalankan skrip eksternal Python dengan prosedur tersimpan sp_execute_external skrip.

Untuk mengaktifkan skrip eksternal, gunakan Azure Data Studio untuk menjalankan pernyataan di bawah ini.

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

Verifikasi penginstalan

Gunakan skrip SQL berikut untuk memverifikasi penginstalan dan fungsionalitas runtime kustom Python. Dalam contoh skrip di bawah ini, myPython digunakan sebagai nama bahasa karena nama Python bahasa default tidak dapat disediakan untuk runtime kustom.

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

Langkah berikutnya