Skip to content

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.

dremio-connection-form

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 SELECT on dataset: the user does not have SELECT permission 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 on 31010. The form's pre-filled 32010 belongs 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"
        }
    }
}
{
    "name": "your_datastore_name",
    "teams": ["Public"],
    "schema": "dremio_schema",
    "enrichment_only": false,
    "trigger_sync": true,
    "connection_id": 123
}
# 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