PostgreSQL is an enterprise-grade, open source database management system. Many companies use PostgreSQL as a low-cost data warehousing solution to deliver efficient analytics and user insights.
RudderStack supports PostgreSQL as a data source from which you can ingest data and route it to your desired downstream destinations.
Grant permissions
Before you set up PostgreSQL as a source, you must grant certain permissions on your PostgreSQL warehouse for RudderStack to access data from it.
Run the queries listed in the following sections in the exact order to grant the required permissions:
Step 1: Create user
Create a new user RUDDER with a password <strong_unique_password> in PostgreSQL:
Replace <YOUR_SCHEMA> and <YOUR_TABLE> with the exact names of your PostgreSQL schema and table, respectively.
Optional commands
Run the following commands only if you’re okay with RudderStack being able to access the data in all current or future tables residing within your specified schema.
To allow the user RUDDER read the data from all the tables in the schema <YOUR_SCHEMA>:
Under Sources, click Reverse ETL and select PostgreSQL.
Configure warehouse credentials
You can choose to proceed with your existing warehouse credentials if you have configured them in the RudderStack dashboard previously. Otherwise, click Add new credentials to add new credentials for your warehouse.
Host: Enter the host name of your PostgreSQL instance.
Database: Enter the database name of your PostgreSQL instance from where RudderStack ingests the data.
User: Enter the user name of your PostgreSQL instance.
Password: Enter the password for the above user.
SSL Mode: Select the SSL mode as disable or require depending on how RudderStack should connect to your PostgreSQL instance.
Under Select your source type, choose Table and specify the below fields:
Schema: Select the warehouse schema from the dropdown.
Table: Choose the required table from which RudderStack syncs the data.
Primary key: Select the column from the above table that uniquely identifies your records in the warehouse.
RudderStack uses the primary key column for diffing in case of incremental syncs. You can generate it by:
Generating your table with a primary key, OR
Creating a table view
You can use a composite key in cases where one column cannot be considered as a primary key. For example, you can a declare a composite key of user_id and timestamp by creating a view on your warehouse table.
Under Select your source type, choose Model and click Continue.
To configure a model as source:
Enter an optional description and specify the custom SQL query in Query section.
Click Run Query to fetch the data preview.
Select the Primary key to use a column that uniquely identifies your warehouse records.
You can set a primary key only after you run the SQL query successfully using the Run Query option.
RudderStack uses the primary key column for diffing in case of incremental syncs. You can generate it by:
Generating your table with a primary key, OR
Creating a table view
You can use a composite key in cases where one column cannot be considered as a primary key. For example, you can a declare a composite key of user_id and timestamp in SQL query of the model.
You cannot delete a source that is connected to any destination.
IPs to be allowlisted
This section is applicable if you’re setting up your PostgreSQL source on a VPN or VPC and you want to enable network access to RudderStack.
To enable network access to RudderStack, allowlist the following RudderStack IPs depending on your region and RudderStack Cloud plan:
Plan
Region
US
EU
Free, Starter, and Growth
3.216.35.97
18.214.35.254
23.20.96.9
34.198.90.241
34.211.241.254
52.38.160.231
54.147.40.62
3.123.104.182
3.125.132.33
18.198.90.215
18.196.167.201
Enterprise
3.216.35.97
34.198.90.241
44.236.60.231
54.147.40.62
100.20.239.77
3.66.99.198
3.64.201.167
3.123.104.182
3.125.132.33
All the outbound traffic is routed through these RudderStack IPs.
FAQ
What are the SSL mode options when setting up the PostgreSQL source in RudderStack?
When setting up a PostgreSQL source, RudderStack provides the following two SSL options:
disable: SSL mode is disabled when you select this option. Use it in cases where security is not an issue and you don’t want any encryption overhead.
require: When you select this option, your data is encrypted and sent to RudderStack. Use it in cases where security is important and you can deal with the resulting encryption overhead.
Is SSH tunneling supported for PostgreSQL when using it as a Reverse ETL source?
RudderStack does not support SSH tunneling for PostgreSQL as a Reverse ETL source.
What do the three validations under Verifying Credentials imply?
When setting up a Reverse ETL source, you will see the following three validations under the Verifying Credentials option once you proceed after entering the warehouse credentials:
These options are explained below:
Verifying Connection: This option indicates that RudderStack is trying to connect to the warehouse with the provided warehouse credentials.
If this option gives an error, it means that one or more fields specified in the warehouse credentials are incorrect. Verify your credentials in this case.
Able to List Schema: This option checks if RudderStack is able to fetch all schema details by using the provided credentials.
Able to Access RudderStack Schema: This option implies that RudderStack is able to access the _rudderstack schema you have created by running all commands in the User Permissions section.
If this option gives an error, verify if you have successfully created the _rudderstack schema and given RudderStack the required permissions to access it.
This site uses cookies to improve your experience while you navigate through the website. Out of
these
cookies, the cookies that are categorized as necessary are stored on your browser as they are as
essential
for the working of basic functionalities of the website. We also use third-party cookies that
help
us
analyze and understand how you use this website. These cookies will be stored in your browser
only
with
your
consent. You also have the option to opt-out of these cookies. But opting out of some of these
cookies
may
have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This
category only includes cookies that ensures basic functionalities and security
features of the website. These cookies do not store any personal information.
This site uses cookies to improve your experience. If you want to
learn more about cookies and why we use them, visit our cookie
policy. We'll assume you're ok with this, but you can opt-out if you wish Cookie Settings.