Поделиться через


Основные различия между службами машинного обучения в Управляемом экземпляре SQL Azure и SQL Server

В этой статье описаны некоторые основные различия в функциональных возможностях служб машинного обучения в управляемом экземпляре SQL Azure и службами машинного обучения SQL Server.

Поддержка языка

Службы машинного обучения в управляемом экземпляре SQL и SQL Server поддерживают фреймворк расширяемости Python и R . Ключевое различие в Управляемом экземпляре SQL заключается в том, что поддерживаются только Python и R, а внешние языки, такие как Java, нельзя добавить.

Начальные версии Python и R отличаются в управляемом экземпляре SQL и SQL Server:

Платформа Версия среды выполнения Python Версии среды выполнения R
Управляемый экземпляр SQL Azure 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 и 3.7.2 (CU22 и более поздние версии) 3.3.3 и 3.5.2 (CU22 и более поздние версии)
SQL Server 2016 Недоступно 3.2.2 и 3.5.2 (SP2 CU14 и более поздние версии)

* Начиная с SQL Server 2022, среды выполнения для R, Python и Java больше не поставляются или устанавливаются в установщике SQL. Вместо этого установите нужные пользовательские среды выполнения и пакеты для R и/или Python. Дополнительные сведения см. в статье Установка служб машинного обучения SQL Server 2022 (Python и R) в Windows.

Пакеты Python и R

В Управляемом экземпляре SQL нет поддержки для пакетов, зависящих от внешних сред выполнения (например, Java), или требуется доступ к API ОС для установки или использования.

Дополнительные сведения об управлении пакетами Python и R см. в следующем разделе:

Управление пакетами с помощью sqlmlutils

Двоичные пакеты можно установить с помощью sqlmlutils, если вы можете создать двоичный пакет локально в качестве выходных данных. Примеры см. в статье Установка пакетов R с помощью sqlmlutils или Установка пакетов Python с помощью sqlmlutils.

Управление ресурсами

В Управляемом экземпляре SQL невозможно ограничить ресурсы R с помощью регулятора ресурсов, а внешние пулы ресурсов не поддерживаются.

По умолчанию ресурсы R ограничиваются до 20% от доступных ресурсов управляемого экземпляра SQL, если включена расширяемость. Чтобы изменить этот процент по умолчанию, создайте запрос в службу поддержки Azure по https://azure.microsoft.com/support/create-ticket/.

Расширяемость включена со следующими командами SQL (Управляемый экземпляр SQL перезапустится и недоступен в течение нескольких секунд):

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

Чтобы отключить расширяемость и восстановление 100% ресурсов памяти и ЦП в SQL Server, используйте следующие команды:

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

Общий объем ресурсов, доступных управляемому экземпляру SQL, зависит от выбранного уровня служб. Для получения дополнительной информации см. модели приобретения Azure SQL Database.

Ошибка нехватки памяти

Использование памяти зависит от того, сколько используется в скриптах R и количестве параллельных запросов, выполняемых. Если для R недостаточно памяти, вы получите сообщение об ошибке. Распространенные сообщения об ошибках:

  • Unable to communicate with the runtime for 'R' script for request id: *******. Please check the requirements of 'R' runtime
  • 'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004. ...an external script error occurred: "..could not allocate memory (0 Mb) in C function 'R_AllocStringBuffer'"
  • An external script error occurred: Error: cannot allocate vector of size.

Если вы получаете одну из этих ошибок, ее можно устранить, масштабируя базу данных до более высокого уровня служб.

Если в управляемом экземпляре Azure SQL возникают ошибки, связанные с нехваткой памяти, просмотрите sys.dm_os_out_of_memory_events.

Пулы управляемых экземпляров SQL

Службы машинного обучения в настоящее время не поддерживаются в пулы управляемых экземпляров SQL Azure (предварительная версия).

Исходящий сетевой доступ

Сетевой доступ запрещен или заблокирован и не может быть включен. Исходящее сетевое подключение для Управляемого экземпляра SQL Azure недоступно для служб машинного обучения.

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