共用方式為


Azure SQL 受控實例中的機器學習服務與 SQL Server 之間的主要差異

本文說明 Azure SQL 受控實例中 機器學習服務 與 SQL Server 機器學習服務 之間功能幾個主要差異。

語言支援

SQL 受控實例和 SQL Server 中的機器學習服務都支援 Python 和 R 擴充性架構。 SQL 管理實例的主要差異在於只支援 Python 和 R,且無法新增外部語言如 Java。

在 SQL 受控實例和 SQL Server 中,Python 和 R 的初始版本不同:

平臺 Python 運行時間版本 R 執行環境版本
Azure SQL 受控執行個體 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 自訂執行環境及套件。 如需詳細資訊,請參閱 在 Windows上安裝 SQL Server 2022 機器學習服務 (Python 和 R)。

Python 和 R 套件

SQL 管理實例對於依賴外部執行環境(例如 Java)或需要存取作業系統 API 來安裝或使用的套件,並不支援。

如需管理 Python 和 R 套件的詳細資訊,請參閱:

透過 sqlmlutils 管理套件

如果您可以在本機建置以產生二進位套件作為輸出,則可以使用 sqlmlutils安裝二進位套件。 例如,請參見 「使用 sqlmlutils 安裝 R 套件」。

資源控管

在 SQL Managed Instance 中,無法透過 Resource Governor 限制 R 資源,且不支援外部資源池。

根據預設,啟用擴充性時,R 資源最多會設定為可用 SQL 受控實例資源的 20%。 要更改這個預設百分比,請建立 Azure 支援工單

使用下列 SQL 命令啟用擴充性(SQL 受控實例將會重新啟動,並無法使用幾秒鐘):

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

若要停用擴充性並將 100% 記憶體和 CPU 資源還原至 SQL Server,請使用下列命令:

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

SQL 受控實例可用的資源總數取決於您選擇的服務層級。 如需詳細資訊,請參閱 比較以虛擬核心和以 DTU 為基礎的 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 受控實例集區

目前 Azure SQL 受管理實例池不支援機器學習服務。

外向網路存取

網路存取被禁止或封鎖,無法啟用。 Azure SQL 管理實例的外撥網路連線無法支援機器學習服務。