MoSQL:简化MongoDB与PostgreSQL之间的同步
来源:互联网 发布:网页防篡改软件 编辑:程序博客网 时间:2024/05/29 05:56
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2013/02/MoSQL
近日,位于旧金山的Stripe公司发布了MoSQL,该款工具可以通过复制的PostgreSQL数据库轻松从MongoDB生成报表。MoSQL基于MongoRiver,这也是Stripe的产品,可以在几乎实时的情况下监控MongoDB的数据更新。
MoSQL的目标旨在模拟传统的RDBMS设计,其报表与实时查询都是在产品数据的只读副本上进行的。在提供给业务分析师之前,这个只读副本通常都需要经过几次转换,因此大家对此应该不陌生。
MongoRiver
MongoRiver是个通用库,用于MongoDB oplog tailing,它使用Ruby编写,开发者可以通过MongoRiver查看MongoDB实例的更新操作。目前关于MongoRiver的文档还不多,其github站点也只提供了源代码。MongoRiver基于MIT许可。
MoSQL
MoSQL构建在MongoRiver之上,它会执行实际的数据转换。它需要一个YAML风格的映射文件,称作“集合映射文件”。在准备阶段,开发者只需创建该文件即可。MoSQL会自动创建PostgreSQL中必要的目标表。
MoSQL可以运行在one-time或是tailing模式下。在one-time模式下(通过“skip-tail”标志开启),它只会执行一次导入。在tailing模式下,它会监控上述的oplog,这样就能与PostgreSQL保持同步了。当启动MoSQL时,你还可以强制导入,该操作会删除当前表并创建新表。
如果MoSQL在MongoDB数据库中遇到了不符合模式的值(比如说在INTEGER字段上使用了浮点数值),那么它会发出警告,忽略整个对象,然后继续。
如果遇到MongoDB对象中的字段不在集合映射中,那么它会丢弃额外的字段,除非在:meta hash中设置了:extra_props。如果设置了,那么它会收集所有丢弃的字段,将其以JSON编码到hash中,然后在_extra_props中存储生成的文本。你可以使用该JSON做些处理。一种方式是使用plv8在PostgreSQL中解析他们,还可以将JSON拿出来并在应用代码中进行解析。
MoSQL也基于MIT许可。
查看英文原文:MoSQL: Synchronizing MongoDB and PostgreSQL Made Easy
- MoSQL:简化MongoDB与PostgreSQL之间的同步
- kettle和MongoDB之间的数据同步
- 关于PostgreSQL与MongoDB在NoSQL方面的简单对比
- RoR与PostgreSQL数据同步注意的事情
- postgresql----COPY之表与文件之间的拷贝
- 任务之间的通讯与同步
- 任务之间的通讯与同步
- Mongodb与Elasticsearch实时同步
- MongoDB数据库的安装、配置、主从同步、备份与恢复
- MongoDB与Elasticsearch达到数据同步的一点尝试
- rsync文件同步工具,可实现Linux之间,Linux与Windows之间的文件同步
- MongoDB中bean与DBObject之间的转换
- mongodb学习整理三,mongodb与MYSQL之间的联系。query与projection
- Agent简化云应用与企业内部部署应用之间的集成
- 关于java的线程池与同步之间的关系
- 线程之间的同步
- 线程之间的同步
- SVN 与 Web 之间同步
- MVC框架(1)
- 使用内嵌jetty启动solr
- 操丛数据
- Android--SQLite(增,删,改,查)操作
- Hadoop Pig学习笔记(一) 各种SQL在PIG中实现
- MoSQL:简化MongoDB与PostgreSQL之间的同步
- vim使用小技巧—字符搜索
- WideCharToMultiByte和MultiByteToWideChar函数的用法
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- Android--使用Pull解析器解析xml文件
- poj1330 lca转rmq
- 进程和线程的区别
- 安装Cocos2D-iPhone的方法
- 程序自我删除..