2011-12-23 2 views
0

데이터 저장소에서 대량 레코드를 삭제해야합니다. 모든 이전 링크를 살펴 보았지만 데이터 저장소에서 엔티티를 가져온 다음 하나씩 삭제하는 것에 대해 이야기했습니다. 내가 약 80K 엔티티를 가지고 있고 datastore db.delete() 메소드를 사용하려고 할 때마다 읽기가 시간 초과되는 경우가 있습니다.Google App Engien Datastore에서 일괄 삭제하는 방법

여기서 기회가있는 사람이 대량 삭제를 수행하기 위해 SQL에 더 가까운 방법을 알고 있습니까?

+2

[여기] (http://stackoverflow.com/questions/108822/delete-all-data)를 참조하십시오. -for-a-kind-in-google-app-engine /)을 사용합니다. :) – Kjuly

답변

3

삭제를 위해 작업 대기열 + DB 커서를 사용할 수 있습니다.

작업을 최대 10 분까지 실행할 수 있습니다. 모든 항목을 삭제할 충분한 시간입니다. 그러나 시간이 오래 걸리면 현재 커서 위치를 얻고이 커서를 매개 변수로하여 한 번 더 작업을 호출하고 마지막 위치에서 처리를 시작할 수 있습니다.

0

사용중인 API를 정의하십시오. JDO? 가이? JPA? 당신은 어떤 db.delete를 참조하지만, 이것을 JDO로 표시하십시오; 그들은 동일하지 않습니다. JDO는 분명히 pm.deletePersistentAll()을 제공하며 그 이상을 원할 경우 Google Mapper API를 사용할 수 있습니다.

관련 문제