7

NoSQLOracle/SQL Server/Postgres のような分析関数 (AF略して) をサポートするシステム (できればオープン ソース) を探しています。組み込み関数を含むものは見つかりませんでした。私は何かを読んだHiveことがありますが、実際の機能AF(windows、first_last 値、ntiles、lag、lead など) はヒストグラムと ngrams だけではありません。また、一部の NoSQL システム (Redisたとえば) は map/reduce をサポートAFしていますが、それを置き換えることができるかどうかはわかりません。

Postgres システムと NoSQL システムのどちらを選択するか、パフォーマンスを比較したいと考えています。

つまり、要するに:

  1. NoSQLでシステムを検索していますAF
  2. map/reduce に頼って置き換えることはできますAFか? 高速で、信頼性が高く、簡単に移動できますか。

ps。私は自分の質問をより建設的にしようとしました。

4

2 に答える 2

2

MapReduce がどのように機能するかを本当に理解したら、数行のコードで驚くべきことができるようになります。

ここに素晴らしいビデオコースがあります:

http://code.google.com/intl/fr/edu/submissions/mapreduce-minilecture/listing.html

実際の困難要因は、単一の MapReduce で実装できる関数と、チェーンされた MapReduce を必要とする関数との間です。さらに、一部の優れた MapReduce 実装 (CouchDB など) では、MapReduce を (簡単に) 連鎖させることはできません。

于 2012-11-08T10:18:16.083 に答える
1

一部の関数は、集計のキング (平均、中央値、標準偏差) または順序付け (最初、最後) を伴う場合に、既存のすべてのデータの知識を使用します。

すぐに使用できる AF をサポートする分散 NOSQL ソリューションが必要な場合、システムはすべてのノードのデータに関する情報を保持するために、集中型のインデックス作成とメタデータに依存する必要があります。 .

NoSQL を使用して何を達成することを期待しているかを尋ねる必要があります。スキーマレス テーブルが必要ですか? 分散データ ? 非常に単純なクエリの生のパフォーマンスが向上しますか?

ニーズに応じて、ここに 3 つの主な選択肢があります。

1 - 単一障害点のない分散 NoSQL (例: Cassandra ) を使用してデータを保存し、map/reduce を使用してデータを処理し、目的の関数の結果を生成します (ほとんどの主要な NoSQL ソリューションはHadoopをサポートします)。注意点は、map/reduce クエリはリアルタイムではなく (クエリの実行に数分から数時間かかる場合がある)、追加のセットアップと学習が必要になることです。

2 - MySQL Clusterのような複数のサーバーをサポートする従来の RDBMS を使用する

3 - Mongoのようなアドホックおよび集計クエリをサポートするマスター/スレーブ トポロジで NoSQL を使用する

2 番目の質問については、はい、AF の代わりに M/R を使用できます。M/R でほとんど何でもできます。

于 2012-11-08T17:04:25.130 に答える