Установка пакетов Python с помощью sqlmlutilsInstall Python packages with sqlmlutils

Применимо к:Applies to: даSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed InstanceПрименимо к:Applies to: даSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance

В этой статье описывается использование функций из пакета sqlmlutils для установки новых пакетов Python в экземпляре Служб машинного обучения SQL Server и в кластерах больших данных.This article describes how to use functions in the sqlmlutils package to install new Python packages to an instance of Machine Learning Services on SQL Server and on Big Data Clusters. Устанавливаемые пакеты можно использовать в сценариях Python, выполняющихся в базе данных, с помощью инструкции T-SQL sp_execute_external_script.The packages you install can be used in Python scripts running in-database using the sp_execute_external_script T-SQL statement.

В этой статье описывается использование функций из пакета sqlmlutils для установки новых пакетов Python в экземпляре Служб машинного обучения в Управляемом экземпляре SQL Azure.This article describes how to use functions in the sqlmlutils package to install new Python packages to an instance of Azure SQL Managed Instance Machine Learning Services. Устанавливаемые пакеты можно использовать в сценариях Python, выполняющихся в базе данных, с помощью инструкции T-SQL sp_execute_external_script.The packages you install can be used in Python scripts running in-database using the sp_execute_external_script T-SQL statement.

Дополнительные сведения о расположении пакетов и путях установки см. в разделе Получение сведений о пакете Python.For more information about package location and installation paths, see Get Python package information.

Примечание

Описанный в этой статье пакет sqlmlutils используется для добавления пакетов Python в SQL Server 2019 и более поздние версии.The sqlmlutils package described in this article is used for adding Python packages to SQL Server 2019 or later. Для SQL Server 2017 и более ранних версий обратитесь к разделу Установка пакетов с инструментами Python.For SQL Server 2017 and earlier, see Install packages with Python tools.

Предварительные требованияPrerequisites

  • Установите Azure Data Studio на клиентском компьютере, который используется для подключения к SQL Server.Install Azure Data Studio on the client computer you use to connect to SQL Server. Вы можете использовать другие средства запросов и управления базами данных, но в этой статье рассматривается Azure Data Studio.You can use other database management or query tools, but this article assumes Azure Data Studio.

  • Установите ядро Python в Azure Data Studio.Install the Python kernel in Azure Data Studio. Вы также можете установить и использовать Python из командной строки, и вам может потребоваться среда разработки Python, например Visual Studio Code с расширением Python.You can also install and use Python from the command line, and you may want a Python development environment such as Visual Studio Code with the Python Extension.

Другие замечанияOther considerations

  • Пакеты должны быть совместимы с используемой версией Python, а версия Python на сервере должна соответствовать версии Python на клиентском компьютере.Packages must be compliant with the version of Python you have, and the version of Python on the server must match the version of Python on the client computer. Сведения о том, какая версия Python устанавливается вместе с той или иной версией SQL Server, приведены в разделе Версии Python и R.For information on which version of Python is included with each SQL Server version, see the Python and R versions. Сведения о том, как проверить версию Python в определенном экземпляре SQL, см. в разделе Просмотр версии Python.To confirm the version of Python in a particular SQL instance, see View the version of Python.

  • Библиотека пакетов Python находится в папке Program Files своего экземпляра SQL Server и по умолчанию для установки в этой папке требуются права администратора.The Python package library is located in the Program Files folder of your SQL Server instance and, by default, installing in this folder requires administrator permissions. Дополнительные сведения см. в статье Расположение библиотеки пакетов.For more information, see Package library location.

  • Установка пакета зависит от экземпляра SQL, базы данных и пользователя, указанных в сведениях о подключении, которые вы укажете для sqlmlutils.Package installation is specific to the SQL instance, database, and user you specify in the connection information you provide to sqlmlutils. Чтобы использовать пакет в нескольких экземплярах или базах данных SQL или для разных пользователей, необходимо установить пакет для каждого из них.To use the package in multiple SQL instances or databases, or for different users, you'll need to install the package for each one. Исключением является только если пакет устанавливается членом dbo, когда пакет общедоступный и является общим для всех пользователей.The exception is that if the package is installed by a member of dbo, the package is public and is shared with all users. Если пользователь устанавливает более новую версию общедоступного пакета, это не повлияет на общедоступный пакет, но такой пользователь будет иметь доступ к более новой версии.If a user installs a newer version of a public package, the public package is not affected but that user will have access to the newer version.

  • Перед добавлением пакета определите, подходит ли этот пакет для среды SQL Server.Before adding a package, consider whether the package is a good fit for the SQL Server environment.

    • Мы рекомендуем использовать Python в базе данных для задач, которые используют преимущества тесной интеграции с ядром СУБД, например машинное обучение, а не задач, которые просто отправляют запросы в базу данных.We recommend that you use Python in-database for tasks that benefit from tight integration with the database engine, such as machine learning, rather than tasks that simply query the database.

    • Если вы добавляете пакеты, которые приводят к слишком большой вычислительной нагрузке на сервер, производительность снизится.If you add packages that put too much computational pressure on the server, performance will suffer.

    • В защищенной среде SQL Server может потребоваться отказаться от следующих пакетов:On a hardened SQL Server environment, you might want to avoid the following:

      • пакеты, которым требуется доступ к сети;Packages that require network access
      • пакеты, которым требуется доступ к файловой системе с повышенными правами;Packages that require elevated file system access
      • пакеты, используемые для веб-разработки или других задач, малоэффективных в SQL Server.Packages used for web development or other tasks that don't benefit by running inside SQL Server
    • Пакет tensorflow Python невозможно установить с использованием sqlmlutils.The Python package tensorflow cannot be installed using sqlmlutils. Дополнительные сведения и обходной путь см. в статье Известные проблемы служб машинного обучения SQL Server.For more information and a workaround, see Known issues in SQL Server Machine Learning Services.

Установка пакета sqlmlutils на клиентском компьютереInstall sqlmlutils on the client computer

Сначала пакет sqlmlutils необходимо установить на клиентском компьютере, который используется для подключения к SQL Server.To use sqlmlutils, you first need to install it on the client computer that you use to connect to SQL Server.

Azure Data StudioIn Azure Data Studio

Если вы будете использовать пакет sqlmlutils в Azure Data Studio, вы можете установить его с помощью функции "Управление пакетами" в записной книжке ядра Python.If you'll be using sqlmlutils in Azure Data Studio, you can install it using the Manage Packages feature in a Python kernel notebook.

  1. В записной книжке ядра Python в Azure Data Studio щелкните Управление пакетами.In a Python kernel notebook in Azure Data Studio, click Manage Packages.
  2. Щелкните Добавить новую.Click Add new.
  3. В поле Поиск пакетов PIP введите "sqlmlutils" и нажмите кнопку Поиск.Enter "sqlmlutils" in the Search Pip packages field and click Search.
  4. Выберите версию пакета, которую необходимо установить (рекомендуется последняя версия).Select the Package Version you want to install (the latest version is recommended).
  5. Нажмите кнопку Установить, а затем кнопку Закрыть.Click Install and then Close.

Командная строка PythonFrom Python command line

Если вы будете использовать sqlmlutils из командной строки Python или интегрированной среды разработки (IDE), пакет sqlmlutils можно установить с помощью простой команды pip:If you'll be using sqlmlutils from a Python command prompt or IDE, you can install sqlmlutils with a simple pip command:

pip install sqlmlutils

Пакет sqlmlutils можно также установить из ZIP-файла:You can also install sqlmlutils from a zip file:

  1. Убедитесь в том, что установлена программа pip.Make sure you have pip installed. Дополнительные сведения см. в статье об установке pip.See pip installation for more information.
  2. Скачайте последнюю версию ZIP-файла sqlmlutils со страницы https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist на клиентский компьютер.Download the latest sqlmlutils zip file from https://github.com/Microsoft/sqlmlutils/tree/master/Python/dist to the client computer. Не распаковывайте файл.Don't unzip the file.
  3. Откройте командную строку и выполните следующие команды для установки пакета sqlmlutils.Open a Command Prompt and run the following commands to install the sqlmlutils package. Замените полный путь к скачанному ZIP-файлу sqlmlutils (в этом примере предполагается, что загружен файл c:\temp\sqlmlutils-1.0.0.zip).Substitute the full path to the sqlmlutils zip file you downloaded - this example assumes the downloaded file is c:\temp\sqlmlutils-1.0.0.zip.
    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
    

Добавление пакета Python в SQL ServerAdd a Python package on SQL Server

Используя sqlmlutils, можно добавлять пакеты Python в экземпляр SQL.Using sqlmlutils, you can add Python packages to a SQL instance. Затем эти пакеты можно использовать в коде Python, который выполняется в экземпляре SQL.You can then use those packages in your Python code running in the SQL instance. sqlmlutils использует команду CREATE EXTERNAL LIBRARY для установки пакета и всех его зависимостей.sqlmlutils uses CREATE EXTERNAL LIBRARY to install the package and each of its dependencies.

В следующем примере вы добавите пакет text-tools в SQL Server.In the following example, you'll add the text-tools package to SQL Server.

Добавление пакета в сетевом режимеAdd the package online

Если клиентский компьютер, используемый для подключения к SQL Server, имеет доступ к Интернету, с помощью пакета sqlmlutils можно найти пакет text-tools и все зависимости через Интернет, а затем удаленно установить пакет в экземпляре SQL Server.If the client computer you use to connect to SQL Server has Internet access, you can use sqlmlutils to find the text-tools package and any dependencies over the Internet, and then install the package to a SQL Server instance remotely.

  1. На клиентском компьютере откройте Python или среду Python.On the client computer, open Python or a Python environment.

  2. Для установки пакета text-tools используйте следующие команды.Use the following commands to install the text-tools package. Замените сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры uid и pwd).Substitute your own SQL Server database connection information (if you use Windows Authentication, you don't need the uid and pwd parameters).

  1. На клиентском компьютере откройте Python или среду Python.On the client computer, open Python or a Python environment.

  2. Для установки пакета text-tools используйте следующие команды.Use the following commands to install the text-tools package. Подставьте собственные значения для подключения к базе данных SQL Server.Substitute your own SQL Server database connection information.

import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")

Добавление пакета в автономном режимеAdd the package offline

Если клиентский компьютер, используемый для подключения к SQL Server, не имеет подключения к Интернету, можно использовать pip на компьютере с доступом в Интернет для загрузки пакета и всех зависимых пакетов в локальную папку.If the client computer you use to connect to SQL Server doesn't have an Internet connection, you can use pip on a computer with Internet access to download the package and any dependent packages to a local folder. Затем папка копируется на клиентский компьютер для установки в автономном режиме.You then copy the folder to the client computer where you can install the package offline.

На компьютере с доступом к ИнтернетуOn a computer with Internet access

  1. Откройте командную строку и выполните следующую команду, чтобы создать локальную папку, содержащую пакет text-tools.Open a Command Prompt and run the following command to create a local folder that contains the text-tools package. В этом примере создается папка c:\temp\text-tools.This example creates the folder c:\temp\text-tools.

    pip download text-tools -d c:\temp\text-tools
    
  2. Скопируйте папку text-tools на клиентский компьютер.Copy the text-tools folder to the client computer. В следующем примере предполагается, что вы скопировали ее в c:\temp\packages\text-tools.The following example assumes you copied it to c:\temp\packages\text-tools.

На клиентском компьютереOn the client computer

Используйте sqlmlutils, чтобы установить каждый пакет (WHL-файл), который находится в локальной папке, созданной с помощью pip.Use sqlmlutils to install each package (WHL file) you find in the local folder that pip created. Порядок установки пакетов не имеет значения.It doesn't matter in what order you install the packages.

В этом примере text-tools не имеет зависимостей, поэтому нужно установить только один файл из папки text-tools.In this example, text-tools has no dependencies, so there is only one file from the text-tools folder for you to install. Зато, например, у пакета scikit-plot имеется 11 зависимостей, поэтому в папке будет находиться 12 файлов (scikit-plot и 11 зависимых пакетов), и каждый из них будет установлен.In contrast, a package such as scikit-plot has 11 dependencies, so you would find 12 files in the folder (the scikit-plot package and the 11 dependent packages), and you would install each of them.

Выполните следующий скрипт Python.Run the following Python script. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server (если используется проверка подлинности Windows, вам не нужны параметры uid и pwd).Substitute the actual file path and name of the package, and your own SQL Server database connection information (if you use Windows Authentication, you don't need the uid and pwd parameters). Повторите инструкцию sqlmlutils.SQLPackageManager для каждого файла пакета в папке.Repeat the sqlmlutils.SQLPackageManager statement for each package file in the folder.

Выполните следующий скрипт Python.Run the following Python script. Замените фактический путь к файлу и имя пакета, а также сведения о подключении к базе данных SQL Server.Substitute the actual file path and name of the package, and your own SQL Server database connection information. Повторите инструкцию sqlmlutils.SQLPackageManager для каждого файла пакета в папке.Repeat the sqlmlutils.SQLPackageManager statement for each package file in the folder.

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")

Использование пакетаUse the package

Теперь пакет можно использовать в скрипте Python в SQL Server.You can now use the package in a Python script in SQL Server. Пример:For example:

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 ServerRemove the package from SQL Server

Если вы хотите удалить пакет text-tools, используйте следующую команду Python на клиентском компьютере, указав переменную подключения, которая была определена ранее.If you would like to remove the text-tools package, use the following Python command on the client computer, using the same connection variable you defined earlier.

sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")

Дальнейшие действияNext steps