2011-01-11 14 views
1

フォロー情報(NameOfWebSite、DateTimeofVisit)を収集するアプリケーションを作成する必要があります。その後、定義された期間(月、週、年)あたりの訪問数、ソートされた訪問数1期間あたりの訪問数で表します。たとえば、次のようにGAEアプリケーションとGQL

www.google.com定義された期間ごとに2345回の訪問

www.yahoo.com定義された期間ごとに1254回の訪問

www.abracadabra.com定義された期間ごとに5回の訪問

缶私はGQLの助けを借りてこれを行うのですか? 通常のSQLで実現した方がよい方法 DateTimeofVisit> XXXと DateTimeofVisit < YYY

NameOfWebSiteによって TABLEグループから(*)カウント、NameOfWebSiteを選択するよう

なめらかになりますこの論理はGAEとGQLの観点からですか?

答えて

0

GQLではこれを直接行うことはできません。その代わりに、mapreduce APIまたは独自のタスクキュータスクを使用して、定期的に集計を計算し、それらをデータストアに格納する必要があります。

1

GQLCOUNTMAXようGROUP BYと集約関数をサポートしていません。そのため、SQLの代わりにGQLと呼ばれています。詳細については、GQL Referenceを参照してください。

Google App Engineでは集約関数が許可されていませんが、スケーラビリティにはトレードオフがあります。したがって、データセット全体で集約関数を実行する必要がある場合は、自分でこれを行う必要があります。単純なカウンタの場合は、カウンタを格納し、条件に一致するレコードを追加するたびにカウンタをインクリメントすることができます。ファジーディメンション(グループ化用)を使用したより複雑な集計関数については、カスタムソリューションを用意する必要があります。簡単な答えはありません。

ニックの提案は解決策の1つになる可能性があります。条件をチェックして集計関数を定期的に計算するタスクがあります。しかしそれは決して正確ではなく、いつもおおよそのものになります。そのため、特定の検索クエリと一致する検索結果の正確な数がGoogleに表示されないのは、わからないためです。

関連する問題