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


Основные различия между службами машинного обучения в Управляемом экземпляре 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 1 - -
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 и более поздние версии)

1 Начиная с 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".

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

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

По умолчанию ресурсы R ограничиваются до 20% от доступных ресурсов управляемого экземпляра SQL, если включена расширяемость. Чтобы изменить этот процент по умолчанию, создайте запрос в службу поддержки Azure.

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

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

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

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

Общий объем ресурсов, доступных управляемому экземпляру SQL, зависит от выбранного уровня служб. Дополнительные сведения см. в статье "Сравнение моделей приобретения на основе виртуальных ядер и DTU" базы данных 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.

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

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

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

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

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

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