Привет, Хабр! 9 апреля с 17:00 до 20:00 наши инженеры соберутся на уютные посиделки с главным разработчиком ClickHouse Алексеем Миловидым. Поговорим про то, как мы используем систему управления базами данных в Авито, с какими сложностями сталкиваемся, и зададим Алексею вопросы о настоящем и будущем ClickHouse.


По понятным причинам мы сейчас не проводим мероприятия в офисе, так что приглашаем всех смотреть прямую трансляцию встречи. Формат: три микродоклада и большая Q&A сессия, где зрители смогут задать свои вопросы.



TL;DR: зарегистрируйтесь на Таймпаде, и мы пришлём ссылку с напоминанием о трансляции.

Доклады


Начнём с трёх докладов Авито, чтобы погрузить зрителей и Алексея в контекст беседы. Наши инженеры расскажут, как их команды используют ClickHouse. На всё про всё — 20 минут, и перейдём к сессии вопросов и ответов.


Владимир Колобаев, lead system administrator


image


У команды мониторинга два кластера ClickHouse. Первый — про метрики и мониторинг. Он состоит из 6 серверов общим объёмом данных 20 ТБ на SSD. Мы столкнулись с необходимостью перебалансировать все данные на 12 серверов. Боевая нагрузка никуда не делась, и стабильность кластера не должна пострадать. Это нестандартная для нас задача, потому что инструментов, позволяющий перебалансировать данные в пределах расширяемого кластера, нет.

Второй кластер — про логи, там 150 ТБ данных на 4 серверах. Был момент, когда мы эти серверы пытались разместить в трёх дата-центрах для того, чтобы повысить стабильность кластера. Хотелось бы обсудить нюансы обеих задач.



Максим Котяков, senior backend engineer


image


Коротко обрисую три момента, о которых хочется поговорить.

Первый — команда статистики для профессиональных пользователей Авито делает платформу реалтаймовой аналитики и статистики, которая пребывает в стадии бурного роста. Сейчас у нас на каждом шарде по три с лишним терабайта данных на SSD. Данных будет становиться всё больше, равно как и шардов, и реплик этих шардов. Поэтому нам особенно интересно всё, что связано с масштабированием кластеров.

Второй — покажу, как мы построили архитектуру нашего хранилища. Все события — как пользовательские, так и порождённые внутренними сервисами Авито — попадают в единственную большую и широкую таблицу, доступную снаружи только на запись. Оттуда они растекаются по множеству ad hoc оптимизируемых таблиц, скрывающихся под Material Views.

Третий — расскажу, почему мы не отправляем события напрямую в Кафку, и как при таком раскладе в зависимости от бизнес-потребности гарантируем или не гарантируем доставку событий до ClickHouse.



Сос Саакян, middle engineer в направлении big data


image


В Авито я строю инфраструктуру хранилища для Realtime AB. Весь наш кликстрим льется в ClickHouse. Мы постоянно чистим данные по Cron-у — у нас версия 18.7. За день накапливается 3—4 ТБ.

Пайплайн устроен через множество Materialized View. Данные агрегируем в наблюдения и метрики, считаем статтесты и выводим в отчёты. К ClickHouse подключены внешние словари с активной lazy_load, но после перезагрузки ноды в кластере, словарь сам не подгружается. Как следствие, пользователи при первом обращении видят ошибку в отчёте. Интересует, есть ли способ подгружать словарь штатными средствами автоматически после перезагрузки ноды, сохраняя при этом lazy_load.

Отдельно расскажу про дыру с реквизитами в XML конфиге словарей и то, как мы её скрыли. Хочется понять, как справиться с проблемой не костыльными способами.



Q&A сессия с Алексеем Миловидовым


Гость встречи — Алексей Миловидов, главный разработчик ClickHouse в Яндексе. Он ответит на вопросы команды Авито и зрителей трансляции.



Это Алексей. За фото спасибо нашим друзьям из Онтико


После вступительной части поразгоняем с Алексеем самые разные темы и накопившиеся боли. В дискуссии участвуют докладчики, Александр Козлов — бэкенд-инженер юнита Sale Success в Авито — и Кирилл Самохин — технический лид того же юнита. Надеемся, что беседа будет полезна всем инженерам, которые используют ClickHouse.


Планируем поговорить про:


  • Бэкапы. Лучшие практики, дружбу с Collapsing MT и партиционирование.
  • Решардинг при добавлении новых серверов.
  • Кэши. Параллельность выполнения N одинаковых select и частичное кэширование старых партиций.
  • Ноды в кластере. Как правильно альтерить distributed на всём кластере.
  • WAL. Rollback для alter и как реализовать контролируемое отставание реплики.
  • Асинхронный матвью. Как победить дублирование данных.
  • Логи. Три типа логов, по которым нет документации, и возможное существование дашборда.
  • Kafka engine. В каком состоянии движок.
  • Kill query. Почему не отрабатывает при высокой нагрузке на сервер.
  • Driver GoLang. Потребление памяти, проблемы с таймзонами и древние issues.
  • Внешние словари. Ошибки lazy_load и проблемы с безопасностью.

image


Чтобы задать свой вопрос, подключайтесь к прямой трансляции посиделок на ютубе. Модератор встречи Кирилл Самохин будет следить за зрительскими комментариями и вбрасывать интересные темы в обсуждение.



Пароли и явки


Трансляция стартует на нашем ютуб канале 9 апреля в 17:00. Пожалуйста, зарегистрируйтесь на Таймпаде — тогда мы пришлём вам напоминание со ссылкой на трансляцию в день мероприятия. А ещё там можно предварительно задать вопрос для дискуссии.


Берегите здоровье, увидимся в онлайне!