你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 中选择批处理技术
大数据解决方案经常使用长时间运行的批处理作业来筛选、聚合或者准备数据以用于分析。 这些作业通常涉及从可缩放的存储(例如,HDFS、Azure Data Lake Store 和 Azure 存储)读取源文件,对源文件进行处理,并将输出写入到可缩放存储中的新文件。
对这类批处理引擎的基本要求是能够扩展计算能力,以处理大量数据。 不同于实时处理,批处理会有延迟(从数据引入到计算结果之间的时间),延迟范围为数分钟到数小时。
批处理的技术选择
Azure Synapse Analytics
Azure Synapse 是一种分布式系统,设计用于对大型数据执行分析。 它支持大规模并行处理 (MPP),因此很适合用于运行高性能分析。 如果有大量的数据(超过 1 TB),并在运行受益于并行度的分析工作负荷,请考虑使用 Azure Synapse。
Azure Data Lake Analytics
Data Lake Analytics 是一项按需分析作业服务。 它经过优化,可以对存储在 Azure Data Lake Store 中的大型数据集进行分布式处理。
- 语言:U-SQL(包括 Python、R 和 C# 扩展)。
- 集成 Azure Data Lake Store、Azure 存储 Blob、Azure SQL 数据库和 Azure Synapse。
- 定价模型为“按作业”。
HDInsight
HDInsight 是一项托管型 Hadoop 服务。 可以使用它在 Azure 中部署和托管 Hadoop 群集。 对于批处理,可以使用 Spark、Hive、Hive LLAP、MapReduce。
- 语言:R、Python、Java、Scala、SQL
- 使用 Active Directory 进行的 Kerberos 身份验证、基于 Apache Ranger 的访问控制
- 可以完全控制 Hadoop 群集
Azure Databricks
Azure Databricks 是基于 Apache Spark 的分析平台。 可以将其视为“Spark 即服务”。这是在 Azure 平台上使用 Spark 最简单的方法。
- 语言:R、Python、Java、Scala、Spark SQL
- 群集启动时间短,可自动终止,自动缩放。
- 为你管理 Spark 群集。
- 内置集成 Azure Blob 存储、Azure Data Lake Storage (ADLS)、Azure Synapse 等服务。 请参阅 Data Sources(数据源)。
- 使用 Microsoft Entra ID 进行用户身份验证。
- 基于 Web 的 Notebook,适用于协作和数据探索。
- 支持启用了 GPU 的群集
关键选择条件
若要缩小选择范围,请先回答以下问题:
你希望使用托管服务还是由你管理自己的服务器?
希望以声明方式还是以命令方式创作批处理逻辑?
是否会爆发性地执行批处理? 如果是,请考虑使用允许自动终止群集的选项或其定价模型为“按批处理作业”的选项。
是否需要随批处理查询关系数据存储,例如查找参考数据? 如果是,请考虑使用允许查询外部关系存储的选项。
功能矩阵
以下各表汇总了功能上的关键差异。
常规功能
功能 | Azure Data Lake Analytics | Azure Synapse | HDInsight | Azure Databricks |
---|---|---|---|---|
是托管服务 | 是 | 是 | 是 1 | 是 |
关系数据存储 | 是 | 是 | No | 是 |
定价模型 | 按批处理作业 | 按群集小时 | 按群集小时 | Databricks 单位2 + 群集小时 |
[1] 手动配置。
[2] Databricks 单位 (DBU) 是表示每小时处理能力的单位。
功能
功能 | Azure Data Lake Analytics | Azure Synapse | 基于 Spark 的 HDInsight | 基于 Hive 的 HDInsight | 基于 Hive LLAP 的 HDInsight | Azure Databricks |
---|---|---|---|---|---|---|
自动缩放 | 否 | No | 是 | 是 | 是 | 是 |
横向扩展粒度 | 按作业 | 按群集 | 按群集 | 按群集 | 按群集 | 按群集 |
数据的内存中缓存 | 否 | 是 | 是 | No | 是 | 是 |
从外部关系存储进行查询 | 是 | No | 是 | 否 | No | 是 |
身份验证 | Microsoft Entra ID | SQL/Microsoft Entra ID | 否 | Microsoft Entra ID1 | Microsoft Entra ID1 | Microsoft Entra ID |
审核 | 是 | 是 | 否 | 是 1 | 是 1 | 是 |
行级别安全性 | 否 | 是2 | 否 | 是 1 | 是 1 | 是 |
支持防火墙 | 是 | 是 | 是 | 是 3 | 是 3 | 是 |
动态数据掩码 | 否 | 是 | 否 | 是 1 | 是 1 | 是 |
[1] 需要使用已加入域的 HDInsight 群集。
[2] 仅筛选谓词。 请参阅行级别安全性
[3] 在 Azure 虚拟网络中使用时受支持。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Zoiner Tejada | CEO 兼架构师
后续步骤
- 在 Azure Synapse Analytics 中创建湖数据库
- 创建 Azure Databricks 工作区
- 了解 Azure Databricks
- 通过 Azure 门户开始使用 Azure Data Lake Analytics
- Azure Synapse Analytics 简介
- 什么是 Azure Databricks?
- 什么是 Azure Synapse Analytics?
相关资源
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈