2017-03-06 15:08:43 +00:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en" style="background-color: #FFF;">
|
|
|
|
|
<head>
|
|
|
|
|
<title>ClickHouse meetup в Санкт-Петербурге</title>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
<link rel="stylesheet" href="shower/themes/ribbon/styles/screen-16x10.css">
|
|
|
|
|
</head>
|
|
|
|
|
<body class="shower list">
|
|
|
|
|
<header class="caption">
|
|
|
|
|
<h1>ClickHouse meetup в Санкт-Петербурге</h1>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
<section class="slide" id="cover">
|
|
|
|
|
<h1 style="margin-top: 200px">ClickHouse meetup<br/>в Санкт-Петербурге</h1>
|
|
|
|
|
</section>
|
2017-03-31 16:00:30 +00:00
|
|
|
|
|
2017-03-06 15:08:43 +00:00
|
|
|
|
<section class="slide">
|
|
|
|
|
<h2>ClickHouse: настоящее и будущее</h2>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section class="slide">
|
|
|
|
|
<h2>Команда</h2>
|
|
|
|
|
<p>Теперь 5 разработчиков.</p>
|
|
|
|
|
<p>
|
|
|
|
|
<img src="pictures/milovidov.jpg" style="height:150px;">
|
|
|
|
|
<img src="pictures/vludv.jpg" style="height:150px;">
|
|
|
|
|
<img src="pictures/ztlpn.jpg" style="height:150px;">
|
|
|
|
|
<img src="pictures/proller.jpg" style="height:150px;">
|
|
|
|
|
<img src="pictures/stanly.jpg" style="height:150px;">
|
|
|
|
|
</p>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section class="slide">
|
2017-03-31 16:00:30 +00:00
|
|
|
|
|
2017-03-06 15:08:43 +00:00
|
|
|
|
<h2>В предыдущих сериях</h2>
|
|
|
|
|
|
|
|
|
|
<p>— HTTP и executable источники;</p>
|
|
|
|
|
<p>— оптимизация мержей, вертикальный мерж;</p>
|
|
|
|
|
<p>— трассировка распределённых запросов;</p>
|
|
|
|
|
<p>— clickhouse-local;</p>
|
|
|
|
|
<p>— операторы BETWEEN, ||;</p>
|
|
|
|
|
<p>— функции UUID - text;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Новое в языке запросов</h2>
|
|
|
|
|
|
|
|
|
|
<p>— KILL QUERY;</p>
|
|
|
|
|
<p>— LIMIT BY;</p>
|
|
|
|
|
<p>— SELECT INTO OUTFILE;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Интерфейсы</h2>
|
|
|
|
|
|
|
|
|
|
<p>— возможность получить прогресс выполнения в HTTP заголовках;</p>
|
|
|
|
|
<p>— возможность пропуска ошибок в текстовых форматах;</p>
|
|
|
|
|
<p>— правильные коды ответа в HTTP интерфейсе;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Сборка</h2>
|
|
|
|
|
|
|
|
|
|
<p>— «правильная» сборка и пакеты;</p>
|
|
|
|
|
<p>— Таблица system.build_options;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Словари</h2>
|
|
|
|
|
|
|
|
|
|
<p>— производительность кэшируемых внешних словарей;</p>
|
|
|
|
|
<p>— инструментирование кэшируемых внешних словарей;</p>
|
|
|
|
|
<p>— HTTPS словари;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Инструментирование</h2>
|
|
|
|
|
|
|
|
|
|
<p>— информация об использовании памяти под индекс;</p>
|
|
|
|
|
<p>— информация о размере столбцов в несжатом виде;</p>
|
|
|
|
|
<p>— метрики по потреблению оперативки кэшами;</p>
|
|
|
|
|
<p>— метрики про мержи;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Оптимизации</h2>
|
|
|
|
|
|
|
|
|
|
<p>— оптимизация DISTINCT;</p>
|
|
|
|
|
<p>— производительность gzip в HTTP интерфейсе;</p>
|
|
|
|
|
<p>— оптимизация mark cache;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Функции</h2>
|
|
|
|
|
|
|
|
|
|
<p>— правильная логика сравнений, least, greatest;</p>
|
|
|
|
|
<p>— groupUniqArray для всех типов данных;</p>
|
|
|
|
|
<p>— decodeURLComponent;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Что-то ещё</h2>
|
|
|
|
|
|
|
|
|
|
<p>— защита от случайного DROP TABLE;</p>
|
|
|
|
|
<p>— use_client_time_zone; timezone в конфиге;</p>
|
|
|
|
|
<p>— fsync_metadata;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Сообщество</h2>
|
|
|
|
|
|
|
|
|
|
<p>— интеграция с Grafana, Redash, Apache Zeppelin, Superset;</p>
|
|
|
|
|
<p>— правильные пакеты для CentOS, RHEL, GosLinux;</p>
|
|
|
|
|
<p>— драйвер native протокола для Go и C++;</p>
|
|
|
|
|
<p>— возможность передавать заголовки X-ClickHouse-*;</p>
|
|
|
|
|
<p>— бенчмарки NYC Taxi, Percona (Spark);</p>
|
|
|
|
|
<p>— бенчмарк Greenplum;</p>
|
|
|
|
|
<p>— англоязычный Telegram чат;</p>
|
|
|
|
|
<p>— встречи и доклады (Брюссель, Париж);</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section class="slide">
|
|
|
|
|
<h2>ClickHouse vs. Spark</h2>
|
|
|
|
|
<p>https://www.percona.com/blog/2017/02/13/clickhouse-new-opensource-columnar-database/</p>
|
|
|
|
|
<img src="pictures/spark.png" style="height:60%"/>
|
|
|
|
|
</section>
|
2017-03-31 16:00:30 +00:00
|
|
|
|
|
2017-03-06 15:08:43 +00:00
|
|
|
|
<section class="slide">
|
|
|
|
|
<h2>ClickHouse vs. Greenplum</h2>
|
|
|
|
|
<p><img src="pictures/greenplum.png" style="width:50%"/></p>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>TODO (март-апрель 2017)</h2>
|
|
|
|
|
|
|
|
|
|
<p>— распределённые DDL запросы;</p>
|
|
|
|
|
<p>— конфиги в ZooKeeper;</p>
|
|
|
|
|
<p>— полная поддержка NULL;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>TODO (весна-лето 2017)</h2>
|
|
|
|
|
|
|
|
|
|
<p>— работоспособность ODBC драйвера под Windows;</p>
|
|
|
|
|
<p>— переделать анализ запроса: правильная поддержка JOIN;</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<section class="slide">
|
|
|
|
|
|
|
|
|
|
<h2>Дополнительно</h2>
|
|
|
|
|
|
|
|
|
|
<p>job-clickhouse@yandex-team.ru</p>
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<div class="progress"></div>
|
|
|
|
|
<script src="shower/shower.min.js"></script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|