0

저는 클라우드 데이터 저장소에있는 특정 NDB 종류의 엔티티 수를 추적하는 최선의 방법을 생각해냅니다.GAE : NDB 종류의 엔티티 수를 추적하는 가장 좋은 방법은 무엇입니까?

하나의 접근법은 내가 갖고있는 숫자를 알고 싶을 때, 내가 알고있는 쿼리의 .count()을 가져 오면 모든 데이터가 반환되지만 데이터 저장소의 작은 연산이 필요합니다. 내가 가지고있는 종류의 개체의 수). 그래서 이상적이지 않습니다.

또 다른 옵션은 데이터 저장소에 카운터를 생성하여 엔티티를 만들거나 삭제할 때마다 업데이트되지만, 작성하거나 삭제하는 모든 엔티티에 추가 읽기 및 쓰기 작업을 추가하기 때문에 이상적이지 않습니다. 당신은 동의 - 지금 현재로

, 그것은 두 번째 옵션은 내 질문은, 그래서 내 최선의 선택처럼 보인다? 더 경제적 인 다른 옵션이 있습니까?

고마워요.

추신 : 차이점이 있다면 파이썬으로 작업하십시오.

+0

왜 카운트가 필요합니까? [문서에서 말한] (https://cloud.google.com/appengine/docs/python/ndb/queryclass#Query_count) 카운팅은 가져 오기와 계산보다 효율적이므로이 기능을 신속하게 구현할 수있는 것처럼 보입니다. 이 이유는 이미 있습니다. – MtRoad

+0

(결제를 사용하는 경우 작은 데이터 저장소 운영체제는 무료입니다) –

답변

0

찾고있는 정보를 실제로 볼 수있는 더 좋고/싼/더 빠른 방법이 있지만 하루에 몇 번 업데이트 된 이후 몇 시간 만에 정확한 필드 수를 알아야하는 경우 작동하지 않을 수 있습니다. (즉, 언제든지 액세스 할 수 있지만 시간이 오래 걸릴 수 있습니다).

GAE 대시 보드의 "데이터 저장소 통계"페이지

는 "수"숫자와 프로그래밍 방식으로 액세스 할 수있는 방법이 포함 종류/기관에 대한 몇 가지 세부적인 데이터를 표시합니다. 여기에서 자세한 정보보기 : https://cloud.google.com/appengine/docs/python/datastore/stats

+0

감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다. –

1

두 번째 옵션은 이동 방법입니다.

기타 고려 사항 :

  • 초당 많은 쓰기이있는 경우는이 shared counter
  • 데이터 저장소 쓰기 줄이기 위해 사용을 고려하실 수 있습니다, 당신은 (시간 간격의 데이터 저장소를 업데이트 할 수 cron 작업을 사용할 수 있습니다 즉
  • 은 또한 데이터를 유지하기 위해 cron 작업과 함께 memcache.incr() 사용을 고려) 마지막으로 실행 된 이후 생성 된 얼마나 많은 개체 계산합니다. 단점은 memcache 키가 떨어질 수 있다는 것입니다. 따라서 카운트가 정확할 필요가 없다면 실제로 옵션 일 수 있습니다.