This article lays out basic capabilities and technical specifications of the Amazon Redshift connector. For a full step-by-step guide on how to import Redshift's metadata into Dataedo, see this page
Amazon Redshift
Catalog and documentation
Data catalog
Dataedo documents metadata of the following objects:
- Tables
- External tables (Redshift Spectrum)
- Views
- Materialized views
- Procedures
- Functions
- COPY commands
For more details, see the Connector specification section below.
Catalog options summary
- Document and enrich metadata: edit descriptions, aliases, and glossary links.
- Use source comments: import table, view, column, procedure, and function comments from Redshift.
- Model relationships visually: import primary, foreign, and unique key constraints and build ER diagrams in subject areas.
- Apply governance features: use profiling, quality checks, lookups, and classification.
- Track and share changes: publish documentation to Portal and exports.
Linked sources
Redshift can reach outside of its own database in several ways. Each is imported as a separate Linked Source:
| Redshift construct | Imported as a linked source named | Created from |
|---|---|---|
| External table with an Amazon S3 location | S3 bucket name | External table location |
| COPY command | S3 bucket name | COPY command location |
| External schema over AWS Glue Data Catalog or Hive | database@host | SVV_EXTERNAL_SCHEMAS |
| External schema over PostgreSQL (federated query) | database@host | SVV_EXTERNAL_SCHEMAS |
| External schema over Amazon Kinesis | Stream name | SVV_EXTERNAL_SCHEMAS |
Dataedo assigns a linked source to an object automatically only when the matching documentation in the repository is an Amazon S3 source or a source created manually. Other external sources have to be mapped to an existing Dataedo source manually. Learn more here.
Connector specification
Supported scope
| Area | Supported | Scope | Requirements |
|---|---|---|---|
| Metadata import | Tables, external tables, views, materialized views, procedures, functions, COPY commands | See Required access level | |
| Descriptions and aliases | Manual enrichment in Dataedo after import | Initial schema import completed | |
| Relationships and diagrams | Primary, foreign, and unique key constraints imported and used in ER diagrams | Constraints must be declared in the source schema | |
| Automatic lineage | Object-level and column-level for views, materialized views, procedures, functions, external tables, and COPY commands | See Required access level | |
| Data profiling and quality | Profiling, quality checks, and classification workflows | SELECT on the profiled or tested objects | |
| Table statistics | Row count, query and update timestamps and counters, last load time | See Table Statistics | |
| Write-back comments | Partial | Desktop only — Export comments to database | Permission to comment on the documented objects |
| Extended properties | Not available for Redshift | ||
| Metadata sync | Not available for Redshift |
Imported objects
| Object | Imported as |
|---|---|
| Table | Table |
| External table | Table |
| View | View |
| Materialized view | View |
| Procedure | Procedure |
| Function | Function |
| COPY command | SQL Script |
Imported metadata
| Imported | Editable | |
|---|---|---|
| Tables, external tables | ||
| Columns | ||
| Data types | ||
| Nullability | ||
| Default value | ||
| Column comments | ||
| Table comments | ||
| Primary keys | ||
| Foreign keys | ||
| Unique constraints | ||
| Views, materialized views | ||
| Script | ||
| Columns | ||
| Data types | ||
| Nullability | ||
| Column comments | ||
| View comments | ||
| Procedures, functions | ||
| Script | ||
| Language | ||
| Parameters | ||
| Returned value | ||
| Parameter comments | ||
| Procedure, function comments | ||
| COPY commands | ||
| Script |
Supported features
| Feature | Supported |
|---|---|
| Import comments | |
| Write comments back | Desktop only |
| Data profiling | |
| Reference data (import lookups) | |
| Relationships (PK/FK) tester | |
| Generating DDL | |
| Importing from DDL | |
| Importing triggers | |
| Importing extended properties |
Lineage support
| Source | Method | Supported |
|---|---|---|
| Views | From dependencies | |
| Views, materialized views (column level) | From SQL parsing | |
| Procedures, functions (column level) | From SQL parsing | |
| External tables (object and column level) | From linked sources | |
| COPY commands (object level) | From query history |
Redshift scripts are parsed with the PostgreSQL dialect. COPY-command lineage requires the Data lineage from query history import option — see Automatic Data Lineage.
Data profiling
| Profile | Support |
|---|---|
| Table row count | |
| Table sample data | |
| Column distribution (unique, non-unique, null, empty values) | |
| Min, max values | |
| Average | |
| Variance | |
| Standard deviation | |
| Min-max span | |
| Number of distinct values | |
| Top 10/100/1000 values | |
| 10 random values |
Read more about profiling in the Data Profiling documentation.
Not supported or limited
| Not supported / Limited | Workaround |
|---|---|
| Triggers | Redshift has no triggers |
| Indexes | Redshift has no user indexes; primary, foreign, and unique key constraints are imported instead |
| Check constraints | Add manual documentation |
| Extended properties as custom fields | Document the values manually in custom fields |
| Metadata sync (description write-back) in the Portal | Export comments from Dataedo Desktop |
| Incremental import | None — every Redshift import re-reads the full schema (see Known issues below) |
| Automatic mapping of external schemas to Dataedo sources | Map the linked source manually before parsing SQL |
| Parameter comments | Redshift stores no parameter comments; document them in Dataedo |
Supported versions and editions
| Supported deployments | Notes |
|---|---|
| Amazon Redshift provisioned clusters, Amazon Redshift Serverless workgroups | Dataedo reads the cluster version with VERSION(); no minimum version applies |
Required access level
Importing metadata requires a Redshift account with read access to the system catalog of the documented database. Granting USAGE on information_schema and pg_catalog lets a user import every object they can see; alternatively, grant SELECT only on the specific objects you want to document.
Dataedo does not alter source data during synchronization.
| Permission / access | Used for | If missing |
|---|---|---|
| Connect privilege on the documented database | Establishing the connection and running import | Connection and import cannot start |
USAGE on information_schema and pg_catalog | Reading objects, columns, constraints, and definitions | Import is limited to accessible objects; metadata is incomplete |
USAGE on the documented schemas | Object discovery | Objects in those schemas are not listed at all |
SELECT on profiled, tested, and classified objects | Data profiling, data quality, classification | Profiling and quality results are partial or fail |
Superuser, or SYSLOG ACCESS UNRESTRICTED | COPY-command import and query-based table statistics | Only the connecting user's own queries are visible — usually no COPY commands and no query statistics at all |
SELECT on SVV_TABLE_INFO (or superuser) | Table statistics | Query and update timestamps and counters are not imported |
Amazon Redshift documents that "SYS_QUERY_HISTORY is visible to all users. Superusers can see all rows; regular users can see only their own data", and that SVV_TABLE_INFO is "visible only to superusers". A dedicated read-only Dataedo account therefore imports no COPY commands and no query-based statistics until it is a superuser or is granted the access above:
ALTER USER dataedo_user SYSLOG ACCESS UNRESTRICTED;
GRANT SELECT ON SVV_TABLE_INFO TO dataedo_user;
Plain metadata import (tables, views, procedures, functions, constraints, dependencies) does not need these grants.
The following objects are accessed during import. If access is missing, the import impact is:
| Redshift object / view | What will be missing in import without access |
|---|---|
SVV_TABLES | Object discovery baseline for tables, external tables, and views — nothing is imported |
SVV_COLUMNS | Column list and core column metadata (names, data types, nullability, defaults, comments) |
SVV_EXTERNAL_TABLES | External-table locations, and the S3 linked sources derived from them |
SVV_EXTERNAL_SCHEMAS | Linked sources for Glue, Hive, PostgreSQL, and Kinesis external schemas |
PG_CATALOG.PG_VIEWS | View and materialized-view definitions — no scripts and no parser lineage for views |
PG_CATALOG.PG_PROC, PG_PROC_INFO | Procedures and functions, including their scripts |
PG_CATALOG.PG_NAMESPACE | Schema resolution for procedures, functions, and constraints |
PG_CATALOG.PG_LANGUAGE | Procedure and function language |
PG_CATALOG.PG_DESCRIPTION | Procedure and function comments |
PG_CATALOG.PG_CONSTRAINT, PG_CLASS, PG_ATTRIBUTE | Primary, foreign, and unique key constraints and their column mapping |
INFORMATION_SCHEMA.ROUTINES, INFORMATION_SCHEMA.PARAMETERS | Procedure and function parameters and returned values |
INFORMATION_SCHEMA.VIEW_TABLE_USAGE, INFORMATION_SCHEMA.TABLES | View dependencies, and the object-level lineage built from them |
PG_DATABASE | The list of databases offered when creating the connection |
SYS_QUERY_HISTORY | COPY commands and the lineage built from them (only when Data lineage from query history is enabled) |
SYS_QUERY_DETAIL, SVV_TABLE_INFO, PG_CLASS, PG_NAMESPACE | Table statistics |
Known issues and limitations
- COPY commands are only as complete as the query history. Dataedo reads them from
SYS_QUERY_HISTORY, which Redshift purges automatically. COPY commands that have aged out of the query history cannot be imported, and the SQL Script objects created from earlier imports are not refreshed from the source. - Every Redshift import is a full re-import. The connector cannot detect changed objects, so each scheduled import re-reads and re-processes the whole selected schema. Narrow the import scope with advanced filters if the import takes too long.
- Column-level lineage for external tables matches columns by name. Columns that are renamed between the external source and the Redshift external table are not linked.