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


hll_merge() (функция агрегирования)

Область применения: ✅Microsoft Fabric

Объединяет результаты HLL в группе в одно значение HLL.

Примечание.

Нельзя объединить значения hll, созданные с помощью различных значений точности. Дополнительные сведения см. в разделе hll().

Примечание.

Эта функция используется в сочетании с оператором сводки.

Дополнительные сведения см. в базовом алгоритме (H yperLog L og) и точности оценки.

Синтаксис

hll_merge ( hll)

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

Параметры

Имя (название) Type Обязательно Описание
hll string ✔️ Имя столбца, содержащее значения HLL для слияния.

Возвраты

Функция возвращает объединенные значения HLL для группы.

Примечание.

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

Пример

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

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

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

В результатах отображаются только первые пять результатов в массиве.

hllMerged
[[1024,14],["-6903255281122589438","-7413697181929588220","-2396604341988936699","5824198135224880646","-6257421034880415225", ...],[]]

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

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