high load++2016.highlights (dropbox+clickhouse)
TRANSCRIPT
Highload++ 2016 highlightОсобенности архитектуры распределённого хранилища в Dropbox
+ClickHouse: очень быстро и очень удобно <=> Переезжаем на Yandex ClickHouse
© Pavel Alexeev, 20161
Disclaimer
Информация и часть слайдов заимствованы из оригинальных презентаций:● Особенности архитектуры распределённого хранилища в Dropbox - Слава
Бахмутов (SRE в группе разработки стораджа в Dropbox)● ClickHouse: очень быстро и очень удобно - Виктор Тарнавский
(Руководитель разработки аналитических продуктов в Яндексе), Алексей Миловидов (Главный разработчик ClickHouse)
● Переезжаем на Yandex ClickHouse - Александр Зайцев (LifeStreet)
2
3
Dropbox:Isolation + Verification + Automatization
= Availability
4
Cross-zone replication
5
Availability
6
Надёжность оборудования - миф
7
Составные доступности
8
Физическая изоляция
9
Логическая изоляция
10
Эксплуатационная изоляция
11
Защита
● Валидация операций○ Оператор не виноват. Если что-то может быть поломано - оно будет поломано○ Команды проще○ Однозначный синтаксис
● Восстановление○ Многое можно восстановить автоматически
● Тестирование○ Тестировать стоит ПО, процедуры и даже тестирование
● Всегда что-то может пойти не так○ Необходимо определять что именно и где
12
Тестирование
13
Верификация
14
АвтоматизацияПараноидальная автоматизация
15
Naoru
16
Naoru - пример
17
18
Другие решения
19
Yandex ClickHouseVendor view
20
Яндекс.Метрика
21
Хранение данных
Классический подход● Агрегированные данные● Нормализация● Множество таблиц● Key -> Metrics
Современный подход● Сырые данные● Небольшое количество широких таблиц● Огромное количество фильтров и группировок● Event -> Properties
22
Основные идеи создания
➔ SQL диалект
➔ Линейная масштабируемость
➔ Фокус на скорости выполнения
запросов
➔ Приблизительные вычисления
➔ Массивы, кортежи
➔ Распределённые запросы “из коробки”
➔ Внешние словари
➔ URI и другие функции
23
Скорость на грани фантастики
➔ Типичные запросы быстрее секунды
➔ >100 раз быстрей нам Hadoop
➔ >100 раз быстрей чем типичная RDBMS
➔ 100 млн - 1 миллиард строк в секунду на одной ноде
➔ До 2 терабайт в секунду для кластера на 400 нод
24
Померяемся?
25
Когда не надо использовать
➔ OLTP
➔ Key-value
➔ Document-oriented
➔ Модификация данных
26
Best practises
➔ Широкие таблицы, множество колонок
➔ QPS относительно небольшой, но много данных
используется в каждом запросе
➔ Большой поток входящих данных
➔ Аналитика по петабайтам данных
27
Yandex ClickHouseSide view
28
LifeStreet
29
30
Быстрые результаты пилота
Две крайности
31
Быстрые результаты пилота
32
А если надо обновлять таблицу?
33
А если надо удалять?
34
А теперь боль!
35
Залог успешного переезда