通过增强的自动缩放优化增量实时表管道的群集利用率

本文介绍如何使用增强的自动缩放来优化 Azure Databricks 上的增量实时表管道。

默认情况下,为所有新管道启用增强的自动缩放。

对于无服务器管道,增强的自动缩放始终处于打开状态,无法禁用。 请参阅 配置无服务器增量实时表管道

什么是增强的自动缩放?

Databricks 增强型自动缩放可以根据工作负载量自动分配群集资源,从而优化群集利用率,并尽量减轻对管道数据处理延迟的影响。

增强的自动缩放改进了 Azure Databricks 群集自动缩放功能 ,具有以下功能:

  • 增强的自动缩放实现了流式处理工作负载的优化,并添加了增强功能以提高批处理工作负荷的性能。 增强的自动缩放通过添加或删除工作负荷更改来优化成本。
  • 增强的自动缩放主动关闭未充分利用的节点,同时保证关闭期间没有失败的任务。 仅当节点处于空闲状态时,现有群集自动缩放功能才会纵向缩减节点。

增强型自动缩放是在增量实时表 UI 中创建新管道时的默认自动缩放模式。 可以通过编辑 UI 中的管道设置,为现有管道启用增强的自动缩放。 还可以使用增量实时表 API 创建或编辑管道时启用增强的自动缩放。

增强的自动缩放使用哪些指标来做出纵向扩展或缩减决策?

增强型自动缩放使用两个指标来决定纵向扩展或纵向缩减:

  • 任务槽利用率:这是繁忙任务槽数群集中可用的总任务槽数的平均比率。
  • 任务队列大小:这是任务槽中等待执行的任务数。

为增量实时表管道启用增强的自动缩放

增强型自动缩放是在增量实时表 UI 中创建新管道时的默认自动缩放模式。 可以通过编辑 UI 中的管道设置,为现有管道启用增强的自动缩放。 还可以在使用增量实时表 API 创建或编辑管道时启用增强的自动缩放。

若要使用增强的自动缩放,请执行以下操作之一:

  • 在增量实时表 UI 中创建或编辑管道时,将群集模式设置为增强的自动缩放
  • autoscale 设置添加到管道群集配置,并将 mode 字段设置为 ENHANCED。 请参阅 配置增量实时表管道的计算。

为生产管道配置增强的自动缩放时,请使用以下准则:

  • Min workers 设置保留为默认值。
  • Max workers 设置为基于预算和管道优先级的值。

以下示例配置了至少 5 个辅助角色和最多 10 个辅助角色的增强自动缩放群集。 max_workers 必须大于或等于 min_workers

注意

  • 增强的自动缩放 updates 仅适用于群集。 旧版自动缩放用于 maintenance 群集。
  • autoscale 配置有两种模式:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

如果管道配置为连续执行,则自动缩放配置更改后会自动重启该管道。 重启后,预期有短暂的一段时间延迟会提高。 在此短暂的延迟增加期之后,群集大小应基于 autoscale 配置进行更新,管道延迟应返回其以前的延迟特征。

限制使用增强自动缩放的管道的成本

注意

不能为无服务器管道配置辅助角色。

在管道中设置 Max worker 参数时,“计算”窗格设置自动缩放的上限。 减少可用辅助角色的数量可能会增加某些工作负荷的延迟,但可以防止计算资源成本在计算密集型操作期间突发。

Databricks 建议优化 最大辅助角色 设置,以平衡特定需求的成本延迟权衡。

管道 UI 中的“计算”窗格,可以在其中设置自动缩放的最大辅助角色

监视已启用自动缩放的增强型经典管道

可以使用 Delta Live Tables 用户界面中的事件日志监视经典管道的增强自动缩放指标。 增强的自动缩放事件具有 autoscale 事件类型。 下面是示例事件:

事件 消息
已提出群集调整大小请求 Scaling [up or down] to <y> executors from current cluster size of <x>
群集调整大小请求已成功 Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
群集调整大小请求已部分成功 Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
群集调整大小请求失败 Achieved cluster size <x> for cluster <cluster-id> with status FAILED

还可以通过直接查询 事件日志来查看增强的自动缩放事件: