ClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
5. Яндекс.Метрика - в тройке крупнейших веб-аналитических
систем по количеству сайтов.
Более 20 млрд. событий в день
Более 1 млн. сайтов
Более 100 000 аналитиков каждый день
Яндекс.Метрика
5
11. Максимально быстро выполнять запросы
Обработка данных в реальном времени
Возможность хранить петабайты данных
Отказоустойивость в терминах датацентров
Гибкий язык запросов
Что мы хотим от базы данных?
11
20. 20
# Weekly traffic and audience
SELECT
count() as visits,
sum(PageViews) as hits,
uniq(UserID) as users
FROM visits_all
WHERE StartDate > today() - 7
21. 21
# Using external dictionary for regions
SELECT
count() as visits,
regionToName(regionToCountry(RegionID), 'en')
as country
FROM visits_all
WHERE StartDate > today() - 7
GROUP BY country
ORDER BY visits DESC
LIMIT 10
22. Типичные запросы
быстрей чем за секунду
>100 раз быстрей чем Hadoop
>100 раз быстрей чем типичная DBMS
100 млн - 1 миллиард
строк в секунду на одной ноде
До 2 терабайт в секунду
для кластера на 400 нод
Скорость на грани фантастики
22
23. 23
1. Делаем запрос
2. Идём пить кофе
У тебя нет ClickHouse У тебя есть ClickHouse
Проверь 37 идей за 5 минут!
ВНИМАНИЕ: развидеть нельзя
30. Нет единой точки координации
запросов
Асинхронная репликация
ZooKeeper для координации реплик
(не используется в SELECT)
Масштабируемость и отказоустойчивость
30
34. Широкие таблицы
Много колонок
QPS относительно небольшой
но много данных используется
в каждом запросе
Большой поток входящих данных
Аналитика по петабайтам данных
ClickHouse: best practises
34
35. С этого обычно пробуют ClickHouse
Что делать:
Вставить access и серверные логи в ClickHouse
примерное время: несколько часов
Что получаем:
Анализируем любые инциденты за секунды
Мониторинг и дашборды по ошибкам, таймингам и прочему
Кейс: анализ серверных логов
35
36. Можно построить свой Data Warehouse и копать данные
с невероятной скоростью
Что делать:
Берём Hadoop или другую "не такую быструю" базу
Копируем все данные в ClickHouse
Что получаем:
Realtime аналитика бизнес-процессов
Довольные аналитики и менеджеры
Легко построить внутренние дашборды/метрики
Кейс: внутренняя база для аналитики
36