Перейти к основному содержимому
Версия: 2.0.x

ds_hll_combine

Объединяет несколько сериализованных скетчей HyperLogLog в один сериализованный скетч. Эта функция является частью семейства функций DataSketches HLL для приблизительного подсчёта уникальных значений.

ds_hll_combine принимает несколько VARBINARY сериализованных скетчей, созданных ds_hll_accumulate, и объединяет их в один скетч, который представляет объединение всех уникальных значений.

Основана на Apache DataSketches и обеспечивает высокую точность для приблизительного подсчёта уникальных значений. Для получения дополнительной информации см. HyperLogLog Sketches.

Синтаксис

sketch ds_hll_combine(sketch)

Параметры

  • sketch: Столбец VARBINARY, содержащий сериализованные скетчи HyperLogLog, созданные ds_hll_accumulate.

Возвращаемый тип

Возвращает VARBINARY, содержащий объединённый сериализованный скетч HyperLogLog.

Примеры

-- Создание тестовой таблицы
CREATE TABLE t1 (
id BIGINT,
province VARCHAR(64),
age SMALLINT,
dt VARCHAR(10)
)
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 3;

-- Вставка тестовых данных
INSERT INTO t1 SELECT generate_series, generate_series, generate_series % 100, "2024-07-24"
FROM table(generate_series(1, 1000));

-- Создание таблицы для хранения скетчей
CREATE TABLE t2 (
`id` bigint,
`dt` varchar(10),
`ds_id` binary,
`ds_province` binary,
`ds_age` binary,
`ds_dt` binary
) ENGINE=OLAP
DISTRIBUTED BY HASH(id) BUCKETS 3;

-- Сохранение скетчей, созданных ds_hll_accumulate
INSERT INTO t2 SELECT id, dt,
ds_hll_accumulate(id),
ds_hll_accumulate(province, 10),
ds_hll_accumulate(age, 20, "HLL_6"),
ds_hll_accumulate(dt, 10, "HLL_8")
FROM t1;

-- Объединение скетчей с группировкой по дате
SELECT dt,
ds_hll_combine(ds_id),
ds_hll_combine(ds_province),
ds_hll_combine(ds_age),
ds_hll_combine(ds_dt)
FROM t2
GROUP BY dt
ORDER BY 1
LIMIT 3;

Связанные функции

  • ds_hll_accumulate: Создаёт сериализованные скетчи HyperLogLog из данных
  • ds_hll_estimate: Оценивает количество уникальных значений из сериализованного скетча
  • ds_hll_count_distinct: Функция прямого приблизительного подсчёта уникальных значений

Ключевые слова

ds_HLL_COMBINE, HLL, HYPERLOGLOG, APPROXIMATE, DISTINCT, COUNT, MERGE, UNION