В Python-версии Google App Engine, как мне найти квартильные значения модели с индексом по определенному свойству? - PullRequest
0 голосов
/ 13 сентября 2011

В Google App Engine у ​​меня есть модель с 10K сущностями с индексом свойства foo.Как наиболее эффективно найти 1-й квартиль, 2-й квартиль (медиану) и 3-й квартиль?Я могу получить отсортированный список ключей и найти три квартильных ключа программно, но загрузка всех ключей не масштабируется.Какой подход более элегантный?

sortedValues = MyModel.all(keys_only=True).order('foo').fetch(limit=10000)

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

Вы пробовали .fetch(2500,limit=1), .fetch(5000,limit=1) и .fetch(7500,limit=1)? Первый аргумент соответствует смещению.

Однако в документации говорится следующее, поэтому такой подход не даст вам O(1) производительности.

Note: The query has performance characteristics that correspond linearly with the offset amount plus the limit amount.

С здесь .

0 голосов
/ 14 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...