TGViewer
Data Science: Алгоритмы и Структуры данных Data Science: Алгоритмы и Структуры данных @structuredata · 7.64K subscribers
Post #4732 664
HyperLogLog: как найти уникальные значения в терабайте данных, не храня их

Представим задачу: хайлоад-сервис гонит поток данных — логи, IP-адреса, ID пользователей, миллиарды записей в сутки. Ваша задача — посчитать количество уникальных посетителей за неделю.

Первым решением может показаться завести HashSet и кидать туда ключи, а в конце посмотреть размер. Решение неплохое, но когда речь заходит о миллиардах записей — память будет слабым местом. Один IP-адрес (4 байта) как ключ в HashSet потянет за собой накладные расходы на ноды, указатели и хеши. На практике один элемент сжирает не меньше 50–100 байт. Поток в миллиард уникальных записей потребует под сотню гигабайт оперативной памяти. Это дорого, а если инстансов десять — то просто нереально.

Но существует алгоритм, который способен решить эту задачу примерно в 1.5 килобайта памяти с погрешностью около 2%? Без хранения самих данных и гигантских кластеров. Достаточно одного прохода по потоку и пары битовых трюков — именно так и работает HyperLogLog, алгоритм родом из математической статистики, который перевернул подход к подсчёту уникальности в Big Data.

https://habr.com/ru/companies/timeweb/articles/1046345/

Алгоритмы и Структуры данных
More from @structuredata
  1. Oct 15, 2026​Введение в криптографию и шифрование Когда-то материал из этой лекции читали в МГУ целых…
  2. Oct 15, 2026​Структура данных «очередь» (queue) — принципы работы С понятием очереди вы наверняка хоро…
  3. Oct 14, 2026Как платить за границей и за зарубежные сервисы в 2026 году? Можно переплачивать посредник…
  4. Oct 14, 2026​Визуализация 10 алгоритмов на графах Изучаете теорию графов? В статье вы найдёте 10 гифок…
  5. Oct 14, 2026Алгоритмы и структуры данных: примеры реализаций на JavaScript Если вы изучаете JavaScript…
  6. Oct 13, 2026Как разобраться в Computer Science Computer Science — программирование, математика и всё,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →