- Introduction
- Getting Started
- Data Ingestion
- Data Loading
- Loading Data in a Database Destination
- Loading Data to a Data Warehouse
- Optimizing Data Loading for a Destination Warehouse
- Manually Triggering the Loading of Events
- Scheduling Data Load for a Destination
- Loading Events in Batches
- Data Loading Statuses
- Name Sanitization
- Table and Column Name Compression
- Parsing Nested JSON Fields in Events
- Pipelines
- Data Flow in a Pipeline
- Familiarizing with the Pipelines UI
- Pipeline Objects
- Working with Pipelines
- Transformations
-
Schema Mapper
- Using Schema Mapper
- Mapping Statuses
- Auto Mapping Event Types
- Mapping a Source Event Type with a Destination Table
- Mapping a Source Event Type Field with a Destination Table Column
- Schema Mapper Actions
- Fixing Unmapped Fields
- Resolving Incompatible Schema Mappings
- Resizing String Columns in the Destination
- Schema Mapper Compatibility Table
- Failed Events in a Pipeline
- Pipeline FAQs
- Events Usage
- Sources
- Free Sources
- Analytics
- Collaboration
- CRM
- Data Warehouses
- Databases
- E-Commerce
- File Storage
- Finance & Accounting
-
Marketing
- ActiveCampaign
- AdRoll
- Apple Search Ads
- AppsFlyer
- Criteo
- Delighted
- Facebook Ads
- Facebook Page Insights
- Front
- Google Ads
- Google Campaign Manager
- Google Play Console
- Google Search Console
- HubSpot
- Instagram Business
- Klaviyo
- LinkedIn Ads
- Mailchimp
- Marketo
- Microsoft Advertising
- Outbrain
- Pardot
- Pinterest Ads
- Segment
- SendGrid
- SendGrid Webhook
- Salesforce Marketing Cloud
- Snapchat Ads
- Taboola
- Twilio
- TikTok Ads
- Twitter Ads
- Typeform
- Streaming
- Source FAQs
- Destinations
- Transform
- Activate
- Alerts
- Account Management
- Troubleshooting
-
Troubleshooting Sources
- Troubleshooting Amazon DynamoDB
- Troubleshooting FTP/SFTP
- Troubleshooting MongoDB
- Troubleshooting MS SQL
- Troubleshooting MySQL
- Troubleshooting Oracle
-
Troubleshooting PostgreSQL
-
Errors during Pipeline creation
- Error 1003 - Authentication failure
- Error 1006 - Connection settings errors
- Error 1011 - Access role issue for logical replication
- Error 1012 - Access role issue for logical replication
- Error 1014 - Database does not exist
- Error 1017 - Connection settings errors
- Error 1023 - No pg_hba.conf entry
- Error 1024 - Number of requested standby connections
- Errors Post-Pipeline Creation
-
Errors during Pipeline creation
- Troubleshooting Salesforce
- Troubleshooting Destinations
-
Troubleshooting Sources
- Glossary
- Release Notes
- Release Version 1.93 & 1.94
- Release Version 1.92
- Release Version 1.91
- Release Version 1.90
- Release Version 1.89
- Release Version 1.88
- Release Version 1.87
- Release Version 1.86
- Release Version 1.84 & 1.85
- Release Version 1.83
- Release Version 1.82
- Release Version 1.81
- Release Version 1.80 (Jan-24-2022)
- Release Version 1.79 (Jan-03-2022)
- Release Version 1.78 (Dec-20-2021)
- Release Version 1.77 (Dec-06-2021)
- Release Version 1.76 (Nov-22-2021)
- Release Version 1.75 (Nov-09-2021)
- Release Version 1.74 (Oct-25-2021)
- Release Version 1.73 (Oct-04-2021)
- Release Version 1.72 (Sep-20-2021)
- Release Version 1.71 (Sep-09-2021)
- Release Version 1.70 (Aug-23-2021)
- Release Version 1.69 (Aug-09-2021)
- Release Version 1.68 (Jul-26-2021)
- Release Version 1.67 (Jul-12-2021)
- Release Version 1.66 (Jun-28-2021)
- Release Version 1.65 (Jun-14-2021)
- Release Version 1.64 (Jun-01-2021)
- Release Version 1.63 (May-19-2021)
- Release Version 1.62 (May-05-2021)
- Release Version 1.61 (Apr-20-2021)
- Release Version 1.60 (Apr-06-2021)
- Release Version 1.59 (Mar-23-2021)
- Release Version 1.58 (Mar-09-2021)
- Release Version 1.57 (Feb-22-2021)
- Release Version 1.56 (Feb-09-2021)
- Release Version 1.55 (Jan-25-2021)
- Release Version 1.54 (Jan-12-2021)
- Release Version 1.53 (Dec-22-2020)
- Release Version 1.52 (Dec-03-2020)
- Release Version 1.51 (Nov-10-2020)
- Release Version 1.50 (Oct-19-2020)
- Release Version 1.49 (Sep-28-2020)
- Release Version 1.48 (Sep-01-2020)
- Release Version 1.47 (Aug-06-2020)
- Release Version 1.46 (Jul-21-2020)
- Release Version 1.45 (Jul-02-2020)
- Release Version 1.44 (Jun-11-2020)
- Release Version 1.43 (May-15-2020)
- Release Version 1.42 (Apr-30-2020)
- Release Version 1.41 (Apr-2020)
- Release Version 1.40 (Mar-2020)
- Release Version 1.39 (Feb-2020)
- Release Version 1.38 (Jan-2020)
- Upcoming Features
Azure PostgreSQL
On This Page
- Prerequisites
- Create a Read Replica (Optional)
- Set up Log-based Incremental Replication
- Whitelist Hevo’s IP Addresses
- Create a Database User and Grant Privileges
- Retrieve the Hostname and Port Number (Optional)
- Specify Azure PostgreSQL Connection Settings
- Object Settings
- Additional Information
- Limitations
- Revision History
Azure PostgreSQL Database is a relational database service based on the open-source Postgres database engine. It is a fully-managed, enterprise-ready community PostgreSQL database as a service that can handle mission-critical workloads with predictable performance, security, high availability, and dynamic scalability.
You can ingest data from your Azure PostgreSQL database using Hevo Pipelines and replicate it to a Destination of your choice.
Prerequisites
-
IP address or host name of your PostgreSQL database instance is available.
-
The PostgreSQL version is 9.5 or higher.
-
Log-based incremental replication is enabled, if Pipeline mode is Logical Replication.
-
SELECT, USAGE, and CONNECT privileges are granted to the database user.
-
Database hostname and port number of the Source instance are available.
Perform the following steps to configure your Azure PostgreSQL Source:
Create a Read Replica (Optional)
To use an existing read-replica or connect Hevo to your master database, skip to Set up Log-based Incremental Replication section.
To create a read-replica:
-
Log in to the Azure Portal.
-
Under Recent resources, select the database for which you want to create a read-replica.
-
Under Settings, click Replication, and then, click + Add Replica.
-
In the Server name field, specify a unique name for the replica server and click OK.
A notification is displayed to confirm that the read-replica was created successfully.
Set up Log-based Incremental Replication
Hevo supports data ingestion from PostgreSQL servers via Write Ahead Logs set at the logical level (available on PostgreSQL version 9.4). A Write Ahead Log(WAL) is a collection of log files that record information about data modifications and data object modifications made on a PostgreSQL server instance. Typically WAL is used for data replication and data recovery.
By default, replication method is set to REPLICA. You must change this to LOGICAL.
To do this:
-
Access the Microsoft Azure Portal.
-
Under Settings, click Replication.
-
In the right pane, select replication support as LOGICAL.
-
Click Save.
-
Click YES in the confirmation dialog to restart the Postgres server for the parameter changes to take effect.
-
Confirm under Notifications that your changes have been applied and server has restarted successfully before running the Pipeline, to avoid errors.
Whitelist Hevo’s IP Addresses
You need to whitelist the Hevo IP addresses for your region to enable Hevo to connect to your PostgreSQL database. You can do this by creating firewall rules in your Microsoft Azure database settings as follows:
-
Access the Azure Portal.
-
Under Resources, select the database you want to synchronize with Hevo.
-
Under Settings, click Connection security.
-
Create a Firewall Rule:
-
Specify a firewall rule Name.
-
Specify Hevo’s IP addresses in the Start IP and End IP fields as per your region.
Note: As Hevo has specific IP addresses and not a range, the value in the Start IP and End IP fields is the same.
-
-
Click Save.
-
Repeat this step to add the IP address for each applicable Hevo region.
Create a Database User and Grant Privileges
1. Create a database user (optional)
To create a database user, open your Azure PostgreSQL database in your SQL client tool as a user with CREATE
privilege and enter the following command:
CREATE ROLE hevo WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION PASSWORD '<password>';
Note: Replace password
above with a password of your choice.
2. Grant privileges to the user
The database user specified in the Hevo Pipeline must have the following privileges:
-
SELECT
-
USAGE
-
CONNECT
To assign this privileges:
-
Log in to your Microsoft Azure PostgreSQL database as a user with
admin
privilege. -
Enter the following commands to give accesses to the database user:
GRANT CONNECT ON DATABASE <database_name> to hevo; GRANT USAGE ON SCHEMA <schema_name> TO hevo;
-
Alter the schema’s default privileges to grant
SELECT
privileges on tables to the database userALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name> GRANT SELECT ON TABLES to hevo; GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO hevo;
Retrieve the Hostname and Port Number (Optional)
Note: The Azure PostgreSQL hostnames start with your database name and end with azure.com.
For example:
Host : postgres.database.azure.com
Port : 5432
To retrieve the hostname:
-
Log in to the Microsoft Azure Portal.
-
Under Recent resources, select your Azure Database for PostgreSQL server.
-
In the Essentials panel, locate the Server name. Use this Server name as the hostname in Hevo while creating your Pipeline.
The default port is 5432.
Specify Azure PostgreSQL Connection Settings
-
In the Configure your Azure PostgreSQL Source page, specify the following:
-
Pipeline Name: A unique name for your Pipeline.
-
Database Host: The Azure PostgreSQL host’s IP address or DNS. For example, postgres.database.azure.com.
Note: For a URL-based hostname, exclude the
http://
orhttps://
part. For example, if the hostname URL is https://postgres.database.azure.com, enter postgres.database.azure.com. -
Database Port: The port on which your PostgreSQL server is listening for connections. Default value: 5432.
-
Database User: The read-only user who has the permissions to read tables in your database.
-
Database Password: The password for the read-only user.
-
Select an Ingestion Mode: The desired mode by which you want to ingest data from the Source. The available Ingestion Modes are Logical Replication, Table, and Custom SQL. Read Ingestion Modes.
-
For Ingestion mode as Table, Refer to section, Object Settings for steps to configure the objects to be replicated.
-
For Ingestion mode as Logical Replication, follow the steps provided in each PostgreSQL variant document to set up logical replication.
Note: PostgreSQL does not support logical replication for the read replica.
-
-
Database Name: The database that you wish to replicate.
-
Connection Settings:
-
Connect through SSH: Enable this option to connect to Hevo using an SSH tunnel, instead of directly connecting your PostgreSQL database host to Hevo. This provides an additional level of security to your database by not exposing your PostgreSQL setup to the public. Read Connecting Through SSH.
If this option is disabled, you must whitelist Hevo’s IP addresses. Refer to the content for your PostgreSQL variant for steps to do this.
-
Use SSL: Enable it to use SSL encrypted connection. You should also enable this if you are using Heroku PostgreSQL databases. To enable this, specify the following:
-
CA File: The file containing the SSL server certificate authority (CA).
-
Client Certificate: The client public key certificate file.
-
Client Key: The client private key file.
-
-
-
Advanced Settings
-
Load Historical Data: Applicable for Pipelines with Logical Replication mode. If this option is enabled, the entire table data is fetched during the first run of the Pipeline. If disabled, Hevo loads only the data that was written in your database after the time of creation of the Pipeline.
-
Merge Tables: Applicable for Pipelines with Logical Replication mode. If this option is enabled, Hevo merges tables with the same name from different databases while loading the data to the warehouse. Hevo loads the Database Name field with each record. If disabled, the database name is prefixed to each table name. Read How does the Merge Tables feature work?.
-
Include New Tables in the Pipeline: Applicable for all Ingestion modes except Custom SQL. If enabled, Hevo automatically ingests data from tables created in the Source after the Pipeline has been built. These may include completely new tables or previously deleted tables that have been re-created in the Source. If disabled, new and re-created tables are not ingested automatically. They are added in SKIPPED state in the objects list, in the Pipeline Overview page. You can update their status to INCLUDED to ingest data. You can change this setting later.
-
-
-
Click TEST & CONTINUE to proceed for setting up the Destination.
Object Settings
Object settings must be configured if the Ingestion mode is Table.
To do this:
-
Once your respective Source connection settings are specified in section Specify Azure PostgreSQL Connection Settings above, select the objects to be replicated in the SELECT the Objects you want to replicate page, and then click CONTINUE.
Note: Each object represents a table in your database.
-
In the CONFIGURE SOURCE OBJECTS page, specify the query mode to be used for each selected object.
Additional Information
Read the detailed Hevo documentation for the following related topics:
Limitations
-
Login using SSL is enabled by default. You can disable it as follows:
-
Under Settings, click Connection security.
-
In SSL Settings on the right, set the toggle option for Enforce SSL connection to DISABLED.
-
Click Save.
-
-
The data type Array in the Source is automatically mapped to Varchar at the Destination. No other mapping is currently supported.
See Also
Revision History
Refer to the following table for the list of key updates made to this page:
Date | Release | Description of Change |
---|---|---|
Jul-04-2022 | NA | - Added sections, Specify Azure PostgreSQL Connection Settings and Object Settings. |
Jan-24-2022 | 1.80 | Removed from Limitations that Hevo does not support UUID datatype as primary key. |
Sep-09-2021 | 1.71 | Updated the section, Limitations to include information about columns with the UUID data type not being supported as a primary key. |
Sep-06-2021 | NA | Updated the section, Limitations to remove the mention of SSL login not being supported, as it is supported now. |
Feb-22-2021 | 1.57 | Added sections: - Create a Read Replica - Create a User and Grant Privileges - Retrieve the Hostname and Port Number. |