你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure SQL 托管实例中的机器学习服务与 SQL Server 之间的主要区别

本文介绍 Azure SQL 托管实例中的机器学习服务SQL Server 机器学习服务之间功能方面的一些主要差异。

语言支持

SQL 托管实例和 SQL Server 中的机器学习服务都支持 Python 和 R 扩展性框架。 SQL 托管实例的主要区别在于仅支持 Python 和 R,并且无法添加 Java 等外部语言。

PYTHON 和 R 的初始版本在 SQL 托管实例和 SQL Server 中有所不同:

平台 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 托管实例中,无法通过 资源调控器限制 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 托管实例可用的资源总数取决于所选的服务层。 有关详细信息,请参阅 Azure SQL 数据库购买模型

内存不足错误

内存使用量取决于 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 托管实例的出站网络连接不适用于机器学习服务。

后续步骤