Logo RestApp White
MongoDb to postgre sql
learning

[Series] Data teams -
How to connect MongoDB to PostgreSQL: The Hard Way vs The Easy Way

By Othmane Lamrani · May 17, 2022

Do you want to connect MongoDB to PostgreSQL?

There are many reasons why you might want to do this, including:

  • Accessible data from multiple clients (PHP, Python, Node.js, etc.) 
  • Dynamic schemas that are more difficult to model in pure NoSQL
  • Backup / Disaster Recovery 

When connecting the two, PostgreSQL will act as a central point for data management and extraction. This can be useful when working on a team of developers and designers. Alternatively, it may be overkill for such a small project.

This article will guide you through how to connect MongoDB to PostgreSQL with two different methods

Mongo-db-logo

MongoDB is a document-oriented database that provides high performance, high availability, and automatic scaling. It stores data as JSON documents, making it easier for developers to store and retrieve data.

MongoDB is a popular NoSQL database that many companies have adopted due to its flexibility and scalability.

The following are some of the main features of MongoDB:

  • High Performance – MongoDB provides high performance, with up to 10K operations per second per node, even on commodity hardware. Additionally, it has a built-in aggregation framework that can handle complex queries efficiently.
  • Flexibility – MongoDB supports dynamic schemas and rich data types (such as arrays and embedded documents), which makes it easy to evolve your application without changing the database schema. This allows organizations to rapidly prototype applications without having to make any changes in their existing data models or applications.
  • Scalability – MongoDB scales out horizontally by adding additional nodes for better performance or adding capacity for more users or data, thus improving the performance and reliability of an application by distributing the load across multiple machines or data centers.

What is PostgreSQL?

PostgreSQL is an open-source relational database management system (RDBMS). It was developed at the University of California, Berkeley, and released in 1996, but it is still actively maintained and developed by its community.

PostgreSQL has a number of features that make it more powerful than other open-source databases:

  • ACID-compliant. ACID stands for atomicity, consistency, isolation and durability. A database that is ACID-compliant means that it guarantees transactions will be processed in their entirety or not at all. This prevents errors from being introduced by partial operation execution and makes recovery after a crash much simpler.
  • It supports large files up to 1 terabyte in size. This makes it ideal for applications that are processing large volumes of data such as financial transactions or scientific data sets.
  • It supports full-text search through the PostgreSQL Full-Text Search extension which integrates with Apache Solr. Solr is an open-source enterprise search platform built on top of Lucene™ – the same technology that powers Google Search!

The main difference between MongoDB and PostgreSQL

This table summarizes the main differences between MongoDB and PostgreSQL.

Differences mongodb et postre sql

Method 1 aka The Hard Way: Manual ETL Process to Set Up MongoDB to PostgreSQL Integration

The manual process includes the three following steps:

Step 1: Extract Data from MongoDB (using mongoexport Command)

We’ll start by creating a CSV file from an existing Mongo collection with the mongoexport command.

Let’s understand this process with an example.

				
					mongoexport
--host localhost --db purchasetdb --collection purchases --type=csv 

--out puchases.csv 
--fields orderid,orderamount,customerid, quantity,description

				
			

The database is called purchasedb and the collection name is purchases. The expected output file is purchases.csv. The names of the keys that will be exported to CSV will be in the last attribute fields.

This is critical since MongoDB does not maintain a rigid key structure, and it is extremely likely that not all keys will be present in all documents. The developer must verify that the keys that must be present in the CSV file are defined. 

Mongoexport will not produce an error if there is no such key in the document. It will simply insert a blank value into that column. If you’re not careful, this can have unintended consequences.

Step 2: Create a Product Table in PostgreSQL to store the Incoming Data

				
					CREATE TABLE purchases (
id SERIAL PRIMARY KEY,
orderid VARCHAR NOT NULL,
orderamount VARCHAR NOT NULL,
customerid VARCHAR  NOT NULL,
quantity VARCHAR  NOT NULL,
description VARCHAR NOT NULL
)

				
			

Step 3: Load the Exported CSV to PostgreSQL

				
					COPY purchases(orderid,orderamount,customerid, quantity,description)
FROM 'C:globalpurchases.csv' DELIMITER ',' CSV HEADER;

				
			

This completes the process. These steps may seem simple, but keep in mind that this is a very simplified version of the actual data migration issue. MongoDB and PostgreSQL are very different databases and there are many factors that can cause unexpected failures in this migration.

Let’s look at some cases where problems can occur when using the above approach.

The manual ETL process is not an efficient solution for integrating MongoDB and PostgreSQL.

It is time-consuming, expensive, and error-prone.

Limitation of Manual ETL Process to Set Up MongoDB to PostgreSQL Integration

Here are the main limitations of Manual ETL Process to Set Up MongoDB to PostgreSQL Integration:

1) Manual ETL is not scalable. It is difficult to scale the manual ETL process because it depends on the skill level of the person who is doing it. The same logic cannot be used by everyone. So each time a new developer comes in, they have to learn from scratch while they are working on the same task. This increases the time taken for them to complete the task and increases cost as well.

2) Manual ETL process is error-prone and requires more resources like people and hardware infrastructure which need to be maintained regularly just like any other software application in your organization. You start getting problems when there is no one available 24×7 to take care of these things or when there are too many bugs reported for this software application that needs urgent attention from developers.

Method 2 aka The Easy Way: Using RestApp to pipe Data from MongoDB to PostgreSQL

RestApp is a No Code Data Activation Platform that empowers anyone with an all-in-one solution to connect, model, and sync any data with his favorite tools.

Access to ready-to-use connectors to save time and pain in building them from scratch: Database, data warehouse, business apps, SFTP, GDrive…

The steps to load data from MongoDB to PostgreSQL using RestApp are as follows:

Connect the RestApp platform to your MongoDB account.

MongoDB connector

Connect the RestApp platform to your PostgreSQL account.

Postgre SQL

RestApp offers built-in MongoDB and PostgreSQL integrations that quickly connect to your account.

mongodb to postgresql

In the output section, you have 3 choices of syncing:

  • Add data (for unique migration)
  • Add & Update data (periodic migration)
  • Erase & Replace data (migration to fully modify the current destination table)

 

You’ve now successfully set up RestApp’s MongoDB to PostgreSQL integration!

You can now model and sync your data with a Drag-and-Drop Editor (NoSQL, SQL, and Python built-in functions).

You can also activate your pipeline through a scheduler to operationalize your data with automation. 

MongoDB to PostgreSQL automation

In this example, the pipeline will be automatically synchronized every hour.

 

You also have access to the logs to verify the authenticity of the automation:

Conclusion

In this article, I introduced you to MongoDB and PostgreSQL and explained their features. We also described two methods you can use to set up MongoDB and PostgreSQL integration. 

The manual method is effective, but it requires a lot of time and resources. Migrating data from MongoDB to PostgreSQL is a tedious and time-consuming process, but data integration tools like RestApp make this process easy and time-saving.

If you’re interested in starting with connecting all your favorite tools, check out the RestApp website or book a demo directly.

Share
Share on linkedin
Share on twitter
Share on facebook

Subscribe to our newsletter

Othmane Lamrani
Othmane Lamrani
Othmane is the Growth Manager of RestApp. He's passionate about Entrepreneurship, Data, and Growth. His previous experience in data-position made him have a data-driven vision of acquisition marketing.
Share this article
Share on linkedin
Share on twitter
Share on facebook
Subscribe to our newsletter
Ready to experience operational analytics
without code?

Stay up to date to the latest news
on Data Activation

Product

Activate and combine any data sources without code

Transform your data with our No Code SQL editor

Automate your operational analytics with your business apps

Discover how Data Transformation really means

Find out the new data architecture concept of Data Mesh

Learn how Operational Analytics actives your data

Learn how to deliver great customer experience with real-time data

Solutions

Empower your teammates

Prevent churn

Generate more revenue

Run better campaigns

Drive your metrics

Resources

Stay always up to date on data activation

Find out how we keep your data safe

Discover our always evolving and regularly updated documentation