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


dcount_hll()

Вычисляет количество уникальных результатов, созданных hll или hll_merge.

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

Синтаксис

dcount_hll(hll)

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

Параметры

Имя Тип Обязательно Описание
hll string ✔️ Выражение, созданное путем hll или hll-merge , которое используется для поиска различающегося счетчика.

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

Возвращает уникальное количество каждого значения в hll.

Пример

В следующем примере показаны результаты объединения разных счетчиков hll.

StormEvents
| summarize hllRes = hll(DamageProperty) by bin(StartTime,10m)
| summarize hllMerged = hll_merge(hllRes)
| project dcount_hll(hllMerged)

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

dcount_hll_hllMerged
315

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

Эта функция использует вариант алгоритма 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.