什么是 Databricks SQL 仓库?
本文介绍 SQL 仓库(以前称为 SQL 终结点),并说明如何通过 Databricks SQL UI 使用这些仓库。 SQL 仓库是一种计算资源,支持对 Databricks SQL 中的数据对象运行 SQL 命令。 计算资源是在云中提供处理功能的基础结构资源。
SQL 终结点的名称更改为 SQL 仓库
Databricks 将 SQL 终结点更名为 SQL 仓库,因为它不仅仅是运行 SQL 命令的 API 入口点。 SQL 仓库是满足所有数据仓库需求的计算资源,是 Lakehouse 平台不可分割的一部分。
其他计算资源类型包括 Azure Databricks 群集。 若要使用 API 处理 SQL 仓库,请参阅 SQL 仓库 API 2.0。
准备阶段
创建第一个 SQL 仓库时,Databricks 会建议你接受“新建 SQL 仓库”页上显示的默认值。 但是,你可以配置许多其他选项以满足特定需求。 在这些选项中,应注意通道,通过它可选择是使用当前 SQL 仓库计算版本还是预览版本。 预览版可让你在某些功能成为 Databricks SQL 标配之前试用这些功能。 利用预览版本针对即将发生的更改测试你的查询和仪表板。 通常,预览版本会在初始预览版发布两周后升级到当前版本,但某些预览版可能会持续更长时间。 你可以通过查看发行说明来了解最新预览版中的功能。 Databricks 不建议对生产工作负荷使用预览版本。
要求
若要创建 SQL 仓库,必须在 Databricks“数据科学与工程”中拥有群集创建权限。
若要管理 SQL 仓库,必须在 Databricks SQL 中具有可管理权限。
Azure 帐户中必须有足够的 vCPU 配额。 通常,默认 vCPU 配额足以创建初学者仓库,该仓库会在新工作区上自动创建。 不过,Azure 帐户可能没有足够的 vCPU 配额来缩放初学者仓库或创建额外的仓库。 请参阅必需的 Azure vCPU 配额。 可以请求额外的 vCPU 配额。 Azure 帐户可能会对可以请求的 vCPU 配额有限制。 有关详细信息,请联系 Azure 帐户代表。
查看 SQL 仓库
单击边栏中的
SQL 仓库。
默认情况下,仓库按状态(正在运行的仓库优先),然后按字母顺序排序。 可以通过单击列标题重新对列表进行排序。
为了帮助你快速入门,例如在按照 Databricks SQL 快速入门操作时,Azure Databricks 会自动创建一个名为“初学者仓库”的 SQL 仓库。 此 SQL 仓库是小型的。 你将无法编辑或删除此 SQL 仓库。
若要筛选仓库列表,请在搜索框中输入文本:
若要查看有关仓库配置的详细信息,包括连接详细信息、监视和高级设置,请单击该仓库的名称。

创建 SQL 仓库
可以使用 Web UI 中的“新建 SQL 仓库”页或使用 SQL 仓库 API 来创建 SQL 仓库。
接受“新建 SQL 仓库”页上的所有默认值后,可快速轻松地创建高效且高性能的 SQL 仓库。 如果工作负载或环境需要,则可以覆盖这些默认值。
若要使用 Web UI 创建 SQL 仓库:
单击边栏中的
SQL 仓库。单击“创建 SQL 仓库”以打开“新建 SQL 仓库”对话框。
输入仓库的名称。
接受默认的仓库属性或对其进行编辑。
“群集大小”表示可用于运行查询和仪表板的群集辅助角色的数量和计算资源的大小。 默认值为“X-大”。 若要减少查询延迟,请增加大小。 有关详细信息,请查看群集大小。
“自动停止”选项确定在仓库空闲指定分钟数后是否停止仓库。 默认值为 10 分钟。 建议采用 120 分钟。
空闲的 SQL 仓库会继续累积 DBU 和云实例费用,直到被停止。
“缩放”选项设置分布发送到仓库的查询所依据的群集最小数量和最大数量。
默认值是最少一个群集,最多一个群集。
若要针对给定查询处理更多并发用户,请增加群集数。 Databricks 建议为每十个并发查询使用一个群集。 若要了解 Azure Databricks 如何在仓库中添加和删除群集,请参阅排队和自动缩放。
(可选)配置高级选项。
若要执行以下任一操作,请展开“高级选项”:
- 添加标记以帮助监视 SQL 仓库使用情况
- 为 SQL 仓库配置现成实例策略
- 使用预览通道测试即将推出的功能
有关详细信息,请参阅高级选项。
单击 “创建” 。
执行下列操作之一:
- 配置仓库权限,并单击“保存”。
- 单击“跳过”。
仓库已创建并启动。
高级选项
使用新建 SQL 仓库对话框创建 SQL 仓库,或使用编辑对话框编辑现有 SQL 仓库时,可展开“高级选项”区域来配置以下高级选项。 还可以使用 SQL 仓库 API 2.0 来配置这些选项。

为使用情况监视添加标记
可使用标记轻松监视组织中的用户和组所使用的云资源的成本。 创建或编辑 SQL 仓库时,展开“高级选项”区域来将标记指定为键值对。 Azure Databricks 将这些标记应用于云资源。
配置点实例策略
现成虚拟机实例策略确定工作器是仅使用按需实例还是同时使用按需实例和现成虚拟机实例。 “成本优化”(默认)主要使用现成虚拟机实例和一个按需实例。 “可靠性优化”仅使用按需实例。
使用预览通道
通道可让你选择是使用当前 SQL 仓库计算版本还是预览版本。 预览版可让你在某些功能成为 Databricks SQL 标配之前试用这些功能。 利用预览通道针对即将发生的更改测试你的查询和仪表板。 可以在发行说明中了解最新预览版中的内容。
当前为默认值。 若要将 SQL 仓库切换到预览版通道,请展开“高级选项”,然后选择“预览版”。
重要
Databricks 建议不要将预览版用于生产工作负载。 由于只有管理员才能查看仓库的属性(包括其通道),请考虑指示 SQL 仓库在其名称中包含预览版本,以便用户不会无意中将其用于生产工作负载。
启动、停止或删除 SQL 仓库
- 单击边栏中的
SQL 仓库。 - 若要停止正在运行的仓库,请单击“停止”。
- 若要启动已停止的仓库,请单击“启动”。
- 若要删除仓库,请单击“操作”列中的垂直省略号
,然后单击“删除”。
编辑 SQL 仓库
可选择使用 Web UI 或 SQL 仓库 API 编辑 SQL 仓库。
若要使用 Web UI 编辑 SQL 仓库:
配置 SQL 仓库权限
若要为 SQL 仓库配置权限:
单击边栏中的
SQL 仓库。单击仓库。
单击“
”按钮。此时将显示 SQL 仓库“权限”对话框。 仓库创建者和 Azure Databricks 管理员默认具有“可管理”权限。

选择用户或组,再选择一个权限。
单击“添加” 。
单击“ 保存”。
若要了解权限级别,请参阅 SQL 仓库访问控制。
监视 SQL 仓库
可查看仓库处理的查询数和分配给仓库的群集数。
单击边栏中的
SQL 仓库。单击仓库。
单击 “监视” 。
这会显示一个图表,其中有过去 6 小时内仓库处理的查询数量以及分配给仓库的群集数量。
单击图表右上方的时间刻度按钮可更改显示的时间段。 例如,以下屏幕截图显示了 7 天的这类统计信息:

注意
仅当启用并配置了缩放时,群集计数才能大于 1。
群集大小
本部分中的表将 SQL 仓库群集大小映射到 Azure Databricks 群集驱动程序大小和辅助角色计数。
| 群集大小 | 驱动程序大小 | 辅助角色计数 |
|---|---|---|
| 2X-小 | Standard_E8ds_v4 | 1 |
| X-小 | Standard_E8ds_v4 | 2 |
| 小 | Standard_E16ds_v4 | 4 |
| 中 | Standard_E32ds_v4 | 8 |
| 大 | Standard_E32ds_v4 | 16 |
| X-大 | Standard_E64ds_v4 | 32 |
| 2X-大 | Standard_E64ds_v4 | 64 |
| 3X-大 | Standard_E64ds_v4 | 128 |
| 4X-大 | Standard_E64ds_v4 | 256 |
所有辅助角色的实例大小都是 Standard_E8ds_v4。
每个驱动程序和辅助角色均附加了 8 个 128 GB 标准 LRS 托管磁盘。 附加的磁盘按小时收费。
必需的 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 是对 Azure vCPU(供“数据科学与工程”使用的集群或非 Databricks 工作负载所使用)的补充。
若要请求额外的 Azure vCPU 配额,请参阅 Azure 文档中的标准配额:按 VM 序列提高上限。
排队和自动缩放
Azure Databricks 根据计算结果的成本限制分配给 SQL 仓库的群集上的查询数。 每个仓库的群集纵向扩展取决于查询吞吐量、传入查询的速率和队列大小。 Azure Databricks 根据处理所有当前正在运行的查询、所有排队的查询以及在接下来的两分钟内预计传入的查询所需的时间,来添加群集,如下所示:
- 少于 2 分钟,不需要升级。
- 2 到 6 分钟,请添加 1 个群集。
- 6 到 12 分钟,请添加 2 个群集。
- 12 到 22 分钟,请添加 3 个群集。
其他情况下,Azure Databricks 将添加 3 个群集,并每增加 15 分钟的预期查询负载就添加 1 个群集。
此外,如果查询在队列中等待 5 分钟,则通常会纵向扩展仓库。
如果处于低负载达到 15 分钟,则 Azure Databricks 将纵向缩减 SQL 仓库。 Azure Databricks 会保留足够的群集来处理最后 15 分钟的峰值负载。 例如,如果峰值负载为 25 个并发查询,Azure Databricks 会保留 3 个群集。
查询队列
当分配给仓库的所有群集都以满负荷状态执行查询或仓库处于 STARTING 状态时,Azure Databricks 会让查询排队。
元数据查询(例如 DESCRIBE <table>)和状态修改查询(例如 SET)永远不会排队,除非仓库处于 STARTING 状态。
查询路由
Azure Databricks 将按如下方式路由查询:
- 新会话:路由到负载最小的群集。
- 现有会话:路由到针对该会话运行先前查询的群集。 如果该群集没有可用的容量,则查询将路由到负载最小的群集。