Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: SQL Server 2019 (15.x) и более поздние версии
Azure SQL Managed Instance
В этой статье описывается использование функций из пакета sqlmlutils для установки новых пакетов Python в экземпляре Служб машинного обучения SQL Server и в кластерах больших данных. Устанавливаемые пакеты можно использовать в сценариях Python, выполняющихся в базе данных, с помощью инструкции T-SQL sp_execute_external_script.
В этой статье описывается использование функций из пакета sqlmlutils для установки новых пакетов Python в экземпляре Служб машинного обучения в Управляемом экземпляре SQL Azure. Устанавливаемые пакеты можно использовать в сценариях Python, выполняющихся в базе данных, с помощью инструкции T-SQL sp_execute_external_script.
Примечание.
Нельзя обновить или удалить пакеты, предварительно установленные на экземпляре Служб машинного обучения Управляемого экземпляра SQL. Чтобы посмотреть список установленных в настоящее время пакетов, см. раздел Список всех установленных пакетов Python.
Дополнительные сведения о расположении пакетов и путях установки см. в разделе Получение сведений о пакете Python.
Примечание.
Описанный в этой статье пакет sqlmlutils используется для добавления пакетов Python в SQL Server 2019 и более поздние версии. Для SQL Server 2017 и более ранних версий обратитесь к разделу Установка пакетов с инструментами Python.
Необходимые компоненты
- Необходимо установить Службы машинного обучения SQL Server с параметром языка Python.
Установите Azure Data Studio на клиентском компьютере, который используется для подключения к SQL Server. Вы можете использовать другие средства запросов и управления базами данных, но в этой статье рассматривается Azure Data Studio.
Установите ядро Python в Azure Data Studio. Вы также можете установить и использовать Python из командной строки, и вам может потребоваться альтернативная среда разработки 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) '
Другие вопросы
Библиотека пакетов Python находится в папке Program Files своего экземпляра SQL Server и по умолчанию для установки в этой папке требуются права администратора. Дополнительные сведения см. в статье Расположение библиотеки пакетов.
Установка пакета зависит от экземпляра SQL, базы данных и пользователя, указанных в сведениях о подключении, которые вы укажете для sqlmlutils. Чтобы использовать пакет в нескольких экземплярах или базах данных SQL или для разных пользователей, необходимо установить пакет для каждого из них. Исключением является только если пакет устанавливается членом
dbo, когда пакет общедоступный и является общим для всех пользователей. Если пользователь устанавливает более новую версию общедоступного пакета, это не повлияет на общедоступный пакет, но такой пользователь будет иметь доступ к более новой версии.Перед добавлением пакета определите, подходит ли этот пакет для среды SQL Server.
Мы рекомендуем использовать Python в базе данных для задач, которые используют преимущества тесной интеграции с ядром СУБД, например машинное обучение, а не задач, которые просто отправляют запросы в базу данных.
Если вы добавляете пакеты, которые приводят к слишком большой вычислительной нагрузке на сервер, производительность снизится.
В защищенной среде SQL Server может потребоваться отказаться от следующих пакетов:
- пакеты, которым требуется доступ к сети;
- пакеты, которым требуется доступ к файловой системе с повышенными правами;
- пакеты, используемые для веб-разработки или других задач, малоэффективных в SQL Server.
Пакет tensorflow Python невозможно установить с использованием sqlmlutils. Дополнительные сведения и обходной путь см. в статье Известные проблемы служб машинного обучения SQL Server.
Установка пакета sqlmlutils на клиентском компьютере
Сначала пакет sqlmlutils необходимо установить на клиентском компьютере, который используется для подключения к SQL Server.
Azure Data Studio
Если вы будете использовать пакет sqlmlutils в Azure Data Studio, вы можете установить его с помощью функции "Управление пакетами" в записной книжке ядра Python.
- В записной книжке ядра Python в Azure Data Studio щелкните Управление пакетами.
- Щелкните Добавить новую.
- В поле Поиск пакетов PIP введите "sqlmlutils" и нажмите кнопку Поиск.
- Выберите версию пакета, которую необходимо установить (рекомендуется последняя версия).
- Нажмите кнопку Установить, а затем кнопку Закрыть.
Командная строка Python
Если вы будете использовать sqlmlutils из командной строки Python или интегрированной среды разработки (IDE), пакет sqlmlutils можно установить с помощью простой команды pip:
pip install sqlmlutils
Пакет sqlmlutils можно также установить из ZIP-файла:
- Убедитесь в том, что установлена программа pip. Дополнительные сведения см. в статье об установке pip.
- Скачайте последнюю версию ZIP-файла sqlmlutils со страницы https://github.com/microsoft/sqlmlutils/tree/master/R/dist на клиентский компьютер. Не распаковывайте файл.
- Откройте командную строку и выполните следующие команды для установки пакета sqlmlutils. Замените полный путь к скачанному ZIP-файлу 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, который выполняется в экземпляре SQL. sqlmlutils использует команду CREATE EXTERNAL LIBRARY для установки пакета и всех его зависимостей.
В следующем примере вы добавите пакет text-tools в SQL Server.
Добавление пакета в сетевом режиме
Если клиентский компьютер, используемый для подключения к SQL Server, имеет доступ к Интернету, с помощью пакета sqlmlutils можно найти пакет text-tools и все зависимости через Интернет, а затем удаленно установить пакет в экземпляре SQL Server.
На клиентском компьютере откройте Python или среду Python.
Для установки пакета text-tools используйте следующие команды. Замените сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры
uidиpwd).
На клиентском компьютере откройте Python или среду Python.
Для установки пакета text-tools используйте следующие команды. Подставьте собственные значения для подключения к базе данных SQL Server.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Добавление пакета в автономном режиме
Если клиентский компьютер, используемый для подключения к SQL Server, не имеет подключения к Интернету, можно использовать pip на компьютере с доступом в Интернет для загрузки пакета и всех зависимых пакетов в локальную папку. Затем папка копируется на клиентский компьютер для установки в автономном режиме.
На компьютере с доступом к Интернету
Откройте командную строку и выполните следующую команду, чтобы создать локальную папку, содержащую пакет 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 не имеет зависимостей, поэтому нужно установить только один файл из папки text-tools. Зато, например, у пакета scikit-plot имеется 11 зависимостей, поэтому в папке будет находиться 12 файлов (scikit-plot и 11 зависимых пакетов), и каждый из них будет установлен.
Выполните следующий скрипт Python. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры uid и pwd). Повторите инструкцию sqlmlutils.SQLPackageManager для каждого файла пакета в папке.
Выполните следующий скрипт Python. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server. Повторите инструкцию sqlmlutils.SQLPackageManager для каждого файла пакета в папке.
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 и управления ими. Дополнительные сведения см. в файле сведений sqlmlutils для Python.
Дополнительные сведения о любых функциях sqlmlutils можно получить с помощью функции справки Python. Например:
import sqlmlutils
help(SQLPackageManager.install)
Следующие шаги
Сведения о том, как просмотреть пакеты Python, установленные в Службах машинного обучения SQL Server, см. в разделе Получения сведений о пакете Python.
Сведения об установке пакетов R в Службы машинного обучения SQL Server см. в разделе Установка новых пакетов R в SQL Server.