Основные различия между Службами машинного обучения в Управляемом экземпляре 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 недоступно для служб Машинное обучение.
Следующие шаги
- Ознакомьтесь с обзором Служб машинного обучения в Управляемом экземпляре SQL Azure.
- Сведения об использовании Python в Службах машинного обучения приведены в статье Выполнение скриптов Python.
- Использование R в Службах машинного обучения описано в статье Выполнение скриптов R.