你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

引入、ETL 和流处理管道与 Azure Databricks 和 Delta Lake

Azure Databricks
Azure Data Lake Storage
Azure IoT 中心
Azure 数据工厂
Azure 事件中心

解决方案构想

本文介绍了一种解决方案构想。 云架构师可以通过本指南来帮助可视化此体系结构的典型实现的主要组件。 以本文为起点,设计一个符合工作负荷特定要求的架构合理的解决方案。

你的组织需要以一致的方式将任何格式、大小和速度的数据引入到云中。 本文中的解决方案通过实现从数据源到 Delta Lake 的提取、转换和加载 (ETL) 的体系结构,可满足这一需求。 Delta Lake 可以保存所有数据,包括各种规模的转换和精选版本。 数据可用于数据分析、商业智能 (BI)、报告、数据科学和机器学习。

Apache® 和 Apache Spark™ 是 Apache Software Foundation 在美国和/或其他国家/地区的商标或注册商标。 使用这些标记并不暗示获得 Apache Software Foundation 的认可。

体系结构

该图显示了 Azure Databricks 中 ETL 和流处理的体系结构和数据流。

下载此体系结构的 Visio 文件

数据流

  1. 数据是通过以下方式引入的:

    • 事件中心、IoT 中心或 Kafka 等事件队列将流式数据发送到 Azure Databricks,后者使用优化的 Delta 引擎来读取数据。
    • 计划或触发的数据工厂管道以原始格式从不同的数据源复制数据。 Azure Databricks 中的自动加载程序在数据到达时对其进行处理。
  2. Azure Databricks 将数据加载到 Data Lake Storage Bronze 层中经过优化的压缩 Delta Lake 表或文件夹中。

  3. 流式处理、计划或触发的 Azure Databricks 作业从 Data Lake Storage Bronze 层读取新事务。 作业必须先联接、清理、转换和聚合数据,然后才能使用 ACID 事务将该数据加载到 Data Lake Storage Silver 和 Gold 层中的精选数据集中。

  4. 数据集存储在 Data Lake Storage 的 Delta Lake 中。

每一项服务都将数据引入为通用格式,以确保一致性。 体系结构使用基于开放 Delta Lake 格式的共享 Data Lake。 从不同的批处理和流式处理源中引入原始数据,以形成统一的数据平台。 该平台可用于下游用例,例如分析、BI 报表、数据科学、AI 和机器学习。

Bronze、Silver 和 Gold 存储层

凭借由 Bronze、Silver 和 Gold 存储层组成的奖牌模式,客户具有灵活的访问权限和可扩展的数据处理。

  • Bronze 表提供原始数据到达 Data Lake Storage 时的入口点。 数据以其原始源格式获取,并转换为开放的、事务性 Delta Lake 格式,以进行处理。 该解决方案使用以下方法将数据引入到 Bronze 层:
    • Azure Databricks 中的 Apache Spark API。 API 从事件中心或 IoT 中心读取流式处理事件,然后将这些事件或原始文件转换为 Delta Lake 格式。
    • COPY INTO 命令。 使用该命令将源文件或目录中的数据直接复制到 Delta Lake。
    • Azure Databricks 自动加载程序。 当文件到达 Delta Lake 时,自动加载程序将抓取这些文件并将其写入 Delta Lake 格式。
    • 数据工厂复制活动。 客户可以使用此选项将数据从其支持的任何格式转换为 Delta Lake 格式。
  • Silver 表存储数据,同时针对 BI 和数据科学用例对其进行了优化。 Bronze 层引入原始数据,然后执行更多的 ETL 和流式处理任务,以筛选、清理、转换、联接数据并将其聚合到 Silver 精选的数据集中。 使用 Azure Databricks 作为这些任务的初始服务时,公司可以使用一致的计算引擎(如开放标准 增量引擎)。 然后,他们可以使用熟悉的编程语言,如 SQL、Python、R 或 Scala。 公司还可以使用可重复的 DevOps 过程和适合其个人工作负载的临时计算群集。
  • Gold 表包含扩充的数据,可用于分析和报告。 分析师可以使用他们选择的方法(例如 PySpark、Koalas、SQL、Power BI 和 Excel)来获得新的见解并制定查询。

组件

  • 事件中心 是一个大数据流式处理平台和事件引入服务,旨在每秒处理数百万个事件。 在此体系结构中,它会分析和评分来自各种源(包括本地系统)的流式处理消息,并将实时数据提供给 Azure Databricks 进行处理。
  • Azure 数据工厂 是一种数据集成服务,可协调和自动执行数据移动和转换。 在此体系结构中,它管理计划或触发的管道,这些管道从各种源引入、准备和转换数据到 Data Lake。
  • Data Lake Storage 是结构化和非结构化数据的可缩放数据存储服务。 在此体系结构中,它充当 Delta Lake 的基础基础结构。 它跨青铜层、白银层和黄金层存储原始、特选和扩充的数据。
  • Azure Databricks 是基于 Apache Spark 的分析平台,针对 Azure 进行优化,支持协作数据工程、数据科学和机器学习。 在此体系结构中,Azure Databricks 处理来自事件中心和 Azure 数据工厂的传入数据、清理和转换数据,并将其加载到 Delta Lake 表中。
  • IoT 中心 是一项托管服务,可在 IoT 应用程序和设备之间实现安全可靠的通信。 在此体系结构中,它将遥测数据从连接的设备流式传输到 Azure Databricks,以便进行实时处理和扩充。
  • Delta Lake 是一个开源存储层,通过 ACID 事务和可缩放的元数据处理为数据湖提供可靠性。 在此体系结构中,Data Lake Storage 上的 Delta Lake 可确保跨铜层、银层和黄金层对数据进行一致的高效引入和查询。

方案详细信息

使用 Azure Databricks 进行引入、ETL 和流处理具有简单、开放且协作的特点:

  • 简单:具有开源格式的精选层的开放 Delta Lake 可简化数据体系结构。 Delta Lake 是一种开源工具,它提供对 Azure Data Lake Storage Delta Lake 的访问权限。 Data Lake Storage 上的 Delta Lake 支持原子性、一致性、隔离性和持久性 (ACID) 事务,以提高可靠性。 Delta Lake 针对高效引入、处理和查询进行了优化。
  • 开放:该解决方案支持开源代码、开放标准和开放框架。 它还能与流行的集成开发环境 (IDE)、库和编程语言配合工作。 通过本机连接器和 API,该解决方案还能与其他广泛的服务配合工作。
  • 协作:数据工程师、数据科学家和分析师可以使用此解决方案进行协作。 他们可以使用协作笔记本、IDE、仪表板和其他工具来访问和分析常见基础数据。

Azure Databricks 与其他 Azure 服务无缝集成,例如 Data Lake Storage、Azure 数据工厂、Azure 事件中心和 Azure IoT 中心。

可能的用例

该解决方案的灵感来自 Providence Health Care 为实时分析而构建的系统。 任何引入批处理或流式数据的行业也可以考虑使用此解决方案。 示例包括:

  • 零售和电子商务
  • 金融
  • 医疗保健与生命科学
  • 能源供应商

后续步骤

指南和完全可部署的体系结构: