postgresql的mongo数据库和集合统计fdw
mongostat-fdw的Python项目详细描述
用python编写的postgresql的mongo数据库和集合统计外部数据包装器。
安装
- 安装python模块
from sources (bitbucket)
$ git clone https://bitbucket.org/olshevskiy87/mongostat_fdw.git $ cd mongostat_fdw $ python setup.py install使用pip
$ pip install mongostat_fdw
在postgresql中创建扩展“multicorn”(例如使用psql)
$$ create extension multicorn;
创建外部服务器
$$ CREATE SERVER mongostat_fdw_db FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 'mongostat_fdw.MongoDBStatFDW' );
$$ CREATE SERVER mongostat_fdw_coll FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 'mongostat_fdw.MongoCollStatFDW' );
创建外部表
$$ CREATE FOREIGN TABLE mongo_db_stat ( "avgObjSize" NUMERIC, collections INT, "dataFileVersion" JSONB, -- for Postgres 9.4+ or JSON, or (at least) TEXT "extentFreeList" JSONB, -- Mongo 3.0.0+ "dataSize" NUMERIC, db TEXT, "fileSize" NUMERIC, "indexSize" NUMERIC, indexes INT, "nsSizeMB" BIGINT, "numExtents" INT, objects INT, ok NUMERIC, "storageSize" NUMERIC, "extentFreeList" JSONB -- for Postgres 9.4+ or JSON, or (at least) TEXT ) SERVER mongostat_fdw_db OPTIONS ( -- uri 'mongodb://127.0.0.1:27017', host '127.0.0.1', port '27017', db 'test' );
$$ CREATE FOREIGN TABLE mongo_coll_stat ( "avgObjSize" NUMERIC, count INT, "indexSize" JSONB, "lastExtentSize" NUMERIC, nindexes INT, ns TEXT, "numExtents" INT, ok NUMERIC, "paddingFactor" NUMERIC, size NUMERIC, "storageSize" NUMERIC, "systemFlags" INT, "totalIndexSize" NUMERIC, "userFlags" INT ) SERVER mongostat_fdw_coll OPTIONS ( db 'test' );
用法
- 获取“test”数据库统计信息
$$ select db, "fileSize", "dataSize", "avgObjSize", indexes, "dataFileVersion" from mongo_db_stat; db | fileSize | dataSize | avgObjSize | indexes | dataFileVersion -------+----------+----------+---------------+---------+-------------------------- local | 67108864 | 2840 | 405.714285714 | 1 | {"major": 4, "minor": 5} admin | 0 | 0 | 0.0 | 0 | {} (2 rows)
- 获取“test”数据库集合统计信息
$$ select ns as tbl_name, size, "storageSize", count from mongo_coll_stat; tbl_name | size | storageSize | count ---------------------+------+-------------+------- test.system.indexes | 72 | 4096 | 1 test.test_coll | 344 | 4096 | 7 (2 rows)
外部链接
- PostgreSQL foreign data wrappers
- Multicorn-postgres扩展,允许使用python语言生成fdw
- MongoDB-一种具有自动伸缩功能的高性能面向文档的数据库管理系统
- MongoDB dbStats command
- pymongo-使用mongodb的python发行版
许可证
版权所有(c)2016 Dmitriy Olshevskiy。麻省理工学院执照。
有关详细信息,请参见license.txt。