Поделиться через


Агрегатная функция hll_sketch_agg

Область применения:флажок 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, BIGINTSTRINGили BINARY против которого будет выполняться уникальное подсчет.
  • lgConfigK: необязательная INT константа от 4 до 21 включительно с значением по умолчанию 12. Логарифм по основанию 2 из K, где K - количество ведер или слотов для наброска.

Любой NULL в expr игнорируется.

Возвраты

Буфер, отличный отNULLBINARY, содержащий структуру 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