Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к: SQL Server 2019 (15.x) и более поздние версии
Управляемый экземпляр SQL Azure
В этой статье описывается, как использовать функции из пакета sqlmlutils для установки новых пакетов Python на экземпляр Машинное обучение Services на SQL Server. Вы можете использовать пакеты, которые вы устанавливаете, в скриптах Python, выполняемых в базе данных с помощью инструкции T-SQL sp_execute_external_script.
В этой статье описывается использование функций из пакета sqlmlutils для установки новых пакетов Python в экземпляре Служб машинного обучения в Управляемом экземпляре SQL Azure. Вы можете использовать установленные вами пакеты в скриптах Python, выполняемых в базе данных с помощью инструкции T-SQL sp_execute_external_script.
Примечание.
Вы не можете обновлять или удалять пакеты, которые предустановлены на экземпляре Управляемый экземпляр SQL Машинное обучение Services. Чтобы посмотреть список установленных в настоящее время пакетов, см. раздел Список всех установленных пакетов Python.
Дополнительные сведения о расположении пакетов и путях установки см. в разделе Получение сведений о пакете Python.
Примечание.
Используйте пакет sqlmlutils, описанный в этой статье, чтобы добавить пакеты на Python в SQL Server 2019 или новее. Для SQL Server 2017 и более ранних версий обратитесь к разделу Установка пакетов с инструментами Python.
Предварительные требования
- Службы машинного обучения SQL Server установлены с поддержкой языка Python.
Python установлен на клиентском компьютере, который вы используете для подключения к SQL Server. Вы можете запускать скрипты из командной строки или использовать среду разработки на Python, например Visual Studio Code, с расширением Python.
Версия Python на клиентском компьютере должна совпадать с версией Python на сервере, а установленные вами пакеты должны быть совместимы с вашей версией Python. Сведения о том, какая версия Python устанавливается вместе с той или иной версией SQL Server, приведены в разделе Версии Python и R.
Чтобы проверить версию Python для конкретного экземпляра SQL Server, используйте следующую команду T-SQL.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) 'Расширение MSSQL для Visual Studio Code, установленное на клиентском компьютере, который вы используете для подключения к SQL Server. Вы можете использовать другие средства управления базами данных или запросов.
Другие вопросы
Библиотека пакетов Python находится в папке Program Files вашего экземпляра SQL Server. По умолчанию для установки в этой папке требуется права администратора. Дополнительные сведения см. в статье Расположение библиотеки пакетов.
Установка пакета зависит от экземпляра SQL, базы данных и пользователя, указанных в сведениях о подключении, которые вы укажете для sqlmlutils. Чтобы использовать пакет в нескольких экземплярах SQL или базах данных, либо для разных пользователей, установите пакет для каждого из них. Исключение — пакет, установленный в публичном доступе, который используется всеми пользователями. sqlmlutils по умолчанию выбирает общедоступную область действия только если подключение выполняется от имени участника роли сервера
sysadmin, а в противном случае — частную область действия. Чтобы выполнить установку в общей области от имени другого субъекта безопасности, передайтеscope=sqlmlutils.Scope.public_scope()параметруinstall, для чего требуется роль базы данныхdb_owner. Если пользователь устанавливает более новую версию публичного пакета, публичный пакет не затрагивается, но пользователь получает доступ к новой версии.Перед добавлением пакета определите, подходит ли этот пакет для среды SQL Server.
Используйте Python в базе данных для задач, которые выигрывают от тесной интеграции с движком базы данных, например, машинного обучения, а не для задач, которые просто выполняют запросы к базе данных.
Если добавлять пакеты, которые слишком сильно нагружают сервер, производительность снижается.
В усиленной среде SQL Server избегайте следующих типов пакетов:
- пакеты, которым требуется доступ к сети;
- пакеты, которым требуется доступ к файловой системе с повышенными правами;
- Пакеты, используемые для веб-разработки или других задач, которые не выигрывают от выполнения внутри SQL Server
Вы не можете установить Python-пакет tensorflow с помощью sqlmlutils. Дополнительные сведения и обходной путь см. в статье Известные проблемы служб машинного обучения SQL Server.
Установка пакета sqlmlutils на клиентском компьютере
Сначала пакет sqlmlutils необходимо установить на клиентском компьютере, который используется для подключения к SQL Server.
Установка пакета sqlmlutils в сетевом режиме
Если клиентский компьютер имеет доступ к интернету, установите sqlmlutils с помощью pip:
pip install sqlmlutils
Установка пакета sqlmlutils в автономном режиме
Если у клиентского компьютера нет доступа в интернет, установите sqlmlutils из скачанного файла:
Убедитесь, что у вас установлен PIP . Для получения дополнительной информации см. раздел Установка pip.
Скачайте последний файл sqlmlutils со страницы релизов sqlmlutils на клиентский компьютер. Не распаковывайте файл.
Откройте командную строку и выполните следующую команду для установки пакета sqlmlutils . Подставьте полный путь к скачанному файлу. В этом примере предполагается, что скачанный файл — это
c:\temp\sqlmlutils-1.0.0.zip.pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
Добавление пакета Python в SQL Server
Используя sqlmlutils, вы можете добавить пакеты Python в экземпляр SQL и затем использовать их в коде Python, который запускается в этом экземпляре. sqlmlutils использует CREATE EXTERNAL LIBRARY для установки пакета и всех его зависимостей.
Следующий пример добавляет пакет текстовых инструментов в SQL Server.
Добавление пакета в сетевом режиме
Если клиентский компьютер для подключения к SQL Server имеет доступ в интернет, вы можете использовать sqlmlutils, чтобы найти пакет текстовых инструментов и любые зависимости в интернете, а затем удалённо установить пакет на инстанс SQL Server.
На клиентском компьютере откройте Python или среду Python.
Для установки пакета text-tools используйте следующие команды. Замените сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры
uidиpwd).
На клиентском компьютере откройте Python или среду Python.
Для установки пакета text-tools используйте следующие команды. Подставьте собственные значения для подключения к базе данных SQL Server. Также передайте имя драйвера ODBC, установленного на клиентском компьютере, например
driver="ODBC Driver 18 for SQL Server", , потому что имя драйвера, используемое sqlmlutils по умолчанию, применяется только к Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Добавление пакета в автономном режиме
Если клиентский компьютер, с которого вы подключаетесь к SQL Server, не имеет интернет-соединения, используйте pip на компьютере, который есть, чтобы загрузить пакет в локальную папку. Затем вы копируете папку на клиентский компьютер и устанавливаете пакет офлайн.
Примечание.
Эта процедура работает для пакета без зависимостей.
SQLPackageManager.install() Разрешает зависимости от PyPI даже при передаче локального .whl файла, поэтому чтобы добавить пакет с зависимостями, используйте клиентский компьютер с выходом в интернет и следите за добавлением пакета онлайн.
На компьютере с доступом в интернет
Откройте командную строку и выполните следующую команду, чтобы создать локальную папку, содержащую пакет text-tools. В этом примере создается папка
c:\temp\text-tools.pip download text-tools -d c:\temp\text-toolsСкопируйте папку
text-toolsна клиентский компьютер. В следующем примере предполагается, что вы скопировали ее вc:\temp\packages\text-tools.
На клиентском компьютере
Используйте sqlmlutils для установки пакета (.whl файла), который pip скачал в локальную папку.
В этом примере текстовые инструменты не имеют зависимостей, поэтому папка text-tools содержит один файл.
Выполните следующий скрипт Python. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры uid и pwd).
Выполните следующий скрипт Python. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server. Также передайте имя драйвера ODBC, установленного на клиентском компьютере, напримерdriver="ODBC Driver 18 for SQL Server", , потому что имя драйвера, используемое sqlmlutils по умолчанию, применяется только к Windows.
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")
Используйте пакет
Теперь пакет можно использовать в скрипте Python в SQL Server. Например:
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)
'
Удаление пакета из SQL Server
Чтобы удалить пакет text-tools, выполните следующую команду Python на клиентском компьютере, используя ту же переменную соединения, которую вы определили ранее.
sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")
Дополнительные функции sqlmlutils
Пакет sqlmlutils содержит несколько функций для управления пакетами Python, а также для создания, управления и запуска сохранённых процедур и запросов в SQL Server. Дополнительные сведения см. в файле README для Python-пакета sqlmlutils.
Дополнительные сведения о любых функциях sqlmlutils можно получить с помощью функции справки Python. Например:
import sqlmlutils
help(sqlmlutils.SQLPackageManager.install)