Databricks
Adding and configuring a Databricks connection within Qualytics empowers the platform to build a symbolic link with your database to perform operations like data discovery, visualization, reporting, syncing, profiling, scanning, anomaly surveillance, and more.
This documentation provides a step-by-step guide on how to add Databricks as both a source and enrichment datastore in Qualytics. It covers the entire process, from initial connection setup to testing and finalizing the configuration.
By following these instructions, enterprises can ensure their Databricks environment is properly connected with Qualytics, unlocking the platform's potential to help you proactively manage your full data quality lifecycle.

Let's get started 🚀
Databricks Setup Guide
This guide provides a comprehensive walkthrough for setting up Databricks. It highlights the distinction between SQL Warehouses and All-Purpose Compute, the functionality of node pools, and the enhancements they offer.
Additionally, it details the process for attaching compute resources to node pools and explains the minimum requirements for effective operation.
Understanding SQL Warehouses and All-Purpose Compute
SQL Warehouses (Serverless)
SQL Warehouses (Serverless) in Databricks utilize serverless SQL endpoints for running SQL queries.
| REF. | ATTRIBUTE | DESCRIPTION |
|---|---|---|
| 1. | Cost-effectiveness | Serverless SQL endpoints allow you to pay only for the queries you execute, without the need to provision or manage dedicated infrastructure, making it more cost-effective for ad-hoc or sporadic queries. |
| 2. | Scalability | Serverless architectures automatically scale resources based on demand, ensuring optimal performance for varying workloads. |
| 3. | Simplified Management | With serverless SQL endpoints, you don't need to manage clusters or infrastructure, reducing operational overhead. |
| 4. | Minimum Requirements | The minimum requirements for using SQL Warehouse with serverless typically include access to a Databricks workspace and appropriate permissions to create and run SQL queries. |
All-Purpose Compute
All-purpose compute in Databricks refers to clusters that are not optimized for specific tasks. While they offer flexibility, they may not provide the best performance or cost-effectiveness for certain workloads.
| REF. | ATTRIBUTE | DESCRIPTION |
|---|---|---|
| 1. | Slow Spin-up Time | All-purpose compute clusters may take longer to spin up compared to specialized clusters, resulting in delays before processing can begin. |
| 2. | Timeout Connections | Due to longer spin-up times, there's a risk of timeout connections, especially for applications or services that expect quick responses. |
Node Pool and Its Usage
A node pool in Databricks is a set of homogeneous virtual machines (VMs) within a cluster. It allows you to have a fixed set of instances dedicated to specific tasks, ensuring consistent performance and resource isolation.
| REF. | ATTRIBUTE | DESCRIPTION |
|---|---|---|
| 1. | Resource Isolation | Node pools provide resource isolation, allowing different workloads or applications to run without impacting each other's performance. |
| 2. | Optimized Performance | By dedicating specific nodes to particular tasks, you can optimize performance for those workloads. |
| 3. | Cost-effectiveness | Node pools can be more cost-effective than using all-purpose compute for certain workloads, as you can scale resources according to the specific requirements of each task. |
Improving All-Purpose Compute with Node Pools
To improve the performance of all-purpose compute using node pools, you can follow these steps:
| REF. | ATTRIBUTE | DESCRIPTION |
|---|---|---|
| 1. | Define Workload-Specific Node Pools | Identify the specific tasks or workloads that require optimized performance and create dedicated node pools for them. |
| 2. | Specify Minimum Requirements | Determine the minimum resources (such as CPU, memory, and disk) required for each workload and configure the node pools accordingly. |
| 3. | Monitor and Adjust | Continuously monitor the performance of your node pools and adjust resource allocations as needed to ensure optimal performance. |
Step 1: Configure details for Qualytics Node Pool.

Step 2: Attach Compute details with the Node Pool.

Databricks Privileges and Permissions
Qualytics connects to Databricks via JDBC using either a Personal Access Token (PAT) or OAuth M2M authentication. It uses the Hive metastore or Unity Catalog metadata APIs to discover catalogs, schemas, tables, columns, and partition information.
Minimum Databricks Permissions (Source Datastore)
| Permission | Purpose |
|---|---|
USAGE ON CATALOG <catalog_name> |
Access the catalog |
USAGE ON SCHEMA <catalog_name>.<schema_name> |
Access objects within the schema |
SELECT ON SCHEMA <catalog_name>.<schema_name> |
Read data from all tables and views for profiling and scanning |
CAN USE on the SQL Warehouse or Cluster |
Execute queries on the compute resource |
Additional Permissions for Enrichment Datastore
When using Databricks as an enrichment datastore, the following additional permissions are required for Qualytics to write metadata tables (e.g., _qualytics_*):
| Permission | Purpose |
|---|---|
CREATE TABLE ON SCHEMA <catalog_name>.<schema_name> |
Create enrichment tables (_qualytics_*) |
MODIFY ON SCHEMA <catalog_name>.<schema_name> |
Write, update, and delete data in enrichment tables |
Example: Source Datastore Permissions (Read-Only)
Replace <catalog_name>, <schema_name>, and <user_or_group> with your actual values.
-- Grant catalog and schema access
GRANT USAGE ON CATALOG <catalog_name> TO <user_or_group>;
GRANT USAGE ON SCHEMA <catalog_name>.<schema_name> TO <user_or_group>;
-- Grant read access to all tables in the schema
GRANT SELECT ON SCHEMA <catalog_name>.<schema_name> TO <user_or_group>;
Example: Enrichment Datastore Permissions (Read-Write)
-- Grant catalog and schema access
GRANT USAGE ON CATALOG <catalog_name> TO <user_or_group>;
GRANT USAGE ON SCHEMA <catalog_name>.<schema_name> TO <user_or_group>;
-- Grant read-write access and table creation
GRANT SELECT, MODIFY ON SCHEMA <catalog_name>.<schema_name> TO <user_or_group>;
GRANT CREATE TABLE ON SCHEMA <catalog_name>.<schema_name> TO <user_or_group>;
Note
The Databricks user or service principal must also have CAN USE permission on the compute resource (SQL Warehouse or All-Purpose Cluster) used for the connection. Without compute access, queries cannot be executed regardless of data permissions.
Troubleshooting Common Errors
| Error | Likely Cause | Fix |
|---|---|---|
INVALID_CREDENTIALS |
The Personal Access Token (PAT) is invalid, expired, or revoked | Generate a new PAT from User Settings > Developer > Access Tokens in Databricks |
User does not have USAGE permission |
The user lacks USAGE on the catalog or schema |
Run GRANT USAGE ON CATALOG <catalog> TO <user> and GRANT USAGE ON SCHEMA <catalog>.<schema> TO <user> |
User does not have SELECT permission |
The user lacks SELECT on the schema or specific tables |
Run GRANT SELECT ON SCHEMA <catalog>.<schema> TO <user> |
Cluster is not running |
The All-Purpose Cluster is stopped and AUTO_RESUME is not enabled |
Start the cluster manually or switch to a SQL Warehouse with auto-resume |
HTTP Path is invalid |
The HTTP Path in the connection form does not match the warehouse or cluster | Copy the correct HTTP Path from SQL Warehouses > Connection Details or Compute > JDBC/ODBC |
Detailed Troubleshooting Notes
Authentication Errors
The error INVALID_CREDENTIALS indicates that the Personal Access Token (PAT) or OAuth credentials are invalid.
Common causes:
- Expired PAT: Personal Access Tokens have a configurable expiration date. The token may have expired since the connection was created.
- Revoked PAT: the token was manually revoked from the Databricks workspace.
- Wrong workspace: the PAT was generated in a different Databricks workspace than the one being connected to.
- OAuth secret expired: when using OAuth M2M, the Service Principal's secret has expired.
Note
Databricks PATs are workspace-scoped. A token generated in workspace A cannot be used to connect to workspace B.
Permission Errors
The error User does not have USAGE permission or User does not have SELECT permission means the user authenticated successfully but lacks Unity Catalog grants.
Common causes:
- Missing
USAGEon catalog: the user cannot access the catalog. This is the most common issue:USAGEmust be granted on both the catalog and the schema. - Missing
SELECTon schema: the user has catalog access but cannot read tables in the specific schema. - Unity Catalog not enabled: the workspace uses the legacy Hive metastore instead of Unity Catalog, and permissions are managed differently.
Compute Errors
The error Cluster is not running or HTTP Path is invalid indicates a problem with the compute resource, not with data permissions.
Common causes:
- Cluster stopped: All-Purpose Clusters do not auto-resume by default. The cluster must be started manually or switched to a SQL Warehouse with auto-resume.
- Wrong HTTP Path: the HTTP Path was copied incorrectly or the warehouse/cluster has been recreated with a new path.
- No compute access: the user lacks
CAN USEpermission on the SQL Warehouse or cluster.
Tip
Start by confirming credentials are valid (authentication errors), then verify Unity Catalog permissions (permission errors), and finally check compute resource availability (compute errors).
Retrieve the Connection Details
This section explains how to retrieve the connection details that you need to connect to Databricks.
Credentials to Connect with Qualytics
To configure Databricks, you need the following credentials:
| REF. | FIELDS | ACTIONS |
|---|---|---|
| 1. | Host (Required) | Get Hostname from your Databricks account and add it to this field. |
| 2. | HTTP Path (Required) | Add HTTP Path (web address) to fetch data from your Databricks account. |
| 3. | Catalog (Required) | Add a Catalog to fetch data structures and metadata from Databricks. |
| 4. | Database (Required) | Specify the database name to be accessed. |
| 5. | Personal Access Token (Required) | Generate a Personal Access Token from your Databricks account and add it for authentication. |
Note
Databricks also supports OAuth M2M (Machine-to-Machine) authentication as an alternative to Personal Access Tokens. To use OAuth M2M, provide the Service Principal Application ID and OAuth Secret instead of a Personal Access Token. This method is recommended for production environments as it does not depend on individual user tokens.
Get Connection Details for the SQL Warehouse
Follow the given steps to get the connection details for the SQL warehouse:
- Click on the SQL Warehouses in the sidebar.
- Choose a warehouse to connect to.
- Navigate to the Connection Details tab.
- Copy the connection details.

Get Connection Details for the Cluster
Follow the given steps to get the connection details for the cluster:
- Click on the Compute in the sidebar.
- Choose a cluster to connect to.
- Navigate to the Advanced Options.
- Click on the JDBC/ODBC tab.
- Copy the connection details.

Get the Access Token
Step 1: In your Databricks workspace, click your Databricks username in the top bar, and then select User Settings from the dropdown menu.

Note
Refer to the Databricks Official Docs to generate the Access Token.
Step 2: In the Settings page, select the Developer option in the User section.

Step 3: In the Developer page, click on Manage in Access Tokens.

Step 4: In the Access Tokens page, click on the Generate new token button.

Step 5: You will see a modal to add a description and validation time (in days) for the token.

Step 6: After adding the contents, click on Generate, and it will show the token.

Warning
Before closing the modal window by clicking on the Done button, ensure the Personal Access Token is saved to a secure location.
Step 7: You can see the new token on the Access Tokens page.

You can also revoke a token on the Access Tokens page by clicking on the Revoke token button.

Add a Source Datastore
A source datastore is a storage location Qualytics connects to so it can profile, scan, and monitor data. Adding Databricks as a source lets Qualytics query the tables in your workspace through the Databricks JDBC driver and run quality operations on the tables it discovers.
Before you start, gather the connection details and the credential described in Retrieve the Connection Details above.
Field reference
The Add Datastore page shows the sections below when Databricks is selected. When reusing an existing connection, the Connection Properties, Authentication, and Secrets Management sections come already filled in and read-only: Qualytics has already validated those credentials, so you fill in only the Datastores Extraction and the Datastore Properties. To change a saved connection's credentials, edit the connection through the Manage Connections page; edits there apply to every datastore that reuses the connection.
Connection Properties
These fields define the Databricks endpoint Qualytics connects to. They belong to the connection: when reusing an existing connection, they come already filled in and read-only.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Connection Name | Text | A label for the saved connection (e.g., acme_databricks_warehouse), so other datastores can reuse it later. |
|
| Host | Text | The workspace hostname (e.g., dbc-a1b2c3d4-e5f6.cloud.databricks.com). See Get Connection Details for the SQL Warehouse. |
|
| Http Path | Text | The HTTP path of the SQL warehouse or cluster Qualytics runs queries on (e.g., sql/protocolv1/o/123456789). |
Authentication
Choose how Qualytics authenticates to the workspace. Setting Type changes the credential fields shown below it, so pick the tab that matches your choice. These fields also belong to the connection: already filled in and read-only when reusing one.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Personal Access Token, which is the default (PAT in the API). |
|
| Personal Access Token | Text | The token Qualytics uses to authenticate. See Get the Access Token. |
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to OAuth M2M (OAUTH_M2M in the API). |
|
| Service Principal Application ID | Text | The application ID of the service principal. | |
| Service Principal OAuth Secret | Text | The OAuth secret generated for that service principal. |
Machine-to-machine authentication suits unattended access, since it is not tied to an individual user account that may be deactivated.
Secrets Management
This group is optional: use it only if you want Qualytics to pull credentials from a secrets manager instead of typing them into the form. Turn on HashiCorp Vault to show the fields below. Despite the label, any secrets manager that exposes a compatible REST API works, not only HashiCorp Vault; see Secrets Management. It also belongs to the connection: read-only when reusing an existing connection.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Login URL | Text | The Vault endpoint Qualytics uses to authenticate (e.g., https://vault.example.com/v1/auth/approle/login). |
|
| Credentials Payload | Text | A JSON body containing the credentials Vault expects (e.g., {"role_id":"...","secret_id":"..."}). |
|
| Token JSONPath | Text | The JSONPath that extracts the client token from Vault's response. Defaults to $.auth.client_token. |
|
| Secret URL | Text | The Vault path where the secret is stored (e.g., https://vault.example.com/v1/secret/data/databricks). |
|
| Token Header Name | Text | The HTTP header name used to send the token. Defaults to X-Vault-Token. |
|
| Data JSONPath | Text | The JSONPath that extracts the secret payload from Vault's response. Defaults to $.data. |
Note
Once the secrets manager is configured, reference any secret value in the Connection Properties or Authentication fields using ${key} (e.g., ${access_token}). Qualytics resolves the secret at the moment the connection is opened, so changed keys take effect on the next connection.
Datastores Extraction
Pick the catalog and database(s) Qualytics should read from. You fill these in on both flows.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Catalog | Option | The catalog Qualytics reads metadata from (e.g., hive_metastore, or a Unity Catalog name). Click the refresh icon to fetch the catalogs visible to the credentials. Omitted through the API, it falls back to hive_metastore. |
|
| Database | Option | One or more databases inside the selected catalog. Each database you pick becomes its own Qualytics datastore. Click the refresh icon to load the available databases. Left empty, Qualytics uses default. |
Multiple databases
Selecting more than one database creates one source datastore per database, named from the Name Template. See Multi-Schema Source Datastore Creation for details.
Datastore Properties
Common fields for every source datastore, shown below the Datastores Extraction section. You fill these in on both flows.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Name Template | Text | Defines the naming pattern for each source datastore being created. Use {{schema}} as a placeholder that gets replaced with the actual database name (e.g., dbx_{{schema}} becomes dbx_sales_curated). Left empty, the datastore is named from the connection name and the database. |
|
| Group | Option | Organizes your datastores under a shared group in the navigation tree. Select an existing group or create a new one with the Add New Group toggle. | |
| Teams | Option | Select one or more teams to associate with this source datastore. | |
| Initiate Sync | Checkbox | Automatically sync the datastore to detect containers and fields after creation. |
Steps
There are two ways to set up the connection: reuse a connection you already saved (Existing Connection) or create a new one from scratch (New Connection). The tabs below walk through each option; pick the one you want to follow. Each field is described in the Field reference above.
Step 1: Navigate to the Source Datastores page.
Step 2: Click the Add Source Datastore button at the top-right corner.
Step 3: The Add Datastore page opens.
Step 4: Select New Connection next to the Search field.
Step 5: Select Databricks from the connector grid. Use the search field to filter connectors by name.
Step 6: Fill in the Connection Properties: the Connection Name, Host, and Http Path.
Step 7: Choose the Authentication Type and fill in its credential fields.
Step 8: Optionally, expand Secrets Management to retrieve credentials from a secrets manager.
Step 9: Fill in the Datastores Extraction fields (Catalog and Database) and the Datastore Properties.
Step 10: Click Test connection. A success message confirms that the connection has been verified.
Info
The Finish and Next buttons stay disabled until the connection test passes on the current values. If you change a connection field after a successful test, test again. If the test fails, see Troubleshooting Common Errors.
Step 11: Click Finish to create the datastore.
Tip
To link an enrichment datastore so Qualytics can store anomalies and metadata from the first operation, click Next instead of Finish. See Add Enrichment Datastore below.
Step 12: A success dialog confirms that your datastore has been added. Click Go to your datastore to open its page.
Step 1: Navigate to the Source Datastores page.
Step 2: Click the Add Source Datastore button at the top-right corner.
Step 3: The Add Datastore page opens.
Step 4: Select Existing Connection next to the Search field.
Step 5: Select the saved Databricks connection from the grid. Use the search field to filter connections by name. The Connection Properties, Authentication, and Secrets Management sections come already filled in and read-only.
Start a new connection from this one
To use the selected connection as a starting point for a brand-new connection instead, click the Duplicate as a new connection button on the selected connection. The form switches to New Connection mode with the connection's settings already filled in for you to adjust.
Step 6: Fill in the Datastores Extraction fields (Catalog and Database) and the Datastore Properties. These are the only fields left to fill in: Catalog and Teams are the required ones, while Database, Name Template, Group, and Initiate Sync are optional.
Step 7: Click Test connection. A success message confirms that the connection has been verified.
Info
The Finish and Next buttons stay disabled until the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 8: Click Finish to create the datastore.
Tip
To link an enrichment datastore so Qualytics can store anomalies and metadata from the first operation, click Next instead of Finish. See Add Enrichment Datastore below.
Step 9: A success dialog confirms that your datastore has been added. Click Go to your datastore to open its page.
Add Enrichment Datastore
An enrichment datastore is where Qualytics writes what it finds: anomalies, remediation tables, and record enrichment. Databricks is supported for this role, so the same workspace can hold both the data you monitor and the results.
Linking one during datastore creation is recommended, because scan results are then persisted from the very first operation. The flow itself is the same for every connector and is documented once, in Link Enrichment on Datastore Creation: reach it by clicking Next instead of Finish on the source datastore you just configured. To link one to a datastore that already exists, see Link Enrichment Datastore instead.
The rest of this section covers only what is specific to Databricks: the fields you fill in when the enrichment datastore is a Databricks one.
Field reference
The Enrichment Datastore step shows the sections below when Databricks is selected. When reusing an existing connection, the Connection Properties, Authentication, and Secrets Management sections come already filled in and read-only.
Connection Properties
These fields define the Databricks endpoint Qualytics writes to. They are the same fields as on the source datastore flow, repeated here so this section stands on its own.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Connection Name | Text | A label for the saved connection (e.g., acme_databricks_enrichment), so other datastores can reuse it later. |
|
| Host | Text | The workspace hostname (e.g., dbc-a1b2c3d4-e5f6.cloud.databricks.com). |
|
| Http Path | Text | The HTTP path of the SQL warehouse or cluster Qualytics runs queries on (e.g., sql/protocolv1/o/123456789). |
Authentication
Pick the tab that matches the credential you use. The account behind it needs write access, not just read.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Personal Access Token, which is the default (PAT in the API). |
|
| Personal Access Token | Text | The token Qualytics uses to authenticate. See Get the Access Token. |
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to OAuth M2M (OAUTH_M2M in the API). |
|
| Service Principal Application ID | Text | The application ID of the service principal. | |
| Service Principal OAuth Secret | Text | The OAuth secret generated for that service principal. |
Secrets Management
This group is optional: use it only if you want Qualytics to pull credentials from a secrets manager instead of typing them into the form. Turn on HashiCorp Vault to show the fields below. Despite the label, any secrets manager that exposes a compatible REST API works, not only HashiCorp Vault; see Secrets Management.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Login URL | Text | The Vault endpoint Qualytics uses to authenticate (e.g., https://vault.example.com/v1/auth/approle/login). |
|
| Credentials Payload | Text | A JSON body containing the credentials Vault expects (e.g., {"role_id":"...","secret_id":"..."}). |
|
| Token JSONPath | Text | The JSONPath that extracts the client token from Vault's response. Defaults to $.auth.client_token. |
|
| Secret URL | Text | The Vault path where the secret is stored (e.g., https://vault.example.com/v1/secret/data/databricks). |
|
| Token Header Name | Text | The HTTP header name used to send the token. Defaults to X-Vault-Token. |
|
| Data JSONPath | Text | The JSONPath that extracts the secret payload from Vault's response. Defaults to $.data. |
Enrichment Extraction
Where Qualytics writes the enrichment tables inside the workspace.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Catalog | Option | The catalog that holds the target database. | |
| Database | Option | The database Qualytics writes the enrichment tables into. Pick exactly one, and make sure the credentials have write access to it. Left empty, Qualytics writes to default. |
Warning
The credential used for an enrichment datastore needs read and write access, while a source datastore needs only read access. See Additional Permissions for Enrichment Datastore above.
Enrichment Properties
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Name | Text | The name of the new enrichment datastore. | |
| Teams | Option | Select one or more teams to associate with the enrichment datastore. |
Table prefix
Qualytics generates a Prefix from the source datastore's name and adds it to every table it writes, so several source datastores can share one enrichment database without colliding. An information banner at the bottom of the step previews the resulting table names.
Advanced Options
Collapsed by default. Expand it to change how anomalous source records are replicated.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Remediation Strategy | Choice | Controls whether and how anomalous source tables are replicated to the enrichment datastore. None does not replicate them and is the default, Append adds the anomalous records after each scan, and Overwrite keeps only the records from the latest scan. |
Steps
A Databricks enrichment datastore can be created from two places: as the second step of creating a source datastore, or on its own from the Enrichment Datastores page. Either way you choose between creating a connection from scratch (New Connection) or reusing a saved one (Existing Connection). The tabs below cover both entry points for each option; each field is described in the Field reference above.
Linking one that already exists
Both entry points also let you pick an enrichment datastore you created earlier instead of creating one. Nothing there is specific to Databricks, since you only select it from a list, so see Link Enrichment on Datastore Creation or Link Enrichment Datastore for those flows.
Step 1: Open the Enrichment Datastore form, from either entry point:
- While creating a source datastore: click Next at the bottom of the Add Datastore page once the source connection test has passed. The Enrichment Datastore step opens.
- On its own: navigate to the Enrichment Datastores page and click the Add Enrichment Datastore button at the top-right corner. The Enrichment Datastore page opens.
Step 2: Select New Connection next to the Search field.
Step 3: Select Databricks from the connector grid. Only connectors that can host an enrichment datastore are listed. Use the search field to filter connectors by name.
Same connector as the source
When you arrive from a Databricks source datastore, Databricks comes already selected, with the connection fields already filled in from the source connection. Click the selected card to change it.
Step 4: Fill in the Connection Properties: the Connection Name, Host, and Http Path.
Step 5: Choose the Authentication Type and fill in its credential fields.
Step 6: Optionally, expand Secrets Management to retrieve credentials from a secrets manager.
Step 7: Fill in the Enrichment Extraction fields (Catalog and Database) and the Enrichment Properties (Name and Teams).
Step 8: When you arrived from a source datastore, review the Prefix preview at the bottom of the step and, if needed, change the Remediation Strategy under Advanced Options. Both relate to the source datastore being linked, so they do not apply when creating the enrichment datastore on its own.
Step 9: Click Test connection. A success message confirms that the connection has been verified.
Info
The button that completes the step stays disabled until the required fields are filled in and the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 10: Complete the step: click Finish when you arrived from a source datastore, which creates both datastores and links them, or Create when creating the enrichment datastore on its own.
Step 11: A success dialog confirms the result. Click Go to your datastore to open the source datastore, or Go to your enrichment datastore when you created it on its own.
This option appears only when at least one saved connection can host an enrichment datastore.
Step 1: Open the Enrichment Datastore form, from either entry point:
- While creating a source datastore: click Next at the bottom of the Add Datastore page once the source connection test has passed. The Enrichment Datastore step opens.
- On its own: navigate to the Enrichment Datastores page and click the Add Enrichment Datastore button at the top-right corner. The Enrichment Datastore page opens.
Step 2: Select Existing Connection next to the Search field.
Step 3: Select the saved Databricks connection from the grid. Use the search field to filter connections by name. The Connection Properties, Authentication, and Secrets Management sections come already filled in and read-only.
Start a new connection from this one
To use the selected connection as a starting point for a brand-new connection instead, click the Duplicate as a new connection button on the selected connection. The form switches to New Connection mode with the connection's settings already filled in for you to adjust.
Step 4: Fill in the Enrichment Extraction fields (Catalog and Database) and the Enrichment Properties (Name and Teams).
Step 5: When you arrived from a source datastore, review the Prefix preview at the bottom of the step and, if needed, change the Remediation Strategy under Advanced Options. Both relate to the source datastore being linked, so they do not apply when creating the enrichment datastore on its own.
Step 6: Click Test connection. A success message confirms that the connection has been verified.
Info
The button that completes the step stays disabled until the required fields are filled in and the connection test passes on the current values. If the test fails, see Troubleshooting Common Errors.
Step 7: Complete the step: click Finish when you arrived from a source datastore, which creates both datastores and links them, or Create when creating the enrichment datastore on its own.
Step 8: A success dialog confirms the result. Click Go to your datastore to open the source datastore, or Go to your enrichment datastore when you created it on its own.
API Payload Examples
This section provides detailed examples of API payloads to guide you through the process of creating and managing datastores using Qualytics API. Each example includes endpoint details, sample payloads, and instructions on how to replace placeholder values with actual data relevant to your setup.
Permissions
Creating a datastore requires the Manager role.
Field names do not match the form labels
Two payload keys are named the other way round from the form:
databasecarries what the form calls Catalog (e.g.,hive_metastore).schemacarries what the form calls Database (e.g.,default).
Omit either one and Qualytics falls back to those two values.
Creating a Source Datastore
This section provides sample payloads for creating a Databricks datastore. Replace the placeholder values with actual data relevant to your setup.
Endpoint: /api/datastores (post)
{
"name": "your_datastore_name",
"teams": ["Public"],
"database": "databricks_catalog",
"schema": "databricks_database",
"enrichment_only": false,
"trigger_sync": true,
"connection": {
"name": "your_connection_name",
"type": "databricks",
"host": "databricks_host",
"password": "databricks_token",
"parameters": {
"path": "databricks_http_path"
}
}
}
{
"name": "your_datastore_name",
"teams": ["Public"],
"database": "databricks_catalog",
"schema": "databricks_database",
"enrichment_only": false,
"trigger_sync": true,
"connection": {
"name": "your_connection_name",
"type": "databricks",
"host": "databricks_host",
"username": "service_principal_application_id",
"password": "service_principal_oauth_secret",
"parameters": {
"path": "databricks_http_path",
"authentication_type": "OAUTH_M2M"
}
}
}
# Step 1: Create a Connection
qualytics connections create \
--type databricks \
--name "your_connection_name" \
--host ${DATABRICKS_HOST} \
--password ${DATABRICKS_TOKEN} \
--parameters '{"path": "databricks_http_path"}'
# Step 2: Create a Source Datastore
qualytics datastores create \
--name "your_datastore_name" \
--connection-name "your_connection_name" \
--database hive_metastore \
--schema default
Creating an Enrichment Datastore
This section provides sample payloads for creating an enrichment datastore. Replace the placeholder values with actual data relevant to your setup.
Endpoint: /api/datastores (post)
{
"name": "your_datastore_name",
"teams": ["Public"],
"database": "databricks_enrichment_catalog",
"schema": "databricks_enrichment_database",
"enrichment_only": true,
"connection": {
"name": "your_connection_name",
"type": "databricks",
"host": "databricks_host",
"password": "databricks_token",
"parameters": {
"path": "databricks_http_path"
}
}
}
# Step 1: Create a Connection
qualytics connections create \
--type databricks \
--name "your_connection_name" \
--host ${DATABRICKS_HOST} \
--password ${DATABRICKS_TOKEN} \
--parameters '{"path": "databricks_http_path"}'
# Step 2: Create an Enrichment Datastore
qualytics datastores create \
--name "your_datastore_name" \
--connection-name "your_connection_name" \
--database hive_metastore \
--schema your_enrichment_schema \
--enrichment-only
Link an Enrichment Datastore to a Source Datastore
Use the provided endpoint to link an enrichment datastore to a source datastore:
Endpoint Details: /api/datastores/{datastore-id}/enrichment/{enrichment-id} (patch)