使用 Azure Synapse 进行端到端分析
本文中介绍的解决方案结合了一系列 Azure 服务,这些服务将从不同源(结构化、半结构化、非结构化和流式处理)引入、存储、处理、扩充并提供数据和见解。
体系结构
下载此体系结构的 Visio 文件。
注意
- 此体系结构涵盖的服务只是更大的 Azure 服务系列中的一个子集。 可以使用此设计未涵盖的其他服务或功能实现类似结果。
- 分析用例的特定业务要求可能需要使用此设计中未考虑的其他服务或功能。
数据流
该体系结构涵盖的分析用例由关系图左侧的不同数据源阐释。 数据从下到上流经解决方案的情形如下所示:
注意
在以下各部分中,Azure Data Lake 被用作数据生命周期各个阶段数据的存储位置。 Azure Data Lake 按不同的层和容器组织,如下所示:
- “原始”层是来自源系统的数据的登陆区域。 顾名思义,此层中的数据采用的是原始、未筛选的和未精简的形式。
- 在生命周期的下一个阶段,数据将移至“扩充”层,可在其中对数据进行清理、筛选和可能的转换。
- 然后数据移动到“精选”层,即维护使用者就绪数据的位置。
有关 Azure Data Lake 层和容器及其用途的完整回顾,请参阅 Data Lake 区域和容器 文档。
带有 Azure Cosmos DB 和 Dataverse 的 Azure 数据服务、云原生 HTAP
进程
Azure Synapse Link for Azure Cosmos DB 和 Azure Synapse Link for Dataverse 使你能够通过使用 Azure Synapse 工作区中提供的分析引擎( SQL Serverless 和 Spark 池)对作和业务应用程序数据运行近乎实时的分析。
使用 Azure Synapse Link for Azure Cosmos DB 时,请使用 SQL 无服务器查询 或 Spark 池笔记本。 可以访问 Azure Cosmos DB 分析存储 ,然后将近实时作数据的数据集与 Data Lake 或数据仓库中的数据合并。
使用 Azure Synapse Link for Dataverse 时,请使用 SQL 无服务器查询 或 Spark 池笔记本。 可以访问选定 Dataverse 表,然后将来自准实时业务应用程序数据的数据集与数据湖或数据仓库中的数据合并。
存储
- SQL 无服务器查询生成的数据集可以保留在数据湖中。 如果使用 Spark 笔记本,则生成的数据集可以保存在数据湖或数据仓库(SQL 池)中。
服务
将数据从 Azure Synapse SQL 池或 Data Lake 加载到 Power BI 数据集 中,以便进行数据可视化和探索。 Power BI 模型 实现语义模型,以简化业务数据和关系的分析。 业务分析师使用 Power BI 报表和仪表板来分析数据并派生业务见解。
还可以使用 Azure Data Share 安全地将数据共享到其他业务部门或外部受信任的合作伙伴。 数据使用者可以自由选择自己想要使用的数据格式,以及最适合处理共享数据集的计算引擎。
Synapse 工作区中存储的结构化和非结构化数据还可用于构建 知识挖掘解决方案 ,并使用 AI 跨不同文档类型和格式(包括 Office 文档、PDF、图像、音频、表单和网页)发现有价值的业务见解。
关系数据库
引入
- 使用 Azure Synapse 管道 从各种数据库(本地和云中)拉取数据。 为响应事件,可以基于预定义的计划触发 Pipelines 事件,或通过 REST API 显式调用。
存储
在原始数据湖层中,按照要创建哪些层的最佳做法、每个层中使用的文件夹结构以及要用于每个分析方案的文件格式来 组织数据湖 。
在 Azure Synapse 管道中,使用复制数据活动将从关系数据库复制的数据暂存到 Azure Data Lake Store Gen 2 Data Lake的原始层。 可以将数据保存为分隔文本格式,也可以压缩为 Parquet 文件。
进程
使用 数据流、 SQL 无服务器查询或 Spark 笔记本 验证、转换和移动原始层、通过扩充层和 Data Lake 中的特选层移动数据集。
- 作为数据转换的一部分,可以使用 标准 T-SQL 或 Spark 笔记本从 SQL 池调用计算机训练模型。 这些机器学习模型可用于扩充数据集并生成进一步的业务见解。 可以从 Azure AI 服务 使用这些机器学习模型,也可以从 Azure ML 自定义 ML 模型。
服务
可以直接从 Data Lake 特选层为最终数据集提供服务,也可以使用复制数据活动使用 COPY 命令 将最终数据集引入 SQL 池表中,以便快速引入。
将数据从 Azure Synapse SQL 池或 Data Lake 加载到 Power BI 数据集 中,以便进行数据可视化。 Power BI 模型 实现语义模型,以简化业务数据和关系的分析。 业务分析师使用 Power BI 报表和仪表板来分析数据并派生业务见解。
还可以使用 Azure Data Share 安全地将数据共享到其他业务部门或外部受信任的合作伙伴。 数据使用者可以自由选择自己想要使用的数据格式,以及最适合处理共享数据集的计算引擎。
Synapse 工作区中存储的结构化和非结构化数据还可用于构建 知识挖掘解决方案 ,并使用 AI 跨不同文档类型和格式(包括 Office 文档、PDF、图像、音频、表单和网页)发现有价值的业务见解。
半结构化数据源
引入
使用 Azure Synapse 管道 从各种半结构化数据源(本地和云中)拉取数据。 例如:
- 从包含 CSV 或 JSON 文件的基于文件的源中引入数据。
- 连接 Azure Cosmos DB 或 MongoDB 等非 SQL 数据库。
- 调用 SaaS 应用程序提供的 REST API,这些 API 将用作管道的数据源。
存储
在原始数据湖层中,按照要创建哪些层的最佳做法、每个层中使用的文件夹结构以及要用于每个分析方案的文件格式来 组织数据湖 。
在 Azure Synapse 管道中,使用复制数据活动将从半结构化数据源复制的数据暂存到 Azure Data Lake Store Gen 2 Data Lake的原始层中。 保存数据以保留从数据源获取的原始格式。
进程
对于批处理/微批处理管道,请使用 数据流、 SQL 无服务器查询 或 Spark 笔记本 来验证、转换和将数据集移动到数据湖中的特选层。 SQL 无服务器查询将基础 CSV、 Parquet 或 JSON 文件公开为外部表,以便可以使用 T-SQL 查询它们。
- 作为数据转换的一部分,可以使用 标准 T-SQL 或 Spark 笔记本从 SQL 池调用机器学习模型。 这些机器学习模型可用于扩充数据集并生成进一步的业务见解。 可以从 Azure AI 服务 使用这些机器学习模型,也可以从 Azure ML 自定义 ML 模型。
对于准实时遥测和时序分析方案,请使用 数据资源管理器池 轻松地跨多个数据源 引入、合并和关联日志和 IoT 事件数据。 借助数据资源管理器池,可以使用 Kusto 查询(KQL) 执行 时序分析、 地理空间聚类分析和机器学习扩充。
服务
可以直接从 Data Lake 特选层为最终数据集提供服务,也可以使用复制数据活动使用 COPY 命令 将最终数据集引入 SQL 池表中,以便快速引入。
将数据从 Azure Synapse SQL 池、 数据资源管理器池或 数据湖 加载到 Power BI 数据集 中,以便进行数据可视化。 Power BI 模型 实现语义模型,以简化业务数据和关系的分析。 业务分析师使用 Power BI 报表和仪表板来分析数据并派生业务见解。
还可以使用 Azure Data Share 安全地将数据共享到其他业务部门或外部受信任的合作伙伴。 数据使用者可以自由选择自己想要使用的数据格式,以及最适合处理共享数据集的计算引擎。
Synapse 工作区中存储的结构化和非结构化数据还可用于构建 知识挖掘解决方案 ,并使用 AI 跨不同文档类型和格式(包括 Office 文档、PDF、图像、音频、表单和网页)发现有价值的业务见解。
非结构化数据源
引入
使用 Azure Synapse 管道 从各种非结构化数据源(本地和云中)拉取数据。 例如:
- 从包含源文件的基于文件的源中引入视频、图像、音频或自由文本。
- 调用 SaaS 应用程序提供的 REST API,这些 API 将用作管道的数据源。
存储
在原始数据湖层中,按照有关要创建哪些层的最佳做法、要在每个层中使用的文件夹结构以及要用于每个分析方案的文件格式来 组织数据湖 。
在 Azure Synapse 管道中,使用复制数据活动将从非结构化数据源复制的数据暂存到 Azure Data Lake Store Gen 2 数据湖的原始层中。 通过保留从数据源获取的原始格式来保存数据。
进程
使用 Spark 笔记本 验证、转换、扩充数据集,并通过扩充层将数据集从原始层移动到 Data Lake 中的特选层。
- 作为数据转换的一部分,可以使用 标准 T-SQL 或 Spark 笔记本从 SQL 池调用机器学习模型。 这些机器学习模型可用于扩充数据集并生成进一步的业务见解。 可以从 Azure AI 服务 使用这些机器学习模型,也可以从 Azure ML 自定义 ML 模型。
服务
可以直接从 Data Lake 特选层为最终数据集提供服务,也可以使用复制数据活动使用 COPY 命令 将最终数据集引入数据仓库表中,以便快速引入。
将数据从 Azure Synapse SQL 池或 Data Lake 加载到 Power BI 数据集 中,以便进行数据可视化。 Power BI 模型 实现语义模型,以简化业务数据和关系的分析。
业务分析师使用 Power BI 报表和仪表板来分析数据并派生业务见解。
还可以使用 Azure Data Share 安全地将数据共享到其他业务部门或外部受信任的合作伙伴。 数据使用者可以自由选择自己想要使用的数据格式,以及最适合处理共享数据集的计算引擎。
Synapse 工作区中存储的结构化和非结构化数据还可用于构建 知识挖掘解决方案 ,并使用 AI 跨不同文档类型和格式(包括 Office 文档、PDF、图像、音频、表单和网页)发现有价值的业务见解。
流式处理
引入
- 使用 Azure 事件中心或 Azure IoT 中心 引入客户端应用程序或 IoT 设备生成的数据流。 事件中心或 IoT 中心随后会引入并存储流数据,从而保留接收事件的序列。 然后,使用者可以连接事件中心或 IoT 中心终结点,并检索消息以进行处理。
存储
在原始数据湖层中,按照要创建哪些层的最佳做法、每个层中使用的文件夹结构以及要用于每个分析方案的文件格式来 组织数据湖 。
配置事件中心捕获或 IoT 中心存储终结点,将事件的副本保存到 Azure Data Lake Store Gen 2 Data Lake的原始层。 此功能实现 Lambda 体系结构模式 的“冷路径”,并允许使用 SQL Server 无查询 或 Spark 笔记本 对上面所述的半结构化数据源采用模式对数据湖中保存的流数据执行历史趋势分析。
进程
对于实时见解,请使用 流分析作业 实现 Lambda 体系结构模式 的“热路径”,并从传输中的流数据派生见解。 为来自 事件中心 或 IoT 中心的数据流定义至少一个输入,一个查询用于处理输入数据流,一个 Power BI 输出发送到查询结果的位置。
- 在通过流分析进行数据处理的过程中,你可以调用机器学习模型来扩充流数据集,并根据生成的预测来推动业务决策。 这些机器学习模型可以从 Azure AI 服务或 Azure 机器学习中的
自定义 ML 模型使用。
- 在通过流分析进行数据处理的过程中,你可以调用机器学习模型来扩充流数据集,并根据生成的预测来推动业务决策。 这些机器学习模型可以从 Azure AI 服务或 Azure 机器学习中的
使用其他流分析作业输出将处理的事件发送到 Azure Synapse SQL 池 或 数据资源管理器池 ,以便进一步分析用例。
对于近乎实时的遥测和时序分析方案,请使用 数据资源管理器池 轻松地直接从 事件中心 或 IoT 中心引入 IoT 事件。 借助数据资源管理器池,可以使用 Kusto 查询(KQL) 执行 时序分析、 地理空间聚类分析和机器学习扩充。
服务
然后,业务分析师使用 Power BI 实时数据集和仪表板 功能可视化流分析查询生成的快速变化见解。
还可以使用 Azure Data Share 安全地将数据共享到其他业务部门或外部受信任的合作伙伴。 数据使用者可以自由选择自己想要使用的数据格式,以及最适合处理共享数据集的计算引擎。
Synapse 工作区中存储的结构化和非结构化数据还可用于构建 知识挖掘解决方案 ,并使用 AI 跨不同文档类型和格式(包括 Office 文档、PDF、图像、音频、窗体和网页)发现有价值的业务见解。
组件
体系结构中已使用了以下 Azure 服务:
- Azure Synapse Analytics
- Azure Data Lake Gen2
- Azure Cosmos DB
- Azure AI 服务
- Azure 机器学习
- Azure 事件中心
- Azure IoT 中心
- Azure 流分析
- Microsoft Purview
- Azure Data Share
- Microsoft Power BI
- Microsoft Entra ID
- Microsoft成本管理
- Azure Key Vault
- Azure Monitor
- Microsoft Defender for Cloud
- Azure DevOps
- Azure Policy
- GitHub
备选方法
在上述体系结构中,Azure Synapse 管道负责数据管道业务流程。 Azure 数据工厂 管道还提供与本文中所述相同的功能。
Azure Databricks 还可用作计算引擎,用于直接在 Data Lake 上处理结构化和非结构化数据。
在上述体系结构中,Azure 流分析是负责处理流式处理数据的服务。 Azure Synapse Spark 池和 Azure Databricks 还可以通过执行笔记本来执行相同的角色。
Azure HDInsight Kafka 群集还可用于引入流数据,并提供大型流式处理工作负荷所需的适当性能和可伸缩性级别。
还可以利用 Azure Functions 从 Azure Synapse 管道调用 Azure AI 服务或 Azure 机器学习自定义 ML 模型。
之所以选择此体系结构中的技术,是因为每种技术都提供必要的功能来处理组织中最常见的数据挑战。 这些服务不仅满足可伸缩性和可用性要求,同时有助于控制成本。 此体系结构涵盖的服务只是更大的 Azure 服务系列中的一个子集。 可以使用此设计未涵盖的其他服务或功能实现类似结果。
分析用例的特定业务要求也可能需要使用此设计中未考虑的其他服务或功能。
有关其他备选方案的比较,请参阅:
方案详细信息
此示例方案演示如何将 Azure Synapse Analytics 与广泛的 Azure 数据服务系列联合使用,共同构建能够应对组织中最常见数据挑战的现代数据平台。
可能的用例
此方法还可以用来:
- 建立 数据产品 体系结构,该体系结构由结构化数据的数据仓库和半结构化和非结构化数据的 Data Lake 组成。 可以选择为集中环境部署单个数据产品,或为分布式环境(如 Data Mesh)部署多个数据产品。 请参阅数据管理 和数据登陆区域的详细信息。
- 使用大数据处理技术将关系数据源与其他非结构化数据集集成。
- 使用语义建模和强大的可视化工具来简化数据分析。
- 在组织内或与受信任的外部合作伙伴共享数据集。
- 实现知识挖掘解决方案,提取图像、PDF、文档等内容中隐藏的宝贵业务信息。
建议
发现与治理
在大型企业环境中,数据治理是一项常见挑战。 一方面,业务分析师需要能够发现和理解可帮助他们解决业务问题的数据资产。 另一方面,首席数据官需要了解业务数据的隐私和安全性。
Microsoft Purview
使用 Microsoft Purview 来发现数据资产、数据分类和敏感度,了解整个组织数据布局。
Microsoft Purview 可以帮助你维护 业务术语表 ,其中包含用户了解数据集的含义语义以及它们在整个组织中如何使用的特定业务术语。
设置 定期扫描 以自动编录和更新有关组织中的数据资产的相关元数据。 Microsoft Purview 还可以根据 Azure 数据工厂或 Azure Synapse 管道中的信息自动添加 数据世系 信息。
数据管理专业人员可以使用 Microsoft Purview 生成的报表和 见解 来控制整个数据环境,并保护组织免受任何安全和隐私问题。
平台服务
为了提高 Azure 解决方案的质量,请遵循 Azure Well-Architected Framework 中定义的卓越体系结构五大支柱的建议和准则:成本优化、卓越运营、性能效率、可靠性和安全性。
按照这些建议,应将下面的服务视为设计的一部分:
- Microsoft Entra ID:标识服务、跨 Azure 工作负荷的单一登录和多重身份验证。
- Microsoft成本管理:对 Azure 工作负荷进行财务管理。
- Azure Key Vault:安全凭据和证书管理。 例如, Azure Synapse Pipelines、 Azure Synapse Spark 池 和 Azure ML 可以从用于安全访问数据存储的 Azure Key Vault 中检索凭据和证书。
- Azure Monitor:收集、分析和处理 Azure 资源的遥测信息,以主动识别问题并最大限度地提高性能和可靠性。
- Microsoft Defender for Cloud:加强和监视 Azure 工作负荷的安全状况。
- Azure DevOps 和 GitHub:实施 DevOps 做法,以强制实现 Azure Synapse 和 Azure ML 的工作负载开发和部署管道的自动化和符合性。
- Azure Policy:实施组织标准和治理,以实现资源一致性、法规遵从性、安全性、成本和管理。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负荷质量的指导原则。 有关详细信息,请参阅 Well-Architected Framework。
成本优化
成本优化侧重于减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅 成本优化的设计评审清单。
一般情况下,使用 Azure 定价计算器 估算成本。 体系结构中包含的每项服务的理想单独定价层和总成本取决于要处理和存储的数据量以及预期可接受的性能级别。 使用以下指南详细了解每项服务的定价方法:
Azure Synapse Analytics 无服务器体系结构允许独立缩放计算和存储级别。 计算资源按使用情况计费,可按需缩放或暂停这些资源。 存储资源按 TB 计费,因此,引入的数据越多,费用就越高。
Azure Data Lake Gen 2 根据存储的数据量以及要读取和写入数据的事务数收费。
Azure 事件中心和Azure IoT 中心 根据处理消息流所需的计算资源量收费。
Azure 机器学习 费用来自用于训练和部署机器学习模型的计算资源量。
AI 服务 根据对服务 API 的调用数收费。
Microsoft Purview 是根据目录中的数据资产数以及扫描它们所需的计算能力量定价的。
Azure 流分析 根据处理流查询所需的计算能力收费。
Power BI 有不同的产品选项以满足不同的要求。 Power BI Embedded 提供了一个基于 Azure 的选项,用于在应用程序中嵌入 Power BI 功能。 上述定价示例包括 Power BI Embedded 实例。
Azure Cosmos DB 基于数据库所需的存储和计算资源量定价。
还可以为预生产环境实现类似的体系结构,以便其中开发和测试工作负载。 考虑工作负载的特定要求,以及经济高效的预生产环境中每项服务的功能。
部署此方案
本文提供了 GitHub 中提供的配套存储库,介绍如何自动部署此体系结构中涵盖的服务。 按照 Azure 分析端到端的 Azure Synapse 部署指南 ,将此体系结构部署到订阅。 该部署指南包含详细说明和多个部署选项。
供稿人
本文由 Microsoft 更新和维护。 它最初是由以下贡献者撰写的。
首席作者:
- 法比奥·布拉加 |首席 MTC 技术架构师
若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
查看 Azure 数据管理和分析方案中 定义的准则,了解 Azure 中可缩放的分析环境。
浏览 Microsoft的数据工程师学习路径 ,了解有关本参考体系结构中涉及的服务的进一步培训内容和实验室。
使用 GitHub 上提供的部署指南查看文档并部署参考体系结构。