MongoDB生态圈

MongoDB Quarterback 161℃ 0评论

c4c7a60c4b2ffa7_size45_w622_h547

本文主要讨论这几个问题:

  1. MongoDB自带命令行工具
  2. 客户端驱动(Driver)
  3. ODM(Object Document Mapper )开发框架
  4. 可视化管理工具
  5. MongoDB Spark Connector
  6. MongoDB BI Connector
  7. ETL工具
  8. MongoDB版云数据库
  9. 其他

1. MongoDB自带命令行工具

除去构建MongoDB或MongoDB集群的几个服务(mongodb, mongos),mongodb提供了如下命令行辅助工具,它们分别是:

  • shell客户端(mongo)
  • 导入导出工具(mongoimport / mongoexport)
  • 备份恢复工具(mongodump / mongorestore)
  • 拉取并重放oplog的工具(mongooplog)
  • 监控工具(mongostat、mongotop、mongosniff)
  • GridFS的命令行操作工具(mongofiles)
  • 性能测试工具(mongoperf,暂时只能测I/O)
  • 查看bson文件的工具(bsondump)

个人建议初学者应该先熟练使用这些工具,再考虑使用可视化管理工具。

这些工具的使用都很简单,通过 –help参数,可以很方面的查看各命令的参数说明和使用方式。

在后续开发、管理部分会详细介绍这些工具的说明和使用。

2. 客户端驱动(Driver)

MongoDB目前提供了市面上大部分主流语言的客户端驱动支持,例如:

  • C
  • C++11
  • C#
  • Java
  • Node.js
  • Perl
  • PHP
  • Python
  • Motor
  • Ruby
  • Scala
  • Go(mgo)(社区支持)
  • Erlang(社区支持)

详细可以参考这里:https://docs.mongodb.com/ecosystem/drivers/

注意:

  1. 使用时注意,各个语言驱动版本对MongoDB版本的兼容性,详细可以参考这里:https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/
  2. 在升级MongoDB服务版本的时候,也应注意驱动版本兼容性问题,需要的话相应进行升级以适配新版本的MongoDB服务。
  3. 注意查看驱动相关说明文档,不同驱动可能对MongoDB某些特性支持存在差异。

3. ODM(Object Document Mapper )开发框架

很多面向对象语言都提供了基于驱动封装的ODM(对象到文档的映射)开发框架,例如Java中的:

Morphia:https://github.com/mongodb/morphia

Spring data mongodb:http://projects.spring.io/spring-data-mongodb/

4. 可视化管理工具

通常MongoDB的可视化工具提供了很多简易的操作,可以大大简化维护运营MongoDB的成本,提高效率。

  • MongoDB Ops Manager (官方)
    • 官方提供的MongoDB Ops Manager,应该是目前进行MongoDB管理的最好选择,不过它是企业版的一部分。
    • 它主要提供了对MongoDB的自动化部署,扩展和升级。以及对MongoDB的可视化监控。还有对MongoDB单机,集群的备份恢复(支持时间点的恢复)。同时它还提供了对MongoDB的一些配置管理,比如认证管理,用户管理,修改oplog大小等。
    • 详细文档参考这里:https://docs.opsmanager.mongodb.com/current/
  • MongoDB Cloud Manager(官方)
    • 官方企业版中退出的运维自动化管理系统。
    • 主要功能包括:MongoDB 集群(复制集、分片)的自动化部署,集群监控、及报警定制,自动数据备份与还原
    • 详细文档参考这里:https://docs.cloudmanager.mongodb.com/
  • MongoDB Compass(官方)
    • MongoDB compass 也是官方企业版中推出的可视化管理工具,compass 与 Cloud Manager 功能互补,Cloud Manager 偏向于部署、运维、监控,而 compass 则偏向于数据管理、查询优化等
    • 其主要功能包括:数据分布可视化,自动分析各个字段取值的分布情况,支持 CRUD 操作,索引自动分析及优化建议,explain 的结果可视化
    • 详细文档参考这里:https://docs.mongodb.com/compass
  • MongoDB Atlas(官方)
    • MongoDB官方提供的 DBaaS 服务(Database as a Service),目前支持在 Amazon AWS 上构建 MongoDB 的云服务,未来有可能会支持更多的云厂商( 例如 Azure、Alibaba Cloud等)并通过Cloud Manager + compass 来提供可视化的数据管理
    • 详细文档参考这里:https://docs.atlas.mongodb.com/
  • 第三方图形化工具:
    • MongoVUE
    • RockMongo
    • RoboMongo
    • …不一一列举了,有很多类似的免费工具,不过这些工具一般只能提供简单的CRUD操作,以及简单的监控,备份恢复等功能,很多已经停止更新,不支持最新3.x版本。

5. MongoDB Spark Connector

Spark是当前流行的流式分布式计算框架,MongoDB Spark Connector使得MongoDB和Spark能够集成在一起,MongoDB作为Spark的数据源(输入或输出)。

详细文档参考这里:https://docs.mongodb.com/spark-connector/v1.1/

6. MongoDB BI Connector

MongoDB BI Connector让用户可以使用现有的关系型BI工具,例如Tableau,来进行商业数据分析。

详细文档参考这里:https://docs.mongodb.com/bi-connector/master/

7. ETL工具

Pentaho Kettle

详细文档参考这里:http://wiki.pentaho.com/display/BAD/MongoDB

8. 云数据库MongoDB版

现在很多企业都使用云服务器,比如国内的阿里云,腾讯云等。这些云服务供应商,也适时的推出了MongoDB版本的云数据库。不过目前提供的mongodb版本的云数据库,大多是副本集架构,还没有分片集群相关产品。

详细的可以参考各云服务器提供商的说明文档:

阿里云MongoDB:https://www.aliyun.com/product/mongodb/

腾讯云MongoDB:https://www.qcloud.com/product/cmongo

9. 其他

在github上,还有许多mongodb相关的开源项目,比如:

一个mongodb集合模式分析的小工具:https://github.com/variety/variety/blob/master/variety.js

mongodb jdbc:https://github.com/erh/mongo-jdbc

大家可以自己去搜索。

如果有其他好用但没提到的工具,欢迎大家不吝补充。

 

/* 本文属于原创文章,转载请注明作者和出处 quarterback.cn,请勿用于任何商业用途 */



喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址