2012-10-07 2 views
2

Google App Engine HRD 마이그레이션이 나에게 악몽이었습니다. 어제 55GB 데이터 스토어를 HRD로 마이그레이션했습니다. 그 이후로 많은 쿼리 및 인덱스가 부러 :HRD 이전 데이터 저장소 쿼리 및 색인

몇 가지 예 :

  • 선택 *을 표 1 곳 COL1 = VAL1 => query.get은() 파이썬에서 빈 반환에서. 그러나 데이터 저장소 뷰어에서 작동합니다.
  • select * from table1 여기서 col1 = val1 => query.count()> 0입니다. 그러나 query.get() = 비어 있습니다.
  • select * from table1 여기서 col1 = val1 order by col2 desc => 거의 행의 절반이 응답에서 누락되었습니다. 데이터 스토어 뷰어에서와 동일한 문제가 발생합니다.

어떻게 이러한 테이블과 인덱스를 복구합니까? 이 문제를 해결하기위한 Google Appengine 팀 지원을받는 방법은 무엇입니까? 그것의 GAE 마이그레이션 도구 버그.

도움을 주셔서 감사합니다.

답변

1

약 2-3 일 후에 테이블이 자동으로 복구됩니다. HRD 문제입니다. 내 문제가 해결되었습니다.

4

마이그레이션 도구를 사용하면 새로운 키가 변경되는 새로운 앱 ID가 할당됩니다.

  1. 일시적으로 빈 index.yaml :

    사용자 정의 인덱스를 다시 작성합니다.
  2. 색인 색인 (자세한 내용은 How can I remove unused indexes in Google Application Engine?을 확인하십시오).
  3. 모든 색인이 삭제 될 때까지 기다리십시오.
  4. index.yaml을 복원하십시오.
  5. 응용 프로그램을 다시 배포하거나 appcfg.py update_indexes <path> (더 자세한 정보는 the documentation)을 실행하여 색인을 만듭니다.

다른 참조 (예 : 키의 목록 속성)가있는 경우 수동으로 업데이트해야 할 수도 있습니다.

편집
간단한, 앱 엔진에 의해 자동으로 관리되는 단일 속성 인덱스를 생성/속성을 넣을 때 업데이트되었습니다.
다시 생성하려면 간단한 MapReduce 작업을 만들어 실행하여 모든 기존 엔터티를 넣는 것이 좋습니다. 이 절차는 모두 색인 (index.yaml에 정의 된 색인 포함)을 다시 작성해야합니다.
비용이 많이 드는 프로세스이므로 먼저 몇 개의 항목을 사용하여 수동으로 문제를 해결하는지 확인하십시오.

+0

위의 처음 두 예제는 index.yaml에 색인이 없습니다. –

+0

@SaurabhSahni 죄송합니다. 자동 색인에 대한 정보로 내 대답을 업데이트했습니다. 도움이되는지 확인하고 그렇지 않은 경우 알려주십시오. – Bugs

+0

감사합니다. 그러나, 그것은 많은 일이 될 것입니다! 이 문제를 해결하기위한 Google Appengine 팀 지원을받는 방법은 무엇입니까? 그것의 GAE 마이그레이션 도구 버그. –

0

업데이트 : 마침내

나는 같은 문제가) = 24 시간 자체를 수정 같이

query.count()> 0. 그러나 query.get() 또는 fetch()는 비어 있습니다.

그 이상한 일부 테이블 잘 작동하지만 일부 테이블이 문제

나는 그것이 마이그레이션 매우 큰 테이블 (모델)에서 구글 앱 엔진 문제라고 생각을 갖고있다.

2 ~ 3 일 내에 내 테이블이 복구 될 수 있기를 바랍니다.

관련 문제