注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

博客新家:https://postgres.fun/

 
 
 

日志

 
 

PostgreSQL: mongo_fdw 外部表测试  

2014-04-16 10:58:02|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  今天 bbs 论坛有朋友提到 mongo_fdw 相关的问题,之前测试外部表没测试 mongo_fdw,今天补上。
 
一 环境信息
系统: RHEL 6.2
MongoDB:   2.2.1
PostgreSQL 9.3.0
备注: MongoDB, PostgreSQL 安装略。
 
二 MongoDB 环境准备

[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
--3.1 下载

https://github.com/citusdata/mongo_fdw

备注:下载并解压。

--3.2 编译,安装

[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,执行前需要加载普通用户的环境变量。

--3.3 加载 mongo_fdw 模块

[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


--3.4 创建 FOREIGN SERVER

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

--3.5 创建外部表

CREATE FOREIGN TABLE ft_test_fdw
(
    _id NAME,
    id int4,
    name text
)
SERVER mongo_server
OPTIONS (database 'test', collection 'test_fdw');

francs=> CREATE FOREIGN TABLE ft_test_fdw
francs-> (
francs(>     _id NAME,
francs(>     id int4,
francs(>     name text
francs(> )
francs-> SERVER mongo_server
francs-> OPTIONS (database 'test', collection 'test_fdw');
CREATE FOREIGN TABLE


--3.6 测试

francs=> analyze ft_test_fdw;
ANALYZE

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

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


四 参考

  评论这张
 
阅读(832)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018