SlideShare una empresa de Scribd logo
1 de 16
Анализируем данные с
clickhouse
Alexandr Sigachev for orel-rb.ru
Немного истории:
Примерно 2011 год.
Запускаем внутреннюю статистику для коммерческого проекта
Хранилище данных - mysql
На старте около ~ 50_000 событий в сутки
Рост объемов данных
Популярность растет, количество событий с каждым месяцем увеличивается
конец 2011 ~ 200_000
конец 2012 ~ 800_000
конец 2013 ~ 1_600_000
ну вы поняли….
Проблемы по мере эксплуатации
Через 6-8 месяцев уперлись в скорость SATA HDD
Через год перестало хватать 32Gb ОЗУ
Расширение собираемых данных (alter table на таблицу > 50Gb)
Шардирование данных
Агрегация данных на уровне логики приложения
Внезапно данные нужно бекапить. (вы бекапили 500Gb mysql ?)
Как восстановить бекап базы ~500Gb ??????
Yandex открывает Clickhouse в OpenSource
15 июня 2016 статья на хабра
сравнения с:
Коммерческие OLAP СУБД (Vertica, etc) - Дорого
Облачные решения. (Google BigQuery) - Постоянно платит за облако
Надстройки над Hadoop. (Spark SQL) - сложно
Open-source OLAP СУБД. (Apache Kylin) - только что узнал, что они есть
Clickhouse - изучение
Вышла новая DB - я обязан ее попробовать на зло админам
Яндекс решал схожие проблемы в масштабах яндекса.
Мы снова homepage на фоне яндекса
Загрузим наши statistic_dump.sql
Ограничения Clickhouse
Нет значения NULL
Нет DELETE, UPDATE в привычном понимание
Партиционирование по месяцам
Объемные вставки и редкое чтение (>1000rosw, ~100rps)
Отличительные возможности ClickHouse
1. По-настоящему столбцовая СУБД.
2. Сжатие данных.
3. Хранение данных на диске.
4. Параллельная обработка запроса на многих процессорных ядрах.
5. Распределенная обработка запроса на многих серверах.
6. Поддержка SQL.
7. Векторный движок.
8. Обновление данных в реальном времени.
9. Наличие индексов.
10. Подходит для онлайн запросов.
11. Поддержка приближенных вычислений.
12. Поддержка вложенных структур данных. Поддержка массивов в качестве типов
данных.
13. Поддержка ограничений на сложность запросов, а также квот.
14. Репликация данных, поддержка целостности данных на репликах.
Пратика clickhouse
Изучаем типы данных в CH и создаем таблицу
cat dump.sql | conver.pl | clickhouse-client --query='INSERT INTO stat FORMAT
Values'
Нет NULL
обязательно поле типа date для построения индекса (event_date)
cat stat.tsv | curl
'http://localhost:8123/?query=INSERT%20INTO%20ip20FORMAT%20TabSeparat
ed' --data-binary @-
Clickhouse - ощущения
Легко установить для работы
Быстрая вставка большими блоками
есть ресурсы? параллельная вставка в несколько потоков
500Gb mysql -> 40Gb Clickhouse
Это реально быстрые агрегации по сырым данным
Переход на CH позволит не увеличивать мощности еще 2-3 года
Можно добавить новый функционал
Что мы анализировали в Сlickhouse
Данные внутренней статистики
Пример экспорта access.log - https://goo.gl/Gfpg3R
netflow (gz ~ 40Gb)
Скорость подсетей на основе nginx access.log
Пример как быстро провести анализ скорости
Выбираем данные нужные для анализа
вход: cat access.log | awk '{print $2 , $5 " " $6, $11, $NF}' | format.pl >
вывод 1: 89.22.160.111 [16/Jan/2017:06:46:58 +0300] 2990159 0.147
вывод 2: 2017-01-16t2017-01-16T03:46:58t37.193.8.145t365617t0.003
экспорт: curl … | ip:8123?... FORMAT TabSeparated
Примеры запросов
Большое количество встроенных функций для анализа
toStartOfHour(datetime) - разбивка по часам
toStartOfFiveMinute(datetime)
IPv4StringToNum(ip)
IPv4NumToStringClassC(ip_num)
Функции для работы с URL
много других ….
Находим самые быстрые сети
Вопросы?
Александр Сигачев
asigatchov@gmail.com
ЗАО Инвентос

Más contenido relacionado

La actualidad más candente

NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...Ontico
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDBGleb Lebedev
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?Alexey Tokar
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанкуNikolay Sivko
 
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?Tim Mironov
 
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Ontico
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)Dmitry Degtyarev
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)Ontico
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Ontico
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetOntico
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...Vyacheslav Nikulin
 

La actualidad más candente (20)

NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDB
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанку
 
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?
 
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
 
No sql.mongodb scaling
No sql.mongodb scalingNo sql.mongodb scaling
No sql.mongodb scaling
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 

Similar a Анализируем данные с Clickhouse

Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Tanya Denisyuk
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)Andrew Panfilov
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopAlexey Bokov
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.mikhaelsmirnov
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015Shamim bhuiyan
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogAndrew Panfilov
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Coub
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBStepan Stolyarov
 
SSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular modeSSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular modeAndrey Korshikov
 
А.Левенчук -- аппаратное ускорение аналитики в BigData
А.Левенчук -- аппаратное ускорение аналитики в BigDataА.Левенчук -- аппаратное ускорение аналитики в BigData
А.Левенчук -- аппаратное ускорение аналитики в BigDataAnatoly Levenchuk
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Media Gorod
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)Sergey Skvortsov
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comOntico
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015Timur Safin
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..webhostingguy
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхAndrey Akulov
 
владивосток форум новости технологий 2015
владивосток форум новости технологий 2015владивосток форум новости технологий 2015
владивосток форум новости технологий 2015Elena Ometova
 

Similar a Анализируем данные с Clickhouse (20)

Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 
NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> Cascalog
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
Как мы строили аналитическую платформу на несколько миллиардов событии в меся...
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDB
 
SSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular modeSSAS: multidemention vs tabular mode
SSAS: multidemention vs tabular mode
 
А.Левенчук -- аппаратное ускорение аналитики в BigData
А.Левенчук -- аппаратное ускорение аналитики в BigDataА.Левенчук -- аппаратное ускорение аналитики в BigData
А.Левенчук -- аппаратное ускорение аналитики в BigData
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данных
 
владивосток форум новости технологий 2015
владивосток форум новости технологий 2015владивосток форум новости технологий 2015
владивосток форум новости технологий 2015
 

Más de Александр Сигачев

Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)Александр Сигачев
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)Александр Сигачев
 
Принципы проектирование ООП приложений - Скалкин Никита (Evrone) Блог прогр...
Принципы проектирование ООП приложений - Скалкин Никита (Evrone)   Блог прогр...Принципы проектирование ООП приложений - Скалкин Никита (Evrone)   Блог прогр...
Принципы проектирование ООП приложений - Скалкин Никита (Evrone) Блог прогр...Александр Сигачев
 

Más de Александр Сигачев (6)

Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
Изоморфные приложения на JavaScript - Озеров Илья. (Инвентос)
 
Принципы проектирование ООП приложений - Скалкин Никита (Evrone) Блог прогр...
Принципы проектирование ООП приложений - Скалкин Никита (Evrone)   Блог прогр...Принципы проектирование ООП приложений - Скалкин Никита (Evrone)   Блог прогр...
Принципы проектирование ООП приложений - Скалкин Никита (Evrone) Блог прогр...
 
Docker в development окружение
Docker в development окружениеDocker в development окружение
Docker в development окружение
 
Elasticsearch(java) fluentd(ruby) kibana(javascript)
Elasticsearch(java)fluentd(ruby) kibana(javascript)Elasticsearch(java)fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentd(ruby) kibana(javascript)
 

Анализируем данные с Clickhouse

  • 2. Немного истории: Примерно 2011 год. Запускаем внутреннюю статистику для коммерческого проекта Хранилище данных - mysql На старте около ~ 50_000 событий в сутки
  • 3. Рост объемов данных Популярность растет, количество событий с каждым месяцем увеличивается конец 2011 ~ 200_000 конец 2012 ~ 800_000 конец 2013 ~ 1_600_000 ну вы поняли….
  • 4. Проблемы по мере эксплуатации Через 6-8 месяцев уперлись в скорость SATA HDD Через год перестало хватать 32Gb ОЗУ Расширение собираемых данных (alter table на таблицу > 50Gb) Шардирование данных Агрегация данных на уровне логики приложения Внезапно данные нужно бекапить. (вы бекапили 500Gb mysql ?) Как восстановить бекап базы ~500Gb ??????
  • 5. Yandex открывает Clickhouse в OpenSource 15 июня 2016 статья на хабра сравнения с: Коммерческие OLAP СУБД (Vertica, etc) - Дорого Облачные решения. (Google BigQuery) - Постоянно платит за облако Надстройки над Hadoop. (Spark SQL) - сложно Open-source OLAP СУБД. (Apache Kylin) - только что узнал, что они есть
  • 6. Clickhouse - изучение Вышла новая DB - я обязан ее попробовать на зло админам Яндекс решал схожие проблемы в масштабах яндекса. Мы снова homepage на фоне яндекса Загрузим наши statistic_dump.sql
  • 7. Ограничения Clickhouse Нет значения NULL Нет DELETE, UPDATE в привычном понимание Партиционирование по месяцам Объемные вставки и редкое чтение (>1000rosw, ~100rps)
  • 8. Отличительные возможности ClickHouse 1. По-настоящему столбцовая СУБД. 2. Сжатие данных. 3. Хранение данных на диске. 4. Параллельная обработка запроса на многих процессорных ядрах. 5. Распределенная обработка запроса на многих серверах. 6. Поддержка SQL. 7. Векторный движок. 8. Обновление данных в реальном времени. 9. Наличие индексов. 10. Подходит для онлайн запросов. 11. Поддержка приближенных вычислений. 12. Поддержка вложенных структур данных. Поддержка массивов в качестве типов данных. 13. Поддержка ограничений на сложность запросов, а также квот. 14. Репликация данных, поддержка целостности данных на репликах.
  • 9. Пратика clickhouse Изучаем типы данных в CH и создаем таблицу cat dump.sql | conver.pl | clickhouse-client --query='INSERT INTO stat FORMAT Values' Нет NULL обязательно поле типа date для построения индекса (event_date) cat stat.tsv | curl 'http://localhost:8123/?query=INSERT%20INTO%20ip20FORMAT%20TabSeparat ed' --data-binary @-
  • 10. Clickhouse - ощущения Легко установить для работы Быстрая вставка большими блоками есть ресурсы? параллельная вставка в несколько потоков 500Gb mysql -> 40Gb Clickhouse Это реально быстрые агрегации по сырым данным Переход на CH позволит не увеличивать мощности еще 2-3 года Можно добавить новый функционал
  • 11. Что мы анализировали в Сlickhouse Данные внутренней статистики Пример экспорта access.log - https://goo.gl/Gfpg3R netflow (gz ~ 40Gb) Скорость подсетей на основе nginx access.log
  • 12. Пример как быстро провести анализ скорости Выбираем данные нужные для анализа вход: cat access.log | awk '{print $2 , $5 " " $6, $11, $NF}' | format.pl > вывод 1: 89.22.160.111 [16/Jan/2017:06:46:58 +0300] 2990159 0.147 вывод 2: 2017-01-16t2017-01-16T03:46:58t37.193.8.145t365617t0.003 экспорт: curl … | ip:8123?... FORMAT TabSeparated
  • 13. Примеры запросов Большое количество встроенных функций для анализа toStartOfHour(datetime) - разбивка по часам toStartOfFiveMinute(datetime) IPv4StringToNum(ip) IPv4NumToStringClassC(ip_num) Функции для работы с URL много других ….
  • 15.