• MoSQL:简化MongoDB与PostgreSQL之间的同步[转]


    近日,位于旧金山的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之间的同步

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    const用法详解(转)
    [转]Scintilla开源库使用指南
    javascript 流程控制语句 if 语句
    knockout.js 练习一
    深入Node.js的模块机制
    js本地存储解决方案(localStorage与userData)
    linear-gradient 渐变 css3新属性
    制作响应式网站时,用来测试不同宽度下网页展示效果的方法
    zepto.js, django和webpy
    attachEvent 与 addEventListener 的用法、区别
  • 原文地址:https://www.cnblogs.com/shanyou/p/2931497.html
Copyright © 2020-2023  润新知