Connect Databricks with Statisfy
The Databricks integration lets you import data from your Databricks SQL warehouse into Statisfy. Author queries in the Statisfy settings UI, preview against your warehouse, and schedule them — sync product usage, account-level custom fields, person-level attributes, or custom objects. Databricks uses the same self-serve configuration model as the other warehouse integrations. You can find the shared concepts — query types, account resolvers, transformers, schedules, configuration history — in Integration Concepts. This page focuses on what’s specific to Databricks. Prerequisites:- Admin access to Statisfy
- A Databricks workspace with a running SQL warehouse
- A personal access token for a user (or service principal) with
SELECTaccess on the catalogs and schemas you want to sync - Unity Catalog enabled for the data you want to browse (see Schema browsing)
What You Can Import
Gather Your Connection Details
Statisfy connects to a Databricks SQL warehouse over its HTTP endpoint. In your Databricks workspace:- Open SQL Warehouses, pick the warehouse Statisfy should use, and open its Connection details tab. Copy:
- Server hostname — e.g.,
dbc-a1b2c3d4-e5f6.cloud.databricks.com - HTTP path — e.g.,
/sql/1.0/warehouses/abc123def456
- Server hostname — e.g.,
- Generate a personal access token: User Settings → Developer → Access tokens → Generate new token. Copy it immediately — Databricks shows it only once.
Steps to Connect
- Log in to Statisfy.
- Navigate to Integrations → Admin Apps → Databricks → Connect.
-
Enter your connection details:
- Server Hostname — the warehouse’s server hostname (no
https://prefix) - HTTP Path — the warehouse’s HTTP path
- Access Token — the personal access token
- Catalog (optional) — default catalog for queries that don’t fully qualify their tables
- Schema (optional) — default schema within that catalog
- Server Hostname — the warehouse’s server hostname (no
- Click Test Connection to confirm Statisfy can authenticate and run a no-op query.
- Once connected, Databricks will appear as Connected on the Integrations page.
Configure Queries
Open Integrations → Databricks → Settings to:- Browse catalogs, schemas, and tables the token can see, with column types
- Author queries using Databricks SQL with autocomplete and a preview pane
- Map results to Statisfy accounts (via Statisfy account ID, CRM ID, organization ID, email domain, account name, or any custom field) and to fields, metrics, or custom objects
- Apply column transformers to reshape values before they’re written
- Set the cadence — daily, weekly, monthly, or a sub-day interval (HOURLY through TWELVE_HOURS)
- Run a one-off sync on demand
product_usage, custom_field, or custom_object. See Query types and Account resolvers for the shared model.
Databricks-Specific Notes
- Unity Catalog for schema browsing. The schema browser reads Unity Catalog’s per-catalog
information_schema. Tables that live only in the legacyhive_metastorewon’t appear in the browser — you can still query them directly if the token has access, but Unity Catalog is the supported surface. - Fully qualify objects across catalogs. If a query references a table outside the default catalog / schema, qualify it explicitly:
catalog.schema.table. - Date placeholders. Use
{START_DATE}/{END_DATE_SQL}to keep queries incremental. Databricks SQL’sDATE_TRUNC(),DATE_ADD(), andTO_DATE()work well with these placeholders. - Warehouse cost. Each query wakes the SQL warehouse and consumes DBUs. Use a small warehouse with a short auto-stop interval to minimize idle cost.
Account Matching
For
custom_field queries that target people instead of accounts, configure a person resolver (email column, optionally name) — Statisfy will upsert the person record by email.
Sync Behavior
Scheduled Jobs:- Each saved query runs on its own cadence.
- The first run after connecting is a bootstrap covering the last 30 days; subsequent runs cover only the active window for the cadence.
- Databricks is self-serve only — there is no built-in fallback configuration, so queries run only once you’ve saved them in Settings.
- Per-query errors are logged but do not block other queries from running.
- Invalid rows within a query are skipped and reported in the job audit log.
Network Access
If your workspace uses IP access lists to restrict who can reach it, allow Statisfy’s egress IPs:Security
- The access token is stored encrypted in Google Cloud Secret Manager.
- All connections use TLS.
- Queries authored in the Settings page are read-only — Statisfy validates each query and rejects DDL/DML before save.
- Access is scoped to whatever the token’s identity can see — grant
SELECTonly on the catalogs and schemas you want Statisfy to read.
Troubleshooting
Connection test fails
Connection test fails
Check the endpoint:
- Confirm the Server Hostname has no
https://prefix and the HTTP Path matches the warehouse’s Connection details tab exactly - Confirm the SQL warehouse is not stopped by an admin policy — Statisfy can wake an auto-stopped warehouse, but the first connection may take a minute while it starts
- Personal access tokens expire — regenerate if the token’s lifetime has lapsed
- Confirm your workspace allows personal access tokens (Admin Settings → Advanced → Personal Access Tokens)
- If the workspace uses IP access lists, confirm Statisfy’s egress IPs are allowed
Catalogs, schemas, or tables not visible in the browser
Catalogs, schemas, or tables not visible in the browser
- Confirm the token’s identity has
USE CATALOGon the catalog,USE SCHEMAon the schema, andSELECTon the tables - Only Unity Catalog data appears in the browser — legacy
hive_metastore-only tables are not listed information_schemaand system schemas are intentionally hidden
Query validation errors at save time
Query validation errors at save time
- Statisfy validates queries against the Databricks SQL dialect — vendor-specific functions from other warehouses will be flagged
- DDL (
CREATE,DROP) and DML (INSERT,UPDATE,DELETE,MERGE) are rejected — only read-only queries are allowed - Check the validation error for the offending function or syntax
Records not matching to accounts
Records not matching to accounts
- Verify the resolver column contains values that exist in Statisfy
- For CRM ID resolvers, confirm your CRM integration has synced the matching accounts
- Try a different resolver (switch from account name to email domain) if matching is unreliable
- Add a
regex_extractorstrip_prefixtransformer if the column contains the right ID with extra characters
Sync is slow or running up DBUs
Sync is slow or running up DBUs
- Use a smaller SQL warehouse with a short auto-stop interval for sync queries
- Lower the cadence to
DAILYso each run scans a smaller window - Use
{START_DATE}/{END_DATE_SQL}to keep queries incremental rather than scanning the full table