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


hll_merge()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

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

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

Внимание

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

Синтаксис

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

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

Параметры

Имя (название) Type Обязательно Описание
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.