1

AppEngine Datastore에 사용되는 직렬화 논리를 수동으로 정의 할 수 있습니까?AppEngine Datastore 객체의 수동 직렬화/비 직렬화

Google에서 일반적인 방식으로 리플렉션을 사용한다고 가정합니다. 이것은 효과가 있지만 아주 느립니다. 나는 데이터 저장소 객체의 직렬화/비 직렬화 작업 속도를 높이기 위해 꽤 많은 코드를 작성하고 유지할 것입니다 (대형 객체가 있고 시간의 상당 부분을 소비합니다).

+0

콘텐츠를 BlobProperty 또는 ByteStringProperty로 serialize 할 수 있습니다. 예를 들어,이 새 데이터에 대한 쿼리를 수행 할 수 없었습니다. –

+0

그것은 내가 이미 고려한 것이지만 데이터 저장소 뷰어에서 내 데이터를 검사 할 수 있기를 원합니다. – Daniel

답변

1

데이터 저장소는 내부적으로 프로토콜 버퍼를 사용하므로 응용 프로그램이 데이터 저장소와 통신 할 수있는 유일한 방법이므로 순환 방식은 없습니다. 당신이 생각하는 경우 이 (구현은/구글 /에서 appengine/데이터 저장소/entity_pb.py SDK에 찾을 수 있습니다) 는, (드) 직렬화가 귀하의 경우 너무 느립니다, 당신은 아마 두 가지 선택

  • 이동이 낮은 DB API. google.appengine.datastore에 잘 설명 된 두 ext.db 및 ext.ndb API 옆에 또 다른 API가 있습니다. 이것은 모든 멋진 모델 - 물건을 가지고 있지 않으며 단순한 (그리고 잘하면 빨리) 사전과 같은 사전을 제공합니다. 이렇게하면 데이터 저장소 레이아웃이 다른 두 DB API와 호환됩니다.
  • 직접 개체를 serialize하고 텍스트 필드로 구성된 더미 항목에 저장합니다. 그러나 자체 순차 화 된 텍스트 내부의 데이터를 필터링하거나 정렬 할 수 없으므로 데이터를 기본 항목에 복제해야 할 수도 있습니다.
관련 문제