Hacker News Digest

Тег: #clickhouse

Постов: 8

An overengineered solution to `sort | uniq -c` with 25x throughput (hist) (github.com)

Проект hist-rs представляет собой высокопроизводительный утилиту для подсчета уникальных строк, написанную на Rust. Его ключевое преимущество — скорость работы, которая в 25 раз превышает производительность классической команды sort | uniq -c в Unix-системах. Это делает его идеальным инструментом для анализа больших лог-файлов и наборов данных, где важна скорость обработки.

Проект реализует эффективный алгоритм подсчета, минимизируя потребление памяти и процессорного времени. Он особенно полезен для разработчиков и системных администраторов, работающих с большими объемами текстовых данных. Код проекта открыт и доступен на GitHub, что позволяет сообществу вносить вклад в его развитие и адаптацию под различные задачи обработки текста.

by noamteyssier • 22 октября 2025 г. в 22:26 • 90 points

ОригиналHN

#rust#performance#data-processing#command-line-tools#text-processing#clickhouse#awk#csv#tsv#github

Комментарии (62)

  • Обсуждение началось с вопроса о производительности различных инструментов для подсчёта уникальных строк в файле, где был упомянут clickhouse-local как самый быстрый способ.
  • Участники обсуждали различные инструменты, включая sort, uniq, awk, uniq -c, sort | uniq -c | sort -n, tsv и csv, а также их производительность и использование памяти.
  • Были упомянуты такие инструменты как tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, tsort, `tsor

ADS-B Exposed (adsb.exposed) 🔥 Горячее

Проект ADS-B Massive Visualizer представляет собой инструмент для визуализации данных системы автоматического зависимого наблюдения — вещания (ADS-B), используемой для отслеживания воздушных судов. Разработчики гордятся использованием ClickHouse — высокопроизводительной open-source СУБД, оптимизированной для аналитики больших данных в реальном времени. Визуализатор, вероятно, обрабатывает и отображает огромные объемы информации о полетах, позволяя пользователям наблюдать за перемещением самолетов в режиме реального времени.

ClickHouse выбрана не случайно — она способна обрабатывать миллионы строк в секунду, что критически важно для обработки данных ADS-B, генерируемых тысячами самолетов одновременно. Проект размещен на GitHub, что указывает на его открытый характер и возможность участия сообщества. Визуализатор демонстрирует мощь современных баз данных при работе с потоковыми данными в геопространственных приложениях, превращая сырые телеметрические данные в наглядную интерактивную карту воздушного пространства.

by keepamovin • 14 октября 2025 г. в 10:38 • 304 points

ОригиналHN

#ads-b#clickhouse#real-time-data#open-source#github#geospatial

Комментарии (76)

  • Проект визуализирует потоки ADS-B и предоставляет интерактивный доступ к данным, включая исторические данные.
  • Пользователи обсуждают, какие данные доступны, какие самолёты можно отслеживать и какие ограничения есть у сервиса.
  • Обсуждаются различные источники данных, включая спутниковые и наземные сети, а также вопросы покрытия и точности.
  • Участники делятся ссылками на репозиторий и обсуждают, какие данные доступны и как они могут быть использованы.
  • Обсуждаются вопросы безопасности и конфиденциальности, а также влияние на открытые данные и их использование.

Scaling request logging with ClickHouse, Kafka, and Vector (geocod.io)

Геокодио перешло с MariaDB на ClickHouse, Kafka и Vector для обработки миллиардов запросов. Исходная система на MariaDB с движком TokuDB не справлялась с нагрузкой: токизация базы не обновлялась с 2021 года, производительность падала с ростом данных, а запросы к миллиардам записей приводили к таймаутам.

Новая архитектура распределяет поток данных через Kafka, который направляет их в ClickHouse для аналитики в реальном времени и долгосрочного хранения. Vector агрегирует данные перед загрузкой, что значительно ускоряет обработку.

В результате производительность увеличилась на порядки: запросы, занимавшие минуты, теперь выполняются за миллисекунды, а пользователи могут мгновенно просматривать свою статистику даже на пике нагрузки. Это решение, хоть и требовало переписывания некоторых запросов, полностью устранило проблемы с производительностью.

by mjwhansen • 08 октября 2025 г. в 09:56 • 130 points

ОригиналHN

#clickhouse#kafka#vector#mariadb#tokudb#redis

Комментарии (22)

  • Основной вывод: авторы обсуждают, как правильно организовать поток данных от источника к ClickHouse, используя Kafka, Vector или Redis в качестве буфера.
  • Практика: вместо того чтобы писать в ClickHouse напрямую, они используют Kafka как очередь, а затем Vector для буферизации.
  • Архитектура: ClickHouse не предназначен для очень больших объемов вставки, и поэтому требуется внешняя система буферизации.
  • Альтернативы: обсуждаются такие варианты как async insert в ClickHouse, использование Redis вместо Kafka, или применение встроенной функции async insert в ClickHouse.

LLM Observability in the Wild – Why OpenTelemetry Should Be the Standard (signoz.io)

Разработчики сталкиваются с хаосом при отладке LLM-агентов в продакшене из-за фрагментации стандартов observability. Например, OpenAI предлагает детальные трейсы, но они привязаны к её фреймворку и не позволяют фильтровать отдельные спаны. New Relic поддерживает OpenTelemetry, но интерфейс громоздок для оперативного дебаггинга. Phoenix с OpenInference даёт богатые AI-специфичные спаны, но не полностью совместим с OpenTelemetry и не имеет SDK для Ruby, что критично для таких проектов, как Chatwoot.

Ключевая проблема — противостояние универсального OpenTelemetry (широкая поддержка языков, но базовые типы спанов) и специализированного OpenInference (богатые AI-типы, но слабая экосистема). OpenInference лишь поверхностно совместим с OpenTelemetry, приводя к «unknown» спанам при прямом использовании. Это вынуждает команды выбирать между созданием кастомных SDK, потерей контекста или сменой стека, замедляя разработку. OpenTelemetry остаётся прагматичным выбором из-за зрелости и кросс-языковой поддержки, но требует расширения семантики под AI-workflow.

by pranay01 • 27 сентября 2025 г. в 18:56 • 119 points

ОригиналHN

#opentelemetry#openai#phoenix#openinference#ruby#clickhouse#llm#observability#distributed-systems

Комментарии (34)

  • Разработка систем наблюдения (observability) для многозадачных LLM-агентов, включая метрики сложности задач и успешности выполнения.
  • Обсуждение стандартов и инструментов (OpenTelemetry, Phoenix, Clickhouse) для отслеживания семантических ошибок и трассировки выполнения агентов.
  • Критика подхода к оценке через ИИ из-за проблемы "курицы и яйца" и предложения использовать стандартные системы мониторинга.
  • Вопросы о практическом применении длинных промптов не-техническими пользователями и динамической маршрутизации в агентах.
  • Дискуссия о необходимости совмещения стандартных решений (реляционные БД) с OpenTelemetry для богатой семантики в распределённых системах.

Optimizing ClickHouse for Intel's 280 core processors (clickhouse.com)

Оптимизация ClickHouse для процессоров Intel с ультра-высоким числом ядер

Авторы: Цзебин Сань, Чжиго Чжоу, Ваньян Го, Тьянью Ли

Гостевой пост от инженеров по оптимизации производительности из Intel Shanghai.

Современные процессоры Intel достигают беспрецедентного числа ядер: до 128 P-ядер на сокет в Granite Rapids и 288 E-ядер в Sierra Forest. Многосокетные системы могут иметь более 400 ядер. Тенденция «больше ядер, а не выше тактовая частота» обусловлена физическими ограничениями и проблемами энергопотребления.

Для аналитических баз данных, таких как ClickHouse, большое количество ядер представляет как возможность, так и сложную задачу. Хотя теоретически больше ядер означают больше параллельной мощности, большинство СУБД не могут полностью использовать аппаратные ресурсы. Проблемы параллельной обработки, такие как конфликты блокировок, когерентность кэша, неоднородный доступ к памяти (NUMA), пропускная способность памяти и накладные расходы на координацию, усугубляются с ростом числа ядер.

Оптимизация для ультра-высокого числа ядер

За последние три года мы анализировали и оптимизировали масштабируемость ClickHouse на процессорах Intel Xeon с большим числом ядер. С помощью инструментов профилирования (perf, emon, Intel VTune) мы исследовали все 43 запроса ClickBench на серверах с ультра-высоким числом ядер, выявляли узкие места и оптимизировали ClickHouse.

Результаты впечатляют: отдельные оптимизации ускоряют выполнение запросов в несколько раз, в некоторых случаях до 10x. Среднее геометрическое время выполнения всех запросов стабильно улучшалось на 2–10% для каждой оптимизации. Это демонстрирует, что ClickHouse можно эффективно масштабировать на системах с ультра-высоким числом ядер.

Ключевые проблемы масштабирования

Помимо производительности одного ядра, необходимо решить несколько ключевых задач:

  1. Накладные расходы когерентности кэша: Перемещение строк кэша между ядрами требует циклов CPU.
  2. Конфликты блокировок: Даже небольшие последовательные участки кода (1%) сильно ограничивают параллелизм по закону Амдала.
  3. Пропускная способность памяти: Эффективное использование памяти критично для систем с интенсивной работой с данными.
  4. Координация потоков: Стоимость синхронизации потоков растет сверхлинейно с их количеством.
  5. Эффекты NUMA: Задержки и пропускная способность памяти различаются для локальной и удаленной памяти в многосокетных системах.

В этом посте summarized наши оптимизации ClickHouse для серверов с ультра-высоким числом ядер.

by ashvardanian • 17 сентября 2025 г. в 18:46 • 198 points

ОригиналHN

#clickhouse#intel#cpu#numa#perf#avx2#avx512#jemalloc#tcmalloc#mimalloc

Комментарии (46)

  • Исправление опечатки в заголовке: речь идёт о 288-ядерных серверных процессорах Intel Sierra Forest, а не о "Intel 280".
  • Оптимизация ClickHouse под высокоядорные системы: улучшение аллокаторов памяти, борьба с конкуренцией, использование SIMD-фильтрации (ускорение запросов до 35%).
  • Обсуждение технических деталей процессоров: отсутствие AVX-512 на E-ядрах Sierra Forest, наличие AVX2 VNNI, сравнение с AMD Zen 4c.
  • Проблемы масштабирования: сложности NUMA, contention points на уровне аллокаторов, разделение полосы пропускания памяти.
  • Практический опыт использования ClickHouse: высокая эффективность сжатия и скорость агрегации больших данных (миллиарды снэпшотов).
  • Критика и предложения: переход с jemalloc на современные аллокаторы (TCMalloc, mimalloc), использование оптимистичного контроля параллелизма.
  • Исторический и футуристический контекст: сравнение с устаревшими системами, шутки о запуске 1000 виртуальных машин и размещении целого стойка в одном процессоре.

Vector database that can index 1B vectors in 48M (vectroid.com)

Зачем и как мы сделали Vectroid

Почти все векторные БД заставляют выбирать: скорость, точность или цена. Мы решили, что жертвы не нужны, и собрали serverless-решение, где всё хорошо одновременно.

Ключевая идея:

  • нагрузка скачет ⇒ ресурсы выделяем динамически;
  • алгоритм HNSW жрёт память, но его можно «сплющить» квантованием и развернуть обратно при необходимости.

Что умеет Vectroid

  • Поиск по HNSW: 90 % recall при 10 QPS и P99 = 34 мс (MS Marco, 138 M векторов).
  • Индексация 1 M векторов в минуту, 1 B — за 48 мин.
  • Записи становятся видны почти сразу после вставки.
  • Масштаб до миллиардов векторов в одном пространстве.
  • Пишущая и читающая части масштабируются отдельно, данные живут в GCS/S3, индексы подгружаются лениво и выгружаются при простое.

Архитектура
Два независимых микросервиса: ingest и query. Все слои (вставка, индекс, поиск) масштабируются отдельно, память экономится квантованием и покадровой выгрузкой.

Попробовать бесплатно — 100 ГБ индексов навсегда.

by mathewpregasen • 12 сентября 2025 г. в 16:56 • 80 points

ОригиналHN

#hnsw#vector-databases#serverless#gcs#s3#clickhouse#vector-search#quantization

Комментарии (41)

  • Предложена идея «векторного движка» как лёгкой встраиваемой библиотеки для быстрого построения и поиска эмбеддингов, без переизобретения велосипеда в каждом продукте.
  • Участники спорят о масштабируемости: 1 млрд 4096-мерных векторов теоретически невозможно держать в одной VRAM-карте (4 Т скаляров), но можно разбить на кластеры или сжать квантованием.
  • Ключевой вызов — не алгоритм (HNSW/IVF), а распределённая архитектура: отдельное масштабирование записи и чтения, баланс цена-точность-латентность.
  • Уже есть похожие open-source решения (USearch в ClickHouse, TurboPuffer), но новые SaaS-продукты (Vectroid и др.) обещают серверлесс, объектное хранилище и «редисо-подобный» кэш.
  • Часть аудитории критикует закрытость кода и риск вендор-локина; стартапы отвечают, что opensource пока замедляет релизы, а вектора легко экспортировать.

Data engineering and software engineering are converging (clickhouse.com)

Кратко:
Инженеры, создающие realtime-аналитику или AI-функции, нуждаются в инфраструктуре данных с современным developer experience (DX). MooseStack от 514 — open-source DX-слой для ClickHouse.


Слияние дисциплин

Классические хранилища и озёра строились для аналитиков: SQL, BI-дашборды. Теперь же realtime-данные встроены в продукты и AI-функции, а команды разработки обязаны поставлять их так же быстро, как и обычный код.

  • Транзакционные БД (Postgres, MySQL) хороши для разработки, но проваливаются при аналитических нагрузках.
  • Облачные аналитические платформы (Snowflake, BigQuery) удобны для пакетных ETL, но не обеспечивают свежесть данных и sub-second ответов, а DX в них устарел.

UX-разрыв

Пользователи хотят аналитику за миллисекунды. ClickHouse решает задачу: на порядки быстрее Postgres и дешевле Snowflake/Databricks.


DX-разрыв

Разработчики привыкли к локальному циклу «код → тест → CI/CD». В мире данных такого нет: нет локального окружения, медленные итерации, конфликты между data- и software-инженерами.


MooseStack

514 выпустили MooseStack — open-source DX-слой поверх ClickHouse:

  • Git-native, local-first, everything-as-code.
  • Единый язык схем и запросов для всех специалистов.
  • Поддержка CI/CD, preview-окружений, автотестов.

by craneca0 • 29 августа 2025 г. в 18:43 • 80 points

ОригиналHN

#clickhouse#postgresql#mysql#snowflake#bigquery#databricks#terraform#kubernetes#sql#python

Комментарии (50)

  • Сторонники «чистого» инженерного подхода считают, что data engineering изначально был частью software engineering, но позже к нему примешались аналитики, знающие лишь SQL/DBT.
  • В сообществе виден раскол: одни DE пишут Terraform, CI/CD, Spark и k8s, другие ограничиваются ноутбуками, SQL-запросами и no-code-инструментами.
  • Критика Python и SQL как «недостаточно инженерных» языков: динамическая типизация, отсутствие строгих схем и нормального тестирования.
  • Название роли «Data Engineer» стало размытым: HR ищут «писателей SQL», а специалисты просят называть их «Software Engineer, Big Data» или «Platform Engineer».
  • Сильные практики уже давно используют IaC, версионирование, code review и полноценный SDLC, но таких меньшинство.

ClickHouse matches PG for single-row UPDATEs and 4000 x faster for bulk UPDATEs (clickhouse.com)

ClickHouse vs PostgreSQL: UPDATE-скорость

  • Коротко: на одном железе ClickHouse догоняет PostgreSQL в одиночных UPDATE и в 4 000 раз быстрее при массовых.
  • Почему: колоночное хранилище + параллелизм ClickHouse выигрывает у строкового PostgreSQL при поиске и перезаписи миллионов строк.
  • Но: PostgreSQL всегда транзакционен; ClickHouse — нет, поэтому сравнение по «родным» режимам, а не по ACID.

Что мерили

  • 1 строка: UPDATE orders SET status='shipped' WHERE id=1234567
  • 1 млн строк: UPDATE orders SET discount=0.1 WHERE order_date<'2023-01-01'

Аппаратура

  • c6i.8xlarge (32 vCPU, 64 ГБ RAM, gp3 SSD)
  • PostgreSQL 16.4 (дефолт + fillfactor=90, checkpoint_timeout=30 min)
  • ClickHouse 25.7 (дефолт)

Результаты

метрика PostgreSQL ClickHouse
1 строка, мс 0.12 0.11
1 млн строк, сек 120 0.03
CPU, % 100 2800
чтение, ГБ 30 0.8

Почему так

  • Поиск: ClickHouse читает только нужные колонки, фильтрует за счёт индексов и распараллеливает на все ядра.
  • Запись: обе СУБД пишут новые версии строк (MVCC), но PostgreSQL переписывает целые страницы, а ClickHouse — только изменённые куски колонок.
  • Фоновая работа: PostgreSQL ждёт checkpoint’а, ClickHouse сразу сортирует и сжимает куски.

Когда выбирать

  • Нужны транзакции и row-level locks → PostgreSQL.
  • Нужны массовые обновления аналитических данных → ClickHouse.

Код и данные

GitHub

by truth_seeker • 17 августа 2025 г. в 17:52 • 93 points

ОригиналHN

#clickhouse#postgresql#sql#database#performance#benchmark#acid#mvv

Комментарии (33)

  • ClickHouse показывает огромный выигрыш в скорости обновлений, но это «яблоки-к-апельсинам»: PostgreSQL по умолчанию полностью транзакционен, а CH — нет.
  • Если данные можно терять или обновления редки, CH идеален; если нужна строгая согласованность, PostgreSQL остаётся безальтернативным.
  • Многие пользователи CH считают обновления адом: приходится использовать ReplacingMergeTree, версии или event-sourcing; прямых UPDATE-ов до недавнего времени вообще не было.
  • Часть комментаторов предлагает сравнивать CH с DuckDB, Vertica или ScyllaDB, а также настроить PostgreSQL (synchronous_commit = off, COPY) для более честного бенчмарка.
  • Авторы поста подчёркивают: цель не «победить» PostgreSQL, а показать, как каждая СУБД решает задачу в своей «родной» модели исполнения.