High load++2016.highlights (dropbox+clickhouse)

36
Highload++ 2016 highlight Особенности архитектуры распределённого хранилища в Dropbox + ClickHouse: очень быстро и очень удобно <=> Переезжаем на Yandex ClickHouse © Pavel Alexeev, 2016 1

Transcript of High load++2016.highlights (dropbox+clickhouse)

Page 1: High load++2016.highlights (dropbox+clickhouse)

Highload++ 2016 highlightОсобенности архитектуры распределённого хранилища в Dropbox

+ClickHouse: очень быстро и очень удобно <=> Переезжаем на Yandex ClickHouse

© Pavel Alexeev, 20161

Page 2: High load++2016.highlights (dropbox+clickhouse)

Disclaimer

Информация и часть слайдов заимствованы из оригинальных презентаций:● Особенности архитектуры распределённого хранилища в Dropbox - Слава

Бахмутов (SRE в группе разработки стораджа в Dropbox)● ClickHouse: очень быстро и очень удобно - Виктор Тарнавский

(Руководитель разработки аналитических продуктов в Яндексе), Алексей Миловидов (Главный разработчик ClickHouse)

● Переезжаем на Yandex ClickHouse - Александр Зайцев (LifeStreet)

2

Page 3: High load++2016.highlights (dropbox+clickhouse)

3

Dropbox:Isolation + Verification + Automatization

= Availability

Page 4: High load++2016.highlights (dropbox+clickhouse)

4

Cross-zone replication

Page 5: High load++2016.highlights (dropbox+clickhouse)

5

Availability

Page 6: High load++2016.highlights (dropbox+clickhouse)

6

Надёжность оборудования - миф

Page 7: High load++2016.highlights (dropbox+clickhouse)

7

Составные доступности

Page 8: High load++2016.highlights (dropbox+clickhouse)

8

Физическая изоляция

Page 9: High load++2016.highlights (dropbox+clickhouse)

9

Логическая изоляция

Page 10: High load++2016.highlights (dropbox+clickhouse)

10

Эксплуатационная изоляция

Page 11: High load++2016.highlights (dropbox+clickhouse)

11

Защита

● Валидация операций○ Оператор не виноват. Если что-то может быть поломано - оно будет поломано○ Команды проще○ Однозначный синтаксис

● Восстановление○ Многое можно восстановить автоматически

● Тестирование○ Тестировать стоит ПО, процедуры и даже тестирование

● Всегда что-то может пойти не так○ Необходимо определять что именно и где

Page 12: High load++2016.highlights (dropbox+clickhouse)

12

Тестирование

Page 13: High load++2016.highlights (dropbox+clickhouse)

13

Верификация

Page 14: High load++2016.highlights (dropbox+clickhouse)

14

АвтоматизацияПараноидальная автоматизация

Page 15: High load++2016.highlights (dropbox+clickhouse)

15

Naoru

Page 16: High load++2016.highlights (dropbox+clickhouse)

16

Naoru - пример

Page 17: High load++2016.highlights (dropbox+clickhouse)

17

Page 18: High load++2016.highlights (dropbox+clickhouse)

18

Другие решения

Page 19: High load++2016.highlights (dropbox+clickhouse)

19

Yandex ClickHouseVendor view

Page 20: High load++2016.highlights (dropbox+clickhouse)

20

Яндекс.Метрика

Page 21: High load++2016.highlights (dropbox+clickhouse)

21

Хранение данных

Классический подход● Агрегированные данные● Нормализация● Множество таблиц● Key -> Metrics

Современный подход● Сырые данные● Небольшое количество широких таблиц● Огромное количество фильтров и группировок● Event -> Properties

Page 22: High load++2016.highlights (dropbox+clickhouse)

22

Основные идеи создания

➔ SQL диалект

➔ Линейная масштабируемость

➔ Фокус на скорости выполнения

запросов

➔ Приблизительные вычисления

➔ Массивы, кортежи

➔ Распределённые запросы “из коробки”

➔ Внешние словари

➔ URI и другие функции

Page 23: High load++2016.highlights (dropbox+clickhouse)

23

Скорость на грани фантастики

➔ Типичные запросы быстрее секунды

➔ >100 раз быстрей нам Hadoop

➔ >100 раз быстрей чем типичная RDBMS

➔ 100 млн - 1 миллиард строк в секунду на одной ноде

➔ До 2 терабайт в секунду для кластера на 400 нод

Page 24: High load++2016.highlights (dropbox+clickhouse)

24

Померяемся?

Page 25: High load++2016.highlights (dropbox+clickhouse)

25

Когда не надо использовать

➔ OLTP

➔ Key-value

➔ Document-oriented

➔ Модификация данных

Page 26: High load++2016.highlights (dropbox+clickhouse)

26

Best practises

➔ Широкие таблицы, множество колонок

➔ QPS относительно небольшой, но много данных

используется в каждом запросе

➔ Большой поток входящих данных

➔ Аналитика по петабайтам данных

Page 27: High load++2016.highlights (dropbox+clickhouse)

27

Yandex ClickHouseSide view

Page 28: High load++2016.highlights (dropbox+clickhouse)

28

LifeStreet

Page 29: High load++2016.highlights (dropbox+clickhouse)

29

Page 30: High load++2016.highlights (dropbox+clickhouse)

30

Быстрые результаты пилота

Две крайности

Page 31: High load++2016.highlights (dropbox+clickhouse)

31

Быстрые результаты пилота

Page 32: High load++2016.highlights (dropbox+clickhouse)

32

А если надо обновлять таблицу?

Page 33: High load++2016.highlights (dropbox+clickhouse)

33

А если надо удалять?

Page 34: High load++2016.highlights (dropbox+clickhouse)

34

А теперь боль!

Page 35: High load++2016.highlights (dropbox+clickhouse)

35

Залог успешного переезда