BT

MoSQL: MongoDBとPostgreSQLの同期を簡単に

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2013年2月14日. 推定読書時間: 2 分 |

原文(投稿日:2013/02/06)へのリンク

 

サンフランシスコを拠点とするStripeがMoSQLを発表した。これはMongoDBからのレポーティングを、PostgreSQLデータベースへのライブレプリケーションによって簡単にするツールだ。MoSQLはMongoDBデータのアップデートをほぼリアルタイムでモニタリングするコンパニオン製品、MongoRiver上に構築されている。

MoSQLの目的は、プロダクションデータのリードオンリーコピーに対するレポーティングやアドホッククエリを実行するところで、従来のRDBMS設計をシミュレートすることだ。ビジネス分析にかける前に、リードオンリーコピーに対して数回変換をかけるのはよくあることだ。したがって、これは未知の領域というわけではない。

MongoRiver

MongoRiverはMongoDB oplog tailingのための汎用ライブラリだ。これはRubyで書かれており、開発者はアップデート操作のためにMongoDBインスタンスを監視することができる。まだあまりドキュメントはなく、githubにはソースコードしか置かれていない。MongoRiverはMITライセンスで提供されている。

MoSQL

MoSQLはMongoRiver上に構築されており、実際のデータ変換を実行する。これには「コレクションマップファイル」と呼ばれるYAMLスタイルのマッピングファイルが必要になる。開発者がやらなくてはならないのは、このファイルを作ることだけだ。MoSQLはPostgreSQLに必要なターゲットテーブルを自動生成してくれる。

MoSQLはone-timeモードやtailingモードで動かせる。one-timeモードは“skip-tail”フラグで有効になり、単にインポートを実行する。tailingモードは前述のoplogを監視し、PostgreSQLと同期することができる。MoSQLを開始するときには、強制的にフレッシュインポートすることもできる。これは現在のテーブルをやめにして新しいテーブルを再生成する。

MongoDBデータベースの値が、定義されたスキーマに合わない場合(たとえば、INTEGERフィールドにおけるfloating-point値など)、MoSQLは警告をログに残し、そのオブジェクト全体を無視して続行します。

コレクションマップにないフィールドを持つMongoDBオブジェクトがあった場合、MoSQLはそのフィールドを捨てます。ただし、:meta hashに:extra_propsがセットされている場合は除きます。これがセットされている場合、欠けているフィールドを集め、ハッシュにJSONエンコードし、その結果得られたテキストをSQLの_extra_propsに保存します。JSONをどう使うかはあなた次第です。たとえば、plv8を使ってPostgreSQL内でパースしたり、JSONを全部抜き出してアプリケーションコードでパースしたりすることができます。

MoSQLもMITライセンスで提供されている。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT