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