Что следует использовать для хранения данных в GAE? - PullRequest
1 голос
/ 28 февраля 2012

Мое веб-приложение будет иметь ~ 150 полей, и когда значение изменяется в любом поле (хотя бы в одном), я должен сохранить измененное значение.Как я должен хранить такие значения с GAE?Должен ли я сохранить их непосредственно в хранилище данных?Должен ли я использовать memcache временно и затем сохранить все значения сразу в хранилище данных?Или следует использовать какой-то другой подход?

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Хранилище данных - это ваша база данных.Memcache предназначен для хранения данных, которые извлекаются из хранилища данных и временно хранятся в памяти, чтобы избежать слишком большого количества обращений к базе данных.Сначала вы должны спроектировать свое приложение вокруг хранилища данных, а затем использовать memcache для повышения производительности.

В зависимости от выбранного языка программирования (java, python, go), существует множество инструментов, которые помогут вам отобразить объекты в вашемприложение в хранилище данных и эффективно использовать memcache.

0 голосов
/ 29 февраля 2012

Я бы посоветовал вам разделить ваши сущности на корневую сущность и пару связанных, содержащих каждый из 150 атрибутов - таким образом, когда вы обновляете один атрибут, вам нужно сохранить только один (или два, если обновлениеотражается на корневом объекте) меньшие объекты в хранилище данных вместо огромного.

Используйте memcache для предотвращения чтения, а не для хранения данных, поступающих в хранилище данных.Memcache может быть очищен, и данные могут быть уничтожены до того, как он попадет в постоянное хранилище.

Если продвинуться на один шаг дальше, группировка атрибутов может отражать данные, которые обновляются вместе - скажем, если вы всегда обновляете street и почтовый индекс вместе, имеет смысл объединить их в одну структуру.

0 голосов
/ 28 февраля 2012

Прежде всего вы должны выяснить, как вы собираетесь использовать свои данные.Какие вопросы вы планируете сделать?Каков размер ваших сущностей?

Хранилище данных сильно отличается от реляционных баз данных.То есть, на самом деле не имеет значения, сколько свойств изменено, потому что нет способа обновить свойство самостоятельно.Вы можете сохранить только сущность в целом.Я не знаю о вашем случае использования, но, вероятно, должен быть лучший подход для структурирования ваших данных, чем наличие ~ 150 свойств для одной сущности.Каков ваш вариант использования?

Также слишком большое количество свойств для объекта может привести к взрыву индекса или замедлению записи в хранилище данных.

...