Amazon S3 to PostgreSQL: 2 Easy Methods to Replicate Data

• October 7th, 2022

As a data engineer, you hold all the cards to make data easily accessible to your business teams. Your team just requested an Amazon S3 to PostgreSQL connection on priority. We know you don’t wanna keep your data scientists and business analysts waiting to get critical business insights. As the most direct approach, you can go straight for by granting IAM Policy. Or, hunt for a no-code tool that fully automates & manages data integration for you while you focus on your core objectives.

Well, look no further. With this article, get a step-by-step guide to connecting Amazon S3 to PostgreSQL effectively and quickly.

Table of Contents

How to Replicate Data From Amazon S3 to PostgreSQL?

To replicate data from Amazon S3 to PostgreSQL, you can either do it through IAM policy from an S3 bucket or a no-code automated solution. We’ll cover replication via IAM Policy next.

Replicate Data from Amazon S3 to PostgreSQL Using IAM Policy

Follow along to replicate data from Amazon S3 to PostgreSQL in CSV format:

Step 1: Create an AWS S3 Bucket

  • Log in to your Amazon Console. 
  • Click on Find Services and search for S3.
  • Now, click on the Create Bucket button.
  • Enter the bucket name and select the region.
  • Click on the Create Button. 
  • Search for the Bucket, and check for access. It should not be public.

Step 2: Add Sample Data as CSV Files in S3 Buckets

  • Create a file “employee_Hevo.csv.”
  • Add the following components:
Employee_Id,Employee_First,Employee_Last,Employee_Title
1,Jane,Doe,Software Developer
2,Vikas,Sharma,Marketing
3,Rajesh,Kumar,Project Manager
4,Akshay,Ram,Customer Support
  • In the S3 console, select the bucket name you just created. 
  • Click on the upload option and follow the onscreen instructions.

Step 3: Configure PostgreSQL Database Tables & Objects

  • Open PostgreSQL Management Studio and run the script below or create a similar table.
CREATE TABLE [dbo].[Employees](
[Employee_Id] [int] IDENTITY(1,1) NOT NULL,
[Employee_First] [varchar](25) NULL,
[Employee_Last] [varchar](25) NULL,
[Employee_Title] [varchar](50) NULL,
CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
(
[Employee_Id] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Step 4: Create the IAM Policy for Accessing S3

  • Before the data is migrated from S3 to PostgreSQL, you need to set up IAM policies so that the bucket you created earlier is accessible.
  • Click on AWS search and search IAM.
  • In the policies section, click on create policy.
Create new policy in S3
Image Source
  • Click on the choose a service button to search for S3.
  • Complete and fill all the access levels and parameters.
selecting the required parameters for policy
Image Source
  • In the resources tab, select the bucket name and click on the Add ARN button. Enter the bucket name.
  • Add the CSV file by specifying the ARN. Then specify the Bucket name and Object name.
  • Go to the review policy section and click on Create Policy.
  • Create the IAM role to use the policy. Open the AWS Console, and go to IAM. Select the Roles tab. 
  • Click on create the role. Follow the below-mentioned order:
    • AWS service (at the top.)
    • RDS (in the middle list, “select a service to view use cases”.)
    • RDS — Add Role to Database (towards the bottom in the “Select your use case” section.)
  • Click on the next: permission button. Attach the permission policies by entering the name of the policy.
  • Follow the instructions on the screen. Click on review role, enter the values and then click on create the role. 

Step 5: Push Data from S3 to PostgreSQL Instance

  • Open the AWS Console and click on RDS.
  • Choose the PostgreSQL instance name.
  • In the security and connectivity tab, select the IAM roles and click on Add IAM Roles.
  • Choose S3_integration in the feature section.
  • Click on Add Role button.
  • Go to PostgreSQL and run the aws_s3.table_import_from_s3 command in order to import the CSV file into Postgres.
SELECT aws_s3.table_import_from_s3(
'POSTGRES_TABLE_NAME', 'event_id,event_name,event_value', '(format csv, header true)',
'BUCKET_NAME',
'FOLDER_NAME(optional)/FILE_NAME',
'REGION',
'AWS_ACCESS_KEY', 'AWS_SECRET_KEY', 'OPTIONAL_SESSION_TOKEN'
)

This 5-step process using CSV files is a great way to replicate data from Amazon S3 to PostgreSQL effectively. It is optimal for the following scenarios:

  • One-Time Data Replication: This method suits your requirements if your business teams need the data only once in a while.
  • No Data Transformation Required: This approach has limited options in terms of data transformation. Hence, it is ideal if the data in your spreadsheets is clean, standardized, and present in an analysis-ready form. 
  • Dedicated Personnel: If your organization has dedicated people who have to perform the manual downloading and uploading of CSV files, then accomplishing this task is not much of a headache.
  • Ample Information: This method is appropriate for you if you already have knowledge about how to grant IAM access to S3 and where to find your AWS Access key & Secret key.

This task would feel mundane if you would need to replicate fresh data from Amazon S3 regularly. It adds to your misery when you have to transform the raw data every single time. You have to keep on going through this lengthy process of just moving a CSV file each time. With the increase in data sources, you would have to spend a significant portion of your engineering bandwidth creating new data connectors. Just imagine — building custom connectors for each source, transforming & processing the data, tracking the data flow individually, and fixing issues. Doesn’t it sound exhausting?

How about you focus on more productive tasks than repeatedly writing custom ETL scripts, downloading, cleaning, and uploading CSV files? This sounds good, right?

In that case, you can.. 

Replicate data from Amazon S3 to PostgreSQL Using an Automated ETL Tool

An automated tool is an efficient and economical choice that takes away a massive chunk of repetitive work. It has the following benefits:

  • Allows you to focus on core engineering objectives while your business teams can jump on to reporting without any delays or data dependency on you.
  • Your support team can effortlessly enrich, filter, aggregate, and segment raw Amazon S3 data with just a few clicks.
  • Without technical knowledge, your analysts can seamlessly standardize timezones, convert currencies, or simply aggregate campaign data for faster analysis. 
  • An automated solution provides you with a list of native in-built connectors. No need to build custom ETL connectors for every source you require data from.

For instance, here’s how Hevo, a cloud-based ETL solution makes data replication from Amazon S3 to PostgreSQL ridiculously easy: 

Step 1: Configure Amazon S3 as your Source

  • Fill in the required attributes required for configuring Amazon S3 as your source.
Configure your S3 source for replicating data from Amazon S3 to PostgreSQL
Image Source

Step 2: Configure PostgreSQL as your Destination

Now, you need to configure PostgreSQL as the destination.

Configure your PostgreSQL destination for replicating data from Amazon S3 to PostgreSQL
Image Source

All Done to Setup Your ETL Pipeline

After implementing the 2 simple steps, Hevo will take care of building the pipeline for replicating data from Amazon S3 to PostgreSQL based on the inputs given by you while configuring the source and the destination.

The pipeline will automatically replicate new and updated data from Amazon S3 to PostgreSQL every 5 mins (by default). However, you can also adjust the data replication frequency as per your requirements.

Data Pipeline Frequency

Default Pipeline FrequencyMinimum Pipeline FrequencyMaximum Pipeline FrequencyCustom Frequency Range (Hrs)
5 Mins5 Mins3 Hrs1-3

For in-depth knowledge of how a pipeline is built & managed in Hevo, you can also visit the official documentation for Amazon S3 as a source and PostgreSQL as a destination.

You don’t need to worry about security and data loss. Hevo’s fault-tolerant architecture will stand as a solution to numerous problems. It will enrich your data and transform it into an analysis-ready form without having to write a single line of code.

Here’s what makes Hevo stands out:

  • Fully Managed: You don’t need to dedicate time to building your pipelines. With Hevo’s dashboard, you can monitor all the processes in your pipeline, thus giving you complete control over it.
  • Data Transformation: Hevo provides a simple interface to cleanse, modify, and transform your data through drag-and-drop features and Python scripts. It can accommodate multiple use cases with its pre-load and post-load transformation capabilities.
  • Faster Insight Generation: Hevo offers near real-time data replication, giving you access to real-time insight generation and faster decision-making. 
  • Schema Management: With Hevo’s auto schema mapping feature, all your mappings will be automatically detected and managed to the destination schema.
  • Scalable Infrastructure: With the increased number of sources and volume of data, Hevo can automatically scale horizontally, handling millions of records per minute with minimal latency.
  • Transparent pricing: You can select your pricing plan based on your requirements. Different plans are clearly put together on its website, along with all the features it supports. You can adjust your credit limits and spend notifications for any increased data flow.
  • Live Support: The support team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.

Take our 14-day free trial to experience a better way to manage data pipelines.

Get started for Free with Hevo!

What Can You Achieve by Migrating Your Data from Amazon S3 to PostgreSQL?

Here’s a little something for the data analyst on your team. We’ve mentioned a few core insights you could get by replicating data from Amazon S3 to PostgreSQL. Does your use case make the list?

  • Aggregate the data of individual interactions of the product for any event. 
  • Finding the customer journey within the product.
  • Integrating transactional data from different functional groups (Sales, marketing, product, Human Resources) and finding answers. For example:
    • Which Development features were responsible for an App Outage in a given duration?
    • Which product categories on your website were most profitable?
    • How does Failure Rate in individual assembly units affect Inventory Turnover?

Summing It Up 

Using IAM Policy is the right path for you when your team needs data from Amazon S3 once in a while. But with increase in frequency, redundancy will also increase. To channel your time into productive tasks, you can opt-in for an automated solution that will help accommodate regular data replication needs. This would be genuinely helpful to support & product teams as they would need regular updates about customer queries, experiences and satisfaction levels with the product. 

Even better, your support teams would now get immediate access to data from multiple channels and thus deliver contextual, timely, and personalized customer experiences.

So, take a step forward. And here, we’re ready to help you with this journey of building an automated no-code data pipeline with Hevo. Hevo’s 150+ plug-and-play native integrations will help you replicate data smoothly from multiple tools to a destination of your choice. Its intuitive UI will help you smoothly navigate through its interface. And with its pre-load transformation capabilities, you don’t even need to worry about manually finding errors and cleaning & standardizing it.

With a no-code data pipeline solution at your service, companies will spend less time calling APIs, referencing data, building pipelines, and more time gaining insights from their data.

Skeptical? Why not try Hevo for free and take the decision all by yourself? Using Hevo’s 14-day free trial feature, you can build a data pipeline from Amazon S3 to PostgreSQL and try out the experience.

Here’s a short video that will guide you through the process of building a data pipeline with Hevo.

We’ll see you again, the next time you want to replicate data from yet another connector to your destination. That is… if you haven’t switched to a no-code automated ETL tool already.

We hope that you have found the appropriate answer to the query you were searching for. Happy to help!

No-code Data Pipeline for PostgreSQL