5

mysql から Dynamo DB に切り替えました。mysql では、特定の緯度と経度に近いすべてのユーザーを取得するためのクエリを使用しました。クエリは

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

Dynamo DB のようなクエリを作成することはできますか? バックエンドとして PHP を使用しています。

4

1 に答える 1

9

いいえ、Amazon DynamoDBはこのような複雑な SQL クエリをすぐに提供しません。結局のところ、 NoSQLデータベースを使用したい場合は何かをしなければなりません;)

ただし、DynamoDB は、シームレスなスケーラビリティを備えた高速で予測可能なパフォーマンスを必要とするユースケース向けに特別に開発されているため、通常はそれぞれ大規模なデータセットを意味するため、お客様のようなユースケース向けにAmazon Elastic MapReduce (Amazon EMR)との統合を提供します。

Amazon DynamoDB は、Amazon Elastic MapReduce (Amazon EMR) とも統合されています。Amazon EMR を使用すると、企業は、AWS でホストされている従量課金制の Hadoop フレームワークを使用して、大規模なデータセットの複雑な分析を実行できます。[...] 企業は、Amazon EMR を使用して複数のストア (つまり、Amazon DynamoDB、Amazon RDS、および Amazon S3) のデータにアクセスし、この結合されたデータセットに対して複雑な分析を行い、この作業の結果を Amazon S3 に保存することもできます。

詳細については、Amazon EMRを使用した Amazon DynamoDB のテーブルのエクスポート、インポート、クエリ、結合を参照してください。これは、 SQL に似たステートメント (HiveQL) を使用したライブ Amazon DynamoDB データのクエリの概要をまとめたものです。HiveQLは DynamoDB 自体よりも少し多くの機能を提供しますが、それでも単純な SQL に似たクエリ言語であり、あなたのような数式はカバーされていません。

これらについては、 Hadoop と MapReduce (DynamoDB EMR 統合によって提供される)に飛び込む必要があります。これにより、データで必要なことをほとんど何でも実行できるようになります (たとえば、カスタム JAR を使用してジョブ フローを作成する方法を参照)。 )。

于 2012-05-07T07:44:14.130 に答える