6
私はRemoteAPI(Java)を使用して、〜90,000の大きなデータセットを処理し、データの移行を実行しています。 900
result.size()
にクエリLIMIT
セットで制限付きデータストアクエリ
int CHUNK_SIZE = 500;
int LIMIT = 900;
QueryResultList<Entity> result = ds.prepare(entityQuery)
.asQueryResultList(
FetchOptions.Builder
.withPrefetchSize(CHUNK_SIZE)
.limit(LIMIT)
.chunkSize(CHUNK_SIZE)
).startCursor(cursor);
ではなく900
の全データセット、〜90K、です。私が低いLIMIT
、たとえば300
を試してみると、結果のサイズは予想されるサイズ(300
)です。
私はここで何が欠けていますか?ドキュメントから、私がここで説明している振る舞いを作り出す理由を理解できませんでした。これらの例(http://www.programcreek.com/java-api-examples/index.php?api=com.google.appengine.api.datastore.QueryResultList)に基づいて
私はたぶん何か愚かなことを言っているかもしれませんが、あなたのオプションの順序を変更しようとしましたか? FetchOptions.Builder.withLimit(LIMIT) .withPrefetchSize(CHUNK_SIZE) .chunkSize(CHUNK_SIZE) ).startCursor(カーソル); – yannicksoldati
私が間違っている場合は私を修正しますが、 'FetchOptions.Builder'オブジェクトのメソッドの要約には' .limit'メソッドがありません(https://cloud.google.com/appengine/docsを参照)。 /java/javadoc/com/google/appengine/api/datastore/FetchOptions.Builder)。代わりに '.withLimit'が必要です。 –