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


hll_merge()

Объединяет результаты HLL. Это скалярная версия агрегатной версии hll_merge().

Ознакомьтесь с базовым алгоритмом (HyperLogLog) и точностью оценки.

Важно!

Результаты hll(), hll_if() и hll_merge() можно сохранить и получить позже. Например, может потребоваться создать ежедневную сводку уникальных пользователей, которую затем можно использовать для вычисления еженедельных счетчиков. Однако точное двоичное представление этих результатов может со временем меняться. Нет никакой гарантии, что эти функции будут выдавать идентичные результаты для идентичных входных данных, поэтому мы не советуем полагаться на них.

Синтаксис

hll_merge(hll,hll2, [ hll3, ... ])

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
hll, hll2, ... string ✔️ Имена столбцов, содержащих значения HLL для объединения. Функция ожидает от 2 до 64 аргументов.

Возвращаемое значение

Возвращает одно значение HLL. Значение является результатом слияния столбцов hll, hll2, ... hllN.

Примеры

В этом примере показано значение объединенных столбцов.

range x from 1 to 10 step 1 
| extend y = x + 10
| summarize hll_x = hll(x), hll_y = hll(y)
| project merged = hll_merge(hll_x, hll_y)
| project dcount_hll(merged)

Выходные данные

dcount_hll_merged
20

Точность оценки

Эта функция использует вариант алгоритма HyperLogLog (HLL), который выполняет стохастическую оценку кратности набора. Алгоритм предоставляет "рычаг управления", который можно использовать для выравнивания точности и времени выполнения под размер памяти:

Точность Ошибка (%) Число записей
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0.2 218

Примечание

Столбец "число записей" — это количество 1-байтных счетчиков в реализации HLL.

Алгоритм включает в себя некоторые положения для выполнения идеального подсчета (нулевой ошибки), если кратность набора достаточно мала:

  • если уровень точности равен 1, возвращаются значения 1000;
  • если уровень точности равен 2, возвращаются значения 8000.

Границы погрешности — вероятностная, а не теоретическая граница. Значение является стандартным отклонением распределения погрешностей (сигма). 99,7 % оценок будут иметь относительную погрешность в 3 сигмы.

На следующем изображении показана функция распределения вероятности относительной погрешности оценки (в процентах) для всех поддерживаемых параметров точности:

График, показывающий распределение ошибок hll.