> For the complete documentation index, see [llms.txt](https://docs.euno.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.euno.ai/sources/data-warehouses/redshift-integration/redshift-integration-discovered-resources.md).

# Redshift Integration Discovered Resources

> **Private preview:** The Redshift integration is currently in private preview. To enable it for your account, please contact support.

## Overview

The Euno Redshift integration discovers Redshift instances (provisioned clusters and Serverless workgroups), their databases, schemas, tables, views, materialized views, Spectrum external tables, and columns, and adds usage from query history when enabled. It discovers the following resources:

* Redshift instance (`redshift_instance`)
* Redshift database (`database`)
* Redshift schema (`database_schema`)
* Redshift table (`table`, subtypes `base_table`, `view`, `materialized_view`, `external_table`)
* Redshift column (`column`)

Unquoted Redshift identifiers are folded to lowercase in URIs. Quoted identifiers keep the case Redshift stored. Configure **Override hostname for URIs** when generated URIs must match an existing canonical hostname.

## Resource hierarchy

```
Redshift Instance
└── Database
    └── Schema
        └── Table / View / Materialized View / External Table
            └── Column
```

## Redshift instance (`redshift_instance`)

Represents the provisioned cluster or Serverless workgroup configured in the source.

| Property              | Type   | Description                                                                     |
| --------------------- | ------ | ------------------------------------------------------------------------------- |
| `name`                | string | Instance name. Defaults to the cluster identifier, workgroup name, or hostname. |
| `type`                | string | Always `redshift_instance`.                                                     |
| `subtype`             | string | Always `redshift_instance`.                                                     |
| `database_technology` | string | Always `redshift`.                                                              |

**URI pattern**

```
redshift.<instance_id>
```

Example: `redshift.analytics-cluster`

## Redshift database (`database`)

Represents a database on the Redshift instance.

| Property              | Type   | Description        |
| --------------------- | ------ | ------------------ |
| `name`                | string | Database name.     |
| `type`                | string | Always `database`. |
| `subtype`             | string | Always `database`. |
| `database_technology` | string | Always `redshift`. |

**URI pattern**

```
redshift.<instance_id>.<database_name>
```

Example: `redshift.analytics-cluster.analytics`

## Redshift schema (`database_schema`)

Represents a schema within a Redshift database.

| Property              | Type   | Description               |
| --------------------- | ------ | ------------------------- |
| `name`                | string | Schema name.              |
| `type`                | string | Always `database_schema`. |
| `subtype`             | string | Always `database_schema`. |
| `database`            | string | Database name.            |
| `database_technology` | string | Always `redshift`.        |

**URI pattern**

```
redshift.<instance_id>.<database_name>.<schema_name>
```

Example: `redshift.analytics-cluster.analytics.public`

## Redshift table (`table`)

All Redshift relations are `type: table`. `subtype` distinguishes the relation kind: `base_table`, `view`, `materialized_view`, or `external_table`.

| Property                    | Type      | Description                                                                                             |
| --------------------------- | --------- | ------------------------------------------------------------------------------------------------------- |
| `name`                      | string    | Table or view name.                                                                                     |
| `type`                      | string    | Always `table`.                                                                                         |
| `subtype`                   | string    | `base_table`, `view`, `materialized_view`, or `external_table`.                                         |
| `description`               | string    | Comment when present.                                                                                   |
| `database`                  | string    | Database name.                                                                                          |
| `schema`                    | string    | Schema name.                                                                                            |
| `database_technology`       | string    | Always `redshift`.                                                                                      |
| `created_at` / `updated_at` | timestamp | Catalog timestamps when Redshift exposes them.                                                          |
| `row_count`                 | number    | Table row count when size metadata is available. Applies to `base_table` and `materialized_view`.       |
| `volume`                    | number    | Storage size in bytes when size metadata is available. Applies to `base_table` and `materialized_view`. |
| `projected_storage_cost`    | number    | Estimated storage cost when a storage rate is configured. Derived.                                      |

**URI pattern**

```
redshift.<instance_id>.<database_name>.<schema_name>.<table_name>
```

Example: `redshift.analytics-cluster.analytics.public.orders`

### Usage properties

When **Extract Usage Metrics** is enabled, Euno publishes the standard 14/30/60-day usage fields used by the resource Usage tab and EQL. See [Redshift Usage Data](/using-euno/usage-optimization/redshift-usage-data.md).

Redshift's detailed system query logs retain about seven days. Euno accumulates query-history events across crawls. A 14-, 30-, or 60-day property stays unset until that window has been filled.

### Table read

Applies to all table subtypes.

| Property                                             | Type   | Description                                                      |
| ---------------------------------------------------- | ------ | ---------------------------------------------------------------- |
| `total_read_queries_14d` / `_30d` / `_60d`           | number | Read queries that referenced the table.                          |
| `total_read_runtime_14d` / `_30d` / `_60d`           | number | Total runtime of those queries.                                  |
| `total_read_bytes_processed_14d` / `_30d` / `_60d`   | number | Bytes processed on read.                                         |
| `average_read_bytes_processed_14d` / `_30d` / `_60d` | number | Average bytes processed per read query.                          |
| `distinct_users_14d` / `_30d` / `_60d`               | number | Distinct users running read queries.                             |
| `total_read_cost_14d` / `_30d` / `_60d`              | number | Estimated read cost when rates are configured.                   |
| `average_read_cost_14d` / `_30d` / `_60d`            | number | Estimated average read cost per query when rates are configured. |

For views, `total_read_queries_*` reflects queries that referenced the view. Bytes, runtime, and cost may reflect underlying table processing.

### Table write

Applies to `base_table` and `materialized_view`. Views and external tables do not receive write metrics.

| Property                                              | Type   | Description                                                           |
| ----------------------------------------------------- | ------ | --------------------------------------------------------------------- |
| `total_write_queries_14d` / `_30d` / `_60d`           | number | Write operations involving the table.                                 |
| `total_write_runtime_14d` / `_30d` / `_60d`           | number | Total runtime of write operations.                                    |
| `total_write_bytes_processed_14d` / `_30d` / `_60d`   | number | Bytes processed on write.                                             |
| `average_write_bytes_processed_14d` / `_30d` / `_60d` | number | Average bytes processed per write operation.                          |
| `total_write_cost_14d` / `_30d` / `_60d`              | number | Estimated write cost when rates are configured.                       |
| `average_write_cost_14d` / `_30d` / `_60d`            | number | Estimated average write cost per operation when rates are configured. |

## Redshift column (`column`)

Represents a column on a table, view, materialized view, or Spectrum external table.

| Property               | Type   | Description                |
| ---------------------- | ------ | -------------------------- |
| `name`                 | string | Column name.               |
| `type`                 | string | Always `column`.           |
| `subtype`              | string | Always `column`.           |
| `description`          | string | Comment when present.      |
| `database`             | string | Database name.             |
| `schema`               | string | Schema name.               |
| `database_technology`  | string | Always `redshift`.         |
| `normalized_data_type` | string | Euno-normalized data type. |

**URI pattern**

```
redshift.<instance_id>.<database_name>.<schema_name>.<table_name>.column.<column_name>
```

Example: `redshift.analytics-cluster.analytics.public.orders.column.order_id`

### Column read

Requires **Extract Column Usage**.

| Property                                   | Type   | Description                                       |
| ------------------------------------------ | ------ | ------------------------------------------------- |
| `total_read_queries_14d` / `_30d` / `_60d` | number | Distinct read queries that referenced the column. |
| `distinct_users_14d` / `_30d` / `_60d`     | number | Distinct users who read the column.               |

## Relationships

Each row is one relationship edge, written in the canonical direction for its family. Use the predicate in each heading to search for these relationships in EQL.

### Containment (`has parent` / `has child`)

| Source type       | Relationship | Target type         | Notes                                                                                          |
| ----------------- | ------------ | ------------------- | ---------------------------------------------------------------------------------------------- |
| `database`        | has parent   | `redshift_instance` | Databases are contained by the cluster or Serverless workgroup.                                |
| `database_schema` | has parent   | `database`          | Schemas are contained by databases.                                                            |
| `table`           | has parent   | `database_schema`   | Base tables, views, materialized views, and Spectrum external tables are contained by schemas. |
| `column`          | has parent   | `table`             | Columns are contained by native and Spectrum relations.                                        |

### Lineage (`has upstream` / `has downstream`)

| Source type | Relationship | Target type | Notes                                                                                             |
| ----------- | ------------ | ----------- | ------------------------------------------------------------------------------------------------- |
| `table`     | has upstream | `table`     | Table-level lineage from view SQL (views and materialized views) and query history (base tables). |

### Field-level lineage (`has upstream_fields` / `has downstream_fields`)

| Source type | Relationship         | Target type | Notes                                                                                                                                              |
| ----------- | -------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `column`    | has upstream\_fields | `column`    | Column-level lineage from view SQL and query history.                                                                                              |
| `table`     | has upstream\_fields | `column`    | Statement-level field dependencies on views (`JOIN`, `WHERE`, `GROUP BY`, `HAVING`, `ORDER BY`), including columns that are not in the projection. |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.euno.ai/sources/data-warehouses/redshift-integration/redshift-integration-discovered-resources.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
