mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
Update extended-roadmap.md
This commit is contained in:
parent
5490e126d0
commit
cb658d10aa
@ -707,7 +707,7 @@ Upd. Задача взята в работу.
|
||||
|
||||
Сделал [Andrey Bodrov](https://github.com/apbodrov)
|
||||
|
||||
### 8.10. Запись в табличную функцию ODBC {#zapis-v-tablichnuiu-funktsiiu-odbc}
|
||||
### 8.10. + Запись в табличную функцию ODBC {#zapis-v-tablichnuiu-funktsiiu-odbc}
|
||||
|
||||
Артемий Бобровский, ВШЭ
|
||||
Есть pull request.
|
||||
@ -719,15 +719,11 @@ Upd. Задача взята в работу.
|
||||
|
||||
### 8.12. Пропуск столбцов в форматах Parquet, ORC {#propusk-stolbtsov-v-formatakh-parquet-orc}
|
||||
|
||||
Артемий Бобровский, ВШЭ или другой человек.
|
||||
|
||||
### 8.13. Поддержка массивов в Parquet, ORC {#podderzhka-massivov-v-parquet-orc}
|
||||
|
||||
Артемий Бобровский, ВШЭ
|
||||
|
||||
### 8.14. Запись данных в ORC {#zapis-dannykh-v-orc}
|
||||
|
||||
Возможно, Андрей Коняев, ArenaData (зависит от желания).
|
||||
Павел Круглов, ВШЭ. Есть pull request.
|
||||
|
||||
### 8.15. Запись данных в CapNProto {#zapis-dannykh-v-capnproto}
|
||||
|
||||
@ -857,6 +853,8 @@ Upd. Ура, нашли причину и исправили.
|
||||
|
||||
### 10.6. Словари из Cassandra и Couchbase {#slovari-iz-cassandra-i-couchbase}
|
||||
|
||||
Готова Cassandra.
|
||||
|
||||
### 10.7. Поддержка Nullable в словарях {#podderzhka-nullable-v-slovariakh}
|
||||
|
||||
Артём Стрельцов, Николай Дегтеринский, Наталия Михненко, ВШЭ.
|
||||
@ -877,7 +875,7 @@ Upd. Ура, нашли причину и исправили.
|
||||
|
||||
Никита Михайлов. Q1. Нужно для БК и Метрики. Требует 10.10.
|
||||
|
||||
### 10.12. Layout direct для словарей {#layout-direct-dlia-slovarei}
|
||||
### 10.12. + Layout direct для словарей {#layout-direct-dlia-slovarei}
|
||||
|
||||
Артём Стрельцов, Николай Дегтеринский, Наталия Михненко, ВШЭ.
|
||||
Приступили к этой задаче.
|
||||
@ -889,7 +887,7 @@ Upd. Ура, нашли причину и исправили.
|
||||
|
||||
### 10.14. Поддержка всех типов в функции transform {#podderzhka-vsekh-tipov-v-funktsii-transform}
|
||||
|
||||
### 10.15. Использование словарей как специализированного layout для Join {#ispolzovanie-slovarei-kak-spetsializirovannogo-layout-dlia-join}
|
||||
### 10.15. + Использование словарей как специализированного layout для Join {#ispolzovanie-slovarei-kak-spetsializirovannogo-layout-dlia-join}
|
||||
|
||||
### 10.16. Словари на локальном SSD {#slovari-na-lokalnom-ssd}
|
||||
|
||||
@ -1002,14 +1000,14 @@ Q2.
|
||||
Вариант реализации выбрал Александр Казаков.
|
||||
Upd. Не уследили, и задачу стали обсуждать менеджеры.
|
||||
Upd. Задачу смотрит Александр Казаков.
|
||||
Upd. Задача взята в работу.
|
||||
|
||||
|
||||
## 14. Диалект SQL {#dialekt-sql}
|
||||
|
||||
### 14.1. Исправление семантики CAST для Nullable {#ispravlenie-semantiki-cast-dlia-nullable}
|
||||
### 14.1. + Исправление семантики CAST для Nullable {#ispravlenie-semantiki-cast-dlia-nullable}
|
||||
|
||||
Нужно для DataLens. А также для внедрения в BI инструмент Looker.
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
### 14.2. Поддержка WITH для подзапросов {#podderzhka-with-dlia-podzaprosov}
|
||||
|
||||
@ -1026,12 +1024,8 @@ zhang2014
|
||||
|
||||
### 14.6. Глобальный scope для WITH {#globalnyi-scope-dlia-with}
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
### 14.7. Nullable для WITH ROLLUP, WITH CUBE, WITH TOTALS {#nullable-dlia-with-rollup-with-cube-with-totals}
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
|
||||
Простая задача.
|
||||
|
||||
### 14.8. Модификаторы DISTINCT, ORDER BY для агрегатных функций {#modifikatory-distinct-order-by-dlia-agregatnykh-funktsii}
|
||||
@ -1040,7 +1034,7 @@ zhang2014
|
||||
|
||||
Результат некоторых агрегатных функций зависит от порядка данных. Предлагается реализовать модификатор ORDER BY, задающий порядок явно. Пример: groupArray(x ORDER BY y, z).
|
||||
|
||||
Upd. Есть pull request на DISTINCT.
|
||||
Upd. Есть pull request-ы.
|
||||
|
||||
### 14.9. Поддержка запроса EXPLAIN {#podderzhka-zaprosa-explain}
|
||||
|
||||
@ -1062,7 +1056,8 @@ Upd. Есть pull request на DISTINCT.
|
||||
|
||||
### 14.14. Неявные преобразования типов констант {#neiavnye-preobrazovaniia-tipov-konstant}
|
||||
|
||||
Требует 2.12.
|
||||
Сделано для операторов сравнения с константами (подавляющее большинство use cases).
|
||||
В общем виде требует 2.12.
|
||||
|
||||
### 14.15. Неявные преобразования типов под настройкой {#neiavnye-preobrazovaniia-tipov-pod-nastroikoi}
|
||||
|
||||
@ -1078,7 +1073,6 @@ zhang2014.
|
||||
|
||||
### 14.18. UNION DISTINCT и возможность включить его по-умолчанию {#union-distinct-i-vozmozhnost-vkliuchit-ego-po-umolchaniiu}
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
Для BI систем.
|
||||
|
||||
### 14.19. Совместимость парсера типов данных с SQL {#sovmestimost-parsera-tipov-dannykh-s-sql}
|
||||
@ -1088,7 +1082,6 @@ zhang2014.
|
||||
|
||||
### 14.20. Позиционные аргументы для GROUP BY и ORDER BY {#pozitsionnye-argumenty-dlia-group-by-i-order-by}
|
||||
|
||||
Павел Потёмкин, ВШЭ.
|
||||
Тривиально и используется многими системами, но не входит в стандарт SQL.
|
||||
|
||||
### 14.21. Приведение типов для IN (подзапрос) и для JOIN {#privedenie-tipov-dlia-in-podzapros-i-dlia-join}
|
||||
@ -1105,11 +1098,12 @@ Q1. Сделали адаптивный вариант, но вроде он ч
|
||||
|
||||
### 15.1.1. Алгоритм two-level merge JOIN {#algoritm-two-level-merge-join}
|
||||
|
||||
Александр Кузьменков. В очереди.
|
||||
Также известен как grace hash join.
|
||||
Артём Зуйков. В очереди.
|
||||
|
||||
### 15.1.2. Тестирование реализации JOIN в Greenplum {#testirovanie-realizatsii-join-v-greenplum}
|
||||
|
||||
В очереди.
|
||||
В очереди. Как будто задача самоотменилась.
|
||||
|
||||
### 15.2. Прокидывание условий в OUTER JOIN {#prokidyvanie-uslovii-v-outer-join}
|
||||
|
||||
@ -1168,6 +1162,7 @@ ClickHouse не является geospatial СУБД. Тем не менее, в
|
||||
Upd. Андрей сделал прототип интерфейса и реализацию-заглушку внутри него.
|
||||
Upd. Андрей сделал прототип более оптимальной структуры данных.
|
||||
Upd. Есть обнадёживающие результаты.
|
||||
Upd. В ревью.
|
||||
|
||||
### 17.2. GIS типы данных и операции {#gis-tipy-dannykh-i-operatsii}
|
||||
|
||||
@ -1202,7 +1197,7 @@ Upd. Есть обнадёживающие результаты.
|
||||
|
||||
Предлагается реализовать в ClickHouse статистические тесты (Analysis of Variance, тесты нормальности распределения и т. п.) в виде агрегатных функций. Пример: `welchTTest(value, sample_idx)`.
|
||||
|
||||
Сделали прототип одного теста, есть pull request.
|
||||
Сделали прототип двух тестов, есть pull request.
|
||||
|
||||
### 18.3. Инфраструктура для тренировки моделей в ClickHouse {#infrastruktura-dlia-trenirovki-modelei-v-clickhouse}
|
||||
|
||||
@ -1213,8 +1208,6 @@ Upd. Есть обнадёживающие результаты.
|
||||
|
||||
### 19.1. Параллельные кворумные вставки без линеаризуемости {#parallelnye-kvorumnye-vstavki-bez-linearizuemosti}
|
||||
|
||||
Александра Латышева, ВШЭ и Яндекс.
|
||||
|
||||
Репликация данных в ClickHouse по-умолчанию является асинхронной без выделенного мастера. Это значит, что клиент, осуществляющий вставку данных, получает успешный ответ после того, как данные попали на один сервер; репликация данных по остальным серверам осуществляется в другой момент времени. Это ненадёжно, потому что допускает потерю только что вставленных данных при потере лишь одного сервера.
|
||||
|
||||
Для решения этой проблемы, в ClickHouse есть возможность включить «кворумную» вставку. Это значит, что клиент, осуществляющий вставку данных, получает успешный ответ после того, как данные попали на несколько (кворум) серверов. Обеспечивается линеаризуемость: клиент, получает успешный ответ после того, как данные попали на несколько реплик, *которые содержат все предыдущие данные, вставленные с кворумом* (такие реплики можно называть «синхронными»), и при запросе SELECT можно выставить настройку, разрешающую только чтение с синхронных реплик.
|
||||
@ -1250,9 +1243,9 @@ Hold. Полезно для заказчиков внутри Яндекса, н
|
||||
|
||||
Предлагается реализовать «движок баз данных», который осуществляет репликацию метаданных (множество имеющихся таблиц и лог DDL операций над ними: CREATE, DROP, RENAME, ALTER). Пользователь сможет создать реплицируемую базу данных; при её создании или восстановлении на другом сервере, все реплицируемые таблицы будут созданы автоматически.
|
||||
|
||||
### 19.6. Одновременный выбор кусков для слияния многими репликами, отказ от leader election в ZK {#odnovremennyi-vybor-kuskov-dlia-sliianiia-mnogimi-replikami-otkaz-ot-leader-election-v-zk}
|
||||
### 19.6. + Одновременный выбор кусков для слияния многими репликами, отказ от leader election в ZK {#odnovremennyi-vybor-kuskov-dlia-sliianiia-mnogimi-replikami-otkaz-ot-leader-election-v-zk}
|
||||
|
||||
Обсуждается. Возможно, будет делать Александр Сапин.
|
||||
Готово.
|
||||
|
||||
### 19.7. Возможность записи данных при недоступности ZK и отказ от линейного порядка кусков в большинстве случаев {#vozmozhnost-zapisi-dannykh-pri-nedostupnosti-zk-i-otkaz-ot-lineinogo-poriadka-kuskov-v-bolshinstve-sluchaev}
|
||||
|
||||
@ -1290,6 +1283,7 @@ Hold. Полезно для заказчиков внутри Яндекса, н
|
||||
### 21.2. Параллельное форматирование форматов {#parallelnoe-formatirovanie-formatov}
|
||||
|
||||
После 21.1, предположительно Никита Михайлов. Задача сильно проще чем 21.1.
|
||||
В процессе.
|
||||
|
||||
### 21.3. + Исправление низкой производительности анализа индекса в случае большого множества в секции IN {#ispravlenie-nizkoi-proizvoditelnosti-analiza-indeksa-v-sluchae-bolshogo-mnozhestva-v-sektsii-in}
|
||||
|
||||
@ -1308,6 +1302,7 @@ Upd. Антон делает эту задачу. Большая часть уж
|
||||
В прошлом году, аналогичное решение сделали для операции ORDER BY.
|
||||
|
||||
Upd. Есть pull request для GROUP BY. Приличные результаты.
|
||||
Upd. Для GROUP BY готово, в процессе для DISTINCT.
|
||||
|
||||
### 21.5. + Распараллеливание INSERT при INSERT SELECT, если это необходимо {#rasparallelivanie-insert-pri-insert-select-esli-eto-neobkhodimo}
|
||||
|
||||
@ -1355,6 +1350,7 @@ Amos Bird.
|
||||
- При GROUP BY по transform или if по строкам, замена строк на Enum.
|
||||
|
||||
Сделана замена цепочек if на multiIf, но внезапно оказалось, что это является не оптимизацией, а наоборот.
|
||||
Сделано ещё несколько оптимизаций.
|
||||
|
||||
### 21.12. Алгебраические оптимизации запросов {#algebraicheskie-optimizatsii-zaprosov}
|
||||
|
||||
@ -1604,7 +1600,7 @@ Altinity.
|
||||
|
||||
Q1. [Николай Кочетов](https://github.com/KochetovNicolai).
|
||||
|
||||
### 23.10. Включение mlock бинарника {#vkliuchenie-mlock-binarnika}
|
||||
### 23.10. + Включение mlock бинарника {#vkliuchenie-mlock-binarnika}
|
||||
|
||||
Возможность mlock бинарника сделал Олег Алексеенков [\#3553](https://github.com/ClickHouse/ClickHouse/pull/3553)
|
||||
. Поможет, когда на серверах кроме ClickHouse работает много посторонних программ (мы иногда называем их в шутку «треш-программами»).
|
||||
@ -1670,6 +1666,8 @@ RAID позволяет одновременно увеличить надёжн
|
||||
|
||||
Для преодоления этих ограничений, предлагается реализовать в ClickHouse встроенный алгоритм расположения данных на дисках.
|
||||
|
||||
Есть pull request на начальной стадии.
|
||||
|
||||
### 24.7. Вероятностные структуры данных для фильтрации по подзапросам {#veroiatnostnye-struktury-dannykh-dlia-filtratsii-po-podzaprosam}
|
||||
|
||||
Рузель Ибрагимов, ВШЭ и Яндекс.
|
||||
@ -1680,6 +1678,8 @@ RAID позволяет одновременно увеличить надёжн
|
||||
|
||||
Предлагается реализовать это в языке запросов ClickHouse с помощью специального синтаксиса, например `x IN BLOOM FILTER (n, m) (SELECT ...)`.
|
||||
|
||||
Есть pull request на стадии работающего прототипа.
|
||||
|
||||
### 24.8. Специализация векторизованного кода для AVX/AVX2/AVX512 и ARM NEON {#spetsializatsiia-vektorizovannogo-koda-dlia-avxavx2avx512-i-arm-neon}
|
||||
|
||||
[\#1017](https://github.com/ClickHouse/ClickHouse/issues/1017)
|
||||
@ -1698,7 +1698,7 @@ RAID позволяет одновременно увеличить надёжн
|
||||
|
||||
Продолжение 24.8.
|
||||
|
||||
Upd. Есть pull request.
|
||||
Upd. Есть pull request. В стадии ревью.
|
||||
|
||||
### 24.10. Поддержка типов half/bfloat16/unum {#podderzhka-tipov-halfbfloat16unum}
|
||||
|
||||
@ -1706,6 +1706,8 @@ Upd. Есть pull request.
|
||||
|
||||
Рустам Гусейн-заде, ВШЭ.
|
||||
|
||||
Есть pull request на промежуточной стадии.
|
||||
|
||||
### 24.11. User Defined Functions {#user-defined-functions}
|
||||
|
||||
Игорь Минеев, ВШЭ.
|
||||
@ -1726,6 +1728,8 @@ ClickHouse предоставляет достаточно богатый наб
|
||||
|
||||
Также рассматривается возможность написания UDF на Rust, а также использование Web Assembly. Отдельно можно рассмотреть подключение NumPy и R и других технологий, которые предоставляют операции над целыми массивами.
|
||||
|
||||
Upd. В работе два варианта реализации UDF.
|
||||
|
||||
### 24.12. GPU offloading {#gpu-offloading}
|
||||
|
||||
Риск состоит в том, что даже известные GPU базы, такие как OmniSci, работают медленнее, чем ClickHouse.
|
||||
@ -1764,6 +1768,7 @@ Upd. Прототип bitonic sort помержен, но целесообраз
|
||||
|
||||
Задача в работе.
|
||||
Upd. Достигнуты обнадёживающие результаты.
|
||||
Upd. Есть pull request - в большинстве случаев одновременно и ускорение и снижение потребления памяти, но требуются доработки.
|
||||
|
||||
### 24.18. Не TCP протокол передачи файлов при репликации {#ne-tcp-protokol-peredachi-failov-pri-replikatsii}
|
||||
|
||||
@ -1805,7 +1810,7 @@ ClickHouse также может использоваться для быстр
|
||||
|
||||
[\#6874](https://github.com/ClickHouse/ClickHouse/issues/6874)
|
||||
|
||||
Артём Вишняков, ВШЭ.
|
||||
Артём Вишняков, ВШЭ. Есть pull request.
|
||||
|
||||
### 24.25. Интеграция в ClickHouse функциональности обработки HTTP User Agent {#integratsiia-v-clickhouse-funktsionalnosti-obrabotki-http-user-agent}
|
||||
|
||||
@ -1842,9 +1847,9 @@ ucasFL, ICT.
|
||||
Жанна Зосимова, ВШЭ.
|
||||
Upd. Пока поддержали Arrow как формат ввода-вывода.
|
||||
|
||||
### 24.30. ClickHouse как графовая СУБД {#clickhouse-kak-grafovaia-subd}
|
||||
### - 24.30. ClickHouse как графовая СУБД {#clickhouse-kak-grafovaia-subd}
|
||||
|
||||
Amos Bird, но его решение слишком громоздкое и пока не open-source.
|
||||
Amos Bird, но его решение слишком громоздкое и пока не open-source. Отменено.
|
||||
|
||||
### 24.31. Кореллированные подзапросы {#korellirovannye-podzaprosy}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user