2012-05-07 16 views
4

私は私は特定の緯度に近いすべてのユーザーをフェッチするクエリを使用しているとlongitude.Theクエリが書き込み複雑なクエリ

SELECT *,SQRT(POW(69.1 * (latitude - $latitude) , 2) + POW(69.1 * ($longitude - longitude) * COS(latitude/57.3) , 2)) AS distance FROM coupon WHERE is_active='Y' HAVING distance<=$radius 
あるダイナモDB .INのMySQLへのMySQLから切り替えています

それはダイナモDB.Iでのようなクエリを作成することが可能ではありません、Amazon DynamoDBは、箱から出して、このような複雑なSQLクエリを提供していない、すべての後に、何かが行かなければならない私のバックエンド

答えて

8

としてPHPを使用していますNoSQLデータベースを使用する場合)

しかし、DynamoDBのは、通常、それぞれ大規模なデータセットを意味し、シームレスな拡張性、と迅速かつ予測可能な性能を必要とするユースケースのために特別に開発されてきたことを考えると、それはあなたのようなユースケースのためにAmazon Elastic MapReduce (Amazon EMR)との統合を提供します。

アマゾンDynamoDBは、Amazon Elastic MapReduce(Amazon EMR)とも統合されています。 Amazon EMRを使用すると、事業者は AWS上のホストされたpay-as-you-go Hadoopフレームワークを使用して、大きなデータセット の複雑な分析を実行できます。 [...]企業は Amazon EMRを使用して複数の店舗(Amazon DynamoDB、 Amazon RDS、Amazon S3など)のデータにアクセスし、 データセットの複合分析を行い、Amazonでこの結果を保存することもできますS3。

あなたは、とりわけ、SQLのような文(HiveQL)を使用して、ライブアマゾンDynamoDBのデータを照会を要約した、Exporting, Importing, Querying, and Joining Tables in Amazon DynamoDB Using Amazon EMR for detailsに読むことをお勧めします。 HiveQLはDynamoDBそれ以上のものを提供しますが、依然としてという単純なSQLのようなクエリ言語であり、あなたのような数学的表現はカバーされていません。それはあなたがあなたのデータで何をしたいほとんど何もすることができますよう、あなたが、(DynamoDBのEMRの統合によって提供される)Hadoop and MapReduceに飛び込むする必要があるだろうこれらについては

(例えばHow to Create a Job Flow Using a Custom JARを参照してください)。