1

1つのアーキテクチャと、さらにいくつかの永続性ハイブリッド アーキテクチャを見つけました。

MongoDB (または Cassandra、CouchDB) と MySQL (任意の RDBMS) を (PHP、Java アプリケーションの場合) 結合する方法を示す実装レベル、詳細な記事、チュートリアルへのリンクを誰かが持っているかどうか疑問に思います。

4

2 に答える 2

3

現在の仕事でどのようにそれを行ったかについて、いくつかの詳細を共有できます。

リレーショナル ストアはレガシー システムと見なされることに注意してください。それらには信頼できるエンティティがあり、そのデータを読み取りのために MongoDB に移動しています。今後は、リレーショナル システムではなく、MongoDB にも書き込みを行いたいと考えています。

MySQL から MongoDB (具体的には Wordpress) へのデータの移動

TL;DR - トリガーとストアド プロシージャを使用する

このアプローチでは、挿入、更新、および削除を監視する MySQL のテーブルにトリガーを設定しました。これらの操作の 1 つが発生すると、エンティティを生成し、それをキューとして機能するテーブルに配置するストアド プロシージャを起動します。

次に、外部プロセスを使用して、そのテーブルを数秒ごとにポーリングしました。ストアド プロシージャを作成して、キューに入れられた同じアイテムを 2 回以上処理しないようにしました。

外部プロセス (Mule ESB フロー) は、キュー テーブルからデータを読み取るストアド プロシージャの結果に対してわずかな変換を行い、それを MongoDB に渡します。

Wordpress バックエンドから発行した後、MongoDB で Wordpress 投稿を JSON ドキュメントとして表示するのに、おそらく 2 秒かかります。

SQL Server から MongoDB へのデータの移動 (アプローチ 1)

私が使用した最初のアプローチは、XML を生成するストアド プロシージャを作成することです。XML 構文は、TSQL では少し厄介ですが、仕事は完了します。良い点は、XML 構造を任意に深くできることです。

XML を作成したら、その XML を JSON に変換するツールを作成するには、ホップ スキップとジャンプが必要です。次に、外部プロセス (ここでも Mule を使用) で XML 結果を取得し、それらを JSON に変換してから、MongoDB に書き込むことができます。

SQL Server から MongoDB へのデータの移動 (アプローチ 2)

このアプローチでは、Visual Studio で C# プロジェクトを作成し、SQL Server で CLR 関数/ストアド プロシージャとして展開しました。

コードは簡単に記述でき、サーバー上で非常に高速に実行されるため、これは私のお気に入りのアプローチです。CLR 関数で結果をシリアル化し、一時テーブルに格納することも、ストアド プロシージャから結果を返すこともできます。

コード (場合によっては JSON シリアライザーを含む) を実稼働 SQL Server ボックスにデプロイするよう DBA を説得するのは難しいかもしれませんが、その利点は際立っています。また、XML アプローチよりもはるかに優れたパフォーマンスを発揮します。

于 2013-03-29T22:53:13.670 に答える
0

PHP または Java アプリケーションは、オブジェクト (エンティティ) を中心に構築されます。エンティティの役割と使用モデル (永続化と取得の頻度) によっては、適切なデータ ストアを選択する必要がある場合があります。たとえば、ユーザー ID パスワードを RBDMS に保持し、アクター オブジェクト (ドキュメント、音楽、ブログ投稿など) を mongodb のようなドキュメント指向 DB に保持し、頻繁に使用される小さなオブジェクト (ファイル システム階層など) を redis に保持することができます。それはすべてあなたのアーキテクチャに依存します - これのためのすぐに利用できるフレームワークはありません。

于 2013-03-29T13:34:05.680 に答える