你当前正在访问 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 事件中心

解决方案构想

本文是一种解决方案构想。 如果你希望我们在内容中扩充更多信息,例如潜在用例、备用服务、实现注意事项或定价指南,请通过提供 GitHub 反馈来告知我们。

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

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

体系结构

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

下载此体系结构的 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 作为这些任务的初始服务时,公司可以使用一致的计算引擎,例如开放标准 Delta 引擎。 然后,他们可以使用熟悉的编程语言,如 SQL、Python、R 或 Scala。 公司还可以使用可重复的 DevOps 过程和适合其个人工作负载的临时计算群集。
  • Gold 表包含扩充的数据,可用于分析和报告。 分析师可以使用他们选择的方法(例如 PySpark、Koalas、SQL、Power BI 和 Excel)来获得新的见解并制定查询。

组件

  • 事件中心对来自各种源(包括本地系统)的流式处理消息进行分析和评分,并提供实时信息。
  • 数据工厂协调数据管道,以引入、准备和转换任意规模的所有数据。
  • Data Lake Storage 汇集了流式数据和批处理数据,包括结构化、非结构化和半结构化数据,例如日志、文件和媒体。
  • Azure Databricks 清理和转换无结构数据集,并将其与来自操作数据库或数据仓库的结构化数据相结合。
  • IoT 中心让你可在 IoT 应用程序和设备之间进行高度安全且可靠的通信。
  • Data Lake Storage 上的 Delta Lake 支持 ACID 事务以提高可靠性,并针对高效引入、处理和查询进行了优化。

方案详细信息

使用 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 为实时分析而构建的系统。 任何引入批处理或流式数据的行业也可以考虑使用此解决方案。 示例包括:

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

后续步骤

  • Spanish Point Technologies 使用 Azure Databricks 和 Azure 数据工厂生成其匹配引擎,以大规模引入数据,从而帮助音乐家获得公平的报酬。

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