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


Функция hll_union

Область применения: флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

Эта функция использует алгоритм HyperLogLog для объединения двух эскизов в один эскиз.

Запросы могут использовать результирующие буферы для вычисления приблизительного уникального количества целых чисел с помощью функции hll_sketch_estimate .

Реализация использует библиотеку Apache Datasketches. Дополнительные сведения см. в HLL.

Синтаксис

hll_union ( expr1, expr2 [, allowDifferentLgConfigK ] )

Аргументы

  • exprNBINARY: выражение с эскизом, созданным hll_sketch_agg.
  • allowDifferentLgConfigK: необязательное BOOLEAN выражение, определяющее, разрешено ли слияние двух эскизов с разными значениями lgConfigK. По умолчанию используется значение false.

Возвраты

Буфер BINARY , содержащий эскиз HyperLogLog, вычисляемый в результате объединения входных выражений.

allowDifferentLgConfigK Если параметр имеет значение true, результирующий эскиз использует меньшее из двух предоставленных lgConfigK значений.

Примеры

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1),
    hll_sketch_agg(col2)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  6

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1,  4),
    hll_sketch_agg(col2, 21)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  error