Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -873,6 +873,11 @@ error notice. This does not authorize replay of data-bearing notifications.
- The Pinot extra requires pinotdb[sqlalchemy]>=8.0.0,<10.0.0. Earlier releases declare SQLAlchemy below 2 in their SQLAlchemy extra.

- The Databricks extra requires databricks-sqlalchemy 2.x (at least 2.0.1). The 1.x dialect requires SQLAlchemy below 2.
Saved `databricks+connector://` connections are automatically migrated to
`databricks://` by `superset db upgrade`, preserving the separately encrypted
token and connection settings. Downgrade restores converted connections left
unchanged since the upgrade and imported connections carrying the conversion
marker, not connections created natively with the new scheme.

- `superset deletion-retention force-purge` now exits **1** when the target is
blocked by a deletion rule or is not found (the messages are unchanged), so a
Expand Down
5 changes: 5 additions & 0 deletions docs/docs/using-superset/creating-your-first-dashboard.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ for your target database.
Click the **Test Connection** button to confirm things work end to end. If the connection looks good, save the configuration
by clicking the **Connect** button in the bottom right corner of the modal window:

Closing the connection window starts a fresh session the next time you add a database.
A pending save may still complete on the server, but its response does not populate
or close the new connection window. Check the database list before retrying a save
that was pending when you closed the window.

Congratulations, you've just added a new data source in Superset!

### Sharing a Database Connection
Expand Down
12 changes: 6 additions & 6 deletions docs/src/data/databases.json
Original file line number Diff line number Diff line change
Expand Up @@ -3695,19 +3695,19 @@
"notes": "Requires ODBC driver. For serverless SQL warehouses."
},
{
"name": "databricks-dbapi (Legacy)",
"pypi_package": "databricks-dbapi[sqlalchemy]",
"connection_string": "databricks+connector://token:{access_token}@{host}:{port}/{database}",
"name": "Field-based connection",
"pypi_package": "apache-superset[databricks]",
"connection_string": "databricks://token:{access_token}@{host}:{port}/{database}",
"is_recommended": false,
"notes": "Legacy connector. Use Python Connector for new deployments."
"notes": "Use the dynamic form to enter connection fields individually."
}
],
"category": "Cloud Data Warehouses"
},
"engine": "databricks",
"engine_name": "Databricks",
"engine_aliases": [],
"default_driver": "databricks-sql-python",
"default_driver": "databricks",
"supports_file_upload": true,
"supports_dynamic_schema": true,
"supports_catalog": true,
Expand Down Expand Up @@ -3779,7 +3779,7 @@
"max_score": 201,
"documentation": {
"pypi_packages": [],
"connection_string": "databricks+connector://token:{access_token}@{host}:{port}/{database_name}",
"connection_string": "databricks://token:{access_token}@{host}:{port}/{database_name}",
"category": "Cloud Data Warehouses"
},
"engine": "databricks",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3672,19 +3672,19 @@
"notes": "Requires ODBC driver. For serverless SQL warehouses."
},
{
"name": "databricks-dbapi (Legacy)",
"pypi_package": "databricks-dbapi[sqlalchemy]",
"connection_string": "databricks+connector://token:{access_token}@{host}:{port}/{database}",
"name": "Field-based connection",
"pypi_package": "apache-superset[databricks]",
"connection_string": "databricks://token:{access_token}@{host}:{port}/{database}",
"is_recommended": false,
"notes": "Legacy connector. Use Python Connector for new deployments."
"notes": "Use the dynamic form to enter connection fields individually."
}
],
"category": "Cloud Data Warehouses"
},
"engine": "databricks",
"engine_name": "Databricks",
"engine_aliases": [],
"default_driver": "databricks-sql-python",
"default_driver": "databricks",
"supports_file_upload": true,
"supports_dynamic_schema": true,
"supports_catalog": true,
Expand Down Expand Up @@ -3751,7 +3751,7 @@
"max_score": 201,
"documentation": {
"pypi_packages": [],
"connection_string": "databricks+connector://token:{access_token}@{host}:{port}/{database_name}",
"connection_string": "databricks://token:{access_token}@{host}:{port}/{database_name}",
"category": "Cloud Data Warehouses"
},
"engine": "databricks",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@ export const databaseInfo = {
notes: 'Requires ODBC driver. For serverless SQL warehouses.',
},
{
name: 'databricks-dbapi (Legacy)',
pypi_package: 'databricks-dbapi[sqlalchemy]',
name: 'Field-based connection',
pypi_package: 'apache-superset[databricks]',
connection_string:
'databricks+connector://token:{access_token}@{host}:{port}/{database}',
'databricks://token:{access_token}@{host}:{port}/{database}',
is_recommended: false,
notes: 'Legacy connector. Use Python Connector for new deployments.',
notes: 'Use the dynamic form to enter connection fields individually.',
},
],
},
Expand Down Expand Up @@ -126,3 +126,38 @@ export const databaseInfo = {
};

<DatabasePage name="Databricks" database={databaseInfo} />


### Upgrading legacy connections

Workspaces upgrading from 6.0 with a legacy Databricks connection have their
`databricks+connector://` URI automatically migrated to `databricks://` during
`superset db upgrade`. The migration preserves credentials, HTTP path, catalog,
and the rest of the URI. No API access or manual connection recreation is needed.

Edit the connection to review the saved host, HTTP path, catalog, schema, and
masked access token, or enter a replacement token. When creating a connection
with a SQLAlchemy URI, **Connect this database using the dynamic form instead**
opens the field-based form.

Downgrading restores the old scheme on locally converted connections only when
their URI, settings, and modification timestamp still match the migrated state.
Imported connections carrying the conversion marker are also eligible for rollback. Connections created natively with `databricks://` are not reverted. Malformed
`extra` settings do not block the upgrade: their text is preserved, and only the URI
scheme changes. The migration keeps fingerprints in a bookkeeping table so these
connections can also be safely downgraded without parsing their settings. Invalid
settings may still need correction before the connection can execute queries.

The Default Catalog field is optional. Connections converted from the legacy
connector retain the legacy runtime default catalog when none is configured,
so existing dataset catalogs and schema permissions remain consistent. Clearing
a field removes its corresponding legacy `connect_args` override. Changing the
connection destination requires re-entering the access token.

The new-connection picker offers **Databricks**, not **Databricks (legacy)**.
Existing legacy connections can still be edited with their saved form.

To create a separate connection after editing one, close the edit dialog and
choose **+ Database**. The database picker starts a new connection without
reusing the edited connection's name or URI, even if the previous connection
was still loading when the edit dialog was closed.
Loading
Loading