Установка настраиваемой среды выполнения Python для SQL Server
Область применения: SQL Server 2019 (15.x)
Узнайте, как установить настраиваемую среду выполнения Python для запуска внешних скриптов Python в SQL Server.
- Windows
- Ubuntu Linux
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
Настраиваемая среда выполнения позволяет выполнять скрипты машинного обучения и использует расширения языка SQL Server.
Используйте для SQL Server собственную версию среды выполнения Python, а не версию среды выполнения по умолчанию, устанавливаемую вместе со Службами машинного обучения SQL Server.
Начиная с SQL Server 2022 (16.x), среды выполнения для R, Python и Java больше не устанавливаются с помощью программы установки SQL. Желаемые пользовательские среды и пакеты Python необходимо устанавливать самостоятельно. Дополнительные сведения см. в разделе Установка Служб машинного обучения SQL Server 2022 (Python и R) в Windows или Установка Служб машинного обучения SQL Server (Python и R) в Linux.
Необходимые компоненты
Перед установкой настраиваемой среды выполнения Python установите указанные ниже компоненты.
- Если вы используете существующий экземпляр SQL Server, установите накопительный пакет обновления (CU) 3 или более поздней версии для SQL Server 2019.
Установка расширений языка
Примечание.
Если в SQL Server 2019 установлены Службы машинного обучения, значит, расширения языка уже установлены и этот шаг можно пропустить.
Выполните описанные ниже действия, чтобы установить расширения языка SQL Server, которые используются для настраиваемой среды выполнения Python.
Запустите мастер установки SQL Server 2019.
На вкладке Установка выберите параметр Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке.
На странице Выбор компонентов выберите следующие компоненты:
Службы ядра СУБД
Чтобы использовать расширения языка с SQL Server, необходимо установить экземпляр ядра СУБД. Можно использовать новый или уже существующий экземпляр.
Службы машинного обучения и расширения языка
Выберите Службы машинного обучения и расширения языка. Не выбирайте Python, так как настраиваемую среду выполнения Python вы установите позже.
На странице Все готово для установки проверьте, включены ли указанные ниже компоненты, и нажмите Установить.
- Службы ядра СУБД
- Службы машинного обучения и расширения языка
Когда установка завершится, перезагрузите компьютер, если появится соответствующее предложение.
Внимание
Если вы устанавливаете новый экземпляр SQL Server 2019 с расширениями языка, обязательно установите накопительный пакет обновления 3 или более поздней версии, прежде чем перейти к следующему шагу.
установите Python;
Расширение языка Python, используемое для настраиваемой среды выполнения Python, сейчас поддерживает только Python 3.7. Если вы хотите использовать другую версию Python, выполните инструкции из репозитория расширения языка Python, чтобы изменить и скомпилировать расширение.
Скачайте Python 3.7 для Windows и запустите программу установки на сервере.
Выберите Добавить Python 3.7 в переменную PATH, а затем выберите Настроить установку.
В разделе Дополнительные компоненты оставьте значения по умолчанию и нажмите кнопку Далее.
Выберите параметр Установить для всех пользователей и запишите место установки.
Выберите Установить.
Установка Pandas
Установите пакет pandas для Python из командной строки с повышенными привилегиями (запуск от имени администратора):
python.exe -m pip install pandas
Предоставление доступа к папке Python
Выполните приведенные ниже команды icacls из нового окна командной строки с повышенными привилегиями, чтобы предоставить разрешения на доступ для чтения и выполнения к папке установки Python для службы "Панель запуска SQL Server" и идентификатора безопасности S-1-15-2-1 (ALL_APPLICATION_PACKAGES).
В приведенных ниже примерах используется расположение установки Python C:\Program Files\Python37
. Если у вас другое расположение, измените его в команде.
Предоставьте разрешения имени пользователя службы панели запуска SQL Server.
icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
Для именованного экземпляра с именем SQL01 используется команда
icacls "C:\Program Files\Python37" /grant "NT Service\MSSQLLAUNCHPAD$SQL01":(OI)(CI)RX /T
.Предоставьте разрешения идентификатору безопасности S-1-15-2-1.
icacls "C:\Program Files\Python37" /grant *S-1-15-2-1:(OI)(CI)RX /T
Приведенная выше команда предоставляет разрешения идентификатору безопасности компьютера S-1-15-2-1, что эквивалентно разрешению ALL APPLICATION PACKAGES (Все пакеты приложений) в английской версии Windows. Кроме того, можно использовать
icacls "C:\Program Files\Python37" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T
в английской версии Windows.
Перезапуск панели запуска SQL Server
Выполните описанные ниже действия, чтобы перезапустить службу "Панель запуска SQL Server".
Откройте Диспетчер конфигурации SQL Server.
В разделе "Службы SQL Server" щелкните правой кнопкой мыши панель запуска SQL Server (MSSQLSERVER) и выберите "Перезапустить". Если используется именованный экземпляр, вместо (MSSQLSERVER) будет отображаться имя этого экземпляра.
Регистрация расширения языка
Выполните описанные ниже действия, чтобы скачать и зарегистрировать расширение языка Python, которое используется для настраиваемой среды выполнения Python.
Скачайте файл python-lang-extension-windows-release.zip из репозитория GitHub для расширений языка SQL Server.
Для среды разработки или тестирования также можно использовать отладочную версию (python-lang-extension-windows-debug.zip). Отладочная версия сохраняет в журнал подробные сведения, которые помогают изучать ошибки, и не рекомендуется для рабочих сред.
С помощью Azure Data Studio подключитесь к экземпляру SQL Server и выполните приведенную ниже команду T-SQL, чтобы зарегистрировать расширение языка Python с помощью инструкции CREATE EXTERNAL LANGUAGE.
Измените путь в этой инструкции таким образом, чтобы он указывал расположение скачанного ZIP-файла с расширением языка (python-lang-extension-windows-release.zip) и место установки Python (
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
Выполните эту инструкцию для каждой базы данных, в которой вы намерены использовать расширение языка Python.
Примечание.
Python является зарезервированным словом, то есть вы не сможете указать такое имя для нового внешнего языка. Выберите другое имя. Например, в приведенной выше инструкции это имя myPython.
Необходимые компоненты
Перед установкой настраиваемой среды выполнения Python установите указанные ниже компоненты.
Установите SQL Server 2019 для Linux. Вы можете установить SQL Server на платформах Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) и Ubuntu. Дополнительные сведения см. в статье Руководство по установке SQL Server на Linux.
Перейдите на накопительное обновление 3 или более поздней версии для SQL Server 2019. Выполните следующие действия:
Настройте репозитории для накопительных обновлений. Дополнительные сведения см. в статье Настройка репозиториев для установки и обновления SQL Server на Linux.
Обновите пакет mssql-server до последнего накопительного обновления. Дополнительные сведения см. в разделе об обновлении SQL Server в руководстве по установке SQL Server на Linux.
Установка расширений языка
Примечание.
Если в SQL Server 2019 установлены Службы машинного обучения, значит, пакет mssql-server-extensibility для расширений языка уже установлен и этот шаг можно пропустить.
Выполните приведенные ниже команды, чтобы установить расширения языка SQL Server для Ubuntu Linux, которые используются в настраиваемой среде выполнения Python.
Если возможно, перед установкой выполните эту команду для обновления пакетов в системе.
# Install as root or sudo sudo apt-get update
Ubuntu может не иметь параметр https apt transport. Чтобы установить его, выполните приведенную ниже команду.
# Install as root or sudo apt-get install apt-transport-https
Установите mssql-server-extensibility с помощью этой команды.
# Install as root or sudo sudo apt-get install mssql-server-extensibility
Установка Python 3.7 и Pandas
Расширение языка Python, используемое для настраиваемой среды выполнения Python, сейчас поддерживает только Python 3.7. Если вы хотите использовать другую версию Python, выполните инструкции из репозитория расширения языка Python, чтобы изменить и скомпилировать расширение.
Чтобы установить 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
Чтобы установить пакет pandas, выполните приведенную ниже команду.
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Настраиваемая установка Python
Примечание.
Если вы установили Python 3.7 в расположение /usr/lib/python3.7
по умолчанию, этот раздел можно пропустить и сразу перейти к разделу Регистрация расширения языка.
Если вы скомпилировали собственную версию Python 3.7, выполните приведенные ниже команды, чтобы сообщить SQL Server о настраиваемой установке.
Добавление переменной среды
Измените службу mssql-launchpadd, добавив переменную среды PYTHONHOME в файл /etc/systemd/system/mssql-launchpadd.service.d/override.conf
.
Откройте файл с помощью systemctl.
sudo systemctl edit mssql-launchpadd
Вставьте следующий текст в открывающийся файл
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
. Установите значение параметра PYTHONHOME в соответствии с путем установки настраиваемой версии Python.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Сохраните файл и закройте редактор.
Убедитесь, что удается загрузить libpython3.7m.so.1.0
.
Создайте файл custom-python.conf в
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
В открывшийся файл добавьте путь к libpython3.7m.so.1.0 из настраиваемой установки Python.
<path to the python3.7 lib>
Сохраните новый файл и закройте редактор.
Запустите
ldconfig
и убедитесь, что можно загрузитьlibpython3.7m.so.1.0
, выполнив следующую команду и проверив наличие всех зависимых библиотек.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Предоставление доступа к папке Python
Присвойте параметру datadirectories
в разделе "Расширяемость" файла /var/opt/mssql/mssql.conf
значение настраиваемой установки Python.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Перезапуск службы mssql-launchpadd
Чтобы перезапустить службу mssql-launchpadd, выполните приведенную ниже команду.
sudo systemctl restart mssql-launchpadd
Регистрация расширения языка
Выполните описанные ниже действия, чтобы скачать и зарегистрировать расширение языка Python, которое используется для настраиваемой среды выполнения Python.
Скачайте файл python-lang-extension-linux-release.zip из репозитория GitHub для расширений языка SQL Server.
Для среды разработки или тестирования также можно использовать отладочную версию (python-lang-extension-linux-debug.zip). Отладочная версия сохраняет в журнал подробные сведения, которые помогают изучать ошибки, и не рекомендуется для рабочих сред.
С помощью Azure Data Studio подключитесь к экземпляру SQL Server и выполните приведенную ниже команду T-SQL, чтобы зарегистрировать расширение языка Python с помощью инструкции CREATE EXTERNAL LANGUAGE.
Измените путь в этой инструкции таким образом, чтобы он указывал расположение скачанного ZIP-файла с расширением языка (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
Выполните эту инструкцию для каждой базы данных, в которой вы намерены использовать расширение языка Python.
Примечание.
Python является зарезервированным словом, то есть вы не сможете указать такое имя для нового внешнего языка. Выберите другое имя. Например, в приведенной выше инструкции это имя myPython.
Необходимые компоненты
Перед установкой настраиваемой среды выполнения Python установите указанные ниже компоненты.
Установите SQL Server 2019 для Linux. Вы можете установить SQL Server на платформах Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) и Ubuntu. Дополнительные сведения см. в статье Руководство по установке SQL Server на Linux.
Перейдите на накопительное обновление 3 или более поздней версии для SQL Server 2019. Выполните следующие действия:
Настройте репозитории для накопительных обновлений. Дополнительные сведения см. в статье Настройка репозиториев для установки и обновления SQL Server на Linux.
Обновите пакет mssql-server до последнего накопительного обновления. Дополнительные сведения см. в разделе об обновлении SQL Server в руководстве по установке SQL Server на Linux.
Установка расширений языка
Примечание.
Если в SQL Server 2019 установлены Службы машинного обучения, значит, пакет mssql-server-extensibility для расширений языка уже установлен и этот шаг можно пропустить.
Выполните приведенную ниже команду, чтобы установить расширения языка SQL Server для Red Hat Enterprise Linux (RHEL), которые используются в настраиваемой среде выполнения Python.
# Install as root or sudo
sudo yum install mssql-server-extensibility
Установка Python 3.7 и Pandas
Расширение языка Python, используемое для настраиваемой среды выполнения Python, сейчас поддерживает только Python 3.7. Если вы хотите использовать другую версию Python, выполните инструкции из репозитория расширения языка Python, чтобы изменить и скомпилировать расширение.
Чтобы установить 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
Чтобы установить пакет pandas, выполните приведенную ниже команду.
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Настраиваемая установка Python
Примечание.
Если вы установили Python 3.7 в расположение /usr/lib/python3.7
по умолчанию, этот раздел можно пропустить и сразу перейти к разделу Регистрация расширения языка.
Если вы скомпилировали собственную версию Python 3.7, выполните приведенные ниже команды, чтобы сообщить SQL Server о настраиваемой установке.
Добавление переменной среды
Измените службу mssql-launchpadd, добавив переменную среды PYTHONHOME в файл /etc/systemd/system/mssql-launchpadd.service.d/override.conf
.
Откройте файл с помощью systemctl.
sudo systemctl edit mssql-launchpadd
Вставьте следующий текст в открывающийся файл
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
. Установите значение параметра PYTHONHOME в соответствии с путем установки настраиваемой версии Python.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Сохраните файл и закройте редактор.
Убедитесь, что удается загрузить libpython3.7m.so.1.0
.
Создайте файл custom-python.conf в
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
В открывшийся файл добавьте путь к libpython3.7m.so.1.0 из настраиваемой установки Python.
<path to the python3.7 lib>
Сохраните новый файл и закройте редактор.
Запустите
ldconfig
и убедитесь, что можно загрузитьlibpython3.7m.so.1.0
, выполнив следующую команду и проверив наличие всех зависимых библиотек.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Предоставление доступа к папке Python
Присвойте параметру datadirectories
в разделе "Расширяемость" файла /var/opt/mssql/mssql.conf
значение настраиваемой установки Python.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Перезапуск службы mssql-launchpadd
Чтобы перезапустить службу mssql-launchpadd, выполните приведенную ниже команду.
sudo systemctl restart mssql-launchpadd
Регистрация расширения языка
Выполните описанные ниже действия, чтобы скачать и зарегистрировать расширение языка Python, которое используется для настраиваемой среды выполнения Python.
Скачайте файл python-lang-extension-linux-release.zip из репозитория GitHub для расширений языка SQL Server.
Для среды разработки или тестирования также можно использовать отладочную версию (python-lang-extension-linux-debug.zip). Отладочная версия сохраняет в журнал подробные сведения, которые помогают изучать ошибки, и не рекомендуется для рабочих сред.
С помощью Azure Data Studio подключитесь к экземпляру SQL Server и выполните приведенную ниже команду T-SQL, чтобы зарегистрировать расширение языка Python с помощью инструкции CREATE EXTERNAL LANGUAGE.
Измените путь в этой инструкции таким образом, чтобы он указывал расположение скачанного ZIP-файла с расширением языка (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
Выполните эту инструкцию для каждой базы данных, в которой вы намерены использовать расширение языка Python.
Примечание.
Python является зарезервированным словом, то есть вы не сможете указать такое имя для нового внешнего языка. Выберите другое имя. Например, в приведенной выше инструкции это имя myPython.
Необходимые компоненты
Перед установкой настраиваемой среды выполнения Python установите указанные ниже компоненты.
Установите SQL Server 2019 для Linux. Вы можете установить SQL Server на платформах Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) и Ubuntu. Дополнительные сведения см. в статье Руководство по установке SQL Server на Linux.
Перейдите на накопительное обновление 3 или более поздней версии для SQL Server 2019. Выполните следующие действия:
Настройте репозитории для накопительных обновлений. Дополнительные сведения см. в статье Настройка репозиториев для установки и обновления SQL Server на Linux.
Обновите пакет mssql-server до последнего накопительного обновления. Дополнительные сведения см. в разделе об обновлении SQL Server в руководстве по установке SQL Server на Linux.
Установка расширений языка
Примечание.
Если в SQL Server 2019 установлены Службы машинного обучения, значит, пакет mssql-server-extensibility для расширений языка уже установлен и этот шаг можно пропустить.
Выполните приведенную ниже команду, чтобы установить расширения языка SQL Server для SUSE Linux Enterprise Server (SLES), которые используются в настраиваемой среде выполнения Python.
# Install as root or sudo
sudo zypper install mssql-server-extensibility
Установка Python 3.7 и Pandas
Расширение языка Python, используемое для настраиваемой среды выполнения Python, сейчас поддерживает только Python 3.7. Если вы хотите использовать другую версию Python, выполните инструкции из репозитория расширения языка Python, чтобы изменить и скомпилировать расширение.
Установите на сервере Python 3.7.
Чтобы установить пакет pandas, выполните приведенную ниже команду.
# Install pandas to /usr/lib: sudo python3.7 -m pip install pandas -t /usr/lib/python3.7/dist-packages
Настраиваемая установка Python
Примечание.
Если вы установили Python 3.7 в расположение /usr/lib/python3.7
по умолчанию, этот раздел можно пропустить и сразу перейти к разделу Регистрация расширения языка.
Если вы скомпилировали собственную версию Python 3.7, выполните приведенные ниже команды, чтобы сообщить SQL Server о настраиваемой установке.
Добавление переменной среды
Измените службу mssql-launchpadd, добавив переменную среды PYTHONHOME в файл /etc/systemd/system/mssql-launchpadd.service.d/override.conf
.
Откройте файл с помощью systemctl.
sudo systemctl edit mssql-launchpadd
Вставьте следующий текст в открывающийся файл
/etc/systemd/system/mssql-launchpadd.service.d/override.conf
. Установите значение параметра PYTHONHOME в соответствии с путем установки настраиваемой версии Python.[Service] Environment="PYTHONHOME=<path to the python3.7 lib>"
Сохраните файл и закройте редактор.
Убедитесь, что удается загрузить libpython3.7m.so.1.0
.
Создайте файл custom-python.conf в
/etc/ld.so.conf.d
.sudo vi /etc/ld.so.conf.d/custom-python.conf
В открывшийся файл добавьте путь к libpython3.7m.so.1.0 из настраиваемой установки Python.
<path to the python3.7 lib>
Сохраните новый файл и закройте редактор.
Запустите
ldconfig
и убедитесь, что можно загрузитьlibpython3.7m.so.1.0
, выполнив следующую команду и проверив наличие всех зависимых библиотек.sudo ldconfig ldd <path to the python3.7 lib>/libpython3.7m.so.1.0
Предоставление доступа к папке Python
Присвойте параметру datadirectories
в разделе "Расширяемость" файла /var/opt/mssql/mssql.conf
значение настраиваемой установки Python.
sudo /opt/mssql/bin/mssql-conf set extensibility.datadirectories <path to python3.7>
Перезапуск службы mssql-launchpadd
Чтобы перезапустить службу mssql-launchpadd, выполните приведенную ниже команду.
sudo systemctl restart mssql-launchpadd
Регистрация расширения языка
Выполните описанные ниже действия, чтобы скачать и зарегистрировать расширение языка Python, которое используется для настраиваемой среды выполнения Python.
Скачайте файл python-lang-extension-linux-release.zip из репозитория GitHub для расширений языка SQL Server.
Для среды разработки или тестирования также можно использовать отладочную версию (python-lang-extension-linux-debug.zip). Отладочная версия сохраняет в журнал подробные сведения, которые помогают изучать ошибки, и не рекомендуется для рабочих сред.
С помощью Azure Data Studio подключитесь к экземпляру SQL Server и выполните приведенную ниже команду T-SQL, чтобы зарегистрировать расширение языка Python с помощью инструкции CREATE EXTERNAL LANGUAGE.
Измените путь в этой инструкции таким образом, чтобы он указывал расположение скачанного ZIP-файла с расширением языка (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
Выполните эту инструкцию для каждой базы данных, в которой вы намерены использовать расширение языка Python.
Примечание.
Python является зарезервированным словом, то есть вы не сможете указать такое имя для нового внешнего языка. Выберите другое имя. Например, в приведенной выше инструкции это имя myPython.
Включение внешних скриптов
Вы можете выполнять внешние скрипты Python с помощью хранимой процедуры sp_execute_external script.
Чтобы включить внешние скрипты, выполните с помощью Azure Data Studio приведенную ниже инструкцию.
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
Проверка установки
Используйте приведенный ниже скрипт SQL для проверки установки и функций настраиваемой среды выполнения Python. В приведенном ниже примере скрипта используется в качестве имени языка, myPython
так как имя Python
языка по умолчанию не может быть предоставлено для пользовательской среды выполнения.
EXEC sp_execute_external_script
@language =N'myPython',
@script=N'
import sys
print(sys.path)
print(sys.version)
print(sys.executable)'