The official Databricks Connector setup walked from end to end, SQL warehouse selection, Unity Catalog permissions for scheduled refresh, the IP access list gotcha, and the limits table (15-min timeout, 10M cells, 20 schedules), plus Python and no-code alternatives.
Databricks runs the lakehouse for data-forward companies, but the people who need the data day-to-day, finance and ops and growth, rarely have a Databricks workspace login, let alone a SQL Warehouse. They have a Sheet open. This guide covers every realistic path in 2026: the Databricks SQL Connector for Python, the ODBC driver for Excel-native shops, Apps Script with the Hive JDBC driver, and a full Brooked walkthrough covering Unity Catalog, MERGE-based write-back, and the AI agent on top of your Delta tables.
Quick comparison: 4 ways to get Databricks data into Sheets
| Method | Cost | Setup | Auto-refresh | Two-way sync | Code | Best for |
|---|---|---|---|---|---|---|
| Databricks SQL Connector (Python) | Free | 1–2 hours | Cron / Airflow | DIY (MERGE) | Python | Engineering teams running scheduled exports |
| ODBC driver + Excel/Sheets | Free | 30 min | Manual (Excel only refresh natively) | No | DSN setup | Excel users; per-machine DSN setup |
| Apps Script via Hive JDBC | Free | 2–3 hours | Time-driven trigger | DIY | Required | One-developer custom workflows |
| Brooked add-on | Free tier · Pro $29/user | Under 10 min | 15 min / hourly / daily | Yes (via MERGE INTO) | None | Teams who want live Databricks data in Sheets without owning a pipeline |
Pick the right SQL warehouse (this is where the bill comes from)
The Databricks → Sheets connector runs queries against a SQL warehouse. Pick a warehouse you don't think about, and you'll either get billed for it sitting idle or wait 90 seconds for it to wake every time someone refreshes the sheet. Three sizing rules that nobody writes down:
- Use a Serverless SQL warehouse for sheets workloads. Cold-start is sub-10 seconds vs. ~90 seconds for classic. Worth the small per-query premium.
- 2X-Small is the right default for small/medium queries. The cost is roughly $0.40/hour while running. Sheets queries are short. You'll burn cents per day, not dollars.
- Auto-stop at 10 minutes. Sheets users come and go; nothing punishes a budget like a warehouse left on overnight. Edit the warehouse → set 'Stops after' to 10 minutes.
For scheduled refreshes specifically, Unity Catalog has its own permission gate that catches everybody the first time: the scheduled refresh runs as a system principal called databricks_google_connection, not as the user who set up the schedule. Grant it the privilege: GRANT USE CONNECTION ON CONNECTION databricks_google_connection TO <user-or-group> in the Catalog UI or via SQL. Without it, the refresh silently fails after the first manual import works.
The IP access list gotcha
If your Databricks workspace has IP access lists enabled (Admin Settings → Security → IP access lists), Google Sheets' outbound IPs need to be on the allowlist or every connection attempt will silently fail with a generic timeout. Google publishes the current ranges at https://www.gstatic.com/ipranges/goog.json, pull the IPv4 ranges and add them to the access list. The ranges change a few times a year; either pin them and accept occasional re-paste, or move that workspace off IP allowlisting.
Method 1. Databricks SQL Connector (Python) + scheduler
Databricks publishes an official Python SQL connector (databricks-sql-connector on PyPI). Write a Python script that executes a SQL query against your SQL Warehouse, writes the result to Google Sheets via the gspread library, schedule it with Airflow, Prefect, or plain cron.
Pros: Native, official, scales to any data size, deeply customizable. Cons: Requires Python ops knowledge. You're maintaining the script, the credentials, the scheduler, and the gspread auth setup. Significant ongoing work.
Method 2. ODBC driver + Excel (then export to Sheets)
Databricks publishes an ODBC driver (Compute → Drivers). Install locally, configure a DSN, use Excel's Data → Get Data → From ODBC. Excel refreshes natively. If you need the data in Sheets, copy-paste or use Google Drive sync after each refresh.
Pros: Native, official. Cons: Excel-first (Sheets is via copy-paste). Per-user driver install. Refresh requires Excel open.
Method 3. Apps Script via Hive JDBC
Apps Script's Jdbc service supports Hive-compatible drivers. With the right JDBC URL, you can connect to Databricks's HTTP endpoint and run SQL. The setup is fiddly (the Hive driver isn't standard in Apps Script's runtime. You may need a workaround), and the 6-minute execution limit kills any non-trivial query.
Realistically, this is the worst of the four options for Databricks specifically. Mentioned for completeness.
Method 4, A Google Sheets add-on (Brooked)
Brooked connects via the Databricks SQL Warehouse, with native support for Unity Catalog and the Hive metastore. Visual SQL editor, schema browser, scheduled refresh, MERGE-based write-back, and the AI agent on top of your lakehouse: all without owning a Python pipeline.
Step 1. Install Brooked and generate a Databricks PAT
Install Brooked from the Workspace Marketplace. In Databricks: User Settings → Developer → Access tokens → Generate. Use a service principal token for production.
Step 2. Connect Databricks in Brooked
Brooked sidebar → Add data source → Databricks. Paste your workspace hostname, the SQL Warehouse HTTP path (from SQL Warehouses → your warehouse → Connection details), and the PAT. Optionally set a default catalog and schema for new queries.
Step 3. Run queries against your lakehouse
Click New import, write SQL (or browse the schema and pick a Delta table to auto-generate a SELECT), pick a destination, click Import. Time travel (VERSION AS OF / TIMESTAMP AS OF) and all Databricks-specific SQL (MERGE INTO, COPY INTO, CLONE) work.
Step 4. Schedule refresh and configure MERGE write-back
Gear icon on the import → toggle Auto-refresh, pick a cadence. For two-way sync to a Delta table, click 'Convert to two-way sync'. Brooked uses MERGE INTO under the hood: pick the primary key, map columns, choose mode (INSERT, UPDATE, UPSERT via MERGE, DELETE). Transactional, type-enforced, audit-logged.
Using the AI agent with Databricks
Open Chat. Ask: "Pull weekly revenue from main.analytics.fact_orders for the last quarter" or "Which products had the biggest WoW swings?". The agent introspects Unity Catalog (or Hive), writes the SQL, runs it via your SQL Warehouse, and lands the result in the sheet: with derived columns added automatically.
What about Microsoft Excel?
For Excel-primary teams, the Databricks ODBC driver is the native path. Power BI's Databricks connector is excellent if Power BI is part of your stack. Most growing teams that want live Databricks data settle on Sheets via Brooked and export to .xlsx for monthly snapshots.
The verdict, which method when
I want a daily Databricks dump landed somewhere
→ Databricks SQL Connector + Airflow. If you already have an orchestrator, this is the native engineering path. Free, scriptable, scales to anything.
I want live Databricks data in Sheets across many queries
→ Brooked. Visual SQL editor, Unity Catalog browser, scheduled refresh, MERGE-based write-back, AI agent: without owning a pipeline.
I want to write data from Sheets back to a Delta table
→ Brooked. Brooked uses Databricks MERGE INTO under the hood for write-back: transactional, type-enforced, audit-logged. Most Sheets connectors are read-only.
My team is on Excel, not Sheets
→ ODBC driver. Native, official, but per-user driver install and refreshes require Excel open. Or use Power BI/Tableau in front of Databricks if you have it.
Troubleshooting common issues
Related Articles
- How to Connect Amazon Redshift to Google Sheets
- How to Connect Amazon Redshift to Google Sheets (VPC Security Group Setup Included)
- How to Connect SQL Server to Google Sheets Without SSRS, SSIS, or a DBA
Frequently asked questions
Does Brooked support Unity Catalog and the Hive metastore?
Yes, both. Use the three-part name (catalog.schema.table) for Unity Catalog tables; two-part (schema.table) for Hive. The schema browser shows both hierarchies.
Can I use a service principal token instead of a personal access token?
Yes. Generate a service principal token via the Databricks Account Console. Service principal tokens are the right choice for production. They survive the human leaving the org.
Does Brooked work with Databricks on AWS, Azure, and GCP?
Yes, identically. Azure Private Link and GCP Private Service Connect are both supported for private workspaces.
Can Brooked write back to Databricks?
Yes. INSERT, UPDATE, UPSERT (compiled to MERGE INTO), and DELETE on every tier. Schema enforcement is on by default: type mismatches surface as errors.
Can I use Delta time travel through Brooked?
Yes. SELECT * FROM table VERSION AS OF 5 or TIMESTAMP AS OF '2026-01-01' both work for point-in-time reports.
What's the row limit per import?
Pro tier: 10M rows per import. Free tier: 50K rows. Beyond 10M, pre-aggregate in SQL.
How does Brooked handle SQL Warehouse sizing and cost?
Pick a small or 2X-Small warehouse for reporting workloads: don't point at a 4XL. Set auto-stop aggressively (10 minutes) so daily refreshes don't keep an idle warehouse running.
Does this work with cluster-based access instead of SQL Warehouses?
Technically yes via the JDBC driver, but we recommend SQL Warehouses. They're optimised for SQL workloads and cost-effective. Use clusters for notebook work, warehouses for connector access.
Connect Databricks to Sheets in under 10 minutes.
Free tier · 100 imports/month with AI agent. Unity Catalog, Hive metastore, and MERGE-based write-back all supported. See the full Databricks integration details.
Install Brooked free →

