Dremio
Adding and configuring a Dremio connection within Qualytics empowers the platform to build a symbolic link with your schema to perform operations like data discovery, visualization, reporting, syncing, profiling, scanning, anomaly surveillance, and more.
This documentation provides a step-by-step guide on adding Dremio as a source 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 Dremio 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 🚀
Dremio Setup Guide
Qualytics connects to Dremio through the Dremio JDBC driver, using a direct connection to the endpoint. It uses standard SQL queries for data profiling and scanning. Dremio permissions are managed through its own privilege model, which controls access to sources, spaces, and datasets.
Minimum Dremio Permissions (Source Datastore)
| Permission | Purpose |
|---|---|
SELECT on target datasets |
Read data from tables/views for profiling and scanning |
VIEW on the source |
Browse available schemas and datasets |
| Access to the Dremio project (Cloud only) | Scope queries to the correct project in Dremio Cloud |
Authentication Methods
Dremio supports two authentication methods:
| Method | Configuration |
|---|---|
| Basic (Username & Password) | Use the Dremio username and password directly |
| Personal Access Token (PAT) | Generate a PAT from Account Settings > Personal Access Tokens in Dremio and use it as the authentication credential |
Example: Granting Permissions in Dremio
In the Dremio UI, navigate to the target source or dataset and grant SELECT access to the Qualytics user:
GRANT SELECT ON TABLE <source>.<schema>.<dataset> TO USER qualytics_read;
-- Or grant access to all datasets in a schema:
GRANT SELECT ON SCHEMA <source>.<schema> TO USER qualytics_read;
Tip
If using Dremio Cloud, ensure the Project ID is included in the connection form. You can find the Project ID in the Dremio Cloud project settings.
Troubleshooting Common Errors
| Error | Likely Cause | Fix |
|---|---|---|
Authentication failed |
Incorrect username/password or invalid PAT | Verify credentials or generate a new PAT from Dremio account settings |
Source not found |
The schema (source) name in the connection form does not match a configured Dremio source | Verify available sources in the Dremio UI or with SHOW SCHEMAS |
Permission denied on dataset |
The user lacks SELECT on the target dataset |
Grant SELECT permission on the dataset in Dremio's privilege settings |
Connection refused |
The Dremio endpoint is not reachable or the port is wrong (443 for Cloud, 31010 self-managed) |
Verify the host, port, and that the Dremio coordinator is running |
Project ID is required (Cloud only) |
The Dremio Cloud project ID was not provided in the connection form | Add the Project ID from your Dremio Cloud project settings |
SSL handshake failed |
SSL is required but not configured, or the SSL certificate is not trusted | Enable SSL in the connection parameters or add the Dremio certificate to the trust store |
Detailed Troubleshooting Notes
Authentication Errors
The error Authentication failed indicates that the credentials are incorrect.
Common causes:
- Incorrect password: the password does not match the Dremio user account.
- Invalid PAT: the Personal Access Token is expired, revoked, or was generated in a different Dremio instance.
- PAT permissions: the PAT does not have sufficient permissions for the requested operation.
Note
Dremio Personal Access Tokens are user-scoped. Ensure the PAT belongs to a user with the required permissions on the target datasets.
Permission Errors
The error Permission denied on dataset means the user authenticated successfully but lacks access to the target dataset.
Common causes:
- Missing
SELECTon dataset: the user does not haveSELECTpermission on the specific dataset. - Source not shared: in Dremio, datasets derived from a source must be explicitly shared with users.
- Project scope (Cloud only): the dataset exists in a different project than the one configured in the connection.
Connection Errors
The error Connection refused or SSL handshake failed indicates a connectivity issue.
Common causes:
- Wrong port: Dremio Cloud listens on
443, while a self-managed coordinator listens on31010. The form's pre-filled32010belongs to a different Dremio driver and will not connect. - SSL not configured: the Dremio server requires SSL but the connection is not configured for it.
- Project ID missing (Cloud only): Dremio Cloud requires a Project ID to scope queries.
Tip
Start by confirming credentials are valid (authentication errors), then verify dataset permissions (permission errors), and finally check coordinator connectivity and SSL configuration (connection errors).
Add the Source Datastore
A source datastore is a storage location Qualytics connects to so it can profile, scan, and monitor data. Adding Dremio as a source lets Qualytics query your datasets through the Dremio JDBC driver and run quality operations on the tables it discovers.
Before you start, review the Minimum Dremio Permissions the connecting account needs and the available Authentication Methods.
Enrichment lives on another connector
Dremio cannot host an enrichment datastore: creating one on Dremio is rejected. Linking one to a Dremio source works normally, as long as the enrichment datastore itself lives on a connector that supports the role. See Supported Enrichment Datastores for the list, and Link Enrichment on Datastore Creation for the flow.
Field reference
The Add Datastore page shows the sections below when Dremio 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 Dremio 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_dremio_cloud), so other datastores can reuse it later. |
|
| Host | Text | The Dremio endpoint (e.g., sql.dremio.cloud for Dremio Cloud, or your own host for a self-managed deployment). |
|
| Port | Number | The port the Dremio endpoint listens on. Use 443 for Dremio Cloud, or 31010 for a self-managed coordinator. The form arrives pre-filled with 32010, so change it to match your deployment. |
|
| Project ID | UUID | The identifier of the Dremio Cloud project to query, written as a UUID (e.g., 7c4d9f21-3b8e-4a6c-9d51-2f8b6e04a1c3). Find it in the project settings, or in the address bar while the project is open. Leave it empty on deployments that do not use projects. |
|
| SSL Connection | Checkbox | Encrypts the connection between Qualytics and Dremio. Turn it on when your endpoint requires or supports TLS. |
Authentication
Choose how Qualytics authenticates to Dremio. 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. See Authentication Methods above for how to obtain each credential.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Basic, which is the default (BASIC in the API). |
|
| User | Text | The Dremio account Qualytics connects as. | |
| Password | Text | The password for that account. |
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Type | Option | Set to Access Token (PAT in the API). |
|
| Personal Access Token | Text | The token Qualytics uses to authenticate. It replaces the User and Password fields, and suits unattended access, since it is not tied to an account password that may change. |
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/dremio). |
|
| 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., ${dremio_password}). Qualytics resolves the secret at the moment the connection is opened, so changed keys take effect on the next connection.
Datastores Extraction
Pick the schema(s) Qualytics should read from. You fill these in on both flows.
| FIELD | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Schema | Option | One or more schemas to read from. Each schema you pick becomes its own Qualytics datastore. Click the refresh icon to load the available schemas. |
No catalog step
Dremio has no catalog field: schemas are discovered directly, without a catalog selection first. Selecting more than one schema creates one source datastore per schema, 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 schema name (e.g., dremio_{{schema}} becomes dremio_sales). Left empty, the datastore is named from the connection name and the schema. |
|
| 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 Dremio 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 Port, plus the Project ID on Dremio Cloud, and turn on SSL Connection if your endpoint requires it.
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 field (Schema) 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. It has to live on a connector other than Dremio; see Link Enrichment on Datastore Creation.
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 Dremio 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 field (Schema) and the Datastore Properties. These are the only fields left to fill in: Schema and Teams are the required ones, while 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. It has to live on a connector other than Dremio; see Link Enrichment on Datastore Creation.
Step 9: A success dialog confirms that your datastore has been added. Click Go to your datastore to open its page.
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.
Where each field goes
Project ID, SSL Connection, and the authentication Type are sent inside
connection.parameters, not at the top level of connection. The credential itself goes in
connection.password: the personal access token when authentication_type is PAT, or the
account password together with connection.username when it is BASIC. Dremio has no
database field, so only schema is sent.
Creating a Source Datastore
This section provides sample payloads for creating a Dremio datastore. Replace the placeholder values with actual data relevant to your setup.
Endpoint (Post): /api/datastores (post)
{
"name": "your_datastore_name",
"teams": ["Public"],
"schema": "dremio_schema",
"enrichment_only": false,
"trigger_sync": true,
"connection": {
"name": "your_connection_name",
"type": "dremio",
"host": "sql.dremio.cloud",
"port": 443,
"password": "your_personal_access_token",
"parameters": {
"project_id": "7c4d9f21-3b8e-4a6c-9d51-2f8b6e04a1c3",
"ssl": true,
"authentication_type": "PAT"
}
}
}
# Step 1: Create a Connection
qualytics connections create \
--type dremio \
--name "your_connection_name" \
--host sql.dremio.cloud \
--port 443 \
--username ${DREMIO_USER} \
--password ${DREMIO_PASSWORD}
# Step 2: Create a Source Datastore
qualytics datastores create \
--name "your_datastore_name" \
--connection-name "your_connection_name" \
--schema your_schema