mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Update roadmap
This commit is contained in:
parent
0ceed79d4e
commit
52f81ce3a5
@ -16,9 +16,11 @@
|
||||
|
||||
Изначально делал [Андрей Чулков](https://github.com/achulkov2), ВШЭ, теперь доделывает [Ольга Хвостикова](https://github.com/stavrolia), но сроки немного сдвинуты из-за задачи 25.9. Будем надеятся на реализацию к концу ноября. Впрочем, [Андрей Чулков](https://github.com/achulkov2) скоро сможет помочь её доделать.
|
||||
|
||||
Upd. Доделывать будет другой человек. Хотелось бы в Q1, но приоритет не высокий.
|
||||
|
||||
### 1.2. Wait-free каталог баз данных.
|
||||
|
||||
Делает [Александр Токмаков](https://github.com/tavplubix), первый рабочий вариант в декабре 2019. Нужно для DataLens и Яндекс.Метрики.
|
||||
Q1. Делает [Александр Токмаков](https://github.com/tavplubix), первый рабочий вариант в декабре 2019. Нужно для DataLens и Яндекс.Метрики.
|
||||
|
||||
Манипуляции с каталогом баз данных: запросы CREATE TABLE, DROP TABLE, RENAME TABLE и DATABASE, требуют синхронизации с помощью блокировок. Эта синхронизация становится весьма сложной, так как на неё полагается много внутренних структур данных.
|
||||
|
||||
@ -26,7 +28,7 @@
|
||||
|
||||
### 1.3. Неблокирующие ALTER.
|
||||
|
||||
И полностью immutable куски. Делает [Александр Сапин](https://github.com/alesapin). Готов приступить к задаче в конце ноября 2019. Нужно для Яндекс.Метрики.
|
||||
Q1. И полностью immutable куски. Делает [Александр Сапин](https://github.com/alesapin). Готов приступить к задаче в конце ноября 2019. Нужно для Яндекс.Метрики.
|
||||
|
||||
### 1.4. Нетранзитивные ALTER столбцов.
|
||||
|
||||
@ -38,6 +40,8 @@
|
||||
|
||||
### 1.6. Полиморфные куски данных.
|
||||
|
||||
Компактные куски - Q1, куски в оперативке Q1/Q2.
|
||||
|
||||
Делает [Антон Попов](https://github.com/CurtizJ), первый рабочий вариант в декабре. Пререквизит чтобы снизить сложность мелких INSERT, что в свою очередь нужно для 1.12, иначе задача 1.12 не сможет нормально работать. Особенно нужно для Яндекс.Облака.
|
||||
|
||||
Данные в таблицах типа MergeTree в ClickHouse хранятся в виде набора независимых "кусков". Внутри куска, каждый столбец, а также индекс, хранится в отдельных файлах. Это сделано для возможности быстрых манипуляций со столбцами (пример - запрос ALTER DROP COLUMN). При вставке данных (INSERT), создаётся новый кусок. Для таблиц с большим количеством столбцов, запросы INSERT с маленьким количеством строк являются неэффективными, так как требуют создания большого количества файлов в файловой системе. Это является врождённой особенностью ClickHouse - одной из первой проблем, с которыми сталкиваются пользователи. Пользователям приходится буферизовывать данные и собирать их в более крупные пачки перед вставкой в ClickHouse.
|
||||
@ -54,6 +58,8 @@
|
||||
|
||||
Делает [Владимир Чеботарёв](https://github.com/excitoon), Altinity. Декабрь 2019.
|
||||
|
||||
Q1. Закоммичено, но есть технический долг, который исправляется сейчас.
|
||||
|
||||
### 1.9. Использование TTL для прореживания данных.
|
||||
|
||||
Будет делать Сорокин Николай, ВШЭ и Яндекс.
|
||||
@ -86,6 +92,8 @@
|
||||
|
||||
### 1.11. Виртуальная файловая система.
|
||||
|
||||
Q2.
|
||||
|
||||
Нужно для Яндекс.Облака. Делает Александр, Яндекс.Облако, а также Олег Ершов, ВШЭ и Яндекс.
|
||||
|
||||
ClickHouse использует для хранения данных локальную файловую систему. Существует сценарий работы, в котором размещение старых (архивных) данных было бы выгодно на удалённой файловой системе. Если файловая система POSIX совместимая, то это не составляет проблем: ClickHouse успешно работает с Ceph, GlusterFS, MooseFS. Также востребованным является сценарий использования S3 (из-за доступности в облаке) или HDFS (для интеграции с Hadoop). Но эти файловые системы не являются POSIX совместимыми. Хотя для них существуют FUSE драйверы, но скорость работы сильно страдает и поддержка неполная.
|
||||
@ -94,6 +102,8 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 1.12. Экспериментальная реализация VFS поверх S3 и HDFS.
|
||||
|
||||
Q2.
|
||||
|
||||
Нужно для Яндекс.Облака. Требует 1.11. Желательно 1.6 и 1.18.
|
||||
Делает Александр, Яндекс.Облако (сначала часть для S3), а также Олег Ершов, ВШЭ и Яндекс.
|
||||
|
||||
@ -103,8 +113,10 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 1.14. Не писать столбцы, полностью состоящие из нулей.
|
||||
|
||||
Антон Попов. Q1/Q2.
|
||||
В очереди. Простая задача, является небольшим пререквизитом для потенциальной поддержки полуструктурированных данных.
|
||||
|
||||
|
||||
### 1.15. Возможность иметь разный первичный ключ в разных кусках.
|
||||
|
||||
Сложная задача, только после 1.3.
|
||||
@ -130,6 +142,9 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
Делает [Николай Кочетов](https://github.com/KochetovNicolai). Финальная стадия разработки. Включение по-умолчанию в конце декабря 2019. Удаление старого кода в начале 2020.
|
||||
|
||||
Upd. На данный момент исправляются проблемы с регрессиями производительности в отдельных случаях. Кажется, что все проблемы исправлены.
|
||||
Включение по-умолчанию в Q1, но остаётся вторая часть задачи по корректному выделению async части.
|
||||
|
||||
### 2.2. Инфраструктура событий/метрик/ограничений/квот/трассировки.
|
||||
|
||||
В очереди. https://gist.github.com/alexey-milovidov/d62d73222d83b9319dc519cbb13aeff6
|
||||
@ -152,11 +167,11 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 2.7. Нормализация Context.
|
||||
|
||||
В очереди.
|
||||
В очереди. Нужно для YQL.
|
||||
|
||||
### 2.8. Декларативный парсер запросов.
|
||||
|
||||
Низкий приоритет. Задачу хочет сделать [Иван Лежанкин](https://github.com/abyss7) в свободное время, но пока ничего нет.
|
||||
Средний приоритет. Нужно для YQL.
|
||||
|
||||
### 2.9. Логгировние в format-стиле.
|
||||
|
||||
@ -193,7 +208,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 3.1. Перенос документации по функциям в код.
|
||||
|
||||
Требует 2.12 и 2.13.
|
||||
Требует 2.12 и 2.13. Хотим в Q1/Q2, средний приоритет.
|
||||
|
||||
### 3.2. Перенос однородных частей документации в код.
|
||||
|
||||
@ -201,7 +216,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 3.3. Исправить катастрофически отвратительно неприемлемый поиск по документации.
|
||||
|
||||
[Иван Блинков](https://github.com/blinkov/) - очень хороший человек. Сам сайт документации основан на технологиях, не удовлетворяющих требованиям задачи, и эти технологии трудно исправить.
|
||||
[Иван Блинков](https://github.com/blinkov/) - очень хороший человек. Сам сайт документации основан на технологиях, не удовлетворяющих требованиям задачи, и эти технологии трудно исправить. Задачу будет делать первый встретившийся нам frontend разработчик, которого мы сможем заставить это сделать.
|
||||
|
||||
### 3.4. + Добавить японский язык в документацию.
|
||||
|
||||
@ -212,7 +227,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 4.1. Уменьшение числа потоков при распределённых запросах.
|
||||
|
||||
[Никита Лапков](https://github.com/laplab), весна 2020.
|
||||
[Никита Лапков](https://github.com/laplab), весна 2020. Upd. Есть прототип.
|
||||
|
||||
### 4.2. Спекулятивное выполнение запросов на нескольких репликах.
|
||||
|
||||
@ -231,7 +246,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 4.4. Ограничение сетевой полосы при репликации.
|
||||
|
||||
Дмитрий Григорьев, ВШЭ.
|
||||
Дмитрий Григорьев, ВШЭ. Нужно для Метрики.
|
||||
|
||||
### 4.5. Возможность продолжить передачу куска данных при репликации после сбоя.
|
||||
|
||||
@ -251,19 +266,20 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 5.1. Разделение задач на более мелкие куски в clickhouse-copier.
|
||||
|
||||
Нужно для Метрики, в очереди, но исполнитель не назначен, есть шанс успеть в 2019.
|
||||
Q1. Нужно для Метрики, в очереди. Никита Михайлов.
|
||||
|
||||
### 5.2. Автонастройка лимита на оперативку и размера кэшей.
|
||||
|
||||
### 5.3. Встроенная ручка для Prometheus и, возможно, Solomon.
|
||||
### 5.3. + Встроенная ручка для Prometheus.
|
||||
|
||||
Простая задача. https://github.com/Vdimir
|
||||
Сделано. https://github.com/Vdimir
|
||||
|
||||
### 5.4. Opt-in сообщать в клиенте, если вышла новая версия.
|
||||
|
||||
### 5.5. LTS релизы.
|
||||
### 5.5. + LTS релизы.
|
||||
|
||||
Требует 7.5. Задачу хочет Метрика, Облако, БК, Маркет и Altinity. Первой LTS версией уже стала версия 19.14.
|
||||
Метрика, БК, Маркет уже используют более свежие версии чем LTS.
|
||||
|
||||
|
||||
## 6. Инструментирование.
|
||||
@ -271,15 +287,15 @@ ClickHouse использует небольшое подмножество фу
|
||||
### 6.1. Исправления сэмплирующего профайлера запросов.
|
||||
|
||||
Михаил Филимонов, Altinity. Ноябрь 2019. Сделано.
|
||||
Осталось ещё проверить работоспособность профайлера в первом потоке (что важно для INSERT).
|
||||
Осталось ещё проверить работоспособность профайлера в первом потоке (что важно для INSERT). Иван Лежанкин. Q1.
|
||||
|
||||
### 6.2. Добавление memory profiler.
|
||||
|
||||
Сравнительно простая задача, но только для опытных разработчиков. Нужна всем.
|
||||
Сравнительно простая задача, но только для опытных разработчиков. Нужна всем. Иван Лежанкин. Q1.
|
||||
|
||||
### 6.3. Учёт оперативки total расширить не только на запросы.
|
||||
|
||||
Исправление долгоживущей проблемы с дрифтом учёта оперативки. Нужна для Метрики и БК.
|
||||
Исправление долгоживущей проблемы с дрифтом учёта оперативки. Нужна для Метрики и БК. Иван Лежанкин. Q1.
|
||||
|
||||
### 6.4. Поддержка perf events как метрик запроса.
|
||||
|
||||
@ -291,11 +307,11 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
Требует 2.2.
|
||||
|
||||
### 6.6. Стек трейс для любых исключений.
|
||||
### 6.6. + Стек трейс для любых исключений.
|
||||
|
||||
Сейчас есть стек трейс для почти всех, но не всех исключений. Требует 7.4.
|
||||
|
||||
### 6.7. Таблица system.stack_trace.
|
||||
### 6.7. + Таблица system.stack_trace.
|
||||
|
||||
Сравнительно простая задача, но только для опытных разработчиков.
|
||||
|
||||
@ -327,7 +343,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
Сейчас включено только при сборке с clang, но продакшен сборка использует gcc.
|
||||
Требует 7.2 и, возможно, 7.1 (только в случае новой версии ICU).
|
||||
|
||||
### 7.5. Начать публиковать LTS релизы.
|
||||
### 7.5. + Начать публиковать LTS релизы.
|
||||
|
||||
[Александр Сапин](https://github.com/alesapin).
|
||||
|
||||
@ -364,11 +380,17 @@ UBSan включен в функциональных тестах, но не в
|
||||
При сборке с clang, -Weverything уже включено. Но в gcc есть уникальные warning-и, отсутствующие в clang.
|
||||
Сделал Wolf Kreuzerkrieg.
|
||||
|
||||
### 7.14. Альтернатива для readline и libedit.
|
||||
### 7.14. + Альтернатива для readline и libedit.
|
||||
|
||||
Тагир Кускаров, ВШЭ. Посмотрим на https://github.com/AmokHuginnsson/replxx
|
||||
Подключение replxx вместо readline сделал Иван Лежанкин.
|
||||
|
||||
Для ввода запросов в интерактивном режиме в клиенте командной строки clickhouse-client используется библиотека readline или libedit.
|
||||
### 7.14.1. Улучшение возможностей интерактивного режима clickhouse-client.
|
||||
|
||||
Тагир Кускаров, ВШЭ.
|
||||
|
||||
Upd. В рамках данной задачи добавляем подстветку синтаксиса и исправление проблем со вставкой больших запросов.
|
||||
|
||||
Для ввода запросов в интерактивном режиме в клиенте командной строки clickhouse-client использовалась библиотека readline или libedit.
|
||||
|
||||
Библиотеки readline и libedit обладает следующими недостатками:
|
||||
- (исправлено в новых версиях readline) Очень низкая производительность вставки больших кусков текста. Вставка каждого следующего символа имеет сложность O(n = количество предыдущих символов) и при вставке 1 МБ текста, скорость падает до десятков байт в секунду.
|
||||
@ -407,11 +429,13 @@ UBSan включен в функциональных тестах, но не в
|
||||
|
||||
Уже давно собираются универсальные tgz пакеты, но по нелепой случайности из них исчез install скрипт.
|
||||
[Александр Сапин](https://github.com/alesapin). Может делегировать эту задачу кому угодно.
|
||||
Upd. Сделано всё кроме инструкции на сайте. Для этого требуется создать директории testing/stable/prestable на repo.yandex.ru. Внезапно оказалось, что человек, отвечающий за это, в отпуске, и он не отвечает на вопрос, кто его заместитель. Q1.
|
||||
|
||||
### 7.18.1. Доделать бинарники под Mac.
|
||||
|
||||
Уже есть автосборка бинарников под Mac на каждый коммит и PR, но с недостатками.
|
||||
[Иван Лежанкин](https://github.com/abyss7). Требует 7.1, 7.2. Рекомендуется 7.14. Сейчас не хватает по крайней мере SSL и ICU. Нужно для Яндекс.Облака.
|
||||
Upd. Сделано SSL. Ориентируемся в Q1, но приоритет средний и может потеряться.
|
||||
|
||||
### 7.18. Поместить ссылку на собранные бинарники под Mac на сайт.
|
||||
|
||||
@ -480,6 +504,8 @@ Fuzzing тестирование - это тестирование случай
|
||||
|
||||
Также можно сделать функции с детерминированным генератором случайных чисел (аргументом передаётся seed) для воспроизводимости тестовых кейсов.
|
||||
|
||||
Upd. Сергей Штыков сделал функцию `randomPrintableASCII`.
|
||||
|
||||
### 7.24. Fuzzing лексера и парсера запросов; кодеков и форматов.
|
||||
|
||||
Андрей Некрашевич, ВШЭ.
|
||||
@ -496,6 +522,9 @@ Fuzzing тестирование - это тестирование случай
|
||||
Затем, возможно, [Иван Лежанкин](https://github.com/abyss7). Но сейчас приостановлено, так как Максим из YT должен исправить регрессию производительности в анализе индекса.
|
||||
|
||||
Максим из YT сказал, что сделает это после нового года.
|
||||
Максим из YT сказал, что "мы планируем в январе добиться".
|
||||
|
||||
Нужно для CHYT и YQL.
|
||||
|
||||
### 7.26. Побайтовая идентичность репозитория с Аркадией.
|
||||
|
||||
@ -529,11 +558,11 @@ Fuzzing тестирование - это тестирование случай
|
||||
|
||||
### 7.33. Выкладывать патч релизы в репозиторий автоматически.
|
||||
|
||||
[Александр Сапин](https://github.com/alesapin). Может делегировать эту задачу кому угодно.
|
||||
В очереди. Иван Лежанкин.
|
||||
|
||||
### 7.34. Бэкпортировать bugfix автоматически.
|
||||
|
||||
[Александр Сапин](https://github.com/alesapin). Может делегировать эту задачу кому угодно.
|
||||
В очереди. Иван Лежанкин.
|
||||
|
||||
### 7.35. Начальные правила для авто-merge.
|
||||
|
||||
@ -564,6 +593,8 @@ Altinity.
|
||||
|
||||
[Ольга Хвостикова](https://github.com/stavrolia).
|
||||
|
||||
Уменьшение числа stream-ов сделано, а вот правильная поддержка диапазонов - нет. Будем надеяться на Q1/Q2.
|
||||
|
||||
### 8.4. Унификация File, HDFS, S3 под URL.
|
||||
|
||||
### 8.5. + Аутентификация в S3.
|
||||
@ -579,7 +610,7 @@ Altinity.
|
||||
В ядрах 2.6 отсутствует один системный вызов, который библиотека hdfs3 использует без необходимости.
|
||||
Сделал Amos Bird.
|
||||
|
||||
### 8.8. Поддержка виртуальных столбцов с именем файла и путём.
|
||||
### 8.8. + Поддержка виртуальных столбцов с именем файла и путём.
|
||||
|
||||
[Ольга Хвостикова](https://github.com/stavrolia).
|
||||
|
||||
@ -611,10 +642,26 @@ Altinity.
|
||||
|
||||
### 8.16. Поддержка формата Avro.
|
||||
|
||||
Павел Круглов, ВШЭ и Яндекс.
|
||||
Andrew Onyshchuk. Есть pull request. Q1.
|
||||
|
||||
Формат Apache Avro является компактным структурированным построчным бинарным форматом данных с внешней схемой. Этот формат часто используется совместно с Kafka и поддержка его в качестве одного из форматов ввода-вывода в ClickHouse является востребованной пользователями.
|
||||
|
||||
### 8.16.1. Поддержка формата JSONEachRow, засунутого в массив.
|
||||
|
||||
Павел Круглов, ВШЭ и Яндекс.
|
||||
|
||||
### 8.16.2. Поддержка формата Thrift.
|
||||
|
||||
Павел Круглов, ВШЭ и Яндекс.
|
||||
|
||||
### 8.16.3. Поддержка формата MsgPack.
|
||||
|
||||
Павел Круглов, ВШЭ и Яндекс.
|
||||
|
||||
### 8.16.4. Формат Regexp.
|
||||
|
||||
Павел Круглов, ВШЭ и Яндекс.
|
||||
|
||||
### 8.17. ClickHouse как MySQL реплика.
|
||||
|
||||
Ильяс Адюгамов, ВШЭ.
|
||||
@ -642,6 +689,7 @@ Maxim Fedotov, Wargaming + Yuri Baranov, Яндекс.
|
||||
### 8.21. Поддержка произвольного количества языков для имён регионов.
|
||||
|
||||
Нужно для БК. Декабрь 2019.
|
||||
В декабре для БК сделан минимальный вариант этой задачи.
|
||||
|
||||
### 8.22. Поддержка синтаксиса для переменных в стиле MySQL.
|
||||
|
||||
@ -689,7 +737,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.4. Словарь из YDB (KikiMR).
|
||||
|
||||
Нужно для Метрики, а делать будет таинственный незнакомец из команды KikiMR (под вопросом).
|
||||
Нужно для Метрики, а делать будет таинственный незнакомец из команды KikiMR (под вопросом). Таинственный незнакомец не подтверждает, что он будет делать эту задачу.
|
||||
|
||||
### 10.5. Закрытие соединений и уменьшение числа соединений для MySQL и ODBC.
|
||||
|
||||
@ -707,15 +755,15 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.9. Уменьшение блокировок для cache словарей за счёт одновременных запросов одного и того же.
|
||||
|
||||
Нужно для БК, но мотивация задачи находится под вопросом, так как есть рабочее предположение о том, что данная задача не устраняет причину проблемы.
|
||||
Никита Михайлов. Q1. Нужно для БК, но мотивация задачи находится под вопросом, так как есть рабочее предположение о том, что данная задача не устраняет причину проблемы.
|
||||
|
||||
### 10.10. Возможность использования старых значений из cache словаря пока они перезапрашиваются.
|
||||
|
||||
Нужно для БК и Метрики.
|
||||
Никита Михайлов. Q1. Нужно для БК и Метрики.
|
||||
|
||||
### 10.11. Возможность исключительно асинхронных запросов в cache словарях.
|
||||
|
||||
Нужно для БК и Метрики. Требует 10.10.
|
||||
Никита Михайлов. Q1. Нужно для БК и Метрики. Требует 10.10.
|
||||
|
||||
### 10.12. Layout direct для словарей.
|
||||
|
||||
@ -731,7 +779,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.16. Словари на локальном SSD.
|
||||
|
||||
Никита Васильев, ВШЭ и Яндекс.
|
||||
Никита Васильев, ВШЭ и Яндекс. Есть pull request.
|
||||
|
||||
Реализовать в ClickHouse специализированный движок таблиц, подходящий для быстрых key-value запросов и оптимизированный для расположения данных на SSD. Это может быть: реализация на основе RocksDB; сериализованные RowBinary данные с индексом в оперативке; секретная очень эффективная структура данных, о которой я расскажу.
|
||||
|
||||
@ -778,7 +826,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 11.10. Преднастроенные HTTP handlers для запросов.
|
||||
|
||||
zhang2014
|
||||
zhang2014, есть pull request.
|
||||
|
||||
Возможность описать в конфигурационном файле handler (путь в URL) для HTTP запросов к серверу, которому соответствует некоторый параметризованный запрос. Пользователь может вызвать этот обработчик и не должен передавать SQL запрос.
|
||||
|
||||
@ -787,15 +835,18 @@ zhang2014
|
||||
|
||||
### 12.1. Role Based Access Control.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar). Финальная стадия разработки, рабочая версия в декабре 2019.
|
||||
[Виталий Баранов](https://github.com/vitlibar). Финальная стадия разработки, рабочая версия в начале февраля 2019.
|
||||
Q1. Сейчас сделаны все интерфейсы в коде и запросы, но не сделаны варианты хранения прав кроме прототипа.
|
||||
|
||||
### 12.2. Управление пользователями и правами доступа с помощью SQL запросов.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar). Финальная стадия разработки, рабочая версия в декабре 2019.
|
||||
Q1.
|
||||
|
||||
### 12.3. Подключение справочника пользователей и прав доступа из LDAP.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar). Требует 12.1.
|
||||
Q1/Q2.
|
||||
|
||||
### 12.4. Подключение IDM системы Яндекса как справочника пользователей и прав доступа.
|
||||
|
||||
@ -823,6 +874,7 @@ zhang2014
|
||||
### 13.3. Пулы ресурсов.
|
||||
|
||||
Требует 13.2 или сможем сделать более неудобную реализацию раньше.
|
||||
Обсуждается вариант неудобной реализации. Пока средний приоритет, целимся на Q1/Q2.
|
||||
|
||||
|
||||
## 14. Диалект SQL.
|
||||
@ -830,9 +882,12 @@ zhang2014
|
||||
### 14.1. Исправление семантики CAST для Nullable.
|
||||
|
||||
Нужно для DataLens. А также для внедрения в BI инструмент Looker.
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
### 14.2. Поддержка WITH для подзапросов.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
### 14.3. Поддержка подстановок для множеств в правой части IN.
|
||||
|
||||
### 14.4. Поддержка подстановок для идентификаторов (имён) в SQL запросе.
|
||||
@ -845,8 +900,12 @@ zhang2014
|
||||
|
||||
### 14.6. Глобальный scope для WITH.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
### 14.7. Nullable для WITH ROLLUP, WITH CUBE, WITH TOTALS.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
Простая задача.
|
||||
|
||||
### 14.8. Модификаторы DISTINCT, ORDER BY для агрегатных функций.
|
||||
@ -893,18 +952,23 @@ zhang2014.
|
||||
|
||||
### 14.18. UNION DISTINCT и возможность включить его по-умолчанию.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
Для BI систем.
|
||||
|
||||
### 14.19. Совместимость парсера типов данных с SQL.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
Для BI систем.
|
||||
|
||||
### 14.20. Позиционные аргументы для GROUP BY и ORDER BY.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
Тривиально и используется многими системами, но не входит в стандарт SQL.
|
||||
|
||||
### 14.21. Приведение типов для IN (подзапрос) и для JOIN.
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
|
||||
## 15. Улучшение поддержки JOIN.
|
||||
|
||||
@ -912,6 +976,15 @@ zhang2014.
|
||||
|
||||
Артём Зуйков. Сейчас merge JOIN включается вручную опцией и всегда замедляет запросы. Хотим, чтобы он замедлял запросы только когда это неизбежно.
|
||||
Кстати, смысл merge JOIN появляется только совместно с 15.2 и 15.3.
|
||||
Q1.
|
||||
|
||||
### 15.1.1. Алгоритм two-level merge JOIN.
|
||||
|
||||
Александр Кузьменков. В очереди.
|
||||
|
||||
### 15.1.2. Тестирование реализации JOIN в Greenplum.
|
||||
|
||||
В очереди.
|
||||
|
||||
### 15.2. Прокидывание условий в OUTER JOIN.
|
||||
|
||||
@ -934,7 +1007,7 @@ zhang2014.
|
||||
|
||||
## 16. Типы данных и функции.
|
||||
|
||||
### 16.1. DateTime64.
|
||||
### 16.1. + DateTime64.
|
||||
|
||||
Василий Немков, Altinity, декабрь 2019.
|
||||
|
||||
@ -964,6 +1037,8 @@ ClickHouse не является geospatial СУБД. Тем не менее, в
|
||||
|
||||
Похожая, но более сложная задача, которую ClickHouse пока не умеет решать - определение полигона среди множества полигонов, в которые попадают точки. Для примера: определение района города по географическим координатам. Для решения этой задачи нужно будет реализовать поддержку словарей с полигонами, в которых данные проиндексированы для быстрого поиска.
|
||||
|
||||
Upd. Андрей сделал прототип интерфейса и реализацию-заглушку внутри него.
|
||||
|
||||
### 17.2. GIS типы данных и операции.
|
||||
|
||||
Алексей Коряков, Алексей Илюхов, ВШЭ, Яндекс.Карты.
|
||||
@ -1070,13 +1145,15 @@ Hold. Полезно для заказчиков внутри Яндекса, н
|
||||
|
||||
Начинал Олег Ершов, доделывает Никита Михайлов, помогает [Александр Кузьменков](https://github.com/akuzm). Готово.
|
||||
|
||||
### 21.1.1. Избавление от лишнего копирование при параллельном парсинге форматов, если возможен mmap файла целиком.
|
||||
|
||||
### 21.2. Параллельное форматирование форматов.
|
||||
|
||||
После 21.1, предположительно Никита Михайлов. Задача сильно проще чем 21.1.
|
||||
|
||||
### 21.3. Исправление низкой производительности анализа индекса в случае большого множества в секции IN.
|
||||
|
||||
Нужно всем (Zen, БК, DataLens...) Пока ещё не выбран исполнитель.
|
||||
Нужно всем (Zen, БК, DataLens, TestEnv...). Антон Попов, Q1/Q2.
|
||||
|
||||
### 21.4. Использование ORDER BY ключа для оптимизации GROUP BY и DISTINCT.
|
||||
|
||||
@ -1091,12 +1168,14 @@ Hold. Полезно для заказчиков внутри Яндекса, н
|
||||
### 21.5. Распараллеливание INSERT при INSERT SELECT, если это необходимо.
|
||||
|
||||
[Vxider](https://github.com/Vxider), ICT
|
||||
Есть pull request.
|
||||
|
||||
### 21.6. Уменьшение числа потоков для SELECT в случае тривиального INSERT SELECT.
|
||||
|
||||
### 21.7. Кэш результатов запросов.
|
||||
|
||||
[Achimbab](https://github.com/achimbab).
|
||||
Есть pull request.
|
||||
|
||||
### 21.8. Взаимная интеграция аллокатора и кэша.
|
||||
|
||||
@ -1131,6 +1210,8 @@ Amos Bird.
|
||||
- Вынесение любых функций наружу any, anyLast.
|
||||
- При GROUP BY по transform или if по строкам, замена строк на Enum.
|
||||
|
||||
Сделана замена цепочек if на multiIf, но внезапно оказалось, что это является не оптимизацией, а наоборот.
|
||||
|
||||
### 21.12. Алгебраические оптимизации запросов.
|
||||
|
||||
Руслан Камалов, Михаил Малафеев, Виктор Гришанин, ВШЭ
|
||||
@ -1200,9 +1281,9 @@ Constraints позволяют задать выражение, истиннос
|
||||
|
||||
В ByteDance есть готовая реализация, но они её боятся из-за, возможно, низкого качества кода.
|
||||
|
||||
### 21.21. Чтение больших файлов с помощью mmap.
|
||||
### 21.21. + Чтение больших файлов с помощью mmap.
|
||||
|
||||
Тривиально, почти всё готово.
|
||||
Сделан вариант, но достаточно топорный. Без тестирования в продакшене включать по-умолчанию нельзя.
|
||||
|
||||
### 21.22. Userspace page cache.
|
||||
|
||||
@ -1211,6 +1292,7 @@ Constraints позволяют задать выражение, истиннос
|
||||
### 21.23. Ускорение работы с вторичными индексами.
|
||||
|
||||
zhang2014.
|
||||
Есть pull request.
|
||||
|
||||
|
||||
## 22. Долги и недоделанные возможности.
|
||||
@ -1219,9 +1301,9 @@ zhang2014.
|
||||
|
||||
Нужно для Яндекс.Облака. Сделал Алексей Миловидов.
|
||||
|
||||
### 22.2. Убрать возможность изменить настройки в native протоколе в случае readonly.
|
||||
### 22.2. + Убрать возможность изменить настройки в native протоколе в случае readonly.
|
||||
|
||||
Алексей Миловидов или [Виталий Баранов](https://github.com/vitlibar).
|
||||
N.Vartolomei.
|
||||
|
||||
### 22.3. Защита от абсурдно заданных пользователем кодеков.
|
||||
|
||||
@ -1229,25 +1311,27 @@ zhang2014.
|
||||
|
||||
### 22.4. Исправление оставшихся deadlocks в табличных RWLock-ах.
|
||||
|
||||
Александр Казаков. Нужно для Яндекс.Метрики и Datalens.
|
||||
Александр Казаков. Нужно для Яндекс.Метрики и Datalens. Задача постепенно тащится и исправлениями в соседних местах стала менее актуальна.
|
||||
В Q1 будет сделана или отменена с учётом 1.2. и 1.3.
|
||||
|
||||
### 22.5. Исправление редких срабатываний TSan в stress тестах в CI.
|
||||
### 22.5. + Исправление редких срабатываний TSan в stress тестах в CI.
|
||||
|
||||
Александр Казаков.
|
||||
|
||||
### 22.6. Изменение только DEFAULT в ALTER TABLE может поменять тип столбца.
|
||||
|
||||
### 22.7. Row-Level Security не работает в случае наличия в запросе IN подзапросов.
|
||||
### 22.7. + Row-Level Security не работает в случае наличия в запросе IN подзапросов.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar). Нужно для Метрики.
|
||||
Нужно для Метрики. Иван Лежанкин.
|
||||
|
||||
### 22.8. Исправить десериализацию параметров для параметризованных запросов.
|
||||
### 22.8. + Исправить десериализацию параметров для параметризованных запросов.
|
||||
|
||||
Хотел исправить Василий Немков, Altinity, но есть маленькие затруднения, наверное переделает Алексей Миловидов.
|
||||
|
||||
### 22.9. Разобраться с десериализацией массивов со значениями по-умолчанию в Protobuf формате в случае protobuf 3.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar). Возможно, это - фундаментальная проблема и следует её только документировать.
|
||||
Кажется, отменяем, но пока ещё не всё ясно.
|
||||
|
||||
### 22.10. Исправление дрифта при отслеживании потребления памяти запросами.
|
||||
|
||||
@ -1278,11 +1362,10 @@ zhang2014.
|
||||
|
||||
Altinity.
|
||||
|
||||
### 22.16. Исправление низкой производительности кодека DoubleDelta.
|
||||
### 22.16. + Исправление низкой производительности кодека DoubleDelta.
|
||||
|
||||
Василий Немков, Altinity - в процессе.
|
||||
|
||||
Мы считаем важным, что код в ClickHouse содержит разумные оптимизации, основанные на анализе производительности. Но иногда бывают досадные исключения.
|
||||
Можно считать, что сделано, хотя отсутствие SIMD оптимизаций для variable length кодеков - это ужасно.
|
||||
|
||||
### 22.17. Консистентно работающий POPULATE для MaterializedView.
|
||||
|
||||
@ -1331,14 +1414,14 @@ https://github.com/ClickHouse/ClickHouse/issues/2655
|
||||
|
||||
Altinity.
|
||||
|
||||
### 22.29. Уязвимость DDL для словарей executable.
|
||||
### 22.29. + Уязвимость DDL для словарей executable.
|
||||
|
||||
[Александр Сапин](https://github.com/alesapin)
|
||||
|
||||
|
||||
## 23. Default Festival.
|
||||
|
||||
### 23.1. Включение minimalistic_part_header в ZooKeeper.
|
||||
### 23.1. + Включение minimalistic_part_header в ZooKeeper.
|
||||
|
||||
Сильно уменьшает объём данных в ZooKeeper. Уже год в продакшене в Яндекс.Метрике.
|
||||
Алексей Миловидов, ноябрь 2019.
|
||||
@ -1367,13 +1450,13 @@ Altinity.
|
||||
|
||||
Просто аккуратно включить.
|
||||
|
||||
### 23.8. Включение оптимизации VALUES.
|
||||
### 23.8. + Включение оптимизации VALUES.
|
||||
|
||||
Просто аккуратно включить.
|
||||
|
||||
### 23.9. Включение Processors.
|
||||
|
||||
[Николай Кочетов](https://github.com/KochetovNicolai).
|
||||
Q1. [Николай Кочетов](https://github.com/KochetovNicolai).
|
||||
|
||||
### 23.10. Включение mlock бинарника.
|
||||
|
||||
@ -1578,12 +1661,16 @@ ucasFL, ICT.
|
||||
|
||||
Алгоритмы min-hash и sim-hash позволяют вычислить для текста несколько хэш-значений таких, что при небольшом изменении текста, по крайней мере один из хэшей не меняется. Вычисления можно реализовать на n-грамах и словарных шинглах. Предлагается добавить поддержку этих алгоритмов в виде функций в ClickHouse и изучить их применимость для задачи нечёткого поиска полудубликатов.
|
||||
|
||||
Есть pull request, есть что доделывать.
|
||||
|
||||
### 24.28. Другой sketch для квантилей.
|
||||
|
||||
Похоже на quantileTiming, но с логарифмическими корзинами.
|
||||
Похоже на quantileTiming, но с логарифмическими корзинами. См. DDSketch.
|
||||
|
||||
### 24.29. Поддержка Arrow Flight.
|
||||
|
||||
Жанна Зосимова, ВШЭ.
|
||||
|
||||
### 24.30. ClickHouse как графовая СУБД.
|
||||
|
||||
Amos Bird, но его решение слишком громоздкое и пока не open-source.
|
||||
@ -1640,9 +1727,9 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
### 25.9. Подготовка докладчиков: khvostikao, ilezhankin, nikitamikhailov, akuzm и другие.
|
||||
|
||||
[Ольга Хвостикова](https://github.com/stavrolia), [Иван Лежанкин](https://github.com/abyss7), Никита Михайлов, [Александр Кузьменков](https://github.com/akuzm).
|
||||
[Ольга Хвостикова](https://github.com/stavrolia), [Иван Лежанкин](https://github.com/abyss7), Никита Михайлов, [Александр Кузьменков](https://github.com/akuzm), Артём Зуйков.
|
||||
Уже готовые докладчики: Алексей Миловидов, [Николай Кочетов](https://github.com/KochetovNicolai), [Александр Сапин](https://github.com/alesapin).
|
||||
Получаем минимум 7 докладчиков в 2020 году.
|
||||
Получаем минимум 8 докладчиков в 2020 году.
|
||||
|
||||
### 25.10. Митапы в России и Беларуси: Москва x2 + митап для разработчиков или хакатон, Санкт-Петербург, Минск, Нижний Новгород, Екатеринбург, Новосибирск и/или Академгородок, Иннополис или Казань.
|
||||
|
||||
@ -1650,7 +1737,7 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
### 25.11. Митапы зарубежные: восток США (Нью Йорк, возможно Raleigh), возможно северо-запад (Сиэтл), Китай (Пекин снова, возможно митап для разработчиков или хакатон), Лондон.
|
||||
|
||||
[Иван Блинков](https://github.com/blinkov/) - организация
|
||||
[Иван Блинков](https://github.com/blinkov/) - организация. Две штуки в США запланированы.
|
||||
|
||||
### 25.12. Статья "научная" - про устройство хранения данных и индексов или whitepaper по архитектуре. Есть вариант подать на VLDB.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user