MongoDB Foreign Data Wrapper for PostgreSQL 使用教程
mongo_fdwDEPRECATED, moved to项目地址:https://gitcode.com/gh_mirrors/mon/mongo_fdw
1. 项目介绍
MongoDB Foreign Data Wrapper (FDW) 是一个用于 PostgreSQL 的扩展,它实现了对 MongoDB 的外部数据包装器 (FDW)。通过这个扩展,用户可以在 PostgreSQL 中直接访问和操作 MongoDB 中的数据,而无需将数据迁移到 PostgreSQL 中。
该项目支持 PostgreSQL 和 EDB Postgres Advanced Server 12、13、14、15、16 和 17 版本。它提供了读写功能,用户可以执行插入、更新和删除操作。
2. 项目快速启动
安装扩展
首先,确保你已经安装了 PostgreSQL 和 MongoDB。然后,按照以下步骤安装 mongo_fdw
扩展:
-
克隆项目仓库:
git clone https://github.com/citusdata/mongo_fdw.git cd mongo_fdw
-
编译并安装扩展:
make sudo make install
-
在 PostgreSQL 数据库中启用扩展:
CREATE EXTENSION mongo_fdw;
配置外部服务器
-
创建一个外部服务器对象:
CREATE SERVER "MongoDB server" FOREIGN DATA WRAPPER mongo_fdw OPTIONS (address '127.0.0.1', port '27017');
-
授权普通用户使用外部服务器:
GRANT USAGE ON FOREIGN SERVER "MongoDB server" TO your_user;
创建外部表
- 创建一个外部表映射到 MongoDB 集合:
CREATE FOREIGN TABLE my_collection ( _id text, name text, age int ) SERVER "MongoDB server" OPTIONS (database 'my_database', collection 'my_collection');
查询外部表
现在你可以像查询普通表一样查询外部表:
SELECT * FROM my_collection WHERE age > 30;
3. 应用案例和最佳实践
应用案例
- 数据集成:在需要同时使用关系型数据库和 NoSQL 数据库的场景中,
mongo_fdw
可以帮助用户在 PostgreSQL 中无缝集成 MongoDB 数据。 - 实时分析:通过在 PostgreSQL 中直接查询 MongoDB 数据,用户可以进行实时数据分析,而无需将数据复制到 PostgreSQL 中。
最佳实践
- 权限管理:建议仅在必要时使用超级用户权限,其他操作应由普通用户执行,以提高安全性。
- 性能优化:在查询外部表时,使用索引和适当的查询条件可以显著提高查询性能。
4. 典型生态项目
- PostgreSQL:作为
mongo_fdw
的基础数据库,PostgreSQL 提供了强大的关系型数据库功能。 - MongoDB:作为
mongo_fdw
的目标数据库,MongoDB 提供了灵活的 NoSQL 数据存储解决方案。 - pgAdmin:用于管理和监控 PostgreSQL 数据库的工具,可以帮助用户更好地管理
mongo_fdw
扩展。
通过以上步骤,你可以快速启动并使用 mongo_fdw
扩展,实现 PostgreSQL 与 MongoDB 的无缝集成。
mongo_fdwDEPRECATED, moved to项目地址:https://gitcode.com/gh_mirrors/mon/mongo_fdw