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

本文包含配置增量实时表管道的自定义计算设置时所需的说明和注意事项。

无服务器管道未提供计算配置选项。

选择群集策略

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

注意

  • 群集策略是可选的。 如果缺少增量实时表所需的计算特权,请咨询工作区管理员。

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

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

配置群集标记

可以使用群集标记来监视管道群集的使用情况。 创建或编辑管道时,可以在增量实时表 UI 中添加群集标记,或者通过编辑管道群集的 JSON 设置添加标记。

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

默认情况下,增量实时表会为管道的驱动程序和辅助角色节点选择实例类型。 可以选择配置实例类型。

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

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

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

高级计算配置

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

  • 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
      }
    ]
}