Просмотр новости

Найдите то, что Вас интересует

HyperLogLog: как найти уникальные значения в терабайте данных, не храня их

Дата публикации: 24-06-2026 16:05:58

Представим задачу: хайлоад-сервис гонит поток данных — логи, IP-адреса, ID пользователей, миллиарды записей в сутки. Ваша задача — посчитать количество уникальных посетителей за неделю.Первым решением может показаться завести HashSet и кидать туда ключи, а в конце посмотреть размер. Решение неплохое, но когда речь заходит о миллиардах записей — память будет слабым местом. Один IP-адрес (4 байта) как ключ в HashSet потянет за собой накладные расходы на ноды, указатели и хеши. На практике один элемент сжирает не меньше 50–100 байт. Поток в миллиард уникальных записей потребует под сотню гигабайт оперативной памяти. Это дорого, а если инстансов десять — то просто нереально.Но существует алгоритм, который способен решить эту задачу примерно в 1.5 килобайта памяти с погрешностью около 2%? Без хранения самих данных и гигантских кластеров. Достаточно одного прохода по потоку и пары битовых трюков — именно так и работает HyperLogLog, алгоритм родом из математической статистики, который перевернул подход к подсчёту уникальности в Big Data.HyperLogLog используют в Redis, BigQuery, ClickHouse, Presto. В этой статье мы разберем и реализуем этот алгоритм на C, а также узнаем его предысторию. Читать далее

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Как мы научили реляционую базу хранить оргструктуру в виде графа на 500к пользователей0823-06-2026
2Valkey и Redis: два года спустя — за кем будущее?0722-06-2026
3Аудит алгоритмов: как реализация Boyer-Moore с 190K звёзд на GitHub оказалась brute-force0821-06-2026
4Что происходит при DDoS и как отличить атаку от нагрузки0525-06-2026
5Как двое договариваются о секрете, крича на всю площадь: алгоритм Диффи-Хеллмана без формул0525-06-2026
6Цифровое слабоумие: не помню, который час0524-06-2026
7Зоопарк протоколов и человеческий фактор: что внутри сложной IoT-интеграции климатического оборудования0723-06-2026
8Заменяем JavaScript с помощью HTML и CSS0523-06-2026
9Из ядра Linux выпилили strncpy: шесть лет, 362 коммита, одна функция0823-06-2026
10Как биология и особенности медицинского учета издеваются над программистами0524-06-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7. Источник: habr.com.