다음을 통해 공유

SQL 仓库配置、扩展和队列行为

本文介绍如何调整、扩展和管理 Databricks SQL 仓库的查询队列,以优化性能和成本。 Databricks 建议对大多数工作负荷使用无服务器 SQL 仓库。 无服务器 SQL 仓库通过动态管理查询的资源来提供最佳性能和效率。

无服务器 SQL 仓库管理

无服务器 SQL 仓库使用 智能工作负荷管理 (IWM)自动管理查询工作负荷。 IWM 是一组由 AI 提供支持的功能,无需管理基础结构即可快速且经济高效地处理查询。

智能工作负载管理和自动扩展

IWM 使用机器学习模型动态管理计算资源:

  • 新查询到达时,IWM 会预测其资源要求并检查可用的容量。
    • 如果容量存在,查询将立即启动。
    • 否则,查询将置于队列中。
  • IWM 持续监视队列。 如果等待时间增加,自动缩放程序会快速预配更多群集来处理排队的查询。
  • 当需求下降时,IWM 会缩减资源,以降低成本,同时保持足够的容量来处理最近的峰值负载。

此方法提供:

  • 快速向上缩放,以保持低查询延迟。
  • 硬件一旦可用,即可允许查询,以实现高吞吐量。
  • 快速缩减,以在低需求期间节省成本。

调整无服务器 SQL 仓库的大小

群集大小(例如 X-Small、Medium、Large)确定可用于单个群集的计算资源。 自动缩放程序根据需要添加或删除该大小的群集。

使用以下准则来帮助选择正确的大小:

  • 从单个更大的仓库开始,让无服务器功能管理并发和性能。 如果需要,缩小大小通常比开始缩小和纵向扩展更有效。
  • 如果查询溢出到磁盘,请增加群集大小。 检查查询配置文件中的溢出。
  • 对于具有多个并发查询的工作负荷,请配置足够的最大群集数来处理峰值负载。 监视仓库监视页上的 “峰值排队查询 ”指标。

注意

对于无服务器 SQL 仓库,在某些情况下,群集大小可能会使用与专业和经典 SQL 仓库文档中列出的实例类型不同的实例类型,以用于等效群集大小。 总的来说,对于无服务器 SQL 仓库,其群集大小的性价比与专业和经典 SQL 仓库的相似。

监视仓库性能

可以使用这些工具监视和调整任何 SQL 仓库的大小。 所有仓库类型队列中的最大查询数为 1,000。

  • 监视页: 在“SQL 仓库监视”选项卡上,检查 “峰值排队查询”。 高于 0 的一致值表示可能需要更大的群集大小或更多群集。
  • 查询历史记录: 查看历史查询性能以确定瓶颈。
  • 查询剖析:检查执行计划中的指标,如溢出到磁盘的字节数,这表明仓库大小可能太小。

经典和专业 SQL 仓库

经典仓库和专业仓库使用手动缩放模型,可在其中配置群集数。

规模设置和集群配置

重要

5X 大型群集大小目前在 Beta 版中用于专业和无服务器 SQL 仓库。 工作区管理员可以从 预览 页控制对此功能的访问。 请参阅 Manage Azure Databricks 预览版

创建经典或专业仓库时,请选择群集大小,并设置群集的最小和最大数目。 这些 SKU 的固定限制为每个 10 个并发查询一个群集。

群集大小 驱动程序实例类型 工人数
2X-小 Standard_E8ds_v4 1 x Standard_E8ds_v4
X-小 Standard_E8ds_v4 2 x Standard_E8ds_v4
Standard_E16ds_v4 4 x Standard_E8ds_v4
中等 Standard_E32ds_v4 8 x Standard_E8ds_v4
Standard_E32ds_v4 16 x Standard_E8ds_v4
X-大 Standard_E64ds_v4 32 x Standard_E8ds_v4
2XL Standard_E64ds_v4 64 x Standard_E8ds_v4
3X-加大码 Standard_E64ds_v4 128 x Standard_E8ds_v4
超大号(4XL) Standard_E64ds_v4 256 x Standard_E8ds_v4
5倍加大码 Standard_E64ds_v4 512 x Standard_E8ds_v4

所有工作节点的实例大小都是 Standard_E8ds_v4。

每个司机和工人都附加了一个 256 GB 的高级 SSD LRS 托管磁盘。 附加的磁盘按小时收费。

经典和专业 SQL 仓库所需的 Azure vCPU 配额

若要启动经典或专业 SQL 仓库,你的 Azure 帐户中必须为 Standard_E8ds_v4 实例提供足够的 Azure vCPU 配额。 使用以下准则来确定所需的 vCPU 配额:

如果只有一个或两个 SQL 仓库,请验证是否为群集中的每个核心提供了 8 个 Azure vCPU。 这可确保有足够的 Azure vCPU 来允许仓库的重新预配,大约每 24 小时进行一次。 如果 SQL 仓库使用自动缩放或多群集负载均衡,则可能需要增加倍数。

  • 随着 SQL 仓库数量的增加,群集的每个核心可以拥有 4 到 8 个 Azure vCPU。 Databricks 建议从较大的数字开始并监视稳定性。
  • SQL 仓库使用的 Azure vCPU 是对供“数据科学与工程”或非 Databricks 工作负载使用的群集所用的 Azure vCPU 的补充。

若要请求其他 Azure vCPU 配额,请提交 Azure 支持请求

注意

此表中的信息可能因产品或区域可用性和工作区类型而异。

队列和自动缩放逻辑

对于经典仓库和专业仓库,自动缩放会根据估计的时间添加群集来处理所有正在运行的查询和排队查询:

  • 2-6 分钟的查询加载:添加 1 个群集。
  • 6-12 分钟:添加 2 个群集。
  • 12-22 分钟:添加 3 个集群。
  • 超过 22 分钟:添加 3 个群集,然后每增加 15 分钟负载,添加 1 个额外的群集。

其他规则:

  • 如果查询在队列中等待 5 分钟,仓库就会扩容。
  • 如果连续 15 分钟负载保持较低,则仓库将缩减为处理该时间段的峰值负载所需的最低负载。