你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 中的 R 开发指南
处理日益增长的数据量的许多数据科学家正在寻求利用云计算的强大能力进行分析。 本文概述数据科学家在 Azure 中使用现有 R 编程语言技能的各种方式。
Microsoft 完全接受将 R 编程语言作为数据科学家的第一类工具。 本公司为 R 开发人员提供许多不同的选项让他们在 Azure 中运行其代码,并使数据科学家在处理大型项目时能够将其数据科学工作负荷扩展到云中。
让我们了解各个选项,以及每个选项的最具吸引力的方案。
支持 R 语言的 Azure 服务
本文介绍支持 R 语言的以下 Azure 服务:
服务 | 说明 |
---|---|
数据科学虚拟机 | 用作数据科学工作站或自定义计算目标的自定义 VM |
ML Services on HDInsight | 基于群集的系统,用于对跨多个节点的大型数据集运行 R 分析 |
Azure Databricks | 支持 R 和其他语言的协作型 Spark 环境 |
Azure 机器学习 | 用于定型、部署、自动化和管理机器学习模型的云服务 |
Azure Batch | 提供各种选项用于以经济节省的方式对群集中的多个节点运行 R 代码 |
Azure SQL 托管实例 | 在 SQL Server 数据库引擎内部运行 R 与 Python 脚本 |
数据科学虚拟机
Data Science Virtual Machine (DSVM) 是专为开展数据科学构建的 Microsoft Azure 云平台上的自定义 VM 映像。 其中包含许多热门的数据科学工具,包括:
可以在 DSVM 上预配 Windows 或 Linux 操作系统。 可通过两种方式使用 DSVM:用作交互式工作站,或用作自定义群集的计算平台。
用作工作站
若要在云中快速轻松地开始使用 R,则这是最佳选项。 在本地工作站上用过 R 的任何人都会熟悉该环境。 但是,R 环境不是使用本地资源,而是在云中的 VM 上运行。 如果你的数据已存储在 Azure 中,这会带来额外的好处,即:允许 R 脚本运行“更接近数据”。可通过 Azure 的内部网络进行访问,因此访问速度更快,而无需跨 Internet 传输数据。
DSVM 可能对小型 R 开发人员团队特别有用。 无需为每个开发人员投资购买高配的工作站并要求团队成员同步他们使用的各个软件包版本,每个开发人员可以根据需要运转 DSVM 的实例。
用作计算平台
除了用作工作站以外,DSVM 还可用作 R 项目的弹性可缩放计算平台。 使用 AzureDSVM
R 包,可以编程方式控制 DSVM 实例的创建和删除。 可将实例组建成群集,并部署要在云中执行的分布式分析。 可以通过本地工作站上运行的 R 代码控制整个过程。
若要详细了解 DSVM,请查阅适用于 Linux 和 Windows 的 Azure Data Science Virtual Machine 简介。
ML Services on HDInsight
Microsoft ML Services 可让数据科学家、统计师和 R 程序员按需访问 HDInsight 上可缩放的分布式分析方法。 此解决方案提供最新的功能,可针对载入 Azure Blob 或 Data Lake Storage 的几乎任何大小的数据集执行基于 R 的分析。
这是一个企业级的解决方案,允许在整个群集中缩放 R 代码。 通过使用 Microsoft RevoScaleR
包中的功能,HDInsight 上的 R 脚本可跨群集中的多个节点并行运行数据处理功能。 这样,R 便可以使用工作站上运行的单线程 R,以远超寻常的规模处理数据。
这种大规模处理能力使得 ML Services on HDInsight 成了需要处理巨量数据集的 R 开发人员的极佳选项。 它提供一个灵活、可缩放的平台用于在云中运行 R 脚本。 有关创建 ML Services 群集的演练,请参阅 ML Services on Azure HDInsight 入门一文。
Azure Databricks
Azure Databricks 是基于 Apache Spark 的分析平台,已针对 Microsoft Azure 云服务平台进行优化。 我们与 Apache Spark 的创建者一起设计了 Databricks,并将其与 Azure 集成以提供一键式安装、简化的工作流程以及交互式工作区,从而使数据科学家、数据工程师和业务分析员之间可以进行合作。
Databricks 中的协作由平台的 Notebook 系统启用。 用户可以创建、编辑 Notebook 并与系统的其他用户共享。 用户可以使用这些 Notebook 编写针对 Databricks 环境中托管的 Spark 群集执行的代码。 这些 Notebook 完全支持 R,并可让用户通过 SparkR
和 sparklyr
包访问 Spark。
由于 Databricks 构建在 Spark 基础之上并且侧重于协作,该平台往往由共同解决大型数据集复杂分析的数据科学家团队使用。 由于 Databricks 中的 Notebook 除了支持 R 以外还支持其他语言,因此,它对于在主要工作中使用不同语言的分析师团队非常有用。
Azure Databricks 简介一文可以提供有关平台的详细信息,并帮助你入门。
Azure 机器学习
Azure 机器学习可用于任何类型的机器学习,涵盖范围从传统机器学习到深度学习、监督式和非监督式学习。 无论你是否希望编写 Python 或 R 代码或零代码/低代码选项(例如:设计器),你都可以在 Azure 机器学习工作区中构建、训练和跟踪非常准确的机器学习和深度学习模型。
开始在本地计算机上训练,然后横向扩展到云。 立即使用 Azure 机器学习在 R 中训练第一个模型。
Azure Batch
对于大规模 R 作业,可以使用 Azure Batch。 此服务提供云规模的作业计划和计算管理,可让你缩放跨数十、数百甚至数千个虚拟机的 R 工作负荷。 由于它是一个通用化的计算平台,在 Azure Batch 上运行 R 作业的选项有很多。
在 Azure Batch 中运行 R 脚本的另一个选项是在 Azure 门户中将代码与“RScript.exe”捆绑成为 Batch 应用。 有关详细的演练,请参阅 Azure Batch 上的 R 工作负荷。
另一个选项是使用 Azure 分布式数据工程工具包 (AZTK)。该工具包可让你使用 Azure Batch 中的 Docker 容器预配按需 Spark 群集。 这样,便可以经济节省的方式在 Azure 中运行 Spark 作业。 使用 SparklyR 和 AZTK 可以在云中轻松、经济节省地扩展 R 脚本。
Azure SQL 托管实例
Azure SQL 托管实例是 Microsoft 的智能、可缩放的云数据库服务。 它可以让你使用 SQL Server 的完整功能,省去了设置基础结构的麻烦。 这包括机器学习服务,其中包含用于高性能预测分析和机器学习的 Microsoft R 与 Python 包。
机器学习服务提供一个嵌入式预测分析与数据科学引擎,该引擎可在 SQL Server 数据库内执行 R/Python 代码。 无需从数据库中提取数据并将其载入 R/Python 环境,而可以直接将 R/Python 代码载入数据库,使其与数据一同运行。 关系数据可在存储过程中使用,作为包含 R/Python 语句的 SQL 脚本,或者作为包含 T SQL 的 R/Python 代码。
从 2016 年开始,机器学习服务已划归到本地 SQL Server,是 Azure SQL 托管实例相对较新的功能。
作者
本文由 Microsoft 维护, 最初由以下贡献者撰写。
首席作者:
- Jeremy Peach | 高级云解决方案架构师
若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 使用 mrsdeploy 在 Azure 上运行 R 代码
- R on Azure:概述在 Azure 中使用 R 所需的包、工具和相关案例研究
相关资源
R 徽标为 © 2016 The R Foundation,并根据 Creative Commons Attribution-ShareAlike 4.0 国际许可证的条款使用