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

В этой статье описано несколько ключевых различий между Службами машинного обучения в Управляемом экземпляре Azure SQL и 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 (накопительный пакет обновления 22 и более поздних версий) 3.3.3 и 3.5.2 (накопительный пакет обновления 22 и более поздних версий)
SQL Server 2016 Недоступно 3.2.2 и 3.5.2 (накопительный пакет обновления 14 для SP2 и более поздних версий)

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

Пакеты Python и R

Пакеты, которые зависят от внешних сред выполнения (например, Java) или которым требуется доступ к API операционной системы для установки или использования, не поддерживаются.

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

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

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

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

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

По умолчанию объем ресурсов 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, зависит от выбранного уровня служб. Дополнительные сведения см. в статье Модели приобретения Базы данных SQL Azure.

Ошибка "Недостаточно памяти"

Использование памяти зависит от объема памяти, используемого скриптами 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.

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

При возникновении в Управляемом экземпляре SQL Azure ошибок, связанных с нехваткой памяти, см. сведения в статье о sys.dm_os_out_of_memory_events.

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

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

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

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

Следующие шаги