你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
大数据体系结构旨在处理对传统数据库系统太大或过于复杂的数据的引入、处理和分析。
大数据解决方案通常包括以下一种或多种工作负荷:
- 在静止状态下的大数据源的批处理
- 动态大数据的实时处理
- 大数据的交互式探索
- 预测分析和机器学习
大多数大数据体系结构包括以下部分或全部组件:
数据源: 大数据解决方案可以从一个或多个数据源开始。
数据存储,例如关系数据库
应用程序生成的文件,例如 Web 服务器日志文件和 API 响应
实时数据源,例如流式处理设备、Webhook 或关系数据库上游的应用程序
数据存储: 批处理作的数据通常存储在分布式文件存储中,其中包含大量各种格式的大型文件。 此类存储通常称为 数据湖。 实现此存储的选项包括 Azure Data Lake Storage 或 Microsoft Fabric OneLake。
批处理: 当数据需要准备好进行分析并可用于反映过去事件或趋势的报表时,批处理非常有用。 通常,这些作业涉及读取源文件、处理源文件以及将输出写入新文件。 选项包括使用 Fabric 中的数据流或数据管道。
实时处理: 如果解决方案包含实时源,则体系结构必须包含一种方法来捕获和存储实时消息以供流处理。 从数据清理、转换和最终用于作或分析作的那一刻起,数据就可以保持活动状态。 许多解决方案需要支持横向扩展处理、可靠传递和其他消息队列语义。 选项包括 Fabric Real-Time Intelligence 事件流、Azure 事件中心、Azure IoT 中心和 Apache Kafka。
分析数据存储: 许多大数据解决方案准备数据进行分析,然后使用分析工具以结构化格式提供处理的数据。 根据你的方案,用于处理这些查询的分析数据存储可以是Microsoft Fabric 中的事件库,用于处理动态数据,流在外部处理。 或者,它可以是一个维度数据仓库,如大多数传统商业智能(BI)解决方案或湖屋(青铜、白银和黄金)所示。 Microsoft Fabric 提供了多个选项,例如 eventhouses、warehouses 和 lakehouses。 可以使用 SQL 或 Spark 查询每个选项,具体取决于用例。 使用 Fabric 数据存储决策指南 来帮助指导你的决策。
分析和报告: 数据解决方案的目标之一应该是通过分析和报告来深入了解数据。 为了允许用户分析数据,体系结构可能包括数据建模层,例如 Azure Analysis Services 中的多维联机分析处理(OLAP)多维分析处理(OLAP)多维数据模型或表格数据模型。 它还可能通过使用 Power BI 或 Excel 中的建模和可视化技术来支持自助服务 BI。 分析和报告也可以采用数据科学家或数据分析师的交互式数据浏览形式。 对于这些方案,Microsoft Fabric 提供了笔记本等工具,用户可以选择 SQL 或所选编程语言。
作和警报: 大数据解决方案的另一个目标是提供有关业务流程当前状态的作见解。 体系结构应包括一个作系统层,该层在处理数据时采用实时数据流,并检测组织中发生的异常和异常。 可以使用这些警报系统主动通知用户和领导异常活动,而不是用户检查报告。 Real-Time 智能激活器警报提供这种主动监视。
配器: 大数据解决方案可以包含封装在工作流中的重复数据处理作。 这些工作流转换源数据、在多个源和接收器之间移动数据、将处理的数据加载到分析数据存储中,或将结果直接推送到报表或仪表板。 若要自动执行这些工作流,可以使用 Azure 数据工厂或Microsoft结构管道等业务流程技术。
Microsoft为大数据体系结构提供了许多服务,这些服务大致分为以下类别:
软件即服务(SaaS)解决方案,如 Microsoft Fabric
Data Lake Storage、Azure 流分析、事件中心、IoT 中心、Azure 数据工厂、Azure SQL 数据库和 Azure Cosmos DB 等托管服务
何时使用此架构
需要执行以下作时,请考虑此体系结构样式:
- 在生成数据时实时处理数据。
- 在卷中存储和处理数据对于传统数据库来说太大。
- 转换非结构化数据进行分析和报告。
- 使用 Azure 机器学习或 Azure AI 服务。
优点
技术选择: Microsoft Fabric 通过 SaaS 接口提供其中许多服务,并提前连接各种组件。 此方法简化了构建端到端数据解决方案的过程。 还可以混合和匹配 Azure 托管服务,以利用现有的技能或技术投资。
通过并行度实现性能: 大数据解决方案利用并行性,使高性能解决方案能够扩展到大量数据。
弹性缩放: 大数据体系结构中的所有组件都支持横向扩展预配。 因此,可以为小型或大型工作负荷调整解决方案,并仅为使用的资源付费。
与现有解决方案的互作性: 大数据体系结构的组件也用于物联网(IoT)处理和企业 BI 解决方案。 这种多功能性使你能够跨数据工作负荷创建集成解决方案。
挑战
技能集: 一些大数据技术高度专用化,依赖于框架和语言,这些框架和语言不同于常规应用程序体系结构中使用的框架和语言。 或者,基于更成熟的语言构建的较新的 API 正在出现。
安全: 大数据解决方案通常依赖于将所有静态数据存储在集中式 Data Lake 中。 保护对此数据的访问可能具有挑战性,尤其是在多个应用程序和平台必须引入和使用数据时。
最佳做法
使用并行性。 大多数大数据处理技术在多个处理单元之间分配工作负荷。 此分发版要求以可拆分格式创建和存储静态数据文件。 Hadoop 分布式文件系统(HDFS)等分布式文件系统可以优化读取和写入性能。 多个群集节点并行执行实际处理,从而减少整体作业时间。 建议使用可拆分的数据格式,例如 Parquet。
对数据进行分区。 批处理通常按定期计划(例如每周或每月)进行。 基于与处理计划一致的临时时间段对数据文件和数据结构(如表)进行分区。 此策略简化了数据引入和作业计划,简化了故障排除,并可以显著提高查询性能。
应用读取架构语义。 使用 Data Lake 可以组合多种格式的文件存储,无论是结构化、半结构化还是非结构化文件。 应用 读取架构 语义,该语义在处理过程中(而不是在存储时)将数据投影到数据上。 此方法为解决方案增添了灵活性,有助于防止数据引入期间出现数据验证和类型检查原因的瓶颈。
在到达时处理批处理数据。 传统的 BI 解决方案通常使用提取、转换和加载(ETL)过程将数据移到数据仓库中。 但是,随着大量数据和多种格式的增大,大数据解决方案通常采用 ETL 的变体,例如提取、加载和转换(ELT)。
处理正在进行的流式处理数据。 对于流式处理解决方案,在传输数据时转换有效负载。 由于要通过网络处理更小的数据包,因此在生成过程中转换这些较小的行集要容易得多。 将转换后的流降落在针对基于事件的数据的引擎中,例如 Real-Time Intelligence 事件库,使数据立即可用于作。
平衡使用情况和时间成本。 对于批处理作业,请务必考虑计算节点的按单位成本,以及使用这些节点完成作业的每分钟成本。 例如,批处理作业可能需要 8 小时,四个群集节点。 但是,事实证明,作业仅在前两小时内使用所有四个节点,之后只需要两个节点。 在这种情况下,在两个节点上运行整个作业会增加作业总时间,但不会加倍,因此总成本更少。 在某些业务方案中,较长的处理时间可能比使用未充分利用的群集资源的成本更高。
分隔资源。 如果可能,请根据工作负荷分隔资源,以避免在等待另一个工作负荷时使用所有资源的方案。
协调数据引入。 在某些情况下,现有业务应用程序可能会将数据文件直接写入 Azure 存储 Blob 容器,其中下游服务(如 Microsoft Fabric)可以使用这些文件。 但是,通常需要协调从本地或外部数据源引入到 Data Lake 中的数据。 使用业务流程工作流或管道(例如 Azure 数据工厂或 Microsoft Fabric 支持)实现可预测且集中管理的数据移动。
尽早清理敏感数据。 数据引入工作流应尽早清理敏感数据,以避免将其存储在数据湖中。
IoT 体系结构
IoT 是大数据解决方案的专用子集。 下图显示了 IoT 的可能逻辑体系结构。 此图强调体系结构的事件流式处理组件。
云网关在云边界引入设备事件。 它使用可靠的低延迟消息传送系统来确保高效的数据传输。
设备可能会直接向云网关或 现场网关发送事件。 现场网关是专用设备或软件,通常与设备并置,接收事件并将其转发到云网关。 现场网关还可以通过执行筛选、聚合或协议转换等功能来预处理原始设备事件。
引入后,事件会经历一个或多个 流处理器 ,这些处理器可以路由数据或执行分析和其他处理。
请考虑以下常见类型的处理:
数据将加载到基于事件的数据存储(如 Real-Time Intelligence 中的 eventhouse),以便使用元数据(例如生成位置和设备信息)将 IoT 设备上下文化。
实时分析事件流以检测异常、识别滚动时间时段的模式,或在流中出现特定条件时触发警报。
处理设备中特殊类型的非遥测消息,例如通知和警报。
使用机器学习模型检测异常、预测故障或对设备行为进行分类来评分事件。
灰色框显示与事件流不直接相关的 IoT 系统的组件。 它们包含在此处是为了完整性。
设备注册表是预配设备的数据库。 它包括设备 ID,通常包含元数据,例如位置。
预配 API 是用于预配和注册新设备的常见外部接口。
某些 IoT 解决方案允许 命令和控制消息 发送到设备。