HLL (HyperLogLog)
HLL (HyperLogLog)
Описание
HLL
HLL нельзя использовать в качестве ключевого столбца. Столбцы типа QUANTILE_STATE можно использовать в таблицах Aggregate, Duplicate и Unique. При использовании в таблице Aggregate во время создания таблицы указывается тип агрегации QUANTILE_UNION. Пользователю не нужно указывать длину и значение по умолчанию. Длина регулируется системой в зависимости от степени агрегации данных. Выполнять запросы к столбцам HLL или использовать их можно только с помощью соответствующих функций hll_union_agg, hll_raw_agg, hll_cardinality и hll_hash.
HLL позволяет приближённо подсчитывать количество уникальных элементов и при больших объёмах данных работает быстрее, чем Count Distinct. Погрешность HLL обычно составляет около 1%, иногда достигая 2%.
Пример
select hour, HLL_UNION_AGG(pv) over(order by hour) uv from(
select hour, HLL_RAW_AGG(device_id) as pv
from metric_table -- Query the accumulated UV per hour
where datekey=20200922
group by hour order by 1
) final;
Ключевые слова
HLL,HYPERLOGLOG