PostgreSQL:Mongo_fdw 外部表测试

今天bbs论坛有朋友提到 mongo_fdw 相关的问题,之前测试外部表没测试 mongo_fdw,今天补上。

环境信息

系统: RHEL 6.2
MongoDB: 2.2.1
PostgreSQL 9.3.0
备注: MongoDB, PostgreSQL 安装略。

MongoDB 环境准备

1
2
3
4
5
6
7
8
9
10
[mongo@redhatB ~]$ mongo 127.0.0.1:27018
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27018/test

rs0:PRIMARY> db.test_fdw.save({id:1,name:'francs'} );
rs0:PRIMARY> db.test_fdw.save({id:2,name:'zhou'} );

rs0:PRIMARY> db.test_fdw.find();
{ "_id" : ObjectId("534ded23453824de92745949"), "id" : 1, "name" : "francs" }
{ "_id" : ObjectId("534ded2c453824de9274594a"), "id" : 2, "name" : "zhou" }

备注:在 MongoDB 中的 test 库创建一张测试表 test_fdw。

Mongo_fdw 安装

下载
https://github.com/citusdata/mongo_fdw
备注:下载并解压。

编译,安装

1
2
3
4
5
6
7
8
9
10
[root@redhatB mongo_fdw-master]# source /home/pg93/.bash_profile
[root@redhatB mongo_fdw-master]# make

[root@redhatB mongo_fdw-master]# make install
/bin/mkdir -p '/opt/pgsql9.3.0/lib'
/bin/mkdir -p '/opt/pgsql9.3.0/share/extension'
/bin/mkdir -p '/opt/pgsql9.3.0/share/extension'
/usr/bin/install -c -m 755 mongo_fdw.so '/opt/pgsql9.3.0/lib/mongo_fdw.so'
/usr/bin/install -c -m 644 ./mongo_fdw.control '/opt/pgsql9.3.0/share/extension/'
/usr/bin/install -c -m 644 ./mongo_fdw--1.0.sql '/opt/pgsql9.3.0/share/extension/'

备注: 由于编译会用到 pg_config 和 $PGHOME,执行前需要加载普通用户的环境变量。

加载 mongo_fdw 模块

1
2
3
4
5
6
7
8
[pg93@redhatB ~]$ psql -h 127.0.0.1
psql (9.3.0)
Type "help" for help.

postgres=# /c francs
You are now connected to database "francs" as user "postgres".
francs=# create extension mongo_fdw ;
CREATE EXTENSION

创建 FOREIGN SERVER

1
2
3
4
5
francs=# CREATE SERVER mongo_server FOREIGN DATA WRAPPER mongo_fdw OPTIONS (address '127.0.0.1', port '27018');
CREATE SERVER

francs=# grant usage on FOREIGN server mongo_server to francs;
GRANT

创建外部表

1
2
3
4
5
6
7
8
CREATE FOREIGN TABLE ft_test_fdw
(
_id NAME,
id int4,
name text
)
SERVER mongo_server
OPTIONS (database 'test', collection 'test_fdw');

Mongo_fdw 测试

1
2
3
4
5
6
7
8
9
francs=> analyze ft_test_fdw;
ANALYZE

francs=> select * from ft_test_fdw ;
_id | id | name
--------------------------+----+--------
534ded23453824de92745949 | 1 | francs
534ded2c453824de9274594a | 2 | zhou
(2 rows)

备注:可以成功查询 MongoDB 数据测试成功。

参考

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/238050.html

(0)
上一篇 2022年1月30日
下一篇 2022年1月30日

相关推荐

发表回复

登录后才能评论