Это применимо к Google App Engine, но не обязательно для него.Амортизируя расчет распределения (и процентиля), применимый к App Engine?
В Google App Engine база данных не является реляционной, поэтому никакие агрегированные функции (такие как сумма, среднее и т. Д.) Не могут быть реализованы. Каждая строка не зависит друг от друга. Чтобы вычислить сумму и среднее значение, приложение просто должно амортизировать свой расчет, пересчитывая для каждой отдельной новой записи в базу данных, чтобы она всегда была актуальной.
Как идти о вычислении процентиля и частотного распределения (т. Е. Плотности)? Я хотел бы сделать график плотности поля значений, и этот набор значений, вероятно, порядка миллионов. Может быть осуществлено циклическое перемещение по всему набору данных (предел для каждого запроса - 1000 строк) и вычисление на основе этого, но я предпочел бы сделать разумный подход.
Есть ли какой-либо алгоритм для вычисления или аппроксимации распределения плотности/частоты/процентили, который может быть рассчитан в течение определенного периода времени?
Между прочим, данные неопределенны тем, что максимум и минимум могут быть повсеместно. Таким образом, распределение должно будет составлять приблизительно 95% данных, и только на основе этой плотности.
GAE устанавливает ограничения на продолжительность выполнения операции и количество процессорного времени датастора. Все делается как HTTP-запрос, поэтому есть только так много данных, которые вы можете опрокинуть за каждый запрос. Разделение большой работы на несколько операций и объединение результатов могут быть слишком сложными, если есть более простой подход. –