Bigquery Повышение точности проблемы

У нас есть проблема с повышением точности BigQuery, наш случай использования следующий: мы используем таблицу из 1 600 миллионов записей, таблицу не слишком большую для наших проблем, и мы пытаемся найти уникальных пользователей.

Сначала мы думали использовать «подсчет отдельных», но, как сказано в документации, для большого количества данных вы получаете приблизительный результат. Чтобы улучшить это, мы пытаемся использовать «count + group by» вместо оператора «count independent». Но результатом bigquery является слишком большой ответ. Сначала мы сгруппировали по UserID, и мы продолжили эту идею, но уменьшили количество данных, выбрали конкретную кампанию, значительно уменьшив количество данных. Но результат тот же, слишком большой отклик.

Есть идеи или мнения о том, как получить уникальных пользователей с высокой точностью в bigQuery?


person Artemis    schedule 09.05.2012    source источник


Ответы (1)


COUNT(DISTINCT field), как вы уже поняли, возвращает приблизительный ответ. Вы можете повысить точность, используя COUNT(DISTINCT field, n) для большого значения N. Чем больше это значение, тем точнее будет результат, хотя при слишком большом значении может возникнуть ошибка «результат слишком большой».

Вы можете получить точное количество уникальных чисел, используя GROUP EACH BY. Это может затруднить вычисление других значений в том же запросе, но GROUP EACH BY будет работать с таблицей любого размера. Например:

select count(*) from (select field from dataset.table GROUP EACH BY field)
person Jordan Tigani    schedule 10.05.2012
comment
Жалко не повысить точность результатов и не использовать точную функцию частоты ошибок. В любом случае спасибо за вашу помощь. - person Artemis; 14.05.2012
comment
Artemis - ответ изменился с момента первоначального ответа в 2012 году. Теперь вы можете получить произвольно большие уникальные результаты. - person Felipe Hoffa; 08.08.2013