1

Using SQL databases, it is easy to do statistical / aggregate functions like covariance, standard deviation, kurtosis, skewness, deviations, means and medians, summation and product etc, without taking the data out to an application server. http://www.xarg.org/2012/07/statistical-functions-in-mysql/

How are such computations done effectively (as close as possible to the store, assuming map/reduce "jobs" won't be realtime) on NoSql databases in general and dynamodb(cassandra) in particular, for large datasets.

AWS RDS (MySQL, PostgresSQL, ...) is, well, not NoSQL and Amazon Redshift (ParAccel) - a column store - has a SQL interface and may be an overkill ($6.85/hr). Redshift has limited aggregation functionality (http://docs.aws.amazon.com/redshift/latest/dg/c_Aggregate_Functions.html, http://docs.aws.amazon.com/redshift/latest/dg/c_Window_functions.html)

4

3 に答える 3

2

集計機能を持たない DB (Cassandra など) の場合、常にデータを引き出す必要があります。DB の近くに分散計算クラスターを構築することは、現時点では一般的なオプションです ( Stormなどのプロジェクトを使用)。このようにして、データを並行して要求して処理し、操作を実行できます。「リアルタイム」の Hadoop と考えてください (同じではありませんが)。

このようなセットアップを実装することは、それをすぐにサポートするシステムを用意するよりも明らかに複雑であるため、それを考慮して決定してください。利点は、必要に応じて、クラスターを使用すると、従来の DB ソリューションでサポートされるものを超えて、複雑なカスタム分析を実行できることです。

于 2013-11-17T17:21:06.033 に答える