2012-02-07 73 views
4

SQLデータベースとNoSQLデータベースの両方に自分のデータを保存したい。このシナリオは、多言語の永続性として記述できます。 Polyglot Persistenceを実装するコードサンプルはありますか?Polyglot永続性の例

あなたはポリグロット持続性がわからない場合は、この技術このlink

+0

非常に興味深い見つけることができます。なぜあなたは両方のタイプのDBに保存する必要があるのか​​私たちと分かち合っていますか? –

+0

コードサンプルではありませんが、スライド56のこのスライドデッキを参照してください:http://martinfowler.com/bliki/PolyglotPersistence.html。 Twitterやインタラクティブメディア(現在はSignalHQ、CRM)がどのようにそれを使用しているかの例を示しています。 – mahemoff

答えて

1

をお読みください大規模データを扱う際にはかなり一般的です。しかし、ソリューションはかなり特殊化されているので、なぜそうするための汎用コードベースがあるのか​​考えることはできません。唯一の例外は、他のデータストアの前にmemcachedを置くことです。

あなたが話していることを実行する一般的な例は、Apache SolrサーバーをSQLベースのデータベースと同期させて構成することです。そうすれば、Solrに対してキーワード/サブストリング/シノニム/ステムメッド/等のスコアリングを行うことはできますが、SQLでは集計を行うことができます。

別の例では、同じデータストアを使用しますが、同じデータを複数の集約形式で格納します。たとえば、データセットを日付に丸めて(レコードを取得する毎日)、ユーザーごとにロールアップして格納することもできます(各ユーザーはレコードを取得します)。実行するクエリに応じて、最適なパフォーマンスを得るセットを選択します。データが十分な大きさであれば、2つのセットを同期させておくオーバーヘッドは、クエリ速度が向上した場合にはそれ以上に費用がかかります。