MoSQL:簡化MongoDB與PostgreSQL之間的同步

來源:互聯網
上載者:User

近日,位於舊金山的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之間的同步

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.