You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Databricks SQL Restful API从外部UI查询ADLS中的Delta表及实现方法?

用Databricks SQL REST API查询ADLS中的Delta表

当然可以实现这个需求,核心逻辑是通过外部UI调用Databricks SQL REST API,提交针对ADLS中Delta表的查询请求,由Databricks完成ADLS访问、Delta表解析和查询执行,最后返回结果给外部UI。以下是具体的实现步骤和关键细节:

前置准备

  • 你的Databricks Workspace已经配置好ADLS的访问权限(比如通过Azure AD服务主体、SAS令牌等方式),确保Databricks能正常读取目标Delta表
  • 生成Databricks个人访问令牌(PAT),权限至少包含sql/queries:read和sql/queries:execute
  • 确认Databricks Workspace的基础URL(格式类似https://<workspace-id>.azuredatabricks.net)

具体操作步骤

1. 提交查询请求

你可以选择执行临时查询,或者先创建保存的查询再执行:

  • 临时查询:发送POST请求到/api/2.0/sql/statements,请求体示例:
{
  "statement": "SELECT * FROM delta.`abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path-to-delta-table>` LIMIT 50"
}
  • 保存的查询:先发送POST请求到/api/2.0/sql/queries创建查询(复用场景更合适),请求体示例:
{
  "name": "ADLS Delta表查询",
  "query": "SELECT count(*) FROM delta.`abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path-to-delta-table>`"
}

创建成功后会返回查询ID,后续通过POST请求/api/2.0/sql/queries/<query-id>/execute触发执行。

2. 检查执行状态

查询提交后,会获得一个execution_id,发送GET请求到/api/2.0/sql/executions/<execution-id>,查看响应中的status.state字段:

  • 当状态为SUCCEEDED时,说明查询执行完成
  • 如果是RUNNING则需要等待,FAILED则需要检查查询语句或权限配置

3. 获取查询结果

状态成功后,发送GET请求到/api/2.0/sql/executions/<execution-id>/result,即可获取结构化的查询结果(JSON格式,包含列定义和行数据),外部UI可以直接解析并展示这些数据。

关键注意事项

  • 所有API请求的Headers必须包含Authorization: Bearer <你的PAT令牌>,否则会被拒绝访问
  • Delta表的路径必须使用正确的ADLS URI格式(abfss://开头),确保Databricks能识别为Delta表
  • 外部UI可以通过轮询execution接口的方式,实时获取查询执行状态,避免阻塞
  • 确保PAT令牌的权限范围足够,若出现权限错误,需要在Databricks中调整令牌的权限配置

内容的提问来源于stack exchange,提问作者krishcoolster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:00:29