你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 中选择大数据存储技术
本文将比较大数据解决方案的数据存储选项,具体而言,将用于批量数据引入和批处理的数据存储,与分析数据存储或实时流引入进行比较。
在 Azure 中选择数据存储时有哪些选项?
可以根据需要,使用多个选项将数据引入 Azure。
统一逻辑数据湖:
文件存储:
NoSQL 数据库:
分析数据库:
Fabric 中的 OneLake
Fabric 中的 OneLake 是为整个组织量身定制的统一逻辑数据湖。 它充当所有分析数据的中心枢纽,并包含在每个 Microsoft Fabric 租户中。 Fabric 中的 OneLake 是在 Data Lake Storage Gen2 的基础构建的。
Fabric 中的 OneLake:
- 支持结构化和非结构化文件类型。
- 以 Delta Parquet 格式存储所有表格数据。
- 在默认情况下管理的租户边界内提供单个数据湖。
- 支持在租户中创建工作区,以便组织可以分配所有权和访问策略。
- 支持创建各种数据项,例如湖屋和仓库,你可从中访问数据。
Fabric 中的 OneLake 是引入、转换、实时见解和商业智能可视化的通用存储位置。 它集中各种 Fabric 服务,并存储所有工作负荷在 Fabric 中使用的数据项。 若要为 Fabric 工作负荷选择正确的数据存储,请参阅 Fabric 决策指南:选择数据存储。
Azure 存储 Blob
Azure 存储是高度可用、安全、持久、可缩放和冗余的托管存储服务。 Microsoft 为你负责维护并处理关键问题。 Azure 存储是 Azure 提供的最普及的存储解决方案,可配合大量的服务和工具使用。
可以使用各种 Azure 存储服务来存储数据。 存储许多数据源中的 Blob 的最灵活选项是 Blob 存储。 Blob 本质上是文件。 此类文件可以存储图片、文档、HTML 文件、虚拟硬盘 (VHD)、大数据(例如日志)、数据库备份等几乎任何内容。 Blob 存储在类似于文件夹的容器中。 容器对 Blob 集进行分组。 一个存储帐户可以包含无限数量的容器,一个容器可以存储无限数量的 Blob。
因为灵活、高度可用且成本低廉,Azure 存储非常适合大数据和分析解决方案。 它为不同的用例提供热、冷和存档存储层。 有关详细信息,请参阅 Azure Blob 存储:热、冷和存档存储层。
可以从 Hadoop(HDInsight 已随附)访问 Azure Blob 存储。 HDInsight 可将 Azure 存储中的 Blob 容器用作群集的默认文件系统。 通过 WASB 驱动程序提供的 Hadoop 分布式文件系统 (HDFS) 接口,可以针对作为 Blob 存储的结构化或非结构化数据直接运行 HDInsight 中的整套组件。 此外,可以使用 Azure Synapse Analytics 的 PolyBase 功能访问 Azure Blob 存储。
使 Azure 存储成为不错选项的其他功能包括:
- 多个并发策略。
- 灾难恢复和高可用性选项。
- 静态加密。
- Azure 基于角色的访问控制 (RBAC),以控制使用 Microsoft Entra 用户和群组的访问。
Data Lake Storage Gen2
Data Lake Storage Gen2 是一个集中式存储库,可在其中存储所有结构化和非结构化数据。 使用数据湖,你的组织可以快速、更轻松地在一个位置存储、访问和分析各种数据。 使用数据湖,无需调整数据以适应现有结构。 相反,可以将数据存储为原始格式或原生格式,通常作为文件或二进制大型对象 (blob)。
Data Lake Storage Gen2 囊括了 Azure Data Lake Storage Gen1 和 Azure Blob 存储的功能。 例如,Data Lake Storage Gen2 提供文件系统语义、文件级安全和缩放。 由于这些功能是在 Blob 存储的基础上构建的,因此还可以获得具有高可用性/灾难恢复功能的低成本分层存储。
Data Lake Storage Gen2 使 Azure 存储成为在 Azure 上构建企业 Data Lake 的基础。 Data Lake Storage Gen2 从一开始就设计为存储数千万亿字节的信息,同时保持数百千兆位的吞吐量,允许你轻松管理大量数据。
Azure Cosmos DB
Azure Cosmos DB 由 Microsoft 提供,是全球分布式多模型数据库。 Azure Cosmos DB 保证全球任意位置在 99% 的情况下为个位数毫秒级的延迟,提供多种定义明确的一致性模型以微调性能,并保证多宿主功能的高可用性。
Azure Cosmos DB 与架构无关。 它自动为所有数据编制索引,无需客户管理架构和索引。 它也是多模型、本地支持文档、键值、图和列系列数据模型。
Azure Cosmos DB 功能:
- 异地复制
- 在全球范围内灵活缩放吞吐量和存储
- 五个妥善定义的一致性级别
HDInsight 上的 HBase
Apache HBase 是一种开源 NoSQL 数据库,它构建于 Hadoop 基础之上,并基于 Google BigTable 模型化。 HBase 针对按列系列组织的无架构数据库中的大量非结构化和结构化数据提供随机访问和强一致性。
数据存储在表的各行中,行中的数据按列系列分组。 HBase 是无架构数据库,也就是说,在使用其数据前,不必定义列以及列中存储的数据类型。 开放源代码可进行线性伸缩,以处理上千节点上数 PB 的数据。 开放源代码可依赖数据冗余、批处理以及 Hadoop 生态系统中的分布式应用程序提供的其他功能。
HDInsight 实施使用 HBase 的横向扩展架构来提供表自动分片、使读写操作保持高度的一致性,以及支持自动故障转移。 性能可通过对读取使用内存中缓存并对写入使用高吞吐量流式处理来提高。 在大多数情况下,我们会在虚拟网络中创建 HBase 群集,使其他 HDInsight 群集和应用程序可以直接访问表。
Azure 数据资源管理器
Azure 数据资源管理器是一项快速且高度可缩放的数据探索服务,适用于日志和遥测数据。 它可以帮助你处理现代软件发出的多个数据流,以便收集、存储和分析数据。 Azure 数据资源管理器非常适合用于分析来自任何数据源(例如网站、应用程序、IoT 设备等)的大量不同数据。 此数据用于诊断、监视、报告、机器学习和其他分析功能。 Azure 数据资源管理器可以轻松地引入此数据,并使你能够在几秒钟内对数据进行复杂的未计划查询。
Azure 数据资源管理器可以线性横向扩展,以增加引入和查询处理的吞吐量。 可以将 Azure 数据资源管理器群集部署到虚拟网络,以启用专用网络。
关键选择条件
要缩小选择范围,请先回答以下问题:
您是否需要一个具有多云支持、可靠的治理和与分析工具无缝集成的统一数据湖? 如果是,请选择 Fabric 中的 OneLake,以便简化数据管理和增强协作。
是否需要对任何类型的文本或二进制数据使用基于云的高速托管存储? 如果是,请选择一个文件存储选项或分析选项。
是否需要针对并行分析工作负荷和高吞吐量/IOPS 优化的文件存储? 如果是,请选择优化了分析工作负荷性能的选项。
是否需要在无架构数据库中存储非结构化或半结构化数据? 如果是,请选择一个非关系或分析选项。 比较索引和数据库模型的选项。 根据需要存储的数据类型,主数据库模型可能是最重要的因素。
是否可以在你的区域中使用该服务? 检查每个 Azure 服务的区域可用性。 有关详细信息,请参阅 可用产品(按区域)。
功能矩阵
以下各表汇总了功能上的关键差异。
Fabric 中的 OneLake 功能
功能 | Fabric 中的 OneLake |
---|---|
统一数据湖 | 为整个组织提供单个统一的数据湖,从而消除数据孤岛。 |
多云支持 | 支持与各种云平台的集成和兼容性。 |
数据治理 | 包括数据世系、数据保护、认证和目录集成等功能。 |
集中式数据中心 | 充当用于数据发现和管理的集中式中心。 |
分析引擎支持 | 与多个分析引擎兼容。 这种兼容性使各种工具和技术能够对相同的数据进行操作。 |
安全性与符合性 | 确保敏感数据保持安全,仅限授权用户访问。 |
易于使用 | 提供一种用户友好的设计,每个 Fabric 租户都可以自动使用,无需设置。 |
伸缩性 | 能够处理来自各种源的大量数据。 |
文件存储功能
功能 | Data Lake Storage Gen2 | Azure Blob 存储容器 |
---|---|---|
目的 | 大数据分析工作负荷的优化存储 | 用于多种存储方案的常规用途对象存储 |
用例 | Batch、流分析和机器学习数据,例如日志文件、IoT 数据、点击流、大型数据集 | 任何类型的文本或二进制数据,例如应用程序后端、备份数据、流式处理媒体存储和常规用途数据 |
结构 | 分层文件系统 | 具有平面命名空间的对象存储 |
身份验证 | 基于 Microsoft Entra 标识 | 基于共享机密帐户访问密钥、共享访问签名密钥和 Azure 基于角色的访问控制 (Azure RBAC) |
身份验证协议 | Open Authorization (OAuth) 2.0。 调用必须包含由 Microsoft Entra ID 颁发的有效 JWT(JSON Web 令牌) | 基于哈希的消息验证码 (HMAC)。 调用必须包含 Base64 编码的 SHA-256 哈希作为 HTTP 请求的一部分。 |
授权 | 可移植操作系统接口 (POSIX) 访问控制列表 (ACL)。 可在文件和文件夹级别设置基于 Microsoft Entra 标识的 ACL。 | 对于帐户级别授权 – 使用帐户访问密钥。 对于帐户、容器 或 blob 授权 - 使用共享访问签名密钥。 |
审核 | 可用。 | 可用 |
静态加密 | 透明、服务器端 | 透明、服务器端;客户端加密 |
Developer SDK | .NET、Java、Python、Node.js | .NET、Java、Python、Node.js、C++、Ruby |
分析工作负荷性能 | 并行分析工作负荷的优化性能、高吞吐量和 IOPS | 未进行分析工作负荷优化 |
大小限制 | 无帐户大小、文件大小或文件数量限制 | 此处记录有具体限制 |
异地冗余 | 本地冗余(本地冗余存储 (LRS))、全局冗余(异地冗余存储 (GRS))、读取访问全局冗余(读取访问异地冗余存储 (RA-GRS))、区域冗余(区域冗余存储 (ZRS))。 | 本地冗余 (LRS)、全局冗余 (GRS)、读取访问全局冗余 (RA-GRS)、区域冗余 (ZRS)。 有关详细信息,请参阅 Azure 存储冗余 |
NoSQL 数据库功能
功能 | Azure Cosmos DB | HDInsight 上的 HBase |
---|---|---|
主数据库模型 | 文档存储、图形、键-值存储、宽列存储 | 宽列存储 |
辅助索引 | 是 | 否 |
SQL 语言支持 | 是 | 是(使用 Phoenix JDBC 驱动程序) |
一致性 | 非常、有限过期、会话、一致前缀或最终 | 强 |
本机 Azure Functions 集成 | 是 | 否 |
自动全局分发 | 是 | 使用最终一致性时,无法跨区域配置 HBase 群集复制 |
定价模型 | 按秒计费的弹性可缩放请求单位 (RU)、弹性可缩放的存储 | HDInsight 群集(横向缩放节点)和存储按分钟计费 |
分析数据库功能
功能 | Azure 数据资源管理器 |
---|---|
主数据库模型 | 关系(列存储)、遥测和时序存储 |
SQL 语言支持 | 是 |
定价模型 | 可灵活缩放的群集实例 |
身份验证 | 基于 Microsoft Entra 标识 |
静态加密 | 受支持的客户管理的密钥 |
分析工作负荷性能 | 并行分析工作负载的优化性能 |
大小限制 | 线性可缩放 |
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Zoiner Tejada | CEO 兼架构师