Update extended-roadmap.md

This commit is contained in:
alexey-milovidov 2020-06-18 08:00:55 +03:00 committed by GitHub
parent 5490e126d0
commit cb658d10aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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}