Skip to main content
In this guide, you’ll learn how to connect your Amazon Redshift database to Omni.

Requirements

To follow the steps in this guide, you’ll need:
  • Organization Admin permissions in Omni
  • Permissions in Redshift that allow you to create database users and grant permissions

Setup

1

Create a database user for Omni

In your Redshift database, run the following command to create a database user for Omni:
Create an Omni database user
CREATE USER omni WITH PASSWORD '<password>';
GRANT USAGE ON SCHEMA '<schema_name>' TO omni;
GRANT SELECT ON TABLE information_schema.tables TO omni;
GRANT SELECT ON TABLE information_schema.columns TO omni;
Next, run the following command for each schema you want to use in Omni:
Grant Omni access to schemas
GRANT SELECT ON ALL TABLES IN SCHEMA '<schema_name>' TO omni;
If you’re using Redshift views via dbt, Omni may not be granted permissions if there are dependencies with other schemas. To grant access to those views, you’ll also need to grant SELECT access to the views. If objects are declared as tables, they will be available in Omni.
2

Set up a table upload schema

import UploadSchemaCallout from “/snippets/connect-data/upload-schema-callout.mdx”;In this step, you’ll create a dedicated schema to use for table uploads. This schema can’t be used for other modeled tables.
  1. Create the schema in Redshift.
  2. Run the following to grant the Omni user the required privileges:
    Grant Omni access to table upload schema
    GRANT USAGE, CREATE ON SCHEMA 'upload_schema_name' TO omni;
    
3

Allowlist Omni's IP addresses

If access to the Redshift database is limited by IP address, you’ll need to add Omni’s IPs to the allowlist before you create the database connection. For Redshift, this typically means creating a security group and adding an inbound traffic rule for each IP address.Omni’s IP addresses can be found on an individual connection’s page, accessed by navigating to Settings > Connections and clicking a connection.
4

Create the connection in Omni

  1. In Omni, click Settings > Connections.
  2. Click the Redshift option.
  3. On the connection setup page, fill in the connection details:
    NameRequired?Description
    Display Name YesA user-friendly name for the connection, which will be used throughout Omni
    Host YesThe hostname or IP address of the database server
    Port YesThe port number for the database connection. Defaults to 5439.
    Database YesThe database to connect to
    Include Schemas NoA comma-separated list of schemas to include in the connection
    Offloaded Schemas NoA comma-separated list of schemas to include in the connection, which will only load on demand. This setting is good for very large schemas or dbt dev schemas.
    Schema for Table Uploads NoThe name of the schema to use for table (CSV) uploads. If left blank, you can upload tables but they won’t be pushed to the database or be available for use in joins.
    Default Schema NoThe default schema to use for queries. Defaults to public.
    Username YesThe username for database authentication
    Password YesThe password for database authentication
    Database Timezone YesThe timezone used by the database
    Query Timezone YesThe timezone to use for Omni queries. If a timezone is specified, data will be converted from the Database timezone to the selected timezone.
    Allow User-Specific Timezones NoWhen enabled, users can override the connection timezone with their own when querying
    Query Timeout NoMaximum time in seconds before a query times out
  4. When finished, click Create connection.

What’s next?

Now that your Redshift is set up, you can: