Skip to content

Teradata

Adding and configuring a Teradata 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 Teradata 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 Teradata environment is properly connected with Qualytics, unlocking the platform's potential to help you proactively manage your full data quality lifecycle.

teradata-connection-form

Let’s get started 🚀

Teradata Setup Guide

Qualytics connects to Teradata through the Teradata JDBC driver. It uses JDBC metadata APIs to discover databases, tables, columns, and primary keys. Qualytics automatically filters out Teradata system databases (DBC, SYSLIB, SYSSPATIAL, SYSUDTLIB, SystemFe, TDQCD, TDStats, TDPUSER, SYSUIF, All, Crashdumps, EXTUSER, LockLogShredder, SQLJ, SYSADMIN, SYSBAR, SYSJDBC) during schema discovery.

Minimum Teradata Permissions (Source Datastore)

Permission Purpose
LOGON Allow the user to log on to the Teradata system
SELECT ON <database_name> Read data from all tables for profiling and scanning
SHOW ON <database_name> View object definitions (DDL) for metadata discovery
SELECT ON DBC.DatabasesV Read database metadata for schema discovery

Note

Qualytics does not support Teradata as an enrichment datastore. You can point to a different enrichment datastore instead.

Example: Source Datastore User (Read-Only)

Replace <database_name> and <password> with your actual values.

-- Create a dedicated read-only user
CREATE USER qualytics_read AS
  PASSWORD = '<password>'
  PERM = 0
  SPOOL = 1000000000;

-- Grant logon access
GRANT LOGON ON ALL TO qualytics_read;

-- Grant read access to the target database
GRANT SELECT ON <database_name> TO qualytics_read;
GRANT SHOW ON <database_name> TO qualytics_read;

Tip

If using LDAP authentication, ensure the LDAP user has the same SELECT and SHOW privileges on the target database.

Troubleshooting Common Errors

Error Likely Cause Fix
Authentication failed Incorrect username or password Verify the credentials and ensure the user exists in the Teradata system
User does not have SELECT access The user lacks SELECT on the target database or table Run GRANT SELECT ON <database_name> TO <user>
User does not have SHOW access The user lacks SHOW on the target database Run GRANT SHOW ON <database_name> TO <user>
Connection refused The Teradata server is not reachable or the port is incorrect Verify the host and port, and ensure the Teradata server allows connections from the Qualytics IP
Database does not exist The database name provided in the connection form is incorrect Verify the database name with SELECT DatabaseName FROM DBC.DatabasesV

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 one set for the user.
  • User does not exist: the username was misspelled or does not exist in the Teradata system.
  • LDAP authentication: if LDAP is enabled, the credentials must match the LDAP directory, not the Teradata internal user store.

Note

Teradata authentication can be configured to use internal, LDAP, or Kerberos mechanisms. Ensure the authentication method in the connection form matches the server configuration.

Permission Errors

The error User does not have SELECT access means the user authenticated successfully but lacks the necessary grants on the target database.

Common causes:

  • Missing SELECT on database: the user does not have SELECT on the target database or specific tables.
  • Missing SHOW on database: the user cannot view object definitions needed for metadata discovery.
  • Access to system databases: the user is trying to access a filtered system database (e.g., DBC, SYSLIB).

Connection Errors

The error Connection refused means the Teradata server is not reachable from the Qualytics server.

Common causes:

  • Firewall: a firewall is blocking connections on the Teradata port (default 1025).
  • Server not running: the Teradata server is not started or is in a maintenance state.
  • Wrong host: the hostname or IP address in the connection form is incorrect.

Tip

Start by confirming credentials are valid (authentication errors), then verify database permissions (permission errors), and finally check network connectivity (connection errors).

Add a Source Datastore

A source datastore is a storage location Qualytics connects to so it can profile, scan, and monitor data. Adding Teradata as a source lets Qualytics query it through the Teradata JDBC driver and run quality operations on the tables it discovers.

Before you start, review the Minimum Teradata Permissions the connecting user needs.

Enrichment lives on another connector

Qualytics does not support Teradata as an enrichment datastore. Create the enrichment datastore on a supported connector instead, then link it to your Teradata source datastore. See Supported Enrichment Datastores for the list.

Field reference

The Add Datastore page shows the sections below when Teradata is selected. When reusing an existing connection, the Connection Properties 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 Teradata system Qualytics connects to and the account it connects with. 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_teradata_reporting), so other datastores can reuse it later.
Host Text The hostname or address of the Teradata system.
Port Number The port the system accepts connections on. Left empty, the connection uses the default 1025.
Enable LDAP Checkbox Turn it on when the account is authenticated by your directory service rather than by Teradata itself.
User Text The Teradata account Qualytics connects as.
Password Text The password for that account.

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/teradata).
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.

Datastores Extraction

Pick the database Qualytics should read from, and choose whether the connection is encrypted. You fill these in on both flows.

FIELD REQUIRED TYPE DESCRIPTION
Use SSL Checkbox Encrypt the connection to the Teradata system. Selected by default. Clear it only when the system does not accept encrypted connections, in which case the connection is made without encryption.
Database Option The Teradata database Qualytics reads from. Click the refresh icon to load the ones visible to the account.

Database is the schema

Teradata treats a database as the schema, so there is no separate catalog selection before it. The field is sent as the datastore's schema.

Multi-schema discovery is not offered

Teradata is not among the connectors that create several datastores in one operation. See Supported Connectors for the ones that are.

System databases

Teradata's built-in system databases, such as DBC, SYSLIB, and TDStats, are left out of discovery, so they do not appear in the list.

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 the source datastore being created. 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 Teradata from the connector grid. Use the search field to filter connectors by name.

Step 6: Fill in the Connection Properties: the Connection Name, Host, Port, User, and Password, and turn on Enable LDAP if your account is authenticated by a directory service.

Step 7: Optionally, expand Secrets Management to retrieve credentials from a secrets manager.

Step 8: Fill in the Datastores Extraction fields (Use SSL and Database) and the Datastore Properties.

Step 9: 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 10: 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 Teradata; see Link Enrichment on Datastore Creation.

Step 11: 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 Teradata connection from the grid. Use the search field to filter connections by name. The Connection Properties 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 (Use SSL and Database) and the Datastore Properties. These are the only fields left to fill in.

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 Teradata; 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

Creating a Source Datastore

This section provides a sample payload for creating a datastore. Replace the placeholder values with actual data relevant to your setup.

Endpoint (Post): /api/datastores (post)

{
    "name": "your_datastore_name",
    "teams": ["Public"],
    "schema": "schema_name",
    "enrichment_only": false,
    "trigger_sync": true,
    "connection": {
        "name": "your_connection_name",
        "host": "teradata_host",
        "port": 1025,
        "username": "teradata_user",
        "password": "teradata_password",
        "type": "teradata"
        }
}
{
    "name": "your_datastore_name",
    "teams": ["Public"],
    "schema": "schema_name",
    "enrichment_only": false,
    "trigger_sync": true,
    "connection_id": 123
}
# Step 1: Create a Connection
qualytics connections create \
    --type teradata \
    --name "your_connection_name" \
    --host ${TERADATA_HOST} \
    --port 1025 \
    --username ${TERADATA_USER} \
    --password ${TERADATA_PASSWORD}

# Step 2: Create a Source Datastore
qualytics datastores create \
    --name "your_datastore_name" \
    --connection-name "your_connection_name" \
    --schema dbc

Use SSL

The payloads above leave Use SSL at its default, so the connection is encrypted. To connect to a system that does not accept encrypted connections, send ssl as "false" under the connection's parameters:

"connection": {
    "name": "your_connection_name",
    "host": "teradata_host",
    "port": 1025,
    "username": "teradata_user",
    "password": "teradata_password",
    "type": "teradata",
    "parameters": {
        "ssl": "false"
    }
}

Endpoint Patch:

/api/datastores/{datastore-id}/enrichment/{enrichment-id} (patch)