Агрегатная функция hll_sketch_agg
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Эта функция использует алгоритм HyperLog для подсчета вероятностного приближения числа уникальных значений в заданном столбце и выводит результат в виде двоичного представления, известного как буфер эскиза. Это двоичное представление подходит для сохраняемости.
Запросы могут использовать результирующие буферы для вычисления приблизительных уникальных счетчиков с помощью функции hll_sketch_estimate .
Функции hll_union и hll_union_agg также могут объединять эскизы, используя и объединяя эти буферы в качестве входных данных.
Реализация использует библиотеку Apache Datasketches. Дополнительные сведения см. в HLL.
Синтаксис
hll_sketch_agg ( expr [, lgConfigK ] )
Эту функцию также можно вызвать как функцию окна с помощью OVER
предложения.
Аргументы
expr
: выражение типаINT
,BIGINT
STRING
илиBINARY
против которого будет выполняться уникальное подсчет.lgConfigK
: необязательнаяINT
константа от 4 до 21 включительно с значением по умолчанию 12. Log-base-2 из K, где K — это количество контейнеров или слотов для эскиза.
Любой NULL
из не expr
учитывается.
Возвраты
Не буферNULL
BINARY
, содержащий эскиз HyperLogLog, вычисляемый в результате использования и агрегирования всех входных значений в группе агрегирования.
Примеры
> SELECT hll_sketch_estimate(hll_sketch_agg(col, 12))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
> SELECT hll_sketch_estimate(hll_sketch_agg(col))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3