配置作业的计算

本文包含有关配置 Databricks 作业计算的建议和资源。

重要

作业的无服务器计算限制包括如下:

  • 不支持“持续”计划。
  • 不支持结构化流式处理中的默认或基于时间的间隔触发器。

有关更多限制,请参阅无服务器计算限制

每个作业可以有一个或多个任务。 需要定义每个任务的计算资源。 为同一作业定义的多个任务可以使用同一计算资源。

显示具有多个任务和关联的云计算资源的作业图像

下表列车了对于每个任务类型建议和支持的计算类型。

注意

作业的无服务器计算具有限制,不支持所有工作负载。 请参阅无服务器计算限制

任务 建议的计算 支持的计算
Notebook 无服务器作业 无服务器作业、经典作业、经典通用作业
Python 脚本 无服务器作业 无服务器作业、经典作业、经典通用作业
Python 轮子 无服务器作业 无服务器作业、经典作业、经典通用作业
SQL 无服务器 SQL 仓库 无服务器 SQL 仓库、Pro SQL 仓库
Delta Live Tables 管道 无服务器管道 无服务器管道、经典管道
dbt 无服务器 SQL 仓库 无服务器 SQL 仓库、Pro SQL 仓库
dbt CLI 命令 无服务器作业 无服务器作业、经典作业、经典通用作业
JAR 经典作业 经典作业、经典通用
Spark Submit 经典作业 经典作业

作业的定价与用于运行任务的计算有关。 有关详细信息,请参阅 Databricks 定价

如何为作业配置计算?

经典作业计算可直接从 Databricks 作业 UI 配置,并且这些配置是作业定义的一部分。 所有其他可用的计算类型会将配置与其他工作区资产一起存储。 下表提供了更多详细信息:

计算类型 详细信息
经典作业计算 可使用与通用计算相同 UI 和设置为经典作业配置计算。 请参阅计算配置参考
作业的无服务器计算 对于支持无服务器计算的所有任务,作业的无服务器计算是默认选择。 Databricks 负责管理无服务器计算的计算设置。 请参阅使用工作流的无服务器计算运行 Azure Databricks 作业。 nn 工作区管理员必须启用无服务器计算才能使此选项可见。 请参阅启用无服务器计算
SQL 仓库 无服务器和 Pro SQL 仓库可由工作区管理员或具有不受限制群集创建权限的用户配置。 可将任务配置为针对现有 SQL 仓库运行。 请参阅连接到 SQL 仓库
Delta Live Tables 管道计算 可在管道配置期间为 Delta Live Tables 管道配置计算设置。 请参阅配置计算设置。 nn Azure Databricks 负责管理无服务器 Delta Live Tables 管道的计算资源。 请参阅使用 Delta Live Tables 和无服务器计算创建完全托管的管道
通用计算 可以选择使用经典通用计算来配置任务。 Databricks 不建议将此配置用于生产作业。 请参阅计算配置参考是否应将通用计算用于作业?

跨任务共享计算

将任务配置为使用相同的作业计算资源来优化编排多个任务的作业的资源使用情况。 跨任务共享计算可以减少与启动时间有关的延迟。

可以使用单个作业计算资源来运行属于该作业的所有任务,也可使用针对特定工作负载优化的多个作业资源。 配置为作业一部分的任何作业计算都可用于作业中的所有其他任务。

下表重点介绍了为单个任务配置的作业计算与在任务之间共享的作业计算之间的区别:

单个任务 跨任务共享
Start 任务运行开始时。 第一个配置为使用计算资源的任务运行开始时。
终止 任务运行后。 最后一个配置为使用计算资源的任务运行后。
空闲计算 不适用。 当不使用计算资源运行的任务时,计算将保持打开和空闲状态。

共享作业群集的范围为单个作业运行,不能由同一作业的其他作业或运行使用。

不能在共享作业群集配置中声明库。 必须在任务设置中添加依赖库。

检查、配置和交换作业计算

“作业详细信息”面板中的“计算”部分会列出为当前作业中的任务配置的所有计算。

将鼠标悬停在计算规范上时,将在任务图中突出显示配置为使用计算资源的任务。

使用“交换”按钮可更改与计算资源关联的所有任务的计算。

经典作业计算资源具有一个“配置”选项。 其他计算资源提供了查看和修改计算配置详细信息的选项。

有关配置经典作业计算的建议

本节重点介绍有关可令某些工作流受益的功能和配置的一般建议。 有关配置计算资源大小和类型的具体建议因工作负载而异。

Databricks 建议启用 Photon 加速、使用最新的 Databricks Runtime 版本并使用为 Unity Catalog 配置的计算。

作业的无服务器计算会管理所有基础结构,因此无需考虑以下事项。 请参阅使用工作流的无服务器计算运行 Azure Databricks 作业

注意

结构化流式处理工作流具有特定的建议。 请参阅结构化流式处理的生产注意事项

使用共享访问模式

Databricks 建议对作业使用共享访问模式。 请参阅访问模式

注意

共享访问模式不支持某些工作负载和功能。 Databricks 建议对此类工作负载使用单用户访问模式。 请参阅 Unity Catalog 的计算访问模式限制

使用群集策略

Databricks 建议工作区管理员为作业定义群集策略,并为有权配置作业的所有用户强制实施这些策略。

群集策略让工作区管理员能够设置成本控制并限制用户的配置选项。 有关配置群集策略的详细信息,请参阅创建和管理计算策略

Azure Databricks 为作业配置了默认策略。 管理员可以将此策略提供给其他工作区用户使用。 请参阅作业计算。。

使用自动缩放

配置自动缩放,以便长时间运行的任务可以在作业运行期间动态添加和移除工作器节点。 请参阅启用自动缩放

使用池缩短群集启动时间

利用计算池,可以从云提供商预留计算资源。 计算池有利于减少新作业群集的启动时间并确保计算资源可用性。 请参阅池配置参考

使用竞价实例

为延迟要求较为宽松的工作负载配置竞价实例以优化成本。 请参阅竞价实例

是否应将通用计算用于作业?

由于多种原因,Databricks 建议对作业使用通用计算,包括:

  • Azure Databricks 按照与作业计算不同的费率为通用计算计费。
  • 作业计算在作业运行完成后会自动终止。 通用计算支持自动终止,并且这种终止与非活动状态相关联,而不是与作业运行结束相关联。
  • 通用计算通常会跨用户团队共享。 使用通用计算计划的作业通常会因计算资源竞争而增加延迟。
  • 优化作业计算配置的许多建议不适用于在通用计算上运行的临时查询和交互式工作负载类型。

以下是可以选择对作业使用通用计算的用例:

  • 你正在迭代开发或测试新作业。 作业计算的启动时间可能使得迭代开发变得繁琐。 使用通用计算有助于快速应用更改和运行作业。
  • 你有一些必须经常或按特定计划运行的短期性作业。 没有与当前运行的通用计算关联的启动时间。 如果使用此模式,请注意与空闲时间相关的成本。

对于大多数计划使用通用计算的任务类型,建议使用作业的无服务器计算来替代。