An open-source relational database, PostgreSQL is a powerful and well-known system that has received recognition from both its users and the industry at large. Unlike some other database systems, PostgreSQL is completely customizable and yours to do with as you please (assuming, of course, that your instance is self-hosted).
For a more in-depth look at PostgreSQL, click here.
Pricing for PostgreSQL depends on where your instance is hosted.
- Self-hosted: PostgreSQL is open-source, meaning you don’t need to pay an upfront cost to obtain the necessary software. You may, however, have hosting and maintenance costs associated with the server housing the instance. You may have to do a little bit of internal number crunching to figure out these potential costs.
- Heroku: Heroku has a variety of plans to choose from, and a guide to help you select the right plan for you or your company.
- Amazon RDS: Amazon offers a variety of plans for both on-demand instances and Multi-AZ Deployment. To get an estimate of what your monthly bill might look like, check out their monthly calculator.
Google CloudSQL PostgreSQL: Unlike many other cloud-based data warehouse solutions, Google’s pricing model is based on usage and not a fixed-rate. This means that your bill can vary over time.
Before fully committing yourself to using Google CloudSQL PostgreSQL as your data warehouse, we recommend familiarizing yourself with Google’s pricing model and using their pricing calculator to estimate your potential costs.
High-level details about Stitch’s implementation of PostgreSQL, such as supported connection methods, availability on Stitch plans, etc.
All Stitch plans
9.3 or higher
PostgreSQL destinations must be running version 9.3 or newer.
For self-hosted PostgreSQL destinations, Stitch supports using an SSH tunnel to connect. Refer to these instructions to set up an SSH tunnel for a self-hosted PostgreSQL destination.
Stitch will attempt to use SSL to connect by default. No additional configuration is needed on your part.
Details about Stitch and replication for PostgreSQL destinations.
|Incremental Replication - Upserts||
Using a table’s Primary Keys, Stitch will perform an update operation on existing rows to overwrite the data.
PostgreSQL destinations natively support Primary Keys.
Stitch requires Primary Keys to de-dupe data during Incremental Replication. Primary Key columns are created using Primary Key constraints, which requires that values be both unique and not null.
|Multipe data types||
PostgreSQL destinations do not support multiple data types in a single column.
To accommodate this scenario, Stitch will create additional columns for each data type. Refer to the Table structural changes guide for examples and more info.
|Nested data structure support||
PostgreSQL destinations do not have native support for nested data structures.
To ensure nested data can be loaded, Stitch will flatten objects and arrays into columns and subtables, respectively. For more info and examples, refer to the Handling nested data structures guide.
Has possible incompatibilities
Incompatibilities may exist with the following integrations:
Refer to the Destination and integration compatibility guide for more info.
In this section:
Object name limits - Details about object naming rules imposed by PostgreSQL destinations.
Table limits - Details about table rules imposed by PostgreSQL destinations.
Data limits - Details about data limitations imposed by PostgreSQL destinations.
Column naming - Details about transformations performed by Stitch to ensure source column names adhere to the object naming rules imposed by PostgreSQL destinations.
Object name limits
Details about object naming rules imposed by PostgreSQL destinations.
This means that PostgreSQL destinations treat upper- and lowercase characters as different characters. For example:
Refer to the Column naming section of this guide for examples.
|Table name length||
Tables with names that exceed this limit will be rejected. Rejected tables are logged in the
|Column name length||
Columns with names that exceed this limit will be rejected. Rejected columns are logged in the
Details about table rules imposed by PostgreSQL destinations.
|Max # of columns per table||
|Max # of tables per database||
Details about data limitations imposed by PostgreSQL destinations.
|Max record size||
Records that exceed this limit will be rejected. Rejected columns are logged in the
PostgreSQL will store the value in UTC as
More info about timestamp data types can be found in PostgreSQL’s documentation.
4713 BC to 294276 AD
Date values outside of this range will be rejected and logged in the
More info about PostgreSQL date data types can be found in PostgreSQL’s documentation.
4713 BC to 294276 AD
Timestamp values outside of this range will be rejected and logged in the
More info about PostgreSQL time data types can be found in PostgreSQL’s documentation.
-9223372036854775808 to 9223372036854775807
Integer values outside of this range will be rejected and logged in the
Up to 131,072 digits before the decimal; up to 16,383 digits after
Decimal values outside of this range will be rejected and logged in the
More info about decimal data types can be found in PostgreSQL’s documentation.
|VARCHAR max width||
PostgreSQL stores all
While there aren’t any size limits on string data, the record as a whole must still be less than 4 MB or it will be rejected and logged in the
Details about transformations performed by Stitch to ensure source column names adhere to the object naming rules imposed by PostgreSQL destinations.
Not sure if PostgreSQL is the data warehouse for you? Check out the Choosing a Stitch Destination guide to compare each of Stitch’s destination offerings.