写点什么

MoSQL:简化 MongoDB 与 PostgreSQL 之间的同步

  • 2013-02-24
  • 本文字数:804 字

    阅读完需:约 3 分钟

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

2013-02-24 11:082751
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营 - 模块 1- 作业

carl

架构实战营

面试官

ES_her0

4月日更

[架构实战营][0期]模块1学习总结

张民

架构实战营

模块一

yu

架构实战营

架构实战营模块一 - 总结

凯迪

模块一作业

Geek_cb6852

架构实战营

【Java试题】从一道题目再看Java继承

程序员架构进阶

Java 面试 28天写作 4月日更

跟着源码一起学:手把手教你用WebSocket打造Web端IM聊天

JackJiang

网络编程 websocket 即时通讯 IM

架构实战营课程一作业

Saber

架构实战营

树莓派的组装与开机

IT蜗壳-Tango

IT蜗壳教学 4月日更

你才不是只会理论的女同学-seata实践篇

好好学习,天天向上

Java MySQL spring 事务 seata

服务器如何修复旧加密算法漏洞

运维研习社

4月日更 服务器安全

架构实战营模块1作业

梦寻解语花

架构实战营

编程好习惯之理清数据的可变性

顿晓

4月日更 不可变

架构实战营模块1作业

cclouds

架构实战营 模块一课后作业

iProcess

架构实战营

架构实战营 模块一作业

fazinter

架构实战营 作业一

学生管理系统架构

Fleng

架构实战营

Dubbo源码阅读-泛化调用实现原理

小江

dubbo RPC

架构实战营 - 模块01作业

架构实战营

架构实战营 模块1 课后作业

张伟明

架构实战营 模块1

Acker飏

数据结构和算法

奈奈奈奈

数据结构与算法

模块一

^_^vincent

课程1作业

husx

80%的人都不会的,15个Linux实用技巧

鞋子特大号

Linux

坚持到底有多难?

小天同学

坚持 自我思考 个人感悟 成长与思考 4月日更

架构实战营模块1作业

CR

H1 作业1

杨彬

Vue中Echarts基本使用

Chalk

大前端 eCharts 4月日更

#架构实战营 模块一作业

薛定谔的指南针

架构实战营

MoSQL:简化MongoDB与PostgreSQL之间的同步_架构_Jonathan Allen_InfoQ精选文章