如何通过Rest API在Databricks SQL Warehouse执行SQL查询?
可以通过REST API在Databricks SQL Warehouse执行SQL查询吗?
完全可以,你不需要先创建查询对象,直接用Execute a statement API就能提交并运行SQL语句,具体说明如下:
- 核心API为
POST /api/2.0/sql/statements,直接向指定的SQL Warehouse发送SQL语句即可完成执行 - 必填参数:
warehouse_id: 目标SQL Warehouse的唯一IDstatement: 要执行的SQL代码(例如SELECT * FROM your_schema.your_table LIMIT 20)
- 可选参数可控制执行行为:
wait_timeout: 设置等待结果返回的超时时间,默认30秒on_wait_timeout: 超时后的处理策略,选CONTINUE会让任务后台运行,选CANCEL则直接终止请求
示例curl请求
curl -X POST \ https://<你的Databricks实例域名>/api/2.0/sql/statements \ -H "Authorization: Bearer <你的PAT令牌>" \ -H "Content-Type: application/json" \ -d '{ "warehouse_id": "abc123-def45-ghi67-jkl89", "statement": "SELECT * FROM sample_data.nyctaxi.trips LIMIT 10", "wait_timeout": "60s", "on_wait_timeout": "CONTINUE" }'
结果处理
- 如果SQL在超时前执行完成,响应会直接返回结果集的结构和数据
- 如果任务进入后台运行,响应里会返回
statement_id,之后可以用GET /api/2.0/sql/statements/{statement_id}API查询执行状态和最终结果
权限说明
- 调用API需要持有Databricks个人访问令牌(PAT)
- 令牌对应的账号需要有目标SQL Warehouse的
USE权限,以及访问SQL中涉及数据的权限
内容的提问来源于stack exchange,提问作者Abhishek Sharma
相关产品推荐
相关产品推荐

