Ваша догадка верна! Эта ошибка 504 возникает, когда истекает время ожидания запроса (выполняется более 5 минут). Вот способы сократить время выполнения вашего запроса:
<сильный>1. Сократите временные рамки в запросе
Чем меньше таймфрейм, тем быстрее выполняется запрос. Запрос данных за одну неделю будет в 4 раза быстрее, чем запрос данных за 1 месяц (примерно).
Относительно простым решением было бы разбить этот запрос на два запроса, разделив временной интервал на две или более частей.
<сильный>2. Уменьшите количество извлекаемых свойств.
Тип запроса извлечение принимает параметр с именем property_names
. Здесь вы можете перечислить набор свойств, которые вам нужны для извлечения. Без этого параметра API будет возвращать все свойства ваших событий. Использование property_names
для извлечения только необходимых свойств может значительно снизить затраты на вычисления и накладные расходы на запрос.
<сильный>3. Уменьшите размер коллекции
Это, вероятно, не применимо в данном случае, потому что ваша модель данных уже установлена и разумна, но запрос, анализирующий 400 миллионов событий, займет примерно в два раза больше времени, чем запрос, анализирующий 200 миллионов событий. По этой причине мы рекомендуем не хранить все типы событий в одной мегаколлекции. Keen был разработан, чтобы иметь несколько коллекций для каждого типа действий (регистрации, открытия, сообщения и т. д.). Если вы сузите эту коллекцию до «Загрузили страницу профиля», например, ваш запрос будет намного быстрее, поскольку ему не придется сортировать все другие типы отчетов.
Для других, столкнувшихся с этой ошибкой, кэширование также может сократить время ответа на запрос до миллисекунд. Кэширование работает для всех типов анализа, таких как подсчет, сумма, медиана и т. д., кроме< /em> для извлечения.
person
Michelle Wetzler
schedule
21.06.2017