mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Add Berlin meetup link & update roadmap (#2491)
* Update roadmap * Add Berlin meetup link * fix indent
This commit is contained in:
parent
f2b1235f22
commit
2d541d3016
3
.gitignore
vendored
3
.gitignore
vendored
@ -13,6 +13,9 @@
|
||||
/docs/en_single_page/
|
||||
/docs/ru_single_page/
|
||||
/docs/venv/
|
||||
/docs/build/
|
||||
/docs/en/development/build/
|
||||
/docs/ru/development/build/
|
||||
|
||||
# callgrind files
|
||||
callgrind.out.*
|
||||
|
@ -1,100 +1,20 @@
|
||||
# Roadmap
|
||||
|
||||
## Q1 2018
|
||||
## Q3 2018
|
||||
|
||||
### New fuctionality
|
||||
- `ALTER UPDATE` for batch changing the data with approach similar to `ALTER DELETE`
|
||||
- Protobuf and Parquet input and output formats
|
||||
- Improved compatibility with Tableau and other BI tools
|
||||
|
||||
- Support for `UPDATE` and `DELETE`.
|
||||
## Q4 2018
|
||||
|
||||
- Multidimensional and nested arrays.
|
||||
- JOIN syntax compatible with SQL standard:
|
||||
- Mutliple `JOIN`s in single `SELECT`
|
||||
- Connecting tables with `ON`
|
||||
- Support table reference instead of subquery
|
||||
|
||||
It can look something like this:
|
||||
|
||||
```sql
|
||||
CREATE TABLE t
|
||||
(
|
||||
x Array(Array(String)),
|
||||
z Nested(
|
||||
x Array(String),
|
||||
y Nested(...))
|
||||
)
|
||||
ENGINE = MergeTree ORDER BY x
|
||||
```
|
||||
|
||||
- External MySQL and ODBC tables.
|
||||
|
||||
External tables can be integrated into ClickHouse using external dictionaries. This new functionality is a convenient alternative to connecting external tables.
|
||||
|
||||
```sql
|
||||
SELECT ...
|
||||
FROM mysql('host:port', 'db', 'table', 'user', 'password')`
|
||||
```
|
||||
|
||||
### Improvements
|
||||
|
||||
- Effective data copying between ClickHouse clusters.
|
||||
|
||||
Now you can copy data with the remote() function. For example: `INSERT INTO t SELECT * FROM remote(...) `.
|
||||
|
||||
This operation will have improved performance.
|
||||
|
||||
- O_DIRECT for merges.
|
||||
|
||||
This will improve the performance of the OS cache and "hot" queries.
|
||||
|
||||
## Q2 2018
|
||||
|
||||
### New functionality
|
||||
|
||||
- UPDATE/DELETE conform to the EU GDPR.
|
||||
|
||||
- Protobuf and Parquet input and output formats.
|
||||
|
||||
- Creating dictionaries using DDL queries.
|
||||
|
||||
Currently, dictionaries that are part of the database schema are defined in external XML files. This is inconvenient and counter-intuitive. The new approach should fix it.
|
||||
|
||||
- Integration with LDAP.
|
||||
|
||||
- WITH ROLLUP and WITH CUBE for GROUP BY.
|
||||
|
||||
- Custom encoding and compression for each column individually.
|
||||
|
||||
As of now, ClickHouse supports LZ4 and ZSTD compression of columns, and compression settings are global (see the article [Compression in ClickHouse](https://www.altinity.com/blog/2017/11/21/compression-in-clickhouse)). Per-column compression and encoding will provide more efficient data storage, which in turn will speed up queries.
|
||||
|
||||
- Storing data on multiple disks on the same server.
|
||||
|
||||
This functionality will make it easier to extend the disk space, since different disk systems can be used for different databases or tables. Currently, users are forced to use symbolic links if the databases and tables must be stored on a different disk.
|
||||
|
||||
### Improvements
|
||||
|
||||
Many improvements and fixes are planned for the query execution system. For example:
|
||||
|
||||
- Using an index for `in (subquery)`.
|
||||
|
||||
The index is not used right now, which reduces performance.
|
||||
|
||||
- Passing predicates from `where` to subqueries, and passing predicates to views.
|
||||
|
||||
The predicates must be passed, since the view is changed by the subquery. Performance is still low for view filters, and views can't use the primary key of the original table, which makes views useless for large tables.
|
||||
|
||||
- Optimizing branching operations (ternary operator, if, multiIf).
|
||||
|
||||
ClickHouse currently performs all branches, even if they aren't necessary.
|
||||
|
||||
- Using a primary key for GROUP BY and ORDER BY.
|
||||
|
||||
This will speed up certain types of queries with partially sorted data.
|
||||
|
||||
## Q3-Q4 2018
|
||||
|
||||
We don't have any set plans yet, but the main projects will be:
|
||||
|
||||
- Resource pools for executing queries.
|
||||
|
||||
This will make load management more efficient.
|
||||
|
||||
- ANSI SQL JOIN syntax.
|
||||
|
||||
Improve ClickHouse compatibility with many SQL tools.
|
||||
- JOIN execution improvements:
|
||||
- Distributed join not limited by memory
|
||||
- Predicate pushdown through join
|
||||
|
||||
- Resource pools for more precise distribution of cluster capacity between users
|
||||
|
@ -1,94 +1,20 @@
|
||||
# Roadmap
|
||||
|
||||
## Q1 2018
|
||||
## Q3 2018
|
||||
|
||||
### Новая функциональность
|
||||
- Поддержка `UPDATE` и `DELETE`.
|
||||
- Многомерные и вложенные массивы.
|
||||
- `ALTER UPDATE` для массового изменения данных с использованием подхода, аналогичного `ALTER DELETE`
|
||||
- Добавление Protobuf и Parquet к ассортименту поддерживаемых форматов ввода-вывода
|
||||
- Улучшением совместимости с Tableau и другими инструментами бизнес-аналитики
|
||||
|
||||
Это может выглядеть например так:
|
||||
## Q4 2018
|
||||
|
||||
```sql
|
||||
CREATE TABLE t
|
||||
(
|
||||
x Array(Array(String)),
|
||||
z Nested(
|
||||
x Array(String),
|
||||
y Nested(...))
|
||||
)
|
||||
ENGINE = MergeTree ORDER BY x
|
||||
```
|
||||
- Соответствующий SQL стандарту синтаксис JOIN:
|
||||
- Несколько `JOIN`ов в одном `SELECT`
|
||||
- Указание связи между таблицами через `ON`
|
||||
- Возможность сослаться на имя таблицы вместо обязательного использования подзапроса
|
||||
|
||||
- Внешние MySQL и ODBC таблицы.
|
||||
- Улучшения в исполнении JOIN:
|
||||
- Распределённый JOIN, не ограниченный оперативной памятью
|
||||
- Перенос зависящих только от одной стороны предикатов сквозь JOIN
|
||||
|
||||
Внешние таблицы можно интрегрировать в ClickHouse с помощью внешних словарей. Новая функциональность станет более удобной альтернативой для подключения внешних таблиц.
|
||||
|
||||
```sql
|
||||
SELECT ...
|
||||
FROM mysql('host:port', 'db', 'table', 'user', 'password')`
|
||||
```
|
||||
|
||||
### Улучшения
|
||||
|
||||
- Эффективное копирование данных между кластерами ClickHouse.
|
||||
|
||||
Сейчас можно копировать данные функцией remote(), например: `
|
||||
INSERT INTO t SELECT * FROM remote(...) `.
|
||||
|
||||
Производительность этой операции улучшится.
|
||||
|
||||
- O_DIRECT for merges.
|
||||
|
||||
Улучшит производительность кэша операционной системы, а также производительность 'горячих' запросов.
|
||||
|
||||
## Q2 2018
|
||||
|
||||
### Новая функциональность
|
||||
|
||||
- UPDATE/DELETE соответствующие Europe GDPR.
|
||||
- Входные и выходные форматы Protobuf и Parquet.
|
||||
- Создание словарей с помощью DDL-запросов.
|
||||
|
||||
Сейчас, словари, которые являются частью схемы базы данных, определены во внешних XML-файлах. Это неудобно и неочевидно. Новый подход должен это исправить.
|
||||
|
||||
- Интеграция с LDAP.
|
||||
- WITH ROLLUP и WITH CUBE для GROUP BY.
|
||||
- Настраиваемые кодировки и сжатие для каждого столбца в отдельности.
|
||||
|
||||
Сейчас, ClickHouse поддерживает сжатие столбцов с помощью LZ4 и ZSTD, и настройки сжатия глобальные (смотрите статью [Compression in ClickHouse](https://www.altinity.com/blog/2017/11/21/compression-in-clickhouse)). Поколоночное сжатие и кодирование обеспечит более эффективное хранение данных, что в свою очередь ускорит выполнение запросов.
|
||||
|
||||
- Хранение данных на нескольких дисках на одном сервере.
|
||||
|
||||
Реализация это функциональности упростит расширение дискового пространства, поскольку можно будет использовать различные дисковые системы для разных баз данных или таблиц. Сейчас, пользователи вынуждены использовать символические ссылки, если базы данных и таблицы должны храниться на другом диске.
|
||||
|
||||
### Улучшения
|
||||
|
||||
Планируется множество улучшений и исправлений в системе выполнения запросов. Например:
|
||||
|
||||
- Использование индекса для `in (subquery)`.
|
||||
|
||||
Сейчас, индекс не используется, что приводит к снижению производительности.
|
||||
|
||||
- Передача предикатов из `where` в подзапросы, а также передача предикатов в представления.
|
||||
|
||||
Передача предикатов необходима, поскольку представление изменяется поздапросом. Сейчас производительность фильтров для представлений низкая, представления не могут использовать первичный ключ оригинальной таблицы, что делает представления для больших таблиц бесполезными.
|
||||
|
||||
- Оптимизация операций с ветвлением (тернарный оператор, if, multiIf).
|
||||
|
||||
Сейчас, ClickHouse выполняет все ветви, даже если в этом нет необходимости.
|
||||
|
||||
- Использование первичного ключа для GROUP BY и ORDER BY.
|
||||
|
||||
Может ускорить отдельные типы запросов в которых данные частично отсортированы.
|
||||
|
||||
## Q3-Q4 2018
|
||||
|
||||
На данный период планы ещё не сформированы, однако можно указать основные проекты:
|
||||
|
||||
- Пулы ресурсов для выполнения запросов.
|
||||
|
||||
Позволят более эффективно управлять нагрузкой.
|
||||
|
||||
- Синтаксис ANSI SQL JOIN.
|
||||
|
||||
Улучшит совместимость ClickHouse со множеством SQL-инструментов.
|
||||
- Пулы ресурсов для более точного распределения мощностей кластера между его пользователями
|
||||
|
@ -90,6 +90,11 @@
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="announcement" class="colored-block">
|
||||
<div class="page">
|
||||
ClickHouse Commutnity Meetup in <a id="announcement-link" href="https://bitly.com/2Jv9Bug" rel="external nofollow" target="_blank">Berlin on July 3</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
<h2 id="slogan">ClickHouse. Just makes you think faster.</h2>
|
||||
|
||||
|
@ -16,6 +16,7 @@ server {
|
||||
rewrite ^/docs/$ https://clickhouse.yandex/docs/en/ permanent;
|
||||
rewrite ^/reference_en.html$ https://clickhouse.yandex/docs/en/single/ permanent;
|
||||
rewrite ^/reference_ru.html$ https://clickhouse.yandex/docs/ru/single/ permanent;
|
||||
rewrite ^/presentations/(.*)$ https://yandex.github.io/clickhouse-presentations/$1 permanent;
|
||||
|
||||
if ( $uri !~ .*/index.html ){
|
||||
rewrite ^/docs/(.*)/(.+)\.html$ /docs/$1/$2/ permanent;
|
||||
|
@ -15,8 +15,6 @@ DOCKER_HASH="$2"
|
||||
GULP="$BASE_DIR/node_modules/gulp/bin/gulp.js"
|
||||
if [[ -z "$1" ]]
|
||||
then
|
||||
git clone --recursive https://github.com/yandex/clickhouse-presentations.git presentations || true
|
||||
git --work-tree=$(readlink -f presentations) --git-dir=$(readlink -f presentations)/.git pull
|
||||
$GULP clean
|
||||
$GULP build
|
||||
docker build -t "${FULL_NAME}" "${BASE_DIR}"
|
||||
|
Loading…
Reference in New Issue
Block a user