AgentSkillsCN

databricks-sql

通过 SDK 使用 Databricks SQL(SQL Warehouse)的技能。同时支持 Python(databricks-sql-connector)与 Node.js(@databricks/sql)。 适用场景: - 从 Databricks 应用程序连接 SQL Warehouse 并执行查询; - 通过 Python/Node.js 脚本在 SQL Warehouse 上运行查询; - 排查 SQL Warehouse 连接错误; - 学习 SDK 的使用方法与最佳实践。 触发条件: - “SQL Warehouse”、“Databricks SQL”、“databricks-sql-connector”、“@databricks/sql”; - “连接仓库”、“执行 SQL 查询”、“查询 Databricks”; - “SQL 连接错误”、“仓库连接问题”。

SKILL.md
--- frontmatter
name: databricks-sql
description: |
  A skill for using Databricks SQL (SQL Warehouse) via SDK. Supports both Python (databricks-sql-connector) and Node.js (@databricks/sql).

  Use when:
  - Connecting to SQL Warehouse from Databricks Apps to execute queries
  - Running queries from Python/Node.js scripts against SQL Warehouse
  - Troubleshooting SQL Warehouse connection errors
  - Learning SDK usage and best practices

  Triggers:
  - "SQL Warehouse", "Databricks SQL", "databricks-sql-connector", "@databricks/sql"
  - "connect to warehouse", "execute SQL query", "query Databricks"
  - "SQL connection error", "warehouse connection issue"
metadata:
  version: 1.0.0

Databricks SQL SDK

Guide for connecting to Databricks SQL Warehouse via SDK and executing queries.

Note: This skill assumes Serverless SQL Warehouse. Serverless warehouses spin up in seconds, so no need to handle startup wait times.

SDK Selection

LanguagePackageUse Cases
Pythondatabricks-sql-connectorScripts, data processing, ML pipelines
Node.js@databricks/sqlDatabricks Apps (Fastify/Express), Web APIs

Finding SQL Warehouses

Use Databricks CLI to list available SQL Warehouses:

bash
# List all SQL Warehouses
databricks warehouses list

# Get details of a specific warehouse
databricks warehouses get <warehouse_id>

The http_path for connection is: /sql/1.0/warehouses/<warehouse_id>

Authentication

Use token authentication. For Databricks Apps, OAuth token is available from x-forwarded-access-token header.

python
# Python - Getting token in Databricks Apps
access_token = request.headers.get("x-forwarded-access-token")
typescript
// Node.js (Fastify) - Getting token in Databricks Apps
const accessToken = request.headers["x-forwarded-access-token"];

Quick Start

Python

python
from databricks import sql

with sql.connect(
    server_hostname="<workspace>.cloud.databricks.com",
    http_path="/sql/1.0/warehouses/<warehouse_id>",
    access_token="<token>"
) as conn:
    with conn.cursor() as cursor:
        cursor.execute("SELECT * FROM catalog.schema.table LIMIT 10")
        rows = cursor.fetchall()

Node.js

typescript
import { DBSQLClient } from "@databricks/sql";

const client = new DBSQLClient();
await client.connect({
  host: "<workspace>.cloud.databricks.com",
  path: "/sql/1.0/warehouses/<warehouse_id>",
  token: "<token>",
});

const session = await client.openSession();
const operation = await session.executeStatement("SELECT * FROM catalog.schema.table LIMIT 10");
const rows = await operation.fetchAll();

await operation.close();
await session.close();
await client.close();

Detailed Guides