为增量实时表管道配置计算

本文包含为 Delta Live Tables 管道配置自定义计算设置时的说明和注意事项。

无服务器管道不提供计算配置选项。 请参阅 配置无服务器增量实时表管道

选择群集策略

用户必须有权部署计算才能配置和更新增量实时表管道。 工作区管理员可以配置群集策略,以便为用户提供对增量实时表计算资源的访问权限。 请参阅定义 Delta Live Tables 管道计算的限制

注意

  • 群集策略是可选的。 如果缺少 Delta Live Tables 所需的计算权限,请与工作区管理员联系。

  • 若要确保正确应用群集策略默认值,请在管道配置中的群集配置设置为apply_policy_default_valuestrue

    {
      "clusters": [
        {
          "label": "default",
          "policy_id": "<policy-id>",
          "apply_policy_default_values": true
        }
      ]
    }
    

配置群集标记

可以使用群集标记来监视管道群集的使用情况。 在创建或编辑管道时或在管道群集编辑 JSON 设置时,在 Delta Live Tables UI 中添加群集标记。

选择要运行管道的实例类型

默认情况下,Delta Live Tables 为管道的驱动程序和工作器节点选择实例类型。 可以选择配置实例类型。

例如,选择实例类型以提高管道性能,或者在运行管道时解决内存问题。 在使用 REST API 或增量实时表 UI 创建编辑管道时,可以配置实例类型。

若要在增量实时表 UI 中创建或编辑管道时配置实例类型:

  1. 单击“设置”按钮。
  2. 在管道设置的“高级”部分中,在“辅助角色类型”和“驱动程序类型”下拉菜单中,选择管道的实例类型。

高级计算配置

注意

由于“无服务器 DLT 管道”管道的计算资源是完全托管的,因此为管道选择“无服务器”时,计算设置不可用。

每个增量实时表管道有两个关联的群集:

  • updates 群集处理管道更新。
  • maintenance 群集运行日常维护任务。

使用工作区管道配置 UI 指定的计算设置适用于更新和维护群集。 必须编辑 JSON 配置才能独立修改这些设置。

这些群集使用的配置由 clusters 管道设置中指定的属性确定。

使用群集标签,可以添加仅适用于特定群集类型的计算设置。 配置管道群集时可以使用三个标签:

注意

如果只定义一个群集配置,则可以省略群集标签设置。 如果未提供标签的设置,则 default 标签将应用于群集配置。 仅当需要为不同的群集类型自定义设置时,才需要群集标签设置。

  • default标签定义和群集的updatesmaintenance计算设置。 将相同的设置应用于这两个群集可确保将所需的配置(例如存储位置的数据访问凭据)应用于维护群集,从而提高维护运行的可靠性。
  • maintenance标签定义要仅应用于maintenance群集的计算设置。 还可以使用 maintenance 标签替代由 default 标签配置的设置。
  • updates标签定义要仅应用于updates群集的设置。 使用它来配置不应应用于群集的设置 maintenance

使用 defaultupdates 标签定义的设置将合并为 updates 群集创建最终配置。 如果使用 defaultupdates 标签定义相同的设置,则使用 updates 标签定义的设置将替代使用 default 标签定义的设置。

以下示例定义一个 Spark 配置参数,该参数仅添加到 updates 群集的配置中:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
         "key": "value"
      }
    }
  ]
}

增量实时表的群集设置选项与 Azure Databricks 上的其他计算类似。 与配置其他管道设置一样,你可以修改群集的 JSON 配置以指定不显示在 UI 中的选项。 请参阅计算

注意

由于 Delta Live Tables 运行时会管理管道群集的生命周期并运行自定义版本的 Databricks Runtime,因此你无法在管道配置中手动设置某些群集设置,例如 Spark 版本或群集名称。 请参阅不可由用户设置的群集属性

为更新和维护群集配置实例类型

若要在管道的 JSON 设置中配置实例类型,请单击“JSON”按钮,并在群集配置中输入实例类型配置:

注意

为了避免向 maintenance 群集分配不必要的资源,此示例使用 updates 标签来仅设置 updates 群集的实例类型。 若要将实例类型分配给 updatesmaintenance 群集,请使用 default 标签或省略标签的设置。 如果未提供标签的设置,则 default 标签将应用于管道群集配置。 请参阅 高级计算配置

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "..." : "..."
    }
  ]
}

延迟计算关闭

要控制群集关闭行为,可以使用开发或生产模式,也可以使用管道配置中的 pipelines.clusterShutdown.delay 设置。 以下示例将 pipelines.clusterShutdown.delay 值设置为 60 秒:

{
    "configuration": {
      "pipelines.clusterShutdown.delay": "60s"
    }
}

如果启用 production 模式,pipelines.clusterShutdown.delay 的默认值为 0 seconds。 如果启用 development 模式,默认值为 2 hours

注意

由于增量实时表群集在不使用时自动关闭,因此引用群集配置中设置 autotermination_minutes 的群集策略会导致错误。

创建单节点群集

如果在群集设置中将 num_workers 设置为 0,群集将创建为单节点群集。 配置自动缩放群集并将设置为 min_workers 0 和 max_workers 0 将创建单个节点群集。

如果将自动缩放群集配置为仅 min_workers 设置为 0,则群集不会创建为单节点群集。 在终止之前,群集将始终至少句有 1 个活动辅助角色。

在增量实时表中创建单节点群集的示例群集配置:

{
    "clusters": [
      {
        "num_workers": 0
      }
    ]
}