Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Агрегатная функция
Область применения: Databricks SQL
Databricks Runtime 13.3 LTS и выше
Эта функция использует алгоритм HyperLoglog для подсчета вероятностного приближения числа уникальных значений в заданном столбце и выводит результат в виде двоичного представления, известного как буфер эскиза. Это двоичное представление подходит для сохраняемости.
Запросы могут использовать результирующие буферы для оценки приблизительных уникальных значений с помощью функции 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. Логарифм по основанию 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