#author("2017-05-08T19:23:17+09:00","","")
#author("2017-05-13T01:13:29+09:00","","")
[[PostgreSQL]]

#contents

* mongo_fdw [#ke2cb176]

- EnterpriseDB社から提供されているオープンソースソフトウェア。
- PostgreSQLのForeign Data Wrapperを使って,PostgreSQLからMongoDBのデータに透過的にアクセスすることができる。
- 外部テーブルに対して,INSERTやUPDATE,DELETEなどのDMLを通じて,MongoDBに対して更新や削除も行なうことができる。

* 設定・使用方法 [#g4ccb86c]

** PostgreSQL側の準備 [#o66c648f]

外部テーブルを作成する。

#geshi(sql){{
CREATE EXTENSION mongo_fdw;
CREATE SERVER mongo_server 
        FOREIGN DATA WRAPPER mongo_fdw 
        OPTIONS (address '127.0.0.1', port '27017');
CREATE USER MAPPING FOR postgres 
       SERVER mongo_server
       OPTIONS (username 'postgres', password '123456');

CREATE FOREIGN TABLE warehouse(
    _id NAME,
    id int,
    name text
)  SERVER mongo_server
OPTIONS (database 'db', collection 'warehouse');

SELECT * FROM warehouse WHERE id = 1;

-- DROP FOREIGN TABLE WAREHOUSE;
-- DROP USER MAPPING FOR postgres SERVER mongo_server;
-- DROP SERVER mongo_server CASCADE;
}}

** MongoDB側の準備 [#y903820f]

- アクセスユーザーを登録し,コレクションにドキュメントを作成する。
- 以下の例では,R/W権限とAdmin権限をロールに設定している。

#geshi(javascript){{
db = db.getSiblingDB('warehouse');
db.createUser({user: "postgres", pwd: "123456",roles:["readWrite", "dbAdmin"]});
db.warehouse.insert({"id":1,"name":"Tarou"})
db.warehouse.find()
}}

* 参考リンク [#bc6c780c]

- https://github.com/EnterpriseDB/mongo_fdw


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
目次
ダブルクリックで閉じるTOP | 閉じる
GO TO TOP