# Redshift Semantic Layer with Bonnard

> Connect Bonnard to Amazon Redshift and ship governed metrics to AI agents, dashboards, and your product. A YAML semantic layer with MCP, React SDK, and REST.

Bonnard gives you a Redshift semantic layer defined in YAML, version-controlled, and queryable from AI agents, React components, and REST APIs. Redshift handles large-scale analytics with columnar storage and massively parallel processing. Bonnard connects directly and exposes governed metrics through MCP, React SDK, REST API, and markdown dashboards.

## How does Bonnard connect to Redshift?

Add Redshift as a datasource in your Bonnard project. Define the connection in your `datasources.yml`:

```yaml
# datasources.yml
datasources:
  - name: redshift_warehouse
    type: redshift
    host: your-cluster.abc123.us-east-1.redshift.amazonaws.com
    port: 5439
    database: analytics
    username: bonnard_readonly
    password: ${REDSHIFT_PASSWORD}
    schema: public
    ssl: true
```

Then run:

```bash
bon datasource add redshift_warehouse
bon deploy
```

Bonnard connects to your Redshift cluster, introspects your schema, and deploys your [semantic layer](/semantic-layer). Works with both Redshift provisioned clusters and Redshift Serverless. Your warehouse data is queryable through every Bonnard surface within minutes.

## What do you get?

Once connected, your Redshift data is available through four surfaces:

**[MCP](/glossary/mcp) server.** Run `bon mcp` and your AI agents (Claude, ChatGPT, Cursor) query governed Redshift metrics with row-level security. Generate publishable keys per tenant for customer-facing [agentic analytics](/agentic-analytics).

**React SDK.** Drop `BarChart`, `LineChart`, and `BigValue` components into your product. Every chart queries your Redshift cluster through the semantic layer with multi-tenant access controls applied automatically.

**REST API.** Query metrics programmatically from any language or platform. Type-safe queries with the TypeScript SDK or raw HTTP from anywhere.

**Markdown dashboards.** Author dashboards in markdown, deploy with `bon deploy`, and share governed views with your team or customers.

## How does Bonnard compare to native Redshift analytics?

| Capability | Redshift native | Bonnard + Redshift |
|------------|----------------|-------------------|
| Metric definitions | SQL views, saved queries | YAML semantic layer (version-controlled) |
| AI agent access | None | MCP server with publishable keys |
| Embedded analytics | QuickSight (separate service) | React SDK with multi-tenant auth |
| Dashboards | QuickSight | Markdown dashboards, deployed via CLI |
| Multi-tenancy | Schema isolation / row-level security | Publishable keys + automatic row filters |
| Pre-aggregation | Materialized views (manual) | Automatic pre-aggregation cache |
| dbt integration | dbt-redshift adapter | `bon datasource add --from-dbt` imports models |
| Access control | IAM + Redshift users | YAML-defined RBAC + audit logging |
| Deployment | SQL scripts | `bon deploy` (no restart, no SSH) |

## FAQ

**Does Bonnard support Amazon Redshift?**

Yes. Redshift is a first-class Bonnard datasource. Both provisioned clusters and Redshift Serverless are supported. Configure your cluster endpoint, credentials, and schema, then deploy.

**Does Bonnard work with Redshift Serverless?**

Yes. Use your Redshift Serverless endpoint as the host in `datasources.yml`. Bonnard connects the same way it connects to provisioned clusters. No additional configuration needed.

**Can I use pre-aggregations with Redshift?**

Yes. The [pre-aggregation](/glossary/pre-aggregation) cache handles this automatically. Define rollups in your cube YAML files and Bonnard builds and refreshes them on schedule. This reduces Redshift compute costs and speeds up repeated queries without manual materialized view management.

**Can I import dbt models from Redshift?**

Yes. Run `bon datasource add --from-dbt` pointed at your dbt project using the dbt-redshift adapter. Bonnard imports your models as cubes and your metrics as measures. Layer the [semantic layer](/semantic-layer) on top of your existing dbt transformations.

## Related

- [Snowflake integration](/integrations/snowflake) -- if you're evaluating warehouse options
- [BigQuery integration](/integrations/bigquery) -- another cloud warehouse option
- [What is a Semantic Layer?](/glossary/semantic-layer) -- how metric definitions work