Links

Redshift

How to connect Redshift to Count

Click "Connect a database"

Enter your connection details

The Redshift connection page
To connect your database, you'll need to enter:
  • Host
  • Port
  • Database name
  • Username
  • Password
You'll also need to ensure that your firewall accepts requests from the following IP addresses:
34.107.75.117
35.198.189.90
35.234.110.177
Connections between Count and your database are encrypted by SSL (TLS). Your database must be configured to use SSL in order for Count to connect.

Connect

Once you hit Connect you will see your connection details including a full list of tables accessible with this connection.
Use Projects to manage which users have access to which tables.

Advanced settings

The available advanced connection settings for Redshift
The Redshift connection in Count supports a number of advanced settings:
  • Enable case-sensitive identifiers - read more about the impact of this setting here.
  • Max concurrent connections - Set the maximum number of simultaneous connections between Count and your database. If your database has a lower limit than the value set here, then the lower limit will take precedence.
  • Query timeout - queries executed from Count will be automatically aborted after this length of time.

Troubleshooting

If you're having trouble connecting, check the error message returned at the top of the Connection page against the table below for a possible fix.
Error snippet
Possible resolution
GETADDRINFO ENOTFOUND
Is the server running on
Connection time out
Connection refused
Could not connect to server
Failed to establish a connection
ECONNREFUSED
Check your Host and Port settings and that your database server is open to accept connections from the whitelisted Count IP addresses
Password authentication failed for user
Password authentication failed; please check Username, Password, and Database name settings
No PG_HBA.CONF entry for host
SETUSERID: USER
Check the Username with these credentials is authorised to connect to the database from the whitelisted Count IP addresses

Schema/tables are missing from my connection

If you do not see tables listed in Count that you expect, please check that the permissions for the user account used by Count are configured correctly. To test which tables your credentials have access to, you can try running a query from a Count cell like:
select * from svv_all_tables
You should also confirm:
  • The user account used for Count is covered by any IP whitelisting rules you have established.
  • The user account used for Count has been granted usage permissions on any schemas you require. The permissions need to be granted by an account with schema ownership.
Some permissions may need a new session before they take effect. Count may retain a session for some time after it is last used, so waiting a little before refreshing schema may help.

SSL certificate errors

What does "Trust server certificate" mean?

If you are unable to obtain a copy of your database CA (e.g. some Heroku systems), the only way to initiate encrypted communication with your database is to trust that the certificate sent by the server is correct (SSL mode "require"). This ensures full protection against eavesdropping, but not against MITM attacks. Count will only use this mode of communication if you activate the "Trust server certificate" in the "Advanced" section of the connection setup.
You should consult your database administrator to confirm that this setting is appropriate for your system.
If you are having trouble connecting, reach out to us to schedule a help session

Limitations

Assert

A commonly encountered idiosyncrasy for Redshift users is the Assert error. A query submitted to Redshift can result in an Assert error for a number of reasons, one of them being a bug in the Redshift itself. Below is a list of cases and workarounds for how to amend queries returning Assert errors.
Multiple subqueries in WHERE clause
The following query may result in an Assert error due to the subqueries in the WHERE clause:
SELECT date_col FROM public.table
WHERE date_col
BETWEEN (SELECT value FROM start_date) AND (SELECT value FROM end_date)
Fix 1 - use a CROSS JOIN instead of multiple subqueries
SELECT date_col FROM public.table
CROSS JOIN start_date
CROSS JOIN end_date
WHERE date_col
BETWEEN start_date.value AND end_date.value
Fix 2 - use a jinja template
SELECT date_col FROM public.table
WHERE date_col
BETWEEN {{ cells.start_date }}::date AND {{ cells.end_date }}::date
Last modified 2mo ago