ds_hll_estimate
Оценивает приблизительное количество уникальных значений из сериализованного скетча HyperLogLog. Эта функция является частью семейства функций DataSketches HLL для приблизительного подсчёта уникальных значений.
ds_hll_estimate принимает VARBINARY сериализованный скетч, созданный ds_hll_accumulate или ds_hll_combine, и возвращает оценочное количество уникальных значений.
Основана на Apache DataSketches и обеспечивает высокую точность для приблизительного подсчёта уникальных значений. Для получения дополнительной информации см. HyperLogLog Sketches.
Синтаксис
bigint ds_hll_estimate(sketch)
Параметры
sketch: Столбец VARBINARY, содержащий сериализованные скетчи HyperLogLog, созданныеds_hll_accumulateилиds_hll_combine.
Возвращаемый тип
Возвращает BIGINT, представляющий оценочное количество уникальных значений.
Примеры
-- Создание тестовой таблицы
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_estimate(ds_id),
ds_hll_estimate(ds_province),
ds_hll_estimate(ds_age),
ds_hll_estimate(ds_dt)
FROM t2
GROUP BY dt
ORDER BY 1
LIMIT 3;
Связанные функции
ds_hll_accumulate: Создаёт сериализованные скетчи HyperLogLog из данныхds_hll_combine: Объединяет несколько сериализованных скетчей в один скетчds_hll_count_distinct: Функция прямого приблизительного подсчёта уникальных значений
Ключевые слова
ds_HLL_ESTIMATE, HLL, HYPERLOGLOG, APPROXIMATE, DISTINCT, COUNT, ESTIMATE