mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Changelog for 18.16: in progress (a half) [#CLICKHOUSE-2]
This commit is contained in:
parent
14df9c76aa
commit
b978c892f6
@ -1,4 +1,78 @@
|
||||
* Настройка `enable_optimize_predicate_expression` выключена по-умолчанию.
|
||||
## ClickHouse release 18.16.0, 2018-12-14
|
||||
|
||||
### Новые возможности:
|
||||
|
||||
* Вычисление `DEFAULT` выражений для отсутствующих полей при загрузке данных в полуструктурированных форматах (`JSONEachRow`, `TSKV`).
|
||||
* Для запроса `ALTER TABLE` добавлено действие `MODIFY ORDER BY` для изменения ключа сортировки при одновременном добавлении или удалении столбца таблицы. Это полезно для таблиц семейства `MergeTree`, выполняющих дополнительную работу при слияниях, согласно этому ключу сортировки, как например, `SummingMergeTree`, `AggregatingMergeTree` и т. п.
|
||||
* Добавлена табличная функция `hdfs` и движок таблиц `HDFS` для импорта и экспорта данных в HDFS.
|
||||
* Добавлены функции для работы с base64: `base64Encode`, `base64Decode`, `tryBase64Decode`.
|
||||
* Для агрегатной функции `uniqCombined` появилась возможность настраивать точность работы с помощью параметра (выбирать количество ячеек HyperLogLog).
|
||||
* Добавлена таблица `system.contributors`, содержащая имена всех, кто делал коммиты в ClickHouse.
|
||||
* Добавлена возможность не указывать партицию для запроса `ALTER TABLE ... FREEZE` для бэкапа сразу всех партиций.
|
||||
* Добавлены функции `dictGet`, `dictGetOrDefault` без указания типа возвращаемого значения. Тип определяется автоматически из описания словаря.
|
||||
* Слияния, образующие крупные куски таблиц семейства MergeTree, будут производиться в режиме O_DIRECT, что исключает вымывание кэша. Добавлена настройка таблиц семейства `MergeTree` `min_merge_bytes_to_use_direct_io`, по-умолчанию - 10 GiB.
|
||||
* Возможность указания комментария для столбца в описании таблицы и изменения его с помощью ALTER.
|
||||
* Добавлены столбцы `partition_key`, `sorting_key`, `primary_key`, `sampling_key` в таблицу `system.tables`, позволяющие получить информацию о ключах таблицы.
|
||||
* Добавлены столбцы `is_in_partition_key`, `is_in_sorting_key`, `is_in_primary_key`, `is_in_sampling_key` в таблицу `system.columns`.
|
||||
|
||||
### Исправления ошибок:
|
||||
|
||||
* Исправлено некорректное слияние многомерных массивов во вложенных структурах данных при вертикальном мерже.
|
||||
* Исправлена работа настройки `select_sequential_consistency`. Ранее, при включенной настройке, после начала записи в новую партицию, мог возвращаться неполный результат.
|
||||
* Корректное указание базы данных при выполнении DDL запросов `ON CLUSTER`.
|
||||
* Корректное указание базы данных для подзапросов внутри VIEW.
|
||||
* Исправление ошибки `Unknown compression method` при использовании настройки `min_bytes_to_use_direct_io`.
|
||||
* Исправлено удаление лишних `ALIAS` столбцов при выполнении запроса с `PREWHERE`.
|
||||
* Исправлена работа `PREWHERE` с `FINAL` для `VersionedCollapsingMergeTree`.
|
||||
* Возможность с помощью запроса KILL QUERY отмены запросов, которые ещё не начали выполняться из-за ожидания блокировки таблицы.
|
||||
* Исправлена неправильная передача таймаутов для словарей ODBC, JDBC.
|
||||
* Исправлена работа некоторых случаев VIEW и подзапросов без указания базы данных.
|
||||
* Исправлен race condition при одновременном чтении из MATERIALIZED VIEW и удалением MATERIALIZED VIEW из-за отсутствия блокировки внутренней таблицы MATERIALIZED VIEW.
|
||||
* Исправлена ошибка `Lock handler cannot be nullptr.`
|
||||
* Исправления выполнения запросов при включенной настройке `compile_expressions` (выключена по-умолчанию) - убрана свёртка недетерминированных константных выражений, как например, функции `now`.
|
||||
* Исправлено падение при указании неконстантного аргумента scale в функциях `toDecimal32/64/128`.
|
||||
* Исправлена ошибка при попытке вставки в формате `Values` массива с `NULL` элементами в столбец типа `Array` без `Nullable` (в случае `input_format_values_interpret_expressions` = 1).
|
||||
* Исправления и улучшения производительности для типа данных `LowCardinality`. GROUP BY по LowCardinality(Nullable(...)). Получение extremes значений. Выполнение функций высшего порядка. LEFT ARRAY JOIN. Распределённый GROUP BY. Функции, возвращающие Array. Выполнение ORDER BY. Запись в Distributed таблицы (nicelulu)
|
||||
* Исправлено непрерывное логгирование ошибок в `DDLWorker`, если ZooKeeper недоступен.
|
||||
* Исправлен тип возвращаемого значения для функций `quantile*` от аргументов типа `Date` и `DateTime`.
|
||||
* Исправлена работа секции `WITH`, если она задаёт простой алиас.
|
||||
* Исправлена обработка запросов с именованными подзапросами при включенной настройке `enable_optimize_predicate_expression`.
|
||||
* Исправлена ошибка `Attempt to attach to nullptr thread group` при работе материализованных представлений.
|
||||
* Исправлена ошибка при вставке данных в `Distributed` таблицу в случае несовпадающей структуры таблицы на удалённом сервере.
|
||||
* Исправлено падение при передаче некоторых некорректных аргументов в функцию `arrayReverse`.
|
||||
* Исправлен buffer overflow в функции `extractURLParameter`. Увеличена производительность. Добавлена корректная обработка строк, содержащих нулевые байты.
|
||||
* Исправлен buffer overflow в функциях `lowerUTF8`, `upperUTF8`. Удалена возможность выполнения этих функций над аргументами типа FixedString.
|
||||
* Исправлен редкий race condition при удалении таблиц типа MergeTree.
|
||||
|
||||
### Улучшения:
|
||||
* Файлы *-preprocessed.xml записываются в директорию с данными (/var/lib/clickhouse/preprocessed_configs). Для /etc/clickhouse-server больше не нужен +w для пользователя clickhouse. Для удобства создан симлинк /var/lib/clickhouse/preprocessed_configs -> /etc/clickhouse-server/preprocessed
|
||||
|
||||
* Обработанные конфигурационные файлы записываются сервером не в `/etc/clickhouse-server/` директорию, а в директорию `preprocessed_configs` внутри `path`. Это позволяет оставить директорию `/etc/clickhouse-server/` недоступной для записи пользователем `clickhouse`, что повышает безопасность.
|
||||
* Ускорен запуск сервера в случае наличия очень большого количества таблиц.
|
||||
* Добавлен HTTP Keep-Alive для соединения между репликами.
|
||||
* В случае ошибки синтаксиса запроса, в `HTTP` интерфейсе возвращается код `400 Bad Request` (ранее возвращался код 500).
|
||||
* Для настройки `join_default_strictness` выбрано значение по-умолчанию `ALL` для совместимости.
|
||||
* Для движка таблиц Kafka TODO
|
||||
* Функции `cityHash64`, `farmHash64`, `metroHash64`, `sipHash64`, `halfMD5`, `murmurHash2_32`, `murmurHash2_64`, `murmurHash3_32`, `murmurHash3_64` теперь работают для произвольного количества аргументов, а также для аргументов-кортежей.
|
||||
* Функция `arrayReverse` теперь работает с любыми типами массивов.
|
||||
* В `clickhouse-benchmark` и `clickhouse-performance-test` добавлен параметр командной строки `--secure` для включения TLS.
|
||||
* Преобразование типов в случае, если структура таблицы типа `Buffer` не соответствует структуре таблицы назначения.
|
||||
* Добавлена настройка tcp_keep_alive_timeout для включения keep-alive пакетов после неактивности в течение указанного интервала времени.
|
||||
* Убрано излишнее квотирование ключа партиции в таблице `system.parts`, если он состоит из одного столбца.
|
||||
* Функция деления с остатком работает для типов данных `Date` и `DateTime`.
|
||||
* Добавлены синонимы функций POWER, LN. Некоторые имена функций сделаны регистронезависимыми для совместимости со стандартом SQL.
|
||||
* Добавлена возможность включения `mlock` страниц памяти, соответствующих исполняемому коду `clickhouse-server` для предотвращения вытеснения их из памяти. Возможность выключена по-умолчанию.
|
||||
* Увеличена производительность чтения с O_DIRECT (с включенной опцией min_bytes_to_use_direct_io).
|
||||
* Улучшена производительность работы функции `dictGet...OrDefault` в случае константного аргумента-ключа и неконстантного аргумента-default.
|
||||
* В функции `firstSignificantSubdomain` добавлена обработка доменов `gov`, `mil`, `edu`. Увеличена производительность работы.
|
||||
* Возможность указания произвольных переменных окружения для запуска clickhouse-server с помощью указания `CLICKHOUSE_PROGRAM_ENV` в `/etc/default/clickhouse`.
|
||||
* Правильный код возврата init-скрипта clickhouse-server.
|
||||
* В таблицу `system.metrics` добавлена метрика `VersionInteger`, а в `system.build_options` добавлена строчка `VERSION_INTEGER`, содержащая версию ClickHouse в числовом представлении, вида `18016000`.
|
||||
* Удалена возможность сравнения типа `Date` с числом, чтобы избежать потенциальных ошибок вида `date = 2018-12-17`, где ошибочно не указаны кавычки вокруг даты.
|
||||
|
||||
### Улучшение сборки:
|
||||
|
||||
* Обновлена библиотека `jemalloc`, что исправляет потенциальную утечку памяти.
|
||||
* Добавлена возможность запуска интеграционных тестов, при наличии установленным в системе лишь `Docker`.
|
||||
* Добавлен fuzz тест выражений в SELECT запросах.
|
||||
* Добавлен покоммитный stress тест, выполняющий функциональные тесты параллельно и в произвольном порядке, без разбора результатов, позволяющий обнаружить больше race conditions.
|
||||
* Исправление запуска clickhouse-server в Docker образе.
|
||||
|
Loading…
Reference in New Issue
Block a user