2

私たちの GAE アプリでは、ユーザーは特定のタイプのエンティティを CSV としてダウンロードする必要があることがよくあります。新しいエンティティが頻繁に追加/更新されるため、事前に、または一定の間隔ですべてのエンティティを BLOB に書き込むことができなくなります。

500 個のバッチでフェッチされた約 50000 個のエンティティ (各エンティティ < 2 KB) の場合、CSV ファイル BLOB への書き込みに 2 分以上かかり、費用はほぼ 1 ドルです。また、ユーザーはファイルを受信するまで長時間待たなければなりませんが、通常は数 MB (< 5 MB) しかありません。

2 つの質問があります。

A) エクスポート用に map-reduce パイプラインを構成することで、BLOB を書き込む時間を短縮できる可能性がありますか?

B) データストアから多数のエンティティをフェッチして BLOB に書き込むコストを削減する方法はありますか?

編集: mapreduce は、フィルタリングされたサブセットではなく、同じ種類のすべてのエンティティに対してのみ実行できることを知りました。したがって、 mapreduce はおそらくコストを大幅に増加させます。他の提案はありますか?

4

1 に答える 1

1
  1. ppEngineパイプラインを使用する必要があります。これにより、ジョブが複数のインスタンスに分散されるため、速度が向上します。
  2. フェッチする属性を指定するプロジェクションクエリを使用することで、エンティティのフェッチのコストを削減できます。
  3. ダウンロード速度については、BlobstoreDownloadHandlerでblobstoreを使用していますか?
于 2012-07-02T14:43:29.757 に答える