This blog was co-written by Ahsan Hadi and Ibrar Ahmed.
Postgres provides a powerful feature called Foreign Data Wrappers (FDW) which enables DBAs to use the system as a single integration point to read, analyze and write to data from many remote data stores. C developers can create new Foreign Data Wrappers using the hooks exposed by the database, and many FDWs have been published in the Open Source community.
Postgres’ FDW implementation is based on SQL/MED (SQL Management of External Data), which was introduced in 2011 in PostgreSQL 9.1 and has been incrementally improved upon in recent Postgres releases. Most recently, PostgreSQL 9.3 added the ability for FDWs to support write capabilities.
EnterpriseDB has undertaken the work to improve the FDWs for some of the database solutions customers have begun to explore, beginning with MongoDB. The new Foreign Data Wrapper helps break down data silos resulting from MongoDB deployments by integrating the data with the enterprise database management system. This provides a seamless experience for realizing greater meaning from wider data sets and eases data governance problems.
Given the popularity of FDWs and the drive among the open source community to develop them, EDB has released to the community a new FDW for the document database MongoDB and will soon release one for Hadoop.
As we started to research developing a Foreign Data Wrapper for Mongo, we discovered the Mongo_FDW work our friends from CitusData initiated and released under the LGPL License.
This version was based on the Postgres 9.1 spec and did not feature the capabilities newly made possible. We decided to fork the repository and target our enhancements in three key areas. First, we made use of the new 9.3 feature by adding writability support. Second, we saw that the FDW could benefit from the implementation of a connection pooler. Finally, we decided to add an option to use the new MongoDB Meta Driver as opposed to a Legacy driver given recent recommendations from MongoDB developers. Read the rest of this entry »Tweet