了解关键概念

已完成

Azure Databricks 是单一服务平台,采用多种技术来实现大规模数据处理。 使用 Azure Databricks 时,需要理解一些关键概念。

工作区

Azure Databricks 中的 工作区 是一个安全的协作环境,可在其中访问和组织所有 Databricks 资产,例如笔记本、群集、作业、库、仪表板和试验。

可以通过选择 “启动工作区”从 Azure 门户打开 Azure Databricks 工作区。

Azure 门户的屏幕截图,其中显示了 Azure Databricks 登陆页。

它提供基于 Web 的 用户界面(UI) 以及用于管理资源和工作流的 REST API。 可将工作区结构化为文件夹,以组织项目、数据管道或团队资产,并且可以在不同级别应用权限来控制访问权限。 他们通过允许多个用户(如数据工程师、分析师和数据科学家)协作,共同处理共享笔记本、跟踪试验和管理依赖项,从而支持 协作

此外,工作区与 Unity 目录 (启用时)相关联,以实现集中式数据治理,确保在整个组织中安全地访问数据。 每个工作区还与一个 基础 Azure 资源组(包括托管资源组)相链接,该资源组保存了 Databricks 在幕后使用的计算、网络和存储资源。

Notebooks

Databricks 笔记本 是基于 Web 的交互式文档,可将 可运行的代码、可视化效果和叙述文本 组合在一个环境中。 它们支持多种语言(如 Python、R、Scala 和 SQL),并允许用户使用 magic 命令在同一笔记本中的语言之间切换。 这种灵活性使笔记本非常适合 用于探索数据分析、数据可视化、机器学习试验和生成复杂的数据管道

笔记本还设计用于 协作:多个用户可以同时编辑和运行单元格、添加批注和实时共享见解。 它们与 Databricks 群集紧密集成,使用户能够高效地处理大型数据集,并且可以通过 Unity 目录 连接到外部数据源,以便管理的数据访问。 此外,笔记本可以进行版本控制、安排为任务或导出以在平台外部共享,使它们在临时探索生产级工作流中发挥核心作用。

笔记本包含两种类型的单元格的集合: 代码单元格Markdown 单元格。 代码单元格包含可运行的代码。 Markdown 单元格包含以文本和图形的形式呈现的 Markdown 代码。 可以 运行 单个单元格、一组单元格或整个笔记本。

Azure Databricks Notebook 的屏幕截图。

群集

Azure Databricks 利用两层体系结构:

  • 控制平面:此内部层由Microsoft管理,用于处理特定于 Azure Databricks 帐户的后端服务。
  • 计算平面:这是处理数据和驻留在 Azure 订阅中的外部层。

显示 Azure Databricks 高级体系结构的关系图。

群集 是 Azure Databricks 中的核心计算引擎。 它们提供运行数据工程、数据科学和分析任务所需的处理能力。 每个群集都包含一个 驱动程序节点,该节点协调执行,以及一个或多个处理分布式计算的工作 器节点。 可以使用固定资源手动创建群集,也可以设置为 自动缩放,从而允许 Databricks 根据工作负荷需求添加或删除工作器节点。 这种灵活性可确保高效的资源使用和成本控制。

Azure Databricks 计算提供了一组适用于不同工作负荷类型的广泛的计算选项:

  • 无服务器计算:完全托管的按需计算,可自动纵向扩展或缩减以满足工作负荷需求。 非常适合需要快速启动时间、最小管理开销和弹性缩放的团队。
  • 经典计算:用户预配和配置的群集,可完全控制计算设置,例如 VM 大小、库和运行时版本。 最适合需要自定义或一致性能的专用工作负荷。
  • SQL 仓库:针对基于 SQL 的分析和 BI 查询优化的计算资源。 可以根据治理和性能要求将 SQL 仓库预配为 无服务器 (弹性、托管)或 经典 (用户配置)。

这样,就可以根据特定需求定制计算,从笔记本中的探索分析,到大规模 ETL 管道,到高性能仪表板和报告。

Databricks Runtime

Databricks RuntimeApache Spark 的一组自定义构建版本,其包括性能改进和额外的库。 通过这些运行时,可以更轻松地处理 机器学习图形处理基因组学等任务,同时仍支持常规数据处理和分析。

Databricks 提供多个运行时版本,包括 长期支持 (LTS) 版本。 每个版本都指定基础 Apache Spark 版本、其发布日期以及何时支持结束。 随着时间的推移,较旧的运行时版本遵循生命周期:

  • 旧版 – 可用但不再推荐使用。
  • 已弃用 – 在将来的版本中标记为删除。
  • 支持终止(EoS) - 不再提供补丁或修复程序。
  • 生命周期结束 (EoL) - 已停用,不再可用。

如果为正在使用的运行时版本发布了维护更新,可以通过 重启群集来应用更新。

Lakeflow 作业

Lakeflow 作业 在 Azure Databricks 中提供工作流自动化和编排,从而能够可靠地计划、协调和运行数据处理任务。 无需手动运行代码,而是可以使用作业来自动执行重复性或生产级工作负载,例如 ETL 管道、机器学习训练或仪表板刷新。

Azure Databricks 作业登陆页的屏幕截图。

本质上,Databricks 中的作业是一个容器,用于包含一个或多个 任务。 任务定义要完成的工作,例如,运行笔记本、执行 Spark 作业、调用外部代码...

可以通过不同的方式触发作业:

  • 按计划(例如,每晚午夜)。
  • 响应事件。
  • 根据需要手动。

由于作业可重复和管理,因此作业对于 生产工作负荷至关重要。 它们确保数据管道运行一致、ML 模型以受控方式训练和部署,下游系统接收更新、准确的数据。

Delta Lake

Delta Lake 是一个开放源代码存储框架,通过添加云对象存储(如 Azure Data Lake Storage)上的事务功能来提高数据湖的可靠性与可伸缩性。 传统数据湖可能会遇到数据不一致、写入不完整或管理并发访问困难等问题。 Delta Lake 通过提供支持来解决这些问题:

  • 用于可靠读取和写入的 ACID 事务(原子性、一致性、隔离性、持久性)。
  • 可缩放的元数据处理 ,使表可以增长到数十亿个文件,而不会丢失性能。
  • 数据版本控制与回滚,用于进行时间旅行查询并恢复到以往的状态
  • 统一的批处理和流式处理,因此同一个表可以处理实时引入和历史批处理加载。

除此之外, Delta 表 提供了一个熟悉的表抽象,使使用 SQL 查询数据帧 API 更轻松地处理结构化数据。 增量表是 Azure Databricks 中的默认表格式,确保默认使用事务性保证存储新数据。

Databricks SQL

Databricks SQL数据仓库功能 引入 Databricks Lakehouse,使分析师和企业用户能够直接查询和可视化以开放格式存储在 Data Lake 中的数据。 它支持 ANSI SQL,因此任何熟悉 SQL 的人都可以运行查询、生成报表和创建仪表板,而无需学习新的语言或工具。

Databricks SQL 仅在 Azure Databricks 的高级层 中可用。 其中包括:

  • 用于编写和运行查询的 SQL 编辑器
  • 用于共享见解的仪表板和可视化工具
  • 与外部 BI 和分析工具集成。

SQL 仓库

所有 Databricks SQL 查询在 SQL 仓库 (以前称为 SQL 终结点)上运行,这些查询都是与存储分离的可缩放计算资源。 根据性能、成本和管理需求,可以使用不同的仓库类型:

  • 无服务器 SQL 仓库

    • 即启即用且弹性的计算,提供快速启动和自动缩放功能。
    • 由于 Databricks 处理容量、修补和优化,因此管理开销较低
    • 通过自动缩放和避免空闲资源成本来降低成本
  • Pro SQL Warehouses

    • 更可自定义,但启动速度较慢(≈4分钟)。
    • 与无服务器相比,自动缩放的响应速度较慢。
    • 当需要一致且可预测的工作负荷时非常有用。
  • 经典 SQL 仓库

    • 计算资源在 自己的 Azure 订阅中运行,而不是在 Databricks 中运行。
    • 不如无服务器灵活,但可能更适合特定治理或成本管理要求。

MLflow

MLflow 是一个开源平台,旨在管理 端到端机器学习(ML)生命周期。 它可帮助数据科学家和 ML 工程师跟踪试验、管理模型以及简化将模型从开发转移到生产的过程。 MLflow 还支持生成式 AI 工作流,并包括用于评估和改进 AI 代理的工具。