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 * | - | - |
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 自訂執行環境及套件。 如需詳細資訊,請參閱 在 Windows上安裝 SQL Server 2022 機器學習服務 (Python 和 R)。
Python 和 R 套件
SQL 受控實例不支援相依於外部運行時間的套件(例如 Java),或需要存取 OS API 以進行安裝或使用。
如需管理 Python 和 R 套件的詳細資訊,請參閱:
透過 sqlmlutils 管理套件
如果您可以在本機建置以產生二進位套件作為輸出,則可以使用 sqlmlutils
安裝二進位套件。 如需範例,請參閱 使用 sqlmlutils 安裝 R 套件,或 使用 sqlmlutils安裝 Python 套件。
資源控管
在 SQL 受控實例中,無法透過 Resource Governor限制 R 資源,而且不支援外部資源集區。
根據預設,啟用擴充性時,R 資源最多會設定為可用 SQL 受控實例資源的 20%。 若要變更此預設百分比,請在 https://azure.microsoft.com/support/create-ticket/建立 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 受控實例可用的資源總數取決於您選擇的服務層級。 如需詳細資訊,請參閱 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 受控實例的輸出網路連線不適用於機器學習服務。
後續步驟
- 請參閱概觀,Azure SQL 受控實例中的機器學習服務。
- 若要瞭解如何在機器學習服務中使用 Python,請參閱 執行 Python 腳稿。
- 若要瞭解如何在機器學習服務中使用 R,請參閱 執行 R 腳本。