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
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 Aurora and 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.
Setup
High-level details about Stitch’s implementation of PostgreSQL, such as supported connection methods, availability on Stitch plans, etc.
Replication
Details about Stitch and replication for PostgreSQL destinations.
Incremental Replication - Upserts |
Supported Using a table’s Primary Keys, Stitch will perform an update operation on existing rows to overwrite the data. |
Primary Keys |
Supported 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 |
Unsupported 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 |
Unsupported 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. |
Incompatible sources |
Has possible incompatibilities Incompatibilities may exist with the following integrations: Refer to the Destination and integration compatibility guide for more info. |
Limitations
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.
Case sensitivity |
Sensitive 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 |
63 characters Tables with names that exceed this limit will be rejected. Rejected tables are logged in the |
Column name length |
59 characters Columns with names that exceed this limit will be rejected. Rejected columns are logged in the |
Table limits
Details about table rules imposed by PostgreSQL destinations.
Max # of columns per table |
250-1,600 columns |
Max # of tables per database |
100,000 tables |
Data limits
Details about data limitations imposed by PostgreSQL destinations.
Max record size |
4 MB Records that exceed this limit will be rejected. Rejected columns are logged in the |
Timezone support |
Unsupported PostgreSQL will store the value in UTC as More info about timestamp data types can be found in PostgreSQL’s documentation. |
Date ranges |
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. |
Timestamp ranges |
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. |
Integer range |
-9223372036854775808 to 9223372036854775807 Integer values outside of this range will be rejected and logged in the |
Decimal range |
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 |
None 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 |
Column naming
Details about transformations performed by Stitch to ensure source column names adhere to the object naming rules imposed by PostgreSQL destinations.
Compare 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.
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.