← Аналитика / analytics / faq
Часто задаваемые вопросы о Workers Analytics Engine
Ниже вы найдёте ответы на самые частые вопросы.
Сэмплирование
Можно ли просто использовать множество уникальных значений индекса, чтобы получить более точные подсчёты уникальных значений?
Нет, у добавления большого количества значений индекса есть свои недостатки. Главный из них в том, что чтение по многим индексам выполняется медленнее.
На практике из-за особенностей работы ABR чтение из множества индексов в одном запросе даёт данные с низким разрешением, порой настолько низким, что использовать их уже нельзя.
Если же вы выберете удачный индекс, соответствующий тому, как вы читаете данные, запросы будут выполняться быстрее, а результаты будут точнее.
Что делать, если нужно индексировать по нескольким значениям?
В поле индекса можно объединять несколько значений. Так, если вы хотите индексировать по ID пользователя и имени хоста, можно написать, например, "$userID:$hostname" в поле индекса.
В зависимости от характера ваших запросов может быть разумно записывать один и тот же набор данных с разными индексами. Распространено ошибочное мнение, что "двойной записи" данных следует избегать.
Благодаря выборке стоимость многократной записи данных может быть относительно низкой. Однако неэффективное чтение данных может привести к значительным расходам или к результатам низкого качества из-за выборки.
Как узнать, что мои данные подверглись выборке?
Вы можете использовать _sample_interval поле: и снова обратите внимание, что оно не говорит о точности результатов.
Понять, что данные выбираются на этапе чтения, можно по тому, что интервалы выборки будут кратны степеням числа 10, например 20 или 700. Чёткого правила, когда именно начинается выборка при чтении, не существует, но на практике чтение за более длительные периоды (или большего числа значений индекса) приводит к увеличению интервала выборки.
Почему отсутствуют данные?
Выборка в основном зависит от выбора индекса, а также от других факторов, таких как запрашиваемый временной диапазон и количество считываемых индексов. Если вы читаете данные из большого индекса за длительный период и отфильтровали относительно небольшую подгруппу внутри этого индекса, она может отсутствовать из-за выборки.
Если вам нужны точные результаты по этой подгруппе, рекомендуем добавить это поле в индекс (см. Что делать, если нужно индексировать по нескольким значениям).
Можно ли доверять выборочным данным? Насколько точны мои результаты?
Выборочные данные высоко надёжны, особенно при использовании тщательно подобранного индекса.
На данный момент сложно доказать, что результаты запросов ABR укладываются в определённую погрешность. Как правило, полезно проверять количество прочитанных строк с помощью count(): это похоже на подсчёт пикселей в изображении. Чем больше строк будет прочитано, тем точнее окажутся результаты. (Обратная сторона в том, что _sample_interval поле мало что говорит о том, насколько точны ваши результаты). Если вы экстраполируете всего по одной или двум строкам, вряд ли результат окажется репрезентативным; если же вы экстраполируете по тысячам строк, весьма вероятно, что результаты достаточно точны.
В ближайшее время мы планируем открыть доступ к погрешность ↗ вместе с результатами запроса, чтобы точно видеть, насколько точны ваши результаты.
Как обрабатываются всплески трафика?
Равномерная выборка нужна как для устранения различий между группами, так и для сглаживания резких всплесков трафика у отдельного индекса. Выравнивание происходит каждые несколько секунд: если вы записываете много событий почти одновременно, ожидайте, что они будут подвергнуты выборке уже на этапе записи. Интервал выборки для конкретного индекса постоянно меняется в зависимости от текущей скорости записи данных.
Какой объём трафика запускает выборку?
Не существует фиксированного правила, определяющего, когда запускается выборка.
Мы заметили, что для нагрузок вроде нашей глобальной CDN, которая распределяет нагрузку по всей сети, каждому значению индекса требуется около 100 точек данных в секунду, прежде чем выборка вообще становится заметной.
Порог, с которого начинается выборка, может быть выше или ниже в зависимости от вашей нагрузки и от того, как вы используете Workers Analytics Engine. Например, если при одном выполнении worker вы записываете много точек данных, вероятность выборки ваших данных возрастает.