From 1484ab1f1a0b63e2d7816b66a9375682f73cf8a6 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 11 Apr 2020 17:52:59 +0300 Subject: [PATCH] Fix machine translation #10191 --- docs/ru/development/architecture.md | 202 +- docs/ru/development/build.md | 140 +- docs/ru/development/build_cross_arm.md | 42 +- docs/ru/development/build_cross_osx.md | 63 +- docs/ru/development/build_osx.md | 92 +- docs/ru/development/index.md | 9 +- docs/ru/development/tests.md | 251 +- .../engines/table_engines/special/generate.md | 60 +- docs/ru/getting_started/tutorial.md | 670 +----- docs/ru/introduction/adopters.md | 81 +- .../sampling_query_profiler.md | 63 +- docs/ru/operations/performance_test.md | 81 +- .../utilities/clickhouse-benchmark.md | 155 +- docs/ru/whats_new/changelog/2017.md | 267 +-- docs/ru/whats_new/changelog/2018.md | 1062 +-------- docs/ru/whats_new/changelog/2019.md | 2073 +---------------- docs/ru/whats_new/roadmap.md | 18 +- 17 files changed, 17 insertions(+), 5312 deletions(-) mode change 100644 => 120000 docs/ru/development/architecture.md mode change 100644 => 120000 docs/ru/development/build.md mode change 100644 => 120000 docs/ru/development/build_cross_arm.md mode change 100644 => 120000 docs/ru/development/build_cross_osx.md mode change 100644 => 120000 docs/ru/development/build_osx.md mode change 100644 => 120000 docs/ru/development/index.md mode change 100644 => 120000 docs/ru/development/tests.md mode change 100644 => 120000 docs/ru/engines/table_engines/special/generate.md mode change 100644 => 120000 docs/ru/getting_started/tutorial.md mode change 100644 => 120000 docs/ru/introduction/adopters.md mode change 100644 => 120000 docs/ru/operations/optimizing_performance/sampling_query_profiler.md mode change 100644 => 120000 docs/ru/operations/performance_test.md mode change 100644 => 120000 docs/ru/operations/utilities/clickhouse-benchmark.md mode change 100644 => 120000 docs/ru/whats_new/changelog/2017.md mode change 100644 => 120000 docs/ru/whats_new/changelog/2018.md mode change 100644 => 120000 docs/ru/whats_new/changelog/2019.md mode change 100644 => 120000 docs/ru/whats_new/roadmap.md diff --git a/docs/ru/development/architecture.md b/docs/ru/development/architecture.md deleted file mode 100644 index 0d1fc2ff94..0000000000 --- a/docs/ru/development/architecture.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Обзор архитектуры ClickHouse {#overview-of-clickhouse-architecture} - -ClickHouse-это настоящая СУБД, ориентированная на столбцы. Данные хранятся столбцами и во время выполнения массивов (векторов или кусков столбцов). Когда это возможно, операции отправляются на массивы, а не на отдельные значения. Это называется «vectorized query execution,» и это помогает снизить стоимость фактической обработки данных. - -> В этой идее нет ничего нового. Она восходит к тому времени, когда `APL` язык программирования и его потомки: `A +`, `J`, `K`, и `Q`. Массивное программирование используется в научной обработке данных. Эта идея также не является чем-то новым в реляционных базах данных: например, она используется в `Vectorwise` система. - -Существует два различных подхода для ускорения обработки запросов: векторизованное выполнение запросов и генерация кода во время выполнения. Последнее устраняет все косвенные действия и динамическую диспетчеризацию. Ни один из этих подходов не является строго лучшим, чем другой. Генерация кода во время выполнения может быть лучше, когда он объединяет множество операций, таким образом полностью используя исполнительные блоки процессора и конвейер. Векторизованное выполнение запроса может быть менее практичным, поскольку оно включает временные векторы, которые должны быть записаны в кэш и считаны обратно. Если временные данные не помещаются в кэш L2, это становится проблемой. Но векторизованное выполнение запросов более легко использует возможности SIMD центрального процессора. Один [научная статья](http://15721.courses.cs.cmu.edu/spring2016/papers/p5-sompolski.pdf) написанное нашими друзьями показывает, что лучше сочетать оба подхода. ClickHouse использует векторизованное выполнение запросов и имеет ограниченную начальную поддержку для генерации кода во время выполнения. - -## Столбцы {#columns} - -`IColumn` интерфейс используется для представления столбцов в памяти (собственно, кусков столбцов). Этот интерфейс предоставляет вспомогательные методы для реализации различных реляционных операторов. Почти все операции неизменяемы: они не изменяют исходный столбец, а создают новый измененный. Например, в `IColumn :: filter` метод принимает маску байта фильтра. Он используется для `WHERE` и `HAVING` реляционный оператор. Дополнительные примеры: `IColumn :: permute` способ поддержки `ORDER BY`, этот `IColumn :: cut` способ поддержки `LIMIT`. - -Различный `IColumn` реализации (`ColumnUInt8`, `ColumnString`, и так далее) отвечают за расположение столбцов в памяти. Расположение памяти обычно представляет собой непрерывный массив. Для целочисленного типа столбцов это всего лишь один непрерывный массив, например `std :: vector`. Для `String` и `Array` столбцы, это два вектора: один для всех элементов массива, расположенных последовательно, и второй для смещений к началу каждого массива. Существует также `ColumnConst` это сохраняет только одно значение в памяти, но выглядит как столбец. - -## Поле {#field} - -Тем не менее, можно работать и с индивидуальными ценностями. Чтобы представить индивидуальную ценность, то `Field` предназначенный. `Field` это просто дискриминированный Союз `UInt64`, `Int64`, `Float64`, `String` и `Array`. `IColumn` имеет `operator[]` метод получения n-го значения в виде a `Field` и `insert` способ, чтобы добавить `Field` до самого конца колонны. Эти методы не очень эффективны, потому что они требуют решения временных проблем `Field` объекты, представляющие индивидуальную ценность. Существуют и более эффективные методы, такие как `insertFrom`, `insertRangeFrom` и так далее. - -`Field` у него нет достаточной информации о конкретном типе данных для таблицы. Например, `UInt8`, `UInt16`, `UInt32`, и `UInt64` все они представлены в виде `UInt64` в `Field`. - -## Дырявые абстракции {#leaky-abstractions} - -`IColumn` есть методы для общих реляционных преобразований данных, но они не удовлетворяют всем потребностям. Например, `ColumnUInt64` не имеет метода для вычисления суммы двух столбцов, и `ColumnString` у него нет метода для запуска поиска по подстрокам. Эти бесчисленные процедуры реализуются за пределами `IColumn`. - -Различные функции на столбцах могут быть реализованы общим, неэффективным способом с использованием `IColumn` способы извлечения `Field` значения, или специализированным способом, использующим знание внутренней компоновки памяти данных в определенном месте. `IColumn` реализация. Он реализуется путем приведения функций к определенному виду `IColumn` тип и дело с внутренним представлением непосредственно. Например, `ColumnUInt64` имеет `getData` метод, который возвращает ссылку на внутренний массив, а затем отдельная процедура считывает или заполняет этот массив непосредственно. У нас есть «leaky abstractions» чтобы обеспечить эффективную специализацию различных процедур. - -## Тип данных {#data_types} - -`IDataType` отвечает за сериализацию и десериализацию: чтение и запись фрагментов столбцов или отдельных значений в двоичной или текстовой форме. `IDataType` непосредственно соответствует типам данных в таблицах. Например, существуют `DataTypeUInt32`, `DataTypeDateTime`, `DataTypeString` и так далее. - -`IDataType` и `IColumn` они лишь слабо связаны друг с другом. Различные типы данных могут быть представлены в памяти одним и тем же именем `IColumn` реализации. Например, `DataTypeUInt32` и `DataTypeDateTime` оба они представлены следующим образом `ColumnUInt32` или `ColumnConstUInt32`. Кроме того, один и тот же тип данных может быть представлен разными `IColumn` реализации. Например, `DataTypeUInt8` может быть представлен следующим образом `ColumnUInt8` или `ColumnConstUInt8`. - -`IDataType` хранит только метаданные. Например, `DataTypeUInt8` не хранит вообще ничего (кроме vptr) и `DataTypeFixedString` магазины просто `N` (размер строк фиксированного размера). - -`IDataType` имеет вспомогательные методы для различных форматов данных. Примерами являются методы сериализации значения с возможным цитированием, сериализации значения для JSON и сериализации значения в формате XML. Прямого соответствия форматам данных не существует. Например, различные форматы данных `Pretty` и `TabSeparated` можно использовать то же самое `serializeTextEscaped` вспомогательный метод от `IDataType` интерфейс. - -## Блок {#block} - -A `Block` это контейнер, представляющий подмножество (фрагмент) таблицы в памяти. Это всего лишь набор троек: `(IColumn, IDataType, column name)`. Во время выполнения запроса данные обрабатываются с помощью `Block`s. Если у нас есть `Block`, у нас есть данные (в `IColumn` объект), у нас есть информация о его типе (в `IDataType`) это говорит нам, как обращаться с этим столбцом, и у нас есть имя столбца. Это может быть либо исходное имя столбца из таблицы, либо какое-то искусственное имя, назначенное для получения временных результатов вычислений. - -Когда мы вычисляем некоторую функцию по столбцам в блоке, мы добавляем другой столбец с его результатом в блок, и мы не касаемся столбцов для аргументов функции, потому что операции неизменяемы. Позже ненужные столбцы могут быть удалены из блока, но не изменены. Это удобно для исключения общих подвыражений. - -Блоки создаются для каждого обработанного фрагмента данных. Обратите внимание, что для одного и того же типа вычисления имена столбцов и типы остаются одинаковыми для разных блоков, и изменяются только данные столбцов. Лучше разделить данные блока из заголовка блока, потому что небольшие размеры блока имеют высокую нагрузку временных строк для копирования shared\_ptrs и имен столбцов. - -## Блокировать Потоки {#block-streams} - -Блочные потоки предназначены для обработки данных. Мы используем потоки блоков для чтения данных откуда-то, выполнения преобразований данных или записи данных куда-то. `IBlockInputStream` имеет `read` метод для извлечения следующего блока, пока он доступен. `IBlockOutputStream` имеет `write` метод, чтобы подтолкнуть блок куда-то. - -Потоки отвечают за: - -1. Чтение или письмо за столом. Таблица просто возвращает поток для чтения или записи блоков. -2. Реализация форматов данных. Например, если вы хотите вывести данные на терминал в `Pretty` форматирование, вы создаете поток вывода блока, где вы толкаете блоки, и он форматирует их. -3. Выполнение преобразований данных. Скажем так у вас есть `IBlockInputStream` и хотите создать отфильтрованный поток. Вы создаете `FilterBlockInputStream` и инициализируйте его с помощью своего потока. Затем, когда вы вытащите блок из `FilterBlockInputStream`, он извлекает блок из вашего потока, фильтрует его и возвращает отфильтрованный блок вам. Конвейеры выполнения запросов представлены таким образом. - -Есть и более сложные трансформации. Например, когда вы тянете из `AggregatingBlockInputStream`, он считывает все данные из своего источника, агрегирует их, а затем возвращает поток агрегированных данных для вас. Еще пример: `UnionBlockInputStream` принимает множество источников ввода в конструкторе, а также ряд потоков. Он запускает несколько потоков и читает из нескольких источников параллельно. - -> Потоки блокируют использовать «pull» подход к управлению потоком: когда вы вытягиваете блок из первого потока, он, следовательно, вытягивает необходимые блоки из вложенных потоков, и весь конвейер выполнения будет работать. Ни «pull» ни «push» это лучшее решение, потому что поток управления является неявным, и это ограничивает реализацию различных функций, таких как одновременное выполнение нескольких запросов (объединение многих конвейеров вместе). Это ограничение может быть преодолено с помощью сопрограмм или просто запуском дополнительных потоков, которые ждут друг друга. У нас может быть больше возможностей, если мы сделаем поток управления явным: если мы найдем логику для передачи данных из одной расчетной единицы в другую вне этих расчетных единиц. Читать это [статья](http://journal.stuffwithstuff.com/2013/01/13/iteration-inside-and-out/) для новых мыслей. - -Следует отметить, что конвейер выполнения запроса создает временные данные на каждом шаге. Мы стараемся держать размер блока достаточно маленьким, чтобы временные данные помещались в кэш процессора. При таком допущении запись и чтение временных данных практически бесплатны по сравнению с другими расчетами. Мы могли бы рассмотреть альтернативу, которая заключается в том, чтобы объединить многие операции в трубопроводе вместе. Это может сделать конвейер как можно короче и удалить большую часть временных данных, что может быть преимуществом, но у него также есть недостатки. Например, разделенный конвейер позволяет легко реализовать кэширование промежуточных данных, кражу промежуточных данных из аналогичных запросов, выполняемых одновременно, и объединение конвейеров для аналогичных запросов. - -## Форматы {#formats} - -Форматы данных реализуются с помощью блочных потоков. Есть «presentational» форматы, пригодные только для вывода данных клиенту, такие как `Pretty` формат, который предоставляет только `IBlockOutputStream`. И есть форматы ввода/вывода, такие как `TabSeparated` или `JSONEachRow`. - -Существуют также потоки подряд : `IRowInputStream` и `IRowOutputStream`. Они позволяют вытягивать / выталкивать данные отдельными строками, а не блоками. И они нужны только для упрощения реализации ориентированных на строки форматов. Обертка `BlockInputStreamFromRowInputStream` и `BlockOutputStreamFromRowOutputStream` позволяет конвертировать потоки, ориентированные на строки, в обычные потоки, ориентированные на блоки. - -## I/O {#io} - -Для байт-ориентированных входов / выходов существуют `ReadBuffer` и `WriteBuffer` абстрактный класс. Они используются вместо C++ `iostream`s. Не волнуйтесь: каждый зрелый проект C++ использует что-то другое, чем `iostream`s по уважительным причинам. - -`ReadBuffer` и `WriteBuffer` это просто непрерывный буфер и курсор, указывающий на позицию в этом буфере. Реализации могут владеть или не владеть памятью для буфера. Существует виртуальный метод заполнения буфера следующими данными (для `ReadBuffer`) или смыть буфер куда-нибудь (например `WriteBuffer`). Виртуальные методы редко вызываются. - -Реализация следующих принципов: `ReadBuffer`/`WriteBuffer` используются для работы с файлами и файловыми дескрипторами, а также сетевыми сокетами, для реализации сжатия (`CompressedWriteBuffer` is initialized with another WriteBuffer and performs compression before writing data to it), and for other purposes – the names `ConcatReadBuffer`, `LimitReadBuffer`, и `HashingWriteBuffer` за себя говорить. - -Буферы чтения/записи имеют дело только с байтами. Есть функции от `ReadHelpers` и `WriteHelpers` заголовочные файлы, чтобы помочь с форматированием ввода / вывода. Например, есть помощники для записи числа в десятичном формате. - -Давайте посмотрим, что происходит, когда вы хотите написать результирующий набор в `JSON` форматирование в stdout. У вас есть результирующий набор, готовый к извлечению из него `IBlockInputStream`. Вы создаете `WriteBufferFromFileDescriptor(STDOUT_FILENO)` чтобы записать байты в stdout. Вы создаете `JSONRowOutputStream`, инициализируется с помощью этого `WriteBuffer`, чтобы записать строки в `JSON` в stdout. Вы создаете `BlockOutputStreamFromRowOutputStream` кроме того, чтобы представить его как `IBlockOutputStream`. А потом ты позвонишь `copyData` для передачи данных из `IBlockInputStream` к `IBlockOutputStream` и все это работает. Внутренне, `JSONRowOutputStream` буду писать в формате JSON различные разделители и вызвать `IDataType::serializeTextJSON` метод со ссылкой на `IColumn` и номер строки в качестве аргументов. Следовательно, `IDataType::serializeTextJSON` вызовет метод из `WriteHelpers.h`: например, `writeText` для числовых типов и `writeJSONString` для `DataTypeString`. - -## Таблицы {#tables} - -То `IStorage` интерфейс представляет собой таблицы. Различные реализации этого интерфейса являются различными движками таблиц. Примеры `StorageMergeTree`, `StorageMemory` и так далее. Экземпляры этих классов являются просто таблицами. - -Ключ `IStorage` методы `read` и `write`. Есть и другие варианты `alter`, `rename`, `drop` и так далее. То `read` метод принимает следующие аргументы: набор столбцов для чтения из таблицы, набор столбцов для чтения из таблицы. `AST` запрос для рассмотрения и желаемое количество потоков для возврата. Он возвращает один или несколько `IBlockInputStream` объекты и информация о стадии обработки данных, которая была завершена внутри табличного движка во время выполнения запроса. - -В большинстве случаев метод read отвечает только за чтение указанных столбцов из таблицы, а не за дальнейшую обработку данных. Вся дальнейшая обработка данных осуществляется интерпретатором запросов и не входит в сферу ответственности компании `IStorage`. - -Но есть и заметные исключения: - -- Запрос AST передается на сервер `read` метод, и механизм таблиц может использовать его для получения использования индекса и считывания меньшего количества данных из таблицы. -- Иногда механизм таблиц может сам обрабатывать данные до определенного этапа. Например, `StorageDistributed` можно отправить запрос на удаленные серверы, попросить их обработать данные на этапе, когда данные с разных удаленных серверов могут быть объединены, и вернуть эти предварительно обработанные данные. Затем интерпретатор запросов завершает обработку данных. - -Стол `read` метод может возвращать несколько значений `IBlockInputStream` объекты, позволяющие осуществлять параллельную обработку данных. Эти несколько блочных входных потоков могут считываться из таблицы параллельно. Затем вы можете обернуть эти потоки с помощью различных преобразований (таких как вычисление выражений или фильтрация), которые могут быть вычислены независимо, и создать `UnionBlockInputStream` поверх них, чтобы читать из нескольких потоков параллельно. - -Есть и другие варианты `TableFunction`s. Это функции, которые возвращают временное значение `IStorage` объект для использования в `FROM` предложение запроса. - -Чтобы получить быстрое представление о том, как реализовать свой движок таблиц, посмотрите на что-то простое, например `StorageMemory` или `StorageTinyLog`. - -> В результате этого `read` метод, `IStorage` возвращается `QueryProcessingStage` – information about what parts of the query were already calculated inside storage. - -## Синтаксический анализатор {#parsers} - -Написанный от руки рекурсивный парсер спуска анализирует запрос. Например, `ParserSelectQuery` просто рекурсивно вызывает базовые Парсеры для различных частей запроса. Парсеры создают `AST`. То `AST` представлен узлами, которые являются экземплярами `IAST`. - -> Генераторы парсеров не используются по историческим причинам. - -## Переводчики {#interpreters} - -Интерпретаторы отвечают за создание конвейера выполнения запроса из `AST`. Есть простые переводчики, такие как `InterpreterExistsQuery` и `InterpreterDropQuery` или более изощренные `InterpreterSelectQuery`. Конвейер выполнения запроса представляет собой комбинацию блочных входных и выходных потоков. Например, результат интерпретации `SELECT` запросов `IBlockInputStream` для чтения результирующего набора из; результат запроса INSERT - это `IBlockOutputStream` чтобы записать данные для вставки в, и результат интерпретации `INSERT SELECT` запросов `IBlockInputStream` это возвращает пустой результирующий набор при первом чтении, но копирует данные из него `SELECT` к `INSERT` в то же время. - -`InterpreterSelectQuery` использует `ExpressionAnalyzer` и `ExpressionActions` машины для анализа запросов и преобразований. Именно здесь выполняется большинство оптимизаций запросов на основе правил. `ExpressionAnalyzer` это довольно грязно и должно быть переписано: различные преобразования запросов и оптимизации должны быть извлечены в отдельные классы, чтобы позволить модульные преобразования или запрос. - -## Функции {#functions} - -Существуют обычные функции и агрегатные функции. Агрегатные функции см. В следующем разделе. - -Ordinary functions don’t change the number of rows – they work as if they are processing each row independently. In fact, functions are not called for individual rows, but for `Block`’s данных для реализации векторизованного выполнения запросов. - -Есть некоторые другие функции, такие как [размер блока](../sql_reference/functions/other_functions.md#function-blocksize), [роунумберинблок](../sql_reference/functions/other_functions.md#function-rownumberinblock), и [runningAccumulate](../sql_reference/functions/other_functions.md#function-runningaccumulate), которые эксплуатируют обработку блоков и нарушают независимость строк. - -ClickHouse имеет сильную типизацию, поэтому нет никакого неявного преобразования типов. Если функция не поддерживает определенную комбинацию типов, она создает исключение. Но функции могут работать (перегружаться) для многих различных комбинаций типов. Например, в `plus` функция (для реализации `+` оператор) работает для любой комбинации числовых типов: `UInt8` + `Float32`, `UInt16` + `Int8` и так далее. Кроме того, некоторые вариадические функции могут принимать любое количество аргументов, например `concat` функция. - -Реализация функции может быть немного неудобной, поскольку функция явно отправляет поддерживаемые типы данных и поддерживается `IColumns`. Например, в `plus` функция имеет код, генерируемый экземпляром шаблона C++ для каждой комбинации числовых типов, а также постоянные или непостоянные левые и правые аргументы. - -Это отличное место для реализации генерации кода во время выполнения, чтобы избежать раздувания кода шаблона. Кроме того, он позволяет добавлять слитые функции, такие как fused multiply-add или выполнять несколько сравнений в одной итерации цикла. - -Из-за векторизованного выполнения запроса функции не закорачиваются. Например, если вы пишете `WHERE f(x) AND g(y)`, обе стороны вычисляются, даже для строк, когда `f(x)` равно нулю (за исключением тех случаев, когда `f(x)` является нулевым постоянным выражением). Но если избирательность самого `f(x)` состояние является высоким, и расчет `f(x)` это гораздо дешевле, чем `g(y)`, лучше всего реализовать многоходовой расчет. Это будет первый расчет `f(x)`, затем отфильтруйте столбцы по результату, а затем вычислите `g(y)` только для небольших отфильтрованных фрагментов данных. - -## Статистическая функция {#aggregate-functions} - -Агрегатные функции - это функции, определяющие состояние. Они накапливают переданные значения в некотором состоянии и позволяют получать результаты из этого состояния. Они управляются с помощью `IAggregateFunction` интерфейс. Состояния могут быть довольно простыми (состояние для `AggregateFunctionCount` это всего лишь один человек `UInt64` значение) или довольно сложное (состояние `AggregateFunctionUniqCombined` представляет собой комбинацию линейного массива, хэш-таблицы и `HyperLogLog` вероятностная структура данных). - -Государства распределяются в `Arena` (пул памяти) для работы с несколькими состояниями при выполнении высокой мощности `GROUP BY` запрос. Состояния могут иметь нетривиальный конструктор и деструктор: например, сложные агрегатные состояния могут сами выделять дополнительную память. Это требует некоторого внимания к созданию и уничтожению государств и правильной передаче их права собственности и порядка уничтожения. - -Агрегатные состояния могут быть сериализованы и десериализованы для передачи по сети во время выполнения распределенного запроса или для записи их на диск, где недостаточно оперативной памяти. Они даже могут храниться в таблице с `DataTypeAggregateFunction` чтобы разрешить инкрементное агрегирование данных. - -> Сериализованный формат данных для состояний агрегатных функций в настоящее время не является версионным. Это нормально, если агрегатные состояния хранятся только временно. Но у нас есть такая возможность `AggregatingMergeTree` механизм таблиц для инкрементного агрегирования, и люди уже используют его в производстве. Именно по этой причине обратная совместимость требуется при изменении сериализованного формата для любой агрегатной функции в будущем. - -## Сервер {#server} - -Сервер реализует несколько различных интерфейсов: - -- Интерфейс HTTP для любых иностранных клиентов. -- TCP-интерфейс для собственного клиента ClickHouse и для межсерверной связи во время выполнения распределенного запроса. -- Интерфейс для передачи данных для репликации. - -Внутренне это просто примитивный многопоточный сервер без сопрограмм или волокон. Поскольку сервер предназначен не для обработки высокой скорости простых запросов, а для обработки относительно низкой скорости сложных запросов, каждый из них может обрабатывать огромное количество данных для аналитики. - -Сервер инициализирует программу `Context` класс с необходимой средой для выполнения запроса: список доступных баз данных, пользователей и прав доступа, настройки, кластеры, список процессов, журнал запросов и так далее. Переводчики используют эту среду. - -Мы поддерживаем полную обратную и прямую совместимость для протокола TCP сервера: старые клиенты могут разговаривать с новыми серверами, а новые клиенты-со старыми серверами. Но мы не хотим поддерживать его вечно, и мы удаляем поддержку старых версий примерно через год. - -!!! note "Примечание" - Для большинства внешних приложений мы рекомендуем использовать интерфейс HTTP, поскольку он прост и удобен в использовании. Протокол TCP более тесно связан с внутренними структурами данных: он использует внутренний формат для передачи блоков данных, а также использует пользовательское обрамление для сжатых данных. Мы не выпустили библиотеку C для этого протокола, потому что она требует связывания большей части кодовой базы ClickHouse, что нецелесообразно. - -## Выполнение Распределенных Запросов {#distributed-query-execution} - -Серверы в кластерной установке в основном независимы. Вы можете создать `Distributed` таблица на одном или всех серверах кластера. То `Distributed` table does not store data itself – it only provides a «view» ко всем локальным таблицам на нескольких узлах кластера. Когда вы выберите из `Distributed` таблица, он переписывает этот запрос, выбирает удаленные узлы в соответствии с настройками балансировки нагрузки и отправляет запрос к ним. То `Distributed` таблица запрашивает удаленные серверы для обработки запроса только до стадии, когда промежуточные результаты с разных серверов могут быть объединены. Затем он получает промежуточные результаты и сливает их. Распределенная таблица пытается распределить как можно больше работы на удаленные серверы и не отправляет много промежуточных данных по сети. - -Все становится сложнее, когда у вас есть подзапросы в предложениях IN или JOIN, и каждый из них использует a `Distributed` стол. У нас есть разные стратегии выполнения этих запросов. - -Глобального плана запросов для выполнения распределенных запросов не существует. Каждый узел имеет свой локальный план запроса для своей части задания. У нас есть только простое однопроходное распределенное выполнение запросов: мы отправляем запросы на удаленные узлы, а затем объединяем результаты. Но это неосуществимо для сложных запросов с высокой мощностью группы BYs или с большим количеством временных данных для соединения. В таких случаях нам необходимо: «reshuffle» данные между серверами, что требует дополнительной координации. ClickHouse не поддерживает такого рода выполнение запросов, и мы должны работать над этим. - -## Дерево Слияния {#merge-tree} - -`MergeTree` это семейство механизмов хранения данных, поддерживающих индексацию по первичному ключу. Первичный ключ может быть произвольным кортежем столбцов или выражений. Данные в a `MergeTree` таблица хранится в «parts». Каждая часть хранит данные в порядке первичного ключа, поэтому данные лексикографически упорядочиваются кортежем первичного ключа. Все столбцы таблицы хранятся отдельно `column.bin` файлы в этих краях. Файлы состоят из сжатых блоков. Каждый блок обычно содержит от 64 КБ до 1 МБ несжатых данных, в зависимости от среднего размера значения. Блоки состоят из значений столбцов, расположенных последовательно друг за другом. Значения столбцов находятся в одном и том же порядке для каждого столбца (первичный ключ определяет порядок), поэтому при итерации по многим столбцам вы получаете значения для соответствующих строк. - -Сам первичный ключ является «sparse». Он адресует не каждую отдельную строку, а только некоторые диапазоны данных. Разделение `primary.idx` файл имеет значение первичного ключа для каждой N-й строки, где N называется `index_granularity` (обычно N = 8192). Кроме того, для каждой колонки у нас есть `column.mrk` файлы с «marks,» которые являются смещениями для каждой N-й строки в файле данных. Каждая метка представляет собой пару: смещение в файле к началу сжатого блока и смещение в распакованном блоке к началу данных. Обычно сжатые блоки выравниваются по меткам, а смещение в распакованном блоке равно нулю. Данные для `primary.idx` всегда находится в памяти, а данные для `column.mrk` файлы кэшируются. - -Когда мы собираемся прочитать что-то из части в `MergeTree`, мы смотрим на `primary.idx` данные и найдите диапазоны, которые могут содержать запрошенные данные, а затем посмотрите на `column.mrk` данные и рассчитать смещения для того, чтобы начать чтение этих диапазонов. Из-за разреженности могут быть прочитаны избыточные данные. ClickHouse не подходит для высокой загрузки простых точечных запросов, так как весь диапазон с `index_granularity` строки должны быть прочитаны для каждого ключа, и весь сжатый блок должен быть распакован для каждого столбца. Мы сделали индекс разреженным, потому что мы должны быть в состоянии поддерживать триллионы строк на одном сервере без заметного потребления памяти для индекса. Кроме того, поскольку первичный ключ разрежен, он не является уникальным: он не может проверить существование ключа в таблице во время вставки. В таблице может быть много строк с одним и тем же ключом. - -Когда вы `INSERT` куча данных в `MergeTree`, эта связка сортируется по порядку первичного ключа и образует новую часть. Существуют фоновые потоки, которые периодически выделяют некоторые детали и объединяют их в одну сортированную деталь, чтобы сохранить количество деталей относительно низким. Вот почему он так называется `MergeTree`. Конечно, слияние приводит к тому, что «write amplification». Все части неизменны: они только создаются и удаляются, но не изменяются. Когда SELECT выполняется, он содержит снимок таблицы (набор деталей). После слияния мы также сохраняем старые детали в течение некоторого времени, чтобы облегчить восстановление после сбоя, поэтому, если мы видим, что какая-то объединенная деталь, вероятно, сломана, мы можем заменить ее исходными частями. - -`MergeTree` это не дерево LSM, потому что оно не содержит «memtable» и «log»: inserted data is written directly to the filesystem. This makes it suitable only to INSERT data in batches, not by individual row and not very frequently – about once per second is ok, but a thousand times a second is not. We did it this way for simplicity’s sake, and because we are already inserting data in batches in our applications. - -> Таблицы MergeTree могут иметь только один (первичный) индекс: вторичных индексов не существует. Было бы неплохо разрешить несколько физических представлений в одной логической таблице, например, хранить данные в более чем одном физическом порядке или даже разрешить представления с предварительно агрегированными данными наряду с исходными данными. - -Есть движки MergeTree, которые выполняют дополнительную работу во время фоновых слияний. Примеры `CollapsingMergeTree` и `AggregatingMergeTree`. Это можно рассматривать как специальную поддержку обновлений. Имейте в виду, что это не настоящие обновления, поскольку пользователи обычно не имеют никакого контроля над временем выполнения фоновых слияний, а данные в `MergeTree` таблица почти всегда хранится в нескольких частях, а не в полностью объединенном виде. - -## Копирование {#replication} - -Репликация в ClickHouse может быть настроена на основе каждой таблицы. Вы можете иметь некоторые реплицированные и некоторые нереплицированные таблицы на одном сервере. Вы также можете иметь таблицы, реплицируемые различными способами,например, одна таблица с двухфакторной репликацией, а другая-с трехфакторной. - -Репликация осуществляется в виде `ReplicatedMergeTree` подсистема хранилища. Путь в `ZooKeeper` указывается в качестве параметра для механизма хранения данных. Все таблицы с одинаковым путем внутри `ZooKeeper` становятся репликами друг друга: они синхронизируют свои данные и поддерживают согласованность. Реплики можно добавлять и удалять динамически, просто создавая или удаляя таблицу. - -Репликация использует асинхронную многомастерную схему. Вы можете вставить данные в любую реплику, которая имеет сеанс с `ZooKeeper`, и данные реплицируются во все остальные реплики асинхронно. Поскольку ClickHouse не поддерживает обновления, репликация является бесконфликтной. Поскольку нет подтверждения кворума вставок, только что вставленные данные могут быть потеряны, если один узел выйдет из строя. - -Метаданные для репликации хранятся в ZooKeeper. Существует журнал репликации, в котором перечислены необходимые действия. Действия таковы: получить часть; объединить части; удалить раздел и так далее. Каждая реплика копирует журнал репликации в свою очередь, а затем выполняет действия из этой очереди. Например, при вставке «get the part» действие создается в журнале, и каждая реплика загружает эту часть. Слияния координируются между репликами для получения идентичных байтам результатов. Все части объединяются одинаково на всех репликах. Это достигается путем выбора одной реплики в качестве лидера, и эта реплика инициирует слияние и запись «merge parts» действия по ведению журнала. - -Репликация является физической: между узлами передаются только сжатые части, а не запросы. Слияния обрабатываются на каждой реплике независимо в большинстве случаев, чтобы снизить затраты на сеть, избегая усиления сети. Большие объединенные части передаются по сети только в случаях значительного запаздывания репликации. - -Кроме того, каждая реплика хранит свое состояние в ZooKeeper как набор деталей и их контрольные суммы. Когда состояние локальной файловой системы отличается от эталонного состояния в ZooKeeper, реплика восстанавливает свою согласованность, загружая недостающие и сломанные части из других реплик. Когда в локальной файловой системе появляются неожиданные или неработающие данные, ClickHouse не удаляет их, а перемещает в отдельный каталог и забывает. - -!!! note "Примечание" - Кластер ClickHouse состоит из независимых сегментов, и каждый сегмент состоит из реплик. Кластер таков **неупругий**, поэтому после добавления нового осколка данные не будут автоматически перебалансированы между осколками. Вместо этого предполагается, что нагрузка на кластер будет регулироваться неравномерно. Эта реализация дает вам больше контроля, и это нормально для относительно небольших кластеров, таких как десятки узлов. Но для кластеров с сотнями узлов, которые мы используем в производстве, этот подход становится существенным недостатком. Мы должны реализовать механизм таблиц, который охватывает весь кластер с динамически реплицируемыми областями, которые могут быть разделены и сбалансированы между кластерами автоматически. - -{## [Оригинальная статья](https://clickhouse.tech/docs/en/development/architecture/) ##} diff --git a/docs/ru/development/architecture.md b/docs/ru/development/architecture.md new file mode 120000 index 0000000000..61968e46da --- /dev/null +++ b/docs/ru/development/architecture.md @@ -0,0 +1 @@ +en/development/architecture.md \ No newline at end of file diff --git a/docs/ru/development/build.md b/docs/ru/development/build.md deleted file mode 100644 index f0e0ccfd4a..0000000000 --- a/docs/ru/development/build.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Как построить ClickHouse для развития {#how-to-build-clickhouse-for-development} - -Следующий учебник основан на системе Ubuntu Linux. -С соответствующими изменениями он также должен работать на любом другом дистрибутиве Linux. -Поддерживаемые платформы: x86\_64 и AArch64. Поддержка Power9 является экспериментальной. - -## Установите Git, CMake, Python и Ninja {#install-git-cmake-python-and-ninja} - -``` bash -$ sudo apt-get install git cmake python ninja-build -``` - -Или cmake3 вместо cmake на старых системах. - -## Установка GCC 9 {#install-gcc-9} - -Есть несколько способов сделать это. - -### Установка из PPA пакет {#install-from-a-ppa-package} - -``` bash -$ sudo apt-get install software-properties-common -$ sudo apt-add-repository ppa:ubuntu-toolchain-r/test -$ sudo apt-get update -$ sudo apt-get install gcc-9 g++-9 -``` - -### Установка из источников {#install-from-sources} - -Смотреть на [utils/ci/build-gcc-from-sources.sh](https://github.com/ClickHouse/ClickHouse/blob/master/utils/ci/build-gcc-from-sources.sh) - -## Использовать GCC для сборки 9 {#use-gcc-9-for-builds} - -``` bash -$ export CC=gcc-9 -$ export CXX=g++-9 -``` - -## Проверка Источников ClickHouse {#checkout-clickhouse-sources} - -``` bash -$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git -``` - -или - -``` bash -$ git clone --recursive https://github.com/ClickHouse/ClickHouse.git -``` - -## Построить ClickHouse {#build-clickhouse} - -``` bash -$ cd ClickHouse -$ mkdir build -$ cd build -$ cmake .. -$ ninja -$ cd .. -``` - -Чтобы создать исполняемый файл, выполните команду `ninja clickhouse`. -Это позволит создать `programs/clickhouse` исполняемый файл, который может быть использован с `client` или `server` аргументы. - -# Как построить ClickHouse на любом Linux {#how-to-build-clickhouse-on-any-linux} - -Для сборки требуются следующие компоненты: - -- Git (используется только для проверки исходных текстов, он не нужен для сборки) -- CMake 3.10 или новее -- Ниндзя (рекомендуется) или сделать -- Компилятор C++: gcc 9 или clang 8 или новее -- Компоновщик: lld или gold (классический GNU ld не будет работать) -- Python (используется только внутри сборки LLVM и является необязательным) - -Если все компоненты установлены, Вы можете построить их так же, как и описанные выше шаги. - -Пример для Ubuntu Eoan: - - sudo apt update - sudo apt install git cmake ninja-build g++ python - git clone --recursive https://github.com/ClickHouse/ClickHouse.git - mkdir build && cd build - cmake ../ClickHouse - ninja - -Пример для OpenSUSE перекати-поле: - - sudo zypper install git cmake ninja gcc-c++ python lld - git clone --recursive https://github.com/ClickHouse/ClickHouse.git - mkdir build && cd build - cmake ../ClickHouse - ninja - -Пример для сыромятной кожи Fedora: - - sudo yum update - yum --nogpg install git cmake make gcc-c++ python2 - git clone --recursive https://github.com/ClickHouse/ClickHouse.git - mkdir build && cd build - cmake ../ClickHouse - make -j $(nproc) - -# Вам не нужно строить ClickHouse {#you-dont-have-to-build-clickhouse} - -ClickHouse доступен в готовых двоичных файлах и пакетах. Двоичные файлы являются портативными и могут быть запущены на любом вкусе Linux. - -Они созданы для стабильных, предустановленных и тестовых релизов до тех пор, пока для каждого коммита к мастеру и для каждого запроса на вытягивание. - -Чтобы найти самую свежую сборку из `master`, обратиться [совершает страницы](https://github.com/ClickHouse/ClickHouse/commits/master), нажмите на первую зеленую галочку или красный крестик рядом с фиксацией и нажмите на кнопку «Details» ссылка сразу после этого «ClickHouse Build Check». - -# Как создать пакет ClickHouse Debian {#how-to-build-clickhouse-debian-package} - -## Установите Git и Pbuilder {#install-git-and-pbuilder} - -``` bash -$ sudo apt-get update -$ sudo apt-get install git python pbuilder debhelper lsb-release fakeroot sudo debian-archive-keyring debian-keyring -``` - -## Проверка Источников ClickHouse {#checkout-clickhouse-sources-1} - -``` bash -$ git clone --recursive --branch master https://github.com/ClickHouse/ClickHouse.git -$ cd ClickHouse -``` - -## Запустить Сценарий Выпуска {#run-release-script} - -``` bash -$ ./release -``` - -[Оригинальная статья](https://clickhouse.tech/docs/en/development/build/) diff --git a/docs/ru/development/build.md b/docs/ru/development/build.md new file mode 120000 index 0000000000..156d838251 --- /dev/null +++ b/docs/ru/development/build.md @@ -0,0 +1 @@ +en/development/build.md \ No newline at end of file diff --git a/docs/ru/development/build_cross_arm.md b/docs/ru/development/build_cross_arm.md deleted file mode 100644 index 184028212e..0000000000 --- a/docs/ru/development/build_cross_arm.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Как построить ClickHouse на Linux для архитектуры AArch64 (ARM64) {#how-to-build-clickhouse-on-linux-for-aarch64-arm64-architecture} - -Это для случая, когда у вас есть Linux-машина и вы хотите использовать ее для сборки `clickhouse` двоичный файл, который будет работать на другой машине Linux с архитектурой процессора AARCH64. Это предназначено для непрерывной проверки интеграции, которая выполняется на серверах Linux. - -Кросс-сборка для AARCH64 основана на следующих принципах: [Инструкции по сборке](build.md)- сначала следуйте за ними. - -# Установка Clang-8 {#install-clang-8} - -Следуйте инструкциям от https://apt.llvm.org/ для вашей установки Ubuntu или Debian. -Например, в Ubuntu Bionic вы можете использовать следующие команды: - -``` bash -echo "deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" | sudo tee /etc/apt/sources.list.d/llvm.list -sudo apt-get update -sudo apt-get install clang-8 -``` - -# Установка Набора Инструментов Перекрестной Компиляции {#install-cross-compilation-toolset} - -``` bash -cd ClickHouse -mkdir -p build-aarch64/cmake/toolchain/linux-aarch64 -wget 'https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz?revision=2e88a73f-d233-4f96-b1f4-d8b36e9bb0b9&la=en' -O gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -tar xJf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C build-aarch64/cmake/toolchain/linux-aarch64 --strip-components=1 -``` - -# Построить ClickHouse {#build-clickhouse} - -``` bash -cd ClickHouse -mkdir build-arm64 -CC=clang-8 CXX=clang++-8 cmake . -Bbuild-arm64 -DCMAKE_TOOLCHAIN_FILE=cmake/linux/toolchain-aarch64.cmake -ninja -C build-arm64 -``` - -Полученный двоичный файл будет работать только в Linux с архитектурой процессора AARCH64. diff --git a/docs/ru/development/build_cross_arm.md b/docs/ru/development/build_cross_arm.md new file mode 120000 index 0000000000..ea33bb6183 --- /dev/null +++ b/docs/ru/development/build_cross_arm.md @@ -0,0 +1 @@ +en/development/build_cross_arm.md \ No newline at end of file diff --git a/docs/ru/development/build_cross_osx.md b/docs/ru/development/build_cross_osx.md deleted file mode 100644 index 04d505f1a8..0000000000 --- a/docs/ru/development/build_cross_osx.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Как построить ClickHouse на Linux для Mac OS X {#how-to-build-clickhouse-on-linux-for-mac-os-x} - -Это для случая, когда у вас есть Linux-машина и вы хотите использовать ее для сборки `clickhouse` двоичный файл, который будет работать на OS X. Это предназначено для непрерывной проверки интеграции, которая выполняется на серверах Linux. Если вы хотите построить ClickHouse непосредственно на Mac OS X, то продолжайте [еще одна инструкция](build_osx.md). - -Кросс-сборка для Mac OS X основана на следующих принципах: [Инструкции по сборке](build.md)- сначала следуйте за ними. - -# Установка Clang-8 {#install-clang-8} - -Следуйте инструкциям от https://apt.llvm.org/ для вашей установки Ubuntu или Debian. -Например команды для Bionic выглядят так: - -``` bash -sudo echo "deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" >> /etc/apt/sources.list -sudo apt-get install clang-8 -``` - -# Установка Набора Инструментов Перекрестной Компиляции {#install-cross-compilation-toolset} - -Давайте вспомним путь, по которому мы устанавливаем `cctools` как ${CCTOOLS} - -``` bash -mkdir ${CCTOOLS} - -git clone https://github.com/tpoechtrager/apple-libtapi.git -cd apple-libtapi -INSTALLPREFIX=${CCTOOLS} ./build.sh -./install.sh -cd .. - -git clone https://github.com/tpoechtrager/cctools-port.git -cd cctools-port/cctools -./configure --prefix=${CCTOOLS} --with-libtapi=${CCTOOLS} --target=x86_64-apple-darwin -make install -``` - -Кроме того, нам нужно загрузить MacOS X SDK в рабочее дерево. - -``` bash -cd ClickHouse -wget 'https://github.com/phracker/MacOSX-SDKs/releases/download/10.14-beta4/MacOSX10.14.sdk.tar.xz' -mkdir -p build-darwin/cmake/toolchain/darwin-x86_64 -tar xJf MacOSX10.14.sdk.tar.xz -C build-darwin/cmake/toolchain/darwin-x86_64 --strip-components=1 -``` - -# Построить ClickHouse {#build-clickhouse} - -``` bash -cd ClickHouse -mkdir build-osx -CC=clang-8 CXX=clang++-8 cmake . -Bbuild-osx -DCMAKE_TOOLCHAIN_FILE=cmake/darwin/toolchain-x86_64.cmake \ - -DCMAKE_AR:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ar \ - -DCMAKE_RANLIB:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ranlib \ - -DLINKER_NAME=${CCTOOLS}/bin/x86_64-apple-darwin-ld -ninja -C build-osx -``` - -Полученный двоичный файл будет иметь исполняемый формат Mach-O и не может быть запущен в Linux. diff --git a/docs/ru/development/build_cross_osx.md b/docs/ru/development/build_cross_osx.md new file mode 120000 index 0000000000..d4dc16f2fb --- /dev/null +++ b/docs/ru/development/build_cross_osx.md @@ -0,0 +1 @@ +en/development/build_cross_osx.md \ No newline at end of file diff --git a/docs/ru/development/build_osx.md b/docs/ru/development/build_osx.md deleted file mode 100644 index b218304d9d..0000000000 --- a/docs/ru/development/build_osx.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Как построить ClickHouse на Mac OS X {#how-to-build-clickhouse-on-mac-os-x} - -Сборка должна работать на Mac OS X 10.15 (Catalina) - -## Установите Homebrew {#install-homebrew} - -``` bash -$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -## Установите необходимые компиляторы, инструменты и библиотеки {#install-required-compilers-tools-and-libraries} - -``` bash -$ brew install cmake ninja libtool gettext -``` - -## Проверка Источников ClickHouse {#checkout-clickhouse-sources} - -``` bash -$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git -``` - -или - -``` bash -$ git clone --recursive https://github.com/ClickHouse/ClickHouse.git - -$ cd ClickHouse -``` - -## Построить ClickHouse {#build-clickhouse} - -``` bash -$ mkdir build -$ cd build -$ cmake .. -DCMAKE_CXX_COMPILER=`which clang++` -DCMAKE_C_COMPILER=`which clang` -$ ninja -$ cd .. -``` - -## Предостережения {#caveats} - -Если вы собираетесь запустить clickhouse-сервер, убедитесь в том, чтобы увеличить параметром maxfiles системная переменная. - -!!! info "Примечание" - Вам нужно будет использовать sudo. - -Для этого создайте следующий файл: - -/Библиотека / LaunchDaemons / limit.параметром maxfiles.файл plist: - -``` xml - - - - - Label - limit.maxfiles - ProgramArguments - - launchctl - limit - maxfiles - 524288 - 524288 - - RunAtLoad - - ServiceIPC - - - -``` - -Выполните следующую команду: - -``` bash -$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist -``` - -Перезагрузить. - -Чтобы проверить, работает ли он, вы можете использовать `ulimit -n` команда. - -[Оригинальная статья](https://clickhouse.tech/docs/en/development/build_osx/) diff --git a/docs/ru/development/build_osx.md b/docs/ru/development/build_osx.md new file mode 120000 index 0000000000..5c38a2b001 --- /dev/null +++ b/docs/ru/development/build_osx.md @@ -0,0 +1 @@ +en/development/build_osx.md \ No newline at end of file diff --git a/docs/ru/development/index.md b/docs/ru/development/index.md deleted file mode 100644 index 8bf31ed0d3..0000000000 --- a/docs/ru/development/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Разработка ClickHouse {#clickhouse-development} - -[Оригинальная статья](https://clickhouse.tech/docs/en/development/) diff --git a/docs/ru/development/index.md b/docs/ru/development/index.md new file mode 120000 index 0000000000..754385a9f4 --- /dev/null +++ b/docs/ru/development/index.md @@ -0,0 +1 @@ +en/development/index.md \ No newline at end of file diff --git a/docs/ru/development/tests.md b/docs/ru/development/tests.md deleted file mode 100644 index 1dfcdfdfe6..0000000000 --- a/docs/ru/development/tests.md +++ /dev/null @@ -1,250 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Тестирование ClickHouse {#clickhouse-testing} - -## Функциональные пробы {#functional-tests} - -Функциональные тесты являются наиболее простыми и удобными в использовании. Большинство функций ClickHouse можно протестировать с помощью функциональных тестов, и они обязательны для использования при каждом изменении кода ClickHouse, которое может быть протестировано таким образом. - -Каждый функциональный тест отправляет один или несколько запросов на запущенный сервер ClickHouse и сравнивает результат со ссылкой. - -Тесты расположены в `queries` каталог. Существует два подкаталога: `stateless` и `stateful`. Тесты без состояния выполняют запросы без каких - либо предварительно загруженных тестовых данных-они часто создают небольшие синтетические наборы данных на лету, в самом тесте. Статусные тесты требуют предварительно загруженных тестовых данных от Яндекса.Метрика и не доступна широкой публике. Мы склонны использовать только `stateless` тесты и избегайте добавления новых `stateful` тесты. - -Каждый тест может быть одного из двух типов: `.sql` и `.sh`. `.sql` тест - это простой SQL-скрипт, который передается по конвейеру в `clickhouse-client --multiquery --testmode`. `.sh` тест - это скрипт, который запускается сам по себе. - -Чтобы выполнить все тесты, используйте `testskhouse-test` инструмент. Смотри `--help` для списка возможных вариантов. Вы можете просто запустить все тесты или запустить подмножество тестов, отфильтрованных по подстроке в имени теста: `./clickhouse-test substring`. - -Самый простой способ вызвать функциональные тесты-это скопировать `clickhouse-client` к `/usr/bin/`, бежать `clickhouse-server` а потом бежать `./clickhouse-test` из собственного каталога. - -Чтобы добавить новый тест, создайте `.sql` или `.sh` файл в `queries/0_stateless` каталог, проверьте его вручную, а затем сгенерируйте `.reference` файл создается следующим образом: `clickhouse-client -n --testmode < 00000_test.sql > 00000_test.reference` или `./00000_test.sh > ./00000_test.reference`. - -Тесты должны использовать (создавать, отбрасывать и т. д.) Только таблицы в `test` предполагается, что база данных создается заранее; также тесты могут использовать временные таблицы. - -Если вы хотите использовать распределенные запросы в функциональных тестах, вы можете использовать их в качестве рычагов `remote` функция таблицы с `127.0.0.{1..2}` адреса для запроса самого сервера; или вы можете использовать предопределенные тестовые кластеры в файле конфигурации сервера, например `test_shard_localhost`. - -Некоторые тесты помечены знаком `zookeeper`, `shard` или `long` в своем названии. -`zookeeper` это для тестов, которые используют ZooKeeper. `shard` это для тестов, что -требуется сервер для прослушивания `127.0.0.*`; `distributed` или `global` есть то же самое -значение. `long` это для тестов, которые работают немного дольше, чем одна секунда. Ты можешь -отключите эти группы тестов с помощью `--no-zookeeper`, `--no-shard` и -`--no-long` варианты, соответственно. - -## Известная ошибка {#known-bugs} - -Если мы знаем некоторые ошибки, которые могут быть легко воспроизведены функциональными тестами, мы помещаем подготовленные функциональные тесты в `queries/bugs` каталог. Эти тесты будут перенесены в `teststests_stateless` когда ошибки будут исправлены. - -## Интеграционные Тесты {#integration-tests} - -Интеграционные тесты позволяют тестировать ClickHouse в кластерной конфигурации и взаимодействие ClickHouse с другими серверами, такими как MySQL, Postgres, MongoDB. Они полезны для эмуляции сетевых разбиений, отбрасывания пакетов и т. д. Эти тесты выполняются в Docker и создают несколько контейнеров с различным программным обеспечением. - -Видеть `testsgration/README.md` о том, как проводить эти тесты. - -Обратите внимание, что интеграция ClickHouse со сторонними драйверами не тестируется. Кроме того, в настоящее время у нас нет интеграционных тестов с нашими драйверами JDBC и ODBC. - -## Модульное тестирование {#unit-tests} - -Модульные тесты полезны, если вы хотите протестировать не весь ClickHouse в целом, а одну изолированную библиотеку или класс. Вы можете включить или отключить сборку тестов с помощью `ENABLE_TESTS` Вариант CMake. Модульные тесты (и другие тестовые программы) расположены в `tests` подкаталоги по всему коду. Чтобы запустить модульные тесты, введите `ninja test`. Некоторые тесты используют `gtest`, но некоторые из них-это просто программы, которые возвращают ненулевой код выхода при сбое теста. - -Не обязательно иметь модульные тесты, Если код уже охвачен функциональными тестами (а функциональные тесты обычно гораздо более просты в использовании). - -## Эксплуатационное испытание {#performance-tests} - -Тесты производительности позволяют измерять и сравнивать производительность некоторой изолированной части ClickHouse по синтетическим запросам. Тесты расположены по адресу `tests/performance`. Каждый тест представлен следующим образом `.xml` файл с описанием тестового случая. Тесты выполняются с помощью `clickhouse performance-test` инструмент (который встроен в `clickhouse` двоичный). Видеть `--help` для призыва. - -Каждый тест запускает один или несколько запросов (возможно, с комбинациями параметров) в цикле с некоторыми условиями остановки (например «maximum execution speed is not changing in three seconds») и измерьте некоторые показатели производительности запросов (например, «maximum execution speed»). Некоторые тесты могут содержать предварительные условия для предварительно загруженного тестового набора данных. - -Если вы хотите улучшить производительность ClickHouse в каком-то сценарии, и если улучшения могут наблюдаться в простых запросах, настоятельно рекомендуется написать тест производительности. Это всегда имеет смысл использовать `perf top` или другие инструменты perf во время ваших тестов. - -## Инструменты И Сценарии Тестирования {#test-tools-and-scripts} - -Некоторые программы в `tests` каталог-это не подготовленные тесты, а инструменты тестирования. Например, для `Lexer` есть такой инструмент `dbms/Parsers/tests/lexer` это просто делает токенизацию stdin и записывает раскрашенный результат в stdout. Вы можете использовать эти инструменты в качестве примеров кода, а также для исследования и ручного тестирования. - -Вы также можете разместить пару файлов `.sh` и `.reference` вместе с инструментом нужно запустить его на каком - то заранее заданном входе- тогда результат скрипта можно сравнить с `.reference` файл. Такого рода тесты не автоматизированы. - -## Различные Тесты {#miscellanous-tests} - -Существуют тесты для внешних словарей, расположенных по адресу `tests/external_dictionaries` и для машинно-обученных моделей в `tests/external_models`. Эти тесты не обновляются и должны быть перенесены в интеграционные тесты. - -Существует отдельный тест для вставки кворума. Этот тест запускает кластер ClickHouse на отдельных серверах и эмулирует различные случаи сбоя: разделение сети, отбрасывание пакетов (между узлами ClickHouse, между ClickHouse и ZooKeeper, между сервером ClickHouse и клиентом и т. д.), `kill -9`, `kill -STOP` и `kill -CONT` , любить [Джепсен](https://aphyr.com/tags/Jepsen). Затем тест проверяет, что все признанные вставки были записаны, а все отклоненные вставки-нет. - -Тест кворума был написан отдельной командой еще до того, как ClickHouse стал открытым исходным кодом. Эта команда больше не работает с ClickHouse. Тест был случайно написан на Java. По этим причинам тест кворума должен быть переписан и перенесен в интеграционные тесты. - -## Ручное тестирование {#manual-testing} - -Когда вы разрабатываете новую функцию, разумно также протестировать ее вручную. Вы можете сделать это с помощью следующих шагов: - -Постройте ClickHouse. Запустите ClickHouse из терминала: измените каталог на `programs/clickhouse-server` и запустить его с помощью `./clickhouse-server`. Он будет использовать конфигурацию (`config.xml`, `users.xml` и файлы внутри `config.d` и `users.d` каталоги) из текущего каталога по умолчанию. Чтобы подключиться к серверу ClickHouse, выполните команду `programs/clickhouse-client/clickhouse-client`. - -Обратите внимание, что все инструменты clickhouse (сервер, клиент и т. д.) являются просто символическими ссылками на один двоичный файл с именем `clickhouse`. Вы можете найти этот двоичный файл по адресу `programs/clickhouse`. Все инструменты также могут быть вызваны как `clickhouse tool` вместо `clickhouse-tool`. - -В качестве альтернативы вы можете установить пакет ClickHouse: либо стабильный релиз из репозитория Яндекса, либо вы можете построить пакет для себя с помощью `./release` в корне источников ClickHouse. Затем запустите сервер с помощью `sudo service clickhouse-server start` (или остановить, чтобы остановить сервер). Ищите журналы по адресу `/etc/clickhouse-server/clickhouse-server.log`. - -Когда ClickHouse уже установлен в вашей системе, вы можете построить новый `clickhouse` двоичный код и заменить существующий двоичный код: - -``` bash -$ sudo service clickhouse-server stop -$ sudo cp ./clickhouse /usr/bin/ -$ sudo service clickhouse-server start -``` - -Также вы можете остановить системный clickhouse-сервер и запустить свой собственный с той же конфигурацией, но с регистрацией в терминал: - -``` bash -$ sudo service clickhouse-server stop -$ sudo -u clickhouse /usr/bin/clickhouse server --config-file /etc/clickhouse-server/config.xml -``` - -Пример с gdb: - -``` bash -$ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/clickhouse-server/config.xml -``` - -Если системный clickhouse-сервер уже запущен, и вы не хотите его останавливать, вы можете изменить номера портов в своей системе. `config.xml` (или переопределить их в файле внутри `config.d` каталог), укажите соответствующий путь к данным и запустите его. - -`clickhouse` binary почти не имеет зависимостей и работает в широком диапазоне дистрибутивов Linux. Чтобы быстро и грязно протестировать свои изменения на сервере, вы можете просто `scp` ваша свежая постройка `clickhouse` двоичный файл на ваш сервер, а затем запустите его, как в приведенных выше примерах. - -## Тестовая среда {#testing-environment} - -Перед публикацией релиза как стабильного мы развертываем его в тестовой среде. Среда тестирования-это кластер, который обрабатывает 1/39 часть [Яндекс.Метрика](https://metrica.yandex.com/) данные. Мы делимся нашей тестовой средой с Яндексом.Команда метрики. ClickHouse обновляется без простоев поверх существующих данных. Мы смотрим сначала на то, что данные обрабатываются успешно, не отставая от реального времени, репликация продолжает работать и нет никаких проблем, видимых Яндексу.Команда метрики. Первую проверку можно провести следующим образом: - -``` sql -SELECT hostName() AS h, any(version()), any(uptime()), max(UTCEventTime), count() FROM remote('example01-01-{1..3}t', merge, hits) WHERE EventDate >= today() - 2 GROUP BY h ORDER BY h; -``` - -В некоторых случаях мы также развернуть на тестирование среды нашего друга команды Яндекса: Маркет, облако и т. д. Кроме того, у нас есть некоторые аппаратные серверы, которые используются для целей разработки. - -## Нагрузочное тестирование {#load-testing} - -После развертывания в среде тестирования мы запускаем нагрузочное тестирование с запросами из производственного кластера. Это делается вручную. - -Убедитесь, что вы включили `query_log` на вашем производственном кластере. - -Сбор журнала запросов в течение одного или нескольких дней: - -``` bash -$ clickhouse-client --query="SELECT DISTINCT query FROM system.query_log WHERE event_date = today() AND query LIKE '%ym:%' AND query NOT LIKE '%system.query_log%' AND type = 2 AND is_initial_query" > queries.tsv -``` - -Это очень сложный пример. `type = 2` будет фильтровать запросы, которые выполняются успешно. `query LIKE '%ym:%'` это выбор релевантных запросов от Яндекса.Метрика. `is_initial_query` это выбор только тех запросов, которые инициируются клиентом, а не самим ClickHouse (как части распределенной обработки запросов). - -`scp` это войдите в свой тестовый кластер и запустите его следующим образом: - -``` bash -$ clickhouse benchmark --concurrency 16 < queries.tsv -``` - -(вероятно, вы также хотите указать a `--user`) - -Затем оставьте его на ночь или выходные и идите отдыхать. - -Вы должны это проверить `clickhouse-server` не дает сбоя, объем памяти ограничен, а производительность не ухудшается с течением времени. - -Точные тайминги выполнения запросов не регистрируются и не сравниваются из-за высокой вариативности запросов и окружающей среды. - -## Построение Тестов {#build-tests} - -Тесты сборки позволяют проверить, что сборка не нарушается на различных альтернативных конфигурациях и на некоторых зарубежных системах. Тесты расположены по адресу `ci` каталог. Они запускают сборку из исходного кода внутри Docker, Vagrant, а иногда и с помощью `qemu-user-static` внутри Докер. Эти тесты находятся в стадии разработки, и тестовые запуски не автоматизированы. - -Мотивация: - -Обычно мы выпускаем и запускаем все тесты на одном варианте сборки ClickHouse. Но есть и альтернативные варианты сборки, которые не проходят тщательной проверки. Примеры: - -- сборка на FreeBSD; -- сборка на Debian с библиотеками из системных пакетов; -- сборка с общим связыванием библиотек; -- построить на платформе AArch64 ; -- постройте на платформе PowerPc. - -Например, сборка с системными пакетами-это плохая практика, потому что мы не можем гарантировать, какая именно версия пакетов будет у системы. Но это действительно необходимо сопровождающим Debian. По этой причине мы, по крайней мере, должны поддерживать этот вариант сборки. Другой пример: Общие ссылки-это общий источник проблем, но он необходим для некоторых энтузиастов. - -Хотя мы не можем выполнить все тесты на всех вариантах сборки, мы хотим проверить, по крайней мере, что различные варианты сборки не нарушены. Для этого мы используем тесты сборки. - -## Тестирование Совместимости Протоколов {#testing-for-protocol-compatibility} - -Когда мы расширяем сетевой протокол ClickHouse, мы вручную проверяем, что старый clickhouse-клиент работает с новым clickhouse-сервером, а новый clickhouse-клиент работает со старым clickhouse-сервером (просто запустив двоичные файлы из соответствующих пакетов). - -## Помощь От Компилятора {#help-from-the-compiler} - -Основной код ClickHouse (который находится в `dbms` каталог) строится с помощью `-Wall -Wextra -Werror` и с некоторыми дополнительными включенными предупреждениями. Хотя эти параметры не включены для сторонних библиотек. - -У Clang есть еще более полезные предупреждения - вы можете искать их с помощью `-Weverything` и выберите что-то для сборки по умолчанию. - -Для производственных сборок используется gcc (он все еще генерирует немного более эффективный код, чем clang). Для развития, лязгают, как правило, более удобны в использовании. Вы можете построить на своей собственной машине с режимом отладки (чтобы сэкономить батарею вашего ноутбука), но обратите внимание, что компилятор способен генерировать больше предупреждений с помощью `-O3` благодаря лучшему потоку управления и межпроцедурному анализу. При строительстве с лязгом, `libc++` используется вместо `libstdc++` и при построении с режимом отладки, отладочная версия `libc++` используется, что позволяет ловить больше ошибок во время выполнения. - -## Дезинфицирующее средство {#sanitizers} - -**Адрес дезинфицирующее средство**. -Мы проводим функциональные и интеграционные тесты в асане на фиксации основы. - -**С Valgrind (Помощи Valgrind)**. -Мы проводим функциональные тесты под Valgrind ночь. Это займет несколько часов. В настоящее время существует один известный ложноположительный результат в `re2` библиотека, см. [эта статья](https://research.swtch.com/sparse). - -**Неопределенное поведение дезинфицирующего средства.** -Мы проводим функциональные и интеграционные тесты в асане на фиксации основы. - -**Дезинфицирующее средство для нитей**. -Мы проводим функциональные тесты в рамках TSan на основе per-commit. Мы все еще не запускаем интеграционные тесты под TSan на основе per-commit. - -**Дезинфицирующее средство для памяти**. -В настоящее время мы все еще не используем MSan. - -**Отладочный распределитель.** -Отладочная версия `jemalloc` используется для отладки сборки. - -## Затуманивающего {#fuzzing} - -Мы используем простой тест fuzz для генерации случайных SQL-запросов и проверки того, что сервер не умирает. Тестирование пуха проводится с помощью адресного дезинфицирующего средства. Вы можете найти его в `00746_sql_fuzzy.pl`. Этот тест следует проводить непрерывно (в течение ночи и дольше). - -По состоянию на декабрь 2018 года мы все еще не используем изолированное тестирование fuzz библиотечного кода. - -## Аудит безопасности {#security-audit} - -Люди из облачного отдела Яндекса делают некоторый базовый обзор возможностей ClickHouse с точки зрения безопасности. - -## Статический анализатор {#static-analyzers} - -Мы бежим `PVS-Studio` на основе каждой фиксации. Мы провели оценку `clang-tidy`, `Coverity`, `cppcheck`, `PVS-Studio`, `tscancode`. Вы найдете инструкции по использованию в `tests/instructions/` каталог. Кроме того, вы можете читать [статья на русском языке](https://habr.com/company/yandex/blog/342018/). - -Если вы используете `CLion` как IDE, вы можете использовать некоторые из них `clang-tidy` выписывает чеки из коробки. - -## Затвердение {#hardening} - -`FORTIFY_SOURCE` используется по умолчанию. Это почти бесполезно, но все же имеет смысл в редких случаях, и мы не отключаем его. - -## Стиль Кода {#code-style} - -Описаны правила стиля кода [здесь](https://clickhouse.tech/docs/en/development/style/). - -Чтобы проверить наличие некоторых распространенных нарушений стиля, вы можете использовать `utils/check-style` скрипт. - -Чтобы принудительно создать правильный стиль вашего кода, Вы можете использовать `clang-format`. Файл `.clang-format` находится в корне источника. Это в основном соответствует нашему фактическому стилю кода. Но применять его не рекомендуется `clang-format` к существующим файлам, потому что это ухудшает форматирование. Вы можете использовать `clang-format-diff` инструмент, который вы можете найти в репозитории Clang source. - -В качестве альтернативы вы можете попробовать `uncrustify` инструмент для переформатирования вашего кода. Конфигурации в `uncrustify.cfg` в корне источников. Это меньше, чем `clang-format`. - -`CLion` имеет свой собственный формататор кода, который должен быть настроен для нашего стиля кода. - -## В2В метрика тесты {#metrica-b2b-tests} - -Каждый релиз ClickHouse тестируется с помощью движков Yandex Metrica и AppMetrica. Тестовые и стабильные версии ClickHouse развертываются на виртуальных машинах и запускаются с небольшой копией движка Metrica engine, который обрабатывает фиксированную выборку входных данных. Затем результаты двух экземпляров двигателя Metrica сравниваются вместе. - -Эти тесты автоматизированы отдельной командой. Из-за большого количества движущихся частей тесты чаще всего проваливаются по совершенно несвязанным причинам, которые очень трудно выяснить. Скорее всего, эти тесты имеют для нас отрицательное значение. Тем не менее эти тесты оказались полезными примерно в одном или двух случаях из сотен. - -## Тестовое покрытие {#test-coverage} - -По состоянию на июль 2018 года мы не отслеживаем покрытие тестов. - -## Автоматизация тестирования {#test-automation} - -Мы проводим тесты с помощью внутренней CI Яндекса и системы автоматизации заданий под названием «Sandbox». - -Задания сборки и тесты выполняются в песочнице на основе каждой фиксации. Полученные пакеты и результаты тестирования публикуются на GitHub и могут быть загружены по прямым ссылкам. Артефакты хранятся вечно. Когда вы отправляете запрос на вытягивание на GitHub, мы помечаем его как «can be tested» и наша система CI построит пакеты ClickHouse (release, debug, with address sanitizer и т. д.) Для вас. - -Мы не используем Travis CI из-за ограничения по времени и вычислительной мощности. -Мы не используем Дженкинса. Он был использован раньше, и теперь мы счастливы, что не используем Дженкинса. - -[Оригинальная статья](https://clickhouse.tech/docs/en/development/tests/) -разработка / испытания/) diff --git a/docs/ru/development/tests.md b/docs/ru/development/tests.md new file mode 120000 index 0000000000..ce23c881f3 --- /dev/null +++ b/docs/ru/development/tests.md @@ -0,0 +1 @@ +en/development/tests.md \ No newline at end of file diff --git a/docs/ru/engines/table_engines/special/generate.md b/docs/ru/engines/table_engines/special/generate.md deleted file mode 100644 index 87004bfe5b..0000000000 --- a/docs/ru/engines/table_engines/special/generate.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# GenerateRandom {#table_engines-generate} - -Механизм генерации случайных таблиц генерирует случайные данные для данной схемы таблиц. - -Примеры употребления: - -- Используйте в тесте для заполнения воспроизводимого большого стола. -- Генерируйте случайные входные данные для тестов размытия. - -## Использование в сервере ClickHouse {#usage-in-clickhouse-server} - -``` sql -ENGINE = GenerateRandom(random_seed, max_string_length, max_array_length) -``` - -То `max_array_length` и `max_string_length` параметры укажите максимальную длину всех -столбцы массива и строки соответственно в генерируемых данных. - -Генерация таблицы движок поддерживает только `SELECT` запросы. - -Он поддерживает все [Тип данных](../../../engines/table_engines/special/generate.md) это может быть сохранено в таблице за исключением `LowCardinality` и `AggregateFunction`. - -**Пример:** - -**1.** Настройка системы `generate_engine_table` стол: - -``` sql -CREATE TABLE generate_engine_table (name String, value UInt32) ENGINE = GenerateRandom(1, 5, 3) -``` - -**2.** Запрос данных: - -``` sql -SELECT * FROM generate_engine_table LIMIT 3 -``` - -``` text -┌─name─┬──────value─┐ -│ c4xJ │ 1412771199 │ -│ r │ 1791099446 │ -│ 7#$ │ 124312908 │ -└──────┴────────────┘ -``` - -## Детали внедрения {#details-of-implementation} - -- Не поддерживаемый: - - `ALTER` - - `SELECT ... SAMPLE` - - `INSERT` - - Индексы - - Копирование - -[Оригинальная статья](https://clickhouse.tech/docs/en/operations/table_engines/generate/) diff --git a/docs/ru/engines/table_engines/special/generate.md b/docs/ru/engines/table_engines/special/generate.md new file mode 120000 index 0000000000..631f9bbba6 --- /dev/null +++ b/docs/ru/engines/table_engines/special/generate.md @@ -0,0 +1 @@ +en/engines/table_engines/special/generate.md \ No newline at end of file diff --git a/docs/ru/getting_started/tutorial.md b/docs/ru/getting_started/tutorial.md deleted file mode 100644 index 69cdeac838..0000000000 --- a/docs/ru/getting_started/tutorial.md +++ /dev/null @@ -1,669 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Учебник По Клик-Хаусу {#clickhouse-tutorial} - -## Чего ожидать от этого урока? {#what-to-expect-from-this-tutorial} - -Пройдя через этот учебник,вы узнаете, как настроить простой кластер ClickHouse. Он будет небольшим, но отказоустойчивым и масштабируемым. Затем мы будем использовать один из примеров наборов данных, чтобы заполнить его данными и выполнить некоторые демонстрационные запросы. - -## Настройка Одного Узла {#single-node-setup} - -Чтобы избежать сложностей распределенной среды, мы начнем с развертывания ClickHouse на одном сервере или виртуальной машине. ClickHouse обычно устанавливается из [дебютантка](install.md#install-from-deb-packages) или [оборотов в минуту](install.md#from-rpm-packages) пакеты, но есть и такие [альтернативы](install.md#from-docker-image) для операционных систем, которые их не поддерживают. - -Например, вы выбрали `deb` пакеты и выполненные работы: - -``` bash -sudo apt-get install dirmngr -sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4 - -echo "deb http://repo.clickhouse.tech/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list -sudo apt-get update - -sudo apt-get install -y clickhouse-server clickhouse-client -``` - -Что у нас есть в пакетах, которые были установлены: - -- `clickhouse-client` пакет содержит [clickhouse-клиент](../interfaces/cli.md) приложение, интерактивный консольный клиент ClickHouse. -- `clickhouse-common` пакет содержит исполняемый файл ClickHouse. -- `clickhouse-server` пакет содержит файлы конфигурации для запуска ClickHouse в качестве сервера. - -Файлы конфигурации сервера находятся в `/etc/clickhouse-server/`. Прежде чем идти дальше, пожалуйста, обратите внимание на `` элемент в `config.xml`. Путь определяет место для хранения данных, поэтому он должен быть расположен на Томе с большой емкостью диска; значение по умолчанию равно `/var/lib/clickhouse/`. Если вы хотите настроить конфигурацию, то это не удобно для непосредственного редактирования `config.xml` файл, учитывая, что он может быть переписан при будущих обновлениях пакета. Рекомендуемый способ переопределения элементов конфигурации заключается в создании [файлы в конфигурации.D каталог](../operations/configuration_files.md) которые служат в качестве «patches» к конфигурации.XML. - -Как вы могли заметить, `clickhouse-server` не запускается автоматически после установки пакета. Он также не будет автоматически перезапущен после обновления. То, как вы запускаете сервер, зависит от вашей системы init, как правило, это так: - -``` bash -sudo service clickhouse-server start -``` - -или - -``` bash -sudo /etc/init.d/clickhouse-server start -``` - -По умолчанию для журналов сервера используется следующее расположение `/var/log/clickhouse-server/`. Сервер готов к обработке клиентских подключений, как только он регистрирует `Ready for connections` сообщение. - -Как только это произойдет `clickhouse-server` все готово и работает, мы можем использовать `clickhouse-client` чтобы подключиться к серверу и выполнить некоторые тестовые запросы, такие как `SELECT "Hello, world!";`. - -
- -Быстрые советы для clickhouse-клиента -Интерактивный режим: - -``` bash -clickhouse-client -clickhouse-client --host=... --port=... --user=... --password=... -``` - -Включить многострочные запросы: - -``` bash -clickhouse-client -m -clickhouse-client --multiline -``` - -Запуск запросов в пакетном режиме: - -``` bash -clickhouse-client --query='SELECT 1' -echo 'SELECT 1' | clickhouse-client -clickhouse-client <<< 'SELECT 1' -``` - -Вставка данных из файла в заданном формате: - -``` bash -clickhouse-client --query='INSERT INTO table VALUES' < data.txt -clickhouse-client --query='INSERT INTO table FORMAT TabSeparated' < data.tsv -``` - -
- -## Импорт Образца Набора Данных {#import-sample-dataset} - -Теперь пришло время заполнить наш сервер ClickHouse некоторыми образцами данных. В этом уроке мы будем использовать анонимизированные данные Яндекса.Metrica, первый сервис, который запускает ClickHouse в производственном режиме до того, как он стал открытым исходным кодом (подробнее об этом в [раздел истории](../introduction/history.md)). Есть [несколько способов импорта Яндекса.Набор метрика](example_datasets/metrica.md), и ради учебника мы пойдем с самым реалистичным из них. - -### Загрузка и извлечение данных таблицы {#download-and-extract-table-data} - -``` bash -curl https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits_v1.tsv.xz | unxz --threads=`nproc` > hits_v1.tsv -curl https://clickhouse-datasets.s3.yandex.net/visits/tsv/visits_v1.tsv.xz | unxz --threads=`nproc` > visits_v1.tsv -``` - -Извлеченные файлы имеют размер около 10 ГБ. - -### Создавать таблицы {#create-tables} - -Как и в большинстве систем управления базами данных, ClickHouse логически группирует таблицы в «databases». Там есть еще один `default` база данных, но мы создадим новую с именем `tutorial`: - -``` bash -clickhouse-client --query "CREATE DATABASE IF NOT EXISTS tutorial" -``` - -Синтаксис для создания таблиц намного сложнее по сравнению с базами данных (см. [ссылка](../sql_reference/statements/create.md). В общем `CREATE TABLE` в заявлении должны быть указаны три ключевых момента: - -1. Имя таблицы для создания. -2. Table schema, i.e. list of columns and their [тип данных](../sql_reference/data_types/index.md). -3. [Настольный двигатель](../engines/table_engines/index.md) и это настройки, которые определяют все детали того, как запросы к этой таблице будут физически выполняться. - -Яндекс.Metrica - это сервис веб-аналитики, и пример набора данных не охватывает его полную функциональность, поэтому для создания необходимо создать только две таблицы: - -- `hits` это таблица с каждым действием, выполняемым всеми пользователями на всех веб-сайтах, охватываемых сервисом. -- `visits` это таблица, которая содержит предварительно построенные сеансы вместо отдельных действий. - -Давайте посмотрим и выполним реальные запросы create table для этих таблиц: - -``` sql -CREATE TABLE tutorial.hits_v1 -( - `WatchID` UInt64, - `JavaEnable` UInt8, - `Title` String, - `GoodEvent` Int16, - `EventTime` DateTime, - `EventDate` Date, - `CounterID` UInt32, - `ClientIP` UInt32, - `ClientIP6` FixedString(16), - `RegionID` UInt32, - `UserID` UInt64, - `CounterClass` Int8, - `OS` UInt8, - `UserAgent` UInt8, - `URL` String, - `Referer` String, - `URLDomain` String, - `RefererDomain` String, - `Refresh` UInt8, - `IsRobot` UInt8, - `RefererCategories` Array(UInt16), - `URLCategories` Array(UInt16), - `URLRegions` Array(UInt32), - `RefererRegions` Array(UInt32), - `ResolutionWidth` UInt16, - `ResolutionHeight` UInt16, - `ResolutionDepth` UInt8, - `FlashMajor` UInt8, - `FlashMinor` UInt8, - `FlashMinor2` String, - `NetMajor` UInt8, - `NetMinor` UInt8, - `UserAgentMajor` UInt16, - `UserAgentMinor` FixedString(2), - `CookieEnable` UInt8, - `JavascriptEnable` UInt8, - `IsMobile` UInt8, - `MobilePhone` UInt8, - `MobilePhoneModel` String, - `Params` String, - `IPNetworkID` UInt32, - `TraficSourceID` Int8, - `SearchEngineID` UInt16, - `SearchPhrase` String, - `AdvEngineID` UInt8, - `IsArtifical` UInt8, - `WindowClientWidth` UInt16, - `WindowClientHeight` UInt16, - `ClientTimeZone` Int16, - `ClientEventTime` DateTime, - `SilverlightVersion1` UInt8, - `SilverlightVersion2` UInt8, - `SilverlightVersion3` UInt32, - `SilverlightVersion4` UInt16, - `PageCharset` String, - `CodeVersion` UInt32, - `IsLink` UInt8, - `IsDownload` UInt8, - `IsNotBounce` UInt8, - `FUniqID` UInt64, - `HID` UInt32, - `IsOldCounter` UInt8, - `IsEvent` UInt8, - `IsParameter` UInt8, - `DontCountHits` UInt8, - `WithHash` UInt8, - `HitColor` FixedString(1), - `UTCEventTime` DateTime, - `Age` UInt8, - `Sex` UInt8, - `Income` UInt8, - `Interests` UInt16, - `Robotness` UInt8, - `GeneralInterests` Array(UInt16), - `RemoteIP` UInt32, - `RemoteIP6` FixedString(16), - `WindowName` Int32, - `OpenerName` Int32, - `HistoryLength` Int16, - `BrowserLanguage` FixedString(2), - `BrowserCountry` FixedString(2), - `SocialNetwork` String, - `SocialAction` String, - `HTTPError` UInt16, - `SendTiming` Int32, - `DNSTiming` Int32, - `ConnectTiming` Int32, - `ResponseStartTiming` Int32, - `ResponseEndTiming` Int32, - `FetchTiming` Int32, - `RedirectTiming` Int32, - `DOMInteractiveTiming` Int32, - `DOMContentLoadedTiming` Int32, - `DOMCompleteTiming` Int32, - `LoadEventStartTiming` Int32, - `LoadEventEndTiming` Int32, - `NSToDOMContentLoadedTiming` Int32, - `FirstPaintTiming` Int32, - `RedirectCount` Int8, - `SocialSourceNetworkID` UInt8, - `SocialSourcePage` String, - `ParamPrice` Int64, - `ParamOrderID` String, - `ParamCurrency` FixedString(3), - `ParamCurrencyID` UInt16, - `GoalsReached` Array(UInt32), - `OpenstatServiceName` String, - `OpenstatCampaignID` String, - `OpenstatAdID` String, - `OpenstatSourceID` String, - `UTMSource` String, - `UTMMedium` String, - `UTMCampaign` String, - `UTMContent` String, - `UTMTerm` String, - `FromTag` String, - `HasGCLID` UInt8, - `RefererHash` UInt64, - `URLHash` UInt64, - `CLID` UInt32, - `YCLID` UInt64, - `ShareService` String, - `ShareURL` String, - `ShareTitle` String, - `ParsedParams` Nested( - Key1 String, - Key2 String, - Key3 String, - Key4 String, - Key5 String, - ValueDouble Float64), - `IslandID` FixedString(16), - `RequestNum` UInt32, - `RequestTry` UInt8 -) -ENGINE = MergeTree() -PARTITION BY toYYYYMM(EventDate) -ORDER BY (CounterID, EventDate, intHash32(UserID)) -SAMPLE BY intHash32(UserID) -SETTINGS index_granularity = 8192 -``` - -``` sql -CREATE TABLE tutorial.visits_v1 -( - `CounterID` UInt32, - `StartDate` Date, - `Sign` Int8, - `IsNew` UInt8, - `VisitID` UInt64, - `UserID` UInt64, - `StartTime` DateTime, - `Duration` UInt32, - `UTCStartTime` DateTime, - `PageViews` Int32, - `Hits` Int32, - `IsBounce` UInt8, - `Referer` String, - `StartURL` String, - `RefererDomain` String, - `StartURLDomain` String, - `EndURL` String, - `LinkURL` String, - `IsDownload` UInt8, - `TraficSourceID` Int8, - `SearchEngineID` UInt16, - `SearchPhrase` String, - `AdvEngineID` UInt8, - `PlaceID` Int32, - `RefererCategories` Array(UInt16), - `URLCategories` Array(UInt16), - `URLRegions` Array(UInt32), - `RefererRegions` Array(UInt32), - `IsYandex` UInt8, - `GoalReachesDepth` Int32, - `GoalReachesURL` Int32, - `GoalReachesAny` Int32, - `SocialSourceNetworkID` UInt8, - `SocialSourcePage` String, - `MobilePhoneModel` String, - `ClientEventTime` DateTime, - `RegionID` UInt32, - `ClientIP` UInt32, - `ClientIP6` FixedString(16), - `RemoteIP` UInt32, - `RemoteIP6` FixedString(16), - `IPNetworkID` UInt32, - `SilverlightVersion3` UInt32, - `CodeVersion` UInt32, - `ResolutionWidth` UInt16, - `ResolutionHeight` UInt16, - `UserAgentMajor` UInt16, - `UserAgentMinor` UInt16, - `WindowClientWidth` UInt16, - `WindowClientHeight` UInt16, - `SilverlightVersion2` UInt8, - `SilverlightVersion4` UInt16, - `FlashVersion3` UInt16, - `FlashVersion4` UInt16, - `ClientTimeZone` Int16, - `OS` UInt8, - `UserAgent` UInt8, - `ResolutionDepth` UInt8, - `FlashMajor` UInt8, - `FlashMinor` UInt8, - `NetMajor` UInt8, - `NetMinor` UInt8, - `MobilePhone` UInt8, - `SilverlightVersion1` UInt8, - `Age` UInt8, - `Sex` UInt8, - `Income` UInt8, - `JavaEnable` UInt8, - `CookieEnable` UInt8, - `JavascriptEnable` UInt8, - `IsMobile` UInt8, - `BrowserLanguage` UInt16, - `BrowserCountry` UInt16, - `Interests` UInt16, - `Robotness` UInt8, - `GeneralInterests` Array(UInt16), - `Params` Array(String), - `Goals` Nested( - ID UInt32, - Serial UInt32, - EventTime DateTime, - Price Int64, - OrderID String, - CurrencyID UInt32), - `WatchIDs` Array(UInt64), - `ParamSumPrice` Int64, - `ParamCurrency` FixedString(3), - `ParamCurrencyID` UInt16, - `ClickLogID` UInt64, - `ClickEventID` Int32, - `ClickGoodEvent` Int32, - `ClickEventTime` DateTime, - `ClickPriorityID` Int32, - `ClickPhraseID` Int32, - `ClickPageID` Int32, - `ClickPlaceID` Int32, - `ClickTypeID` Int32, - `ClickResourceID` Int32, - `ClickCost` UInt32, - `ClickClientIP` UInt32, - `ClickDomainID` UInt32, - `ClickURL` String, - `ClickAttempt` UInt8, - `ClickOrderID` UInt32, - `ClickBannerID` UInt32, - `ClickMarketCategoryID` UInt32, - `ClickMarketPP` UInt32, - `ClickMarketCategoryName` String, - `ClickMarketPPName` String, - `ClickAWAPSCampaignName` String, - `ClickPageName` String, - `ClickTargetType` UInt16, - `ClickTargetPhraseID` UInt64, - `ClickContextType` UInt8, - `ClickSelectType` Int8, - `ClickOptions` String, - `ClickGroupBannerID` Int32, - `OpenstatServiceName` String, - `OpenstatCampaignID` String, - `OpenstatAdID` String, - `OpenstatSourceID` String, - `UTMSource` String, - `UTMMedium` String, - `UTMCampaign` String, - `UTMContent` String, - `UTMTerm` String, - `FromTag` String, - `HasGCLID` UInt8, - `FirstVisit` DateTime, - `PredLastVisit` Date, - `LastVisit` Date, - `TotalVisits` UInt32, - `TraficSource` Nested( - ID Int8, - SearchEngineID UInt16, - AdvEngineID UInt8, - PlaceID UInt16, - SocialSourceNetworkID UInt8, - Domain String, - SearchPhrase String, - SocialSourcePage String), - `Attendance` FixedString(16), - `CLID` UInt32, - `YCLID` UInt64, - `NormalizedRefererHash` UInt64, - `SearchPhraseHash` UInt64, - `RefererDomainHash` UInt64, - `NormalizedStartURLHash` UInt64, - `StartURLDomainHash` UInt64, - `NormalizedEndURLHash` UInt64, - `TopLevelDomain` UInt64, - `URLScheme` UInt64, - `OpenstatServiceNameHash` UInt64, - `OpenstatCampaignIDHash` UInt64, - `OpenstatAdIDHash` UInt64, - `OpenstatSourceIDHash` UInt64, - `UTMSourceHash` UInt64, - `UTMMediumHash` UInt64, - `UTMCampaignHash` UInt64, - `UTMContentHash` UInt64, - `UTMTermHash` UInt64, - `FromHash` UInt64, - `WebVisorEnabled` UInt8, - `WebVisorActivity` UInt32, - `ParsedParams` Nested( - Key1 String, - Key2 String, - Key3 String, - Key4 String, - Key5 String, - ValueDouble Float64), - `Market` Nested( - Type UInt8, - GoalID UInt32, - OrderID String, - OrderPrice Int64, - PP UInt32, - DirectPlaceID UInt32, - DirectOrderID UInt32, - DirectBannerID UInt32, - GoodID String, - GoodName String, - GoodQuantity Int32, - GoodPrice Int64), - `IslandID` FixedString(16) -) -ENGINE = CollapsingMergeTree(Sign) -PARTITION BY toYYYYMM(StartDate) -ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID) -SAMPLE BY intHash32(UserID) -SETTINGS index_granularity = 8192 -``` - -Вы можете выполнить эти запросы с помощью интерактивного режима `clickhouse-client` (просто запустите его в терминале, не указывая заранее запрос) или попробуйте некоторые [альтернативный интерфейс](../interfaces/index.md) если ты хочешь. - -Как мы видим, `hits_v1` использует [базовый движок MergeTree](../engines/table_engines/mergetree_family/mergetree.md), в то время как `visits_v1` использует [Разрушение](../engines/table_engines/mergetree_family/collapsingmergetree.md) вариант. - -### Импортировать данные {#import-data} - -Импорт данных в ClickHouse осуществляется через [INSERT INTO](../sql_reference/statements/insert_into.md) запрос, как и во многих других базах данных SQL. Однако данные обычно приводятся в одном из следующих документов: [поддерживаемые форматы сериализации](../interfaces/formats.md) вместо `VALUES` предложение (которое также поддерживается). - -Файлы, которые мы загрузили ранее, находятся в формате с разделенными вкладками, поэтому вот как импортировать их через консольный клиент: - -``` bash -clickhouse-client --query "INSERT INTO tutorial.hits_v1 FORMAT TSV" --max_insert_block_size=100000 < hits_v1.tsv -clickhouse-client --query "INSERT INTO tutorial.visits_v1 FORMAT TSV" --max_insert_block_size=100000 < visits_v1.tsv -``` - -У ClickHouse их очень много [настройки для настройки](../operations/settings/index.md) и один из способов указать их в консольном клиенте - это через аргументы, как мы видим с помощью `--max_insert_block_size`. Самый простой способ выяснить, какие настройки доступны, что они означают и каковы значения по умолчанию, - это запросить `system.settings` стол: - -``` sql -SELECT name, value, changed, description -FROM system.settings -WHERE name LIKE '%max_insert_b%' -FORMAT TSV - -max_insert_block_size 1048576 0 "The maximum block size for insertion, if we control the creation of blocks for insertion." -``` - -По желанию вы можете [OPTIMIZE](../sql_reference/misc/#misc_operations-optimize) таблицы после импорта. Таблицы, настроенные с помощью движка из семейства MergeTree, всегда выполняют слияние частей данных в фоновом режиме для оптимизации хранения данных (или, по крайней мере, проверяют, имеет ли это смысл). Эти запросы заставляют механизм таблиц выполнять оптимизацию хранилища прямо сейчас, а не некоторое время спустя: - -``` bash -clickhouse-client --query "OPTIMIZE TABLE tutorial.hits_v1 FINAL" -clickhouse-client --query "OPTIMIZE TABLE tutorial.visits_v1 FINAL" -``` - -Эти запросы запускают интенсивную работу ввода-вывода и процессора, поэтому, если таблица постоянно получает новые данные, лучше оставить ее в покое и позволить слияниям работать в фоновом режиме. - -Теперь мы можем проверить, был ли импорт таблицы успешным: - -``` bash -clickhouse-client --query "SELECT COUNT(*) FROM tutorial.hits_v1" -clickhouse-client --query "SELECT COUNT(*) FROM tutorial.visits_v1" -``` - -## Пример запроса {#example-queries} - -``` sql -SELECT - StartURL AS URL, - AVG(Duration) AS AvgDuration -FROM tutorial.visits_v1 -WHERE StartDate BETWEEN '2014-03-23' AND '2014-03-30' -GROUP BY URL -ORDER BY AvgDuration DESC -LIMIT 10 -``` - -``` sql -SELECT - sum(Sign) AS visits, - sumIf(Sign, has(Goals.ID, 1105530)) AS goal_visits, - (100. * goal_visits) / visits AS goal_percent -FROM tutorial.visits_v1 -WHERE (CounterID = 912887) AND (toYYYYMM(StartDate) = 201403) AND (domain(StartURL) = 'yandex.ru') -``` - -## Развертывание Кластера {#cluster-deployment} - -Кластер ClickHouse-это однородный кластер. Шаги для настройки: - -1. Установите сервер ClickHouse на всех компьютерах кластера -2. Настройка конфигураций кластера в файлах конфигурации -3. Создание локальных таблиц на каждом экземпляре -4. Создать [Распространены таблицы](../engines/table_engines/special/distributed.md) - -[Распространены таблицы](../engines/table_engines/special/distributed.md) это на самом деле своего рода «view» к локальным таблицам кластера ClickHouse. Запрос SELECT из распределенной таблицы выполняется с использованием ресурсов всех сегментов кластера. Вы можете указать конфигурации для нескольких кластеров и создать несколько распределенных таблиц, предоставляющих представления для разных кластеров. - -Пример конфигурации для кластера с тремя сегментами, по одной реплике в каждом: - -``` xml - - - - - example-perftest01j.yandex.ru - 9000 - - - - - example-perftest02j.yandex.ru - 9000 - - - - - example-perftest03j.yandex.ru - 9000 - - - - -``` - -Для дальнейшей демонстрации давайте создадим новую локальную таблицу с тем же именем `CREATE TABLE` запрос, который мы использовали для `hits_v1`, но другое имя таблицы: - -``` sql -CREATE TABLE tutorial.hits_local (...) ENGINE = MergeTree() ... -``` - -Создание распределенной таблицы, предоставляющей представление в локальные таблицы кластера: - -``` sql -CREATE TABLE tutorial.hits_all AS tutorial.hits_local -ENGINE = Distributed(perftest_3shards_1replicas, tutorial, hits_local, rand()); -``` - -Распространенной практикой является создание одинаковых распределенных таблиц на всех машинах кластера. Он позволяет выполнять распределенные запросы на любой машине кластера. Кроме того, существует альтернативный вариант создания временной распределенной таблицы для данного запроса SELECT с помощью [удаленный](../sql_reference/table_functions/remote.md) табличная функция. - -Давай убежим [INSERT SELECT](../sql_reference/statements/insert_into.md) в распределенную таблицу, чтобы распространить таблицу на несколько серверов. - -``` sql -INSERT INTO tutorial.hits_all SELECT * FROM tutorial.hits_v1; -``` - -!!! warning "Уведомление" - Такой подход не подходит для сегментации больших столов. Есть отдельный инструмент [clickhouse-копировальный аппарат](../operations/utilities/clickhouse-copier.md) это может повторно осколить произвольные большие таблицы. - -Как и следовало ожидать, вычислительно тяжелые запросы выполняются в N раз быстрее, если они используют 3 сервера вместо одного. - -В этом случае мы использовали кластер с 3 осколками, и каждый из них содержит одну реплику. - -Для обеспечения устойчивости в рабочей среде рекомендуется, чтобы каждый сегмент содержал 2-3 реплики, распределенные между несколькими зонами доступности или центрами обработки данных (или, по крайней мере, стойками). Обратите внимание, что ClickHouse поддерживает неограниченное количество реплик. - -Пример конфигурации для кластера из одного осколка, содержащего три реплики: - -``` xml - - ... - - - - example-perftest01j.yandex.ru - 9000 - - - example-perftest02j.yandex.ru - 9000 - - - example-perftest03j.yandex.ru - 9000 - - - - -``` - -Чтобы включить собственную репликацию [Смотритель зоопарка](http://zookeeper.apache.org/) требуемый. ClickHouse заботится о согласованности данных во всех репликах и автоматически запускает процедуру восстановления после сбоя. Рекомендуется развернуть кластер ZooKeeper на отдельных серверах (где не выполняются никакие другие процессы, включая ClickHouse). - -!!! note "Примечание" - ZooKeeper не является строгим требованием: в некоторых простых случаях вы можете дублировать данные, записав их во все реплики из кода вашего приложения. Такой подход является **нет** рекомендуется, чтобы в этом случае ClickHouse не мог гарантировать согласованность данных на всех репликах. Таким образом, это становится ответственностью вашего приложения. - -Расположение ZooKeeper указано в конфигурационном файле: - -``` xml - - - zoo01.yandex.ru - 2181 - - - zoo02.yandex.ru - 2181 - - - zoo03.yandex.ru - 2181 - - -``` - -Кроме того, нам нужно установить макросы для идентификации каждого осколка и реплики, которые используются при создании таблицы: - -``` xml - - 01 - 01 - -``` - -Если в данный момент при создании реплицированной таблицы реплик нет, то создается новая первая реплика. Если уже существуют живые реплики, то новая реплика клонирует данные из существующих. У вас есть возможность сначала создать все реплицированные таблицы, а затем вставить в них данные. Другой вариант-создать некоторые реплики и добавить другие после или во время вставки данных. - -``` sql -CREATE TABLE tutorial.hits_replica (...) -ENGINE = ReplcatedMergeTree( - '/clickhouse_perftest/tables/{shard}/hits', - '{replica}' -) -... -``` - -Здесь мы используем [ReplicatedMergeTree](../engines/table_engines/mergetree_family/replication.md) настольный двигатель. В параметрах мы указываем путь ZooKeeper, содержащий идентификаторы сегментов и реплик. - -``` sql -INSERT INTO tutorial.hits_replica SELECT * FROM tutorial.hits_local; -``` - -Репликация работает в режиме мульти-мастер. Данные могут быть загружены в любую реплику, а затем система автоматически синхронизирует их с другими экземплярами. Репликация является асинхронной, поэтому в данный момент не все реплики могут содержать недавно вставленные данные. По крайней мере, одна реплика должна быть готова, чтобы обеспечить прием данных. Другие будут синхронизировать данные и восстанавливать согласованность, как только они снова станут активными. Обратите внимание, что этот подход допускает низкую вероятность потери недавно вставленных данных. - -[Оригинальная статья](https://clickhouse.tech/docs/en/getting_started/tutorial/) diff --git a/docs/ru/getting_started/tutorial.md b/docs/ru/getting_started/tutorial.md new file mode 120000 index 0000000000..18b86bb2e9 --- /dev/null +++ b/docs/ru/getting_started/tutorial.md @@ -0,0 +1 @@ +en/getting_started/tutorial.md \ No newline at end of file diff --git a/docs/ru/introduction/adopters.md b/docs/ru/introduction/adopters.md deleted file mode 100644 index 5f8b825353..0000000000 --- a/docs/ru/introduction/adopters.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Пользователи ClickHouse {#clickhouse-adopters} - -!!! warning "Оговорка" - Следующий список компаний, использующих ClickHouse, и их истории успеха собраны из открытых источников, поэтому они могут отличаться от текущей реальности. Мы были бы очень признательны, если бы вы поделились историей принятия ClickHouse в свою компанию и [добавьте его в список](https://github.com/ClickHouse/ClickHouse/edit/master/docs/en/introduction/adopters.md), но, пожалуйста, убедитесь, что у вас не будет никаких проблем с NDA, сделав это. Предоставление обновлений с публикациями от других компаний также полезно. - -| Компания | Промышленность | Usecase | Размер кластера | (Un)Сжатый Размер Данных\* | Ссылка | -|---------------------------------------------------------------------------------|----------------------------------------|-----------------------------|------------------------------------------------------------|------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [2ГИС](https://2gis.ru) | Карты | Мониторинг | — | — | [Говорить по-русски, июль 2019](https://youtu.be/58sPkXfq6nw) | -| [Браузер Aloha](https://alohabrowser.com/) | Мобильное приложение | Серверная часть браузера | — | — | [Слайды на русском языке, май 2019 года](https://github.com/yandex/clickhouse-presentations/blob/master/meetup22/aloha.pdf) | -| [Компания Amadeus](https://amadeus.com/) | Путешествовать | Аналитика | — | — | [Пресс-Релиз, Апрель 2018 Года](https://www.altinity.com/blog/2018/4/5/amadeus-technologies-launches-investment-and-insights-tool-based-on-machine-learning-and-strategy-algorithms) | -| [Компания](https://www.appsflyer.com) | Мобильная аналитика | Главный продукт | — | — | [Говорить по-русски, июль 2019](https://www.youtube.com/watch?v=M3wbRlcpBbY) | -| [ArenaData](https://arenadata.tech/) | Платформа данных | Главный продукт | — | — | [Слайды на русском языке, декабрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup38/indexes.pdf) | -| [На Badoo](https://badoo.com) | Знакомства | Таймсерии | — | — | [Слайды на русском языке, декабрь 2019 года](https://presentations.clickhouse.tech/meetup38/forecast.pdf) | -| [Бенокс](https://www.benocs.com/) | Сетевая телеметрия и аналитика | Главный продукт | — | — | [Слайды на английском языке, октябрь 2017 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup9/lpm.pdf) | -| [Блумберг](https://www.bloomberg.com/) | Финансы, СМИ | Мониторинг | 102 сервера | — | [Слайды, Май 2018 Года](https://www.slideshare.net/Altinity/http-analytics-for-6m-requests-per-second-using-clickhouse-by-alexander-bocharov) | -| [Блокси](https://bloxy.info) | Блокчейн | Аналитика | — | — | [Слайды на русском языке, август 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup17/4_bloxy.pptx) | -| `Dataliance/UltraPower` | Телекоммуникационный | Аналитика | — | — | [Слайды на китайском языке, январь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup12/telecom.pdf) | -| [CARTO](https://carto.com/) | Бизнес-разведка | Гео аналитика | — | — | [Геопространственная обработка с помощью Clickhouse](https://carto.com/blog/geospatial-processing-with-clickhouse/) | -| [CERN](http://public.web.cern.ch/public/) | Исследование | Эксперимент | — | — | [Пресс-релиз, апрель 2012 года](https://www.yandex.com/company/press_center/press_releases/2012/2012-04-10/) | -| [Компании Cisco](http://cisco.com/) | Сетевой | Анализ трафика | — | — | [Молниеносный разговор, октябрь 2019 года](https://youtu.be/-hI1vDR2oPY?t=5057) | -| [Ценные Бумаги Цитадели](https://www.citadelsecurities.com/) | Финансы | — | — | — | [Взнос, Март 2019 Года](https://github.com/ClickHouse/ClickHouse/pull/4774) | -| [Ситимобил](https://city-mobil.ru) | Такси | Аналитика | — | — | [Запись в блоге на русском языке, март 2020 года](https://habr.com/en/company/citymobil/blog/490660/) | -| [ContentSquare](https://contentsquare.com) | Веб-аналитика | Главный продукт | — | — | [Запись в блоге на французском языке, ноябрь 2018 года](http://souslecapot.net/2018/11/21/patrick-chatain-vp-engineering-chez-contentsquare-penser-davantage-amelioration-continue-que-revolution-constante/) | -| [Cloudflare](https://cloudflare.com) | CDN | Анализ трафика | 36 серверов | — | [Сообщение в блоге, май 2017 года](https://blog.cloudflare.com/how-cloudflare-analyzes-1m-dns-queries-per-second/), [Сообщение в блоге, март 2018 года](https://blog.cloudflare.com/http-analytics-for-6m-requests-per-second-using-clickhouse/) | -| [Корунет](https://coru.net/) | Аналитика | Главный продукт | — | — | [Слайды на английском языке, апрель 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup21/predictive_models.pdf) | -| [CraiditX 氪信](https://creditx.com) | Финансовый ИИ | Анализ | — | — | [Слайды на английском языке, ноябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup33/udf.pptx) | -| [Criteo / Storetail](https://www.criteo.com/) | Розничная торговля | Главный продукт | — | — | [Слайды на английском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup18/3_storetail.pptx) | -| [Дойче банк](https://db.com) | Финансы | Би аналитика | — | — | [Слайды на английском языке, октябрь 2019 года](https://bigdatadays.ru/wp-content/uploads/2019/10/D2-H3-3_Yakunin-Goihburg.pdf) | -| [Дива-е](https://www.diva-e.com) | Цифровой Консалтинг | Главный продукт | — | — | [Слайды на английском языке, сентябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup29/ClickHouse-MeetUp-Unusual-Applications-sd-2019-09-17.pdf) | -| [Компания Exness](https://www.exness.com) | Торговый | Метрики, Ведение Журнала | — | — | [Разговор на русском языке, май 2019 года](https://youtu.be/_rpU-TvSfZ8?t=3215) | -| [Джинн](https://geniee.co.jp) | Рекламная сеть | Главный продукт | — | — | [Запись в блоге на японском языке, июль 2017 года](https://tech.geniee.co.jp/entry/2017/07/20/160100) | -| [HUYA](https://www.huya.com/) | Потоковое видео | Аналитика | — | — | [Слайды на китайском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup19/7.%20ClickHouse万亿数据分析实践%20李本旺(sundy-li)%20虎牙.pdf) | -| [Идеалиста](https://www.idealista.com) | Недвижимость | Аналитика | — | — | [Сообщение в блоге на английском языке, апрель 2019 года](https://clickhouse.yandex/blog/en/clickhouse-meetup-in-madrid-on-april-2-2019) | -| [Infovista](https://www.infovista.com/) | Сети | Аналитика | — | — | [Слайды на английском языке, октябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup30/infovista.pdf) | -| [Компания innogames](https://www.innogames.com) | Игры | Метрики, Ведение Журнала | — | — | [Слайды на русском языке, сентябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup28/graphite_and_clickHouse.pdf) | -| [Интегрос](https://integros.com) | Платформа для видеосервисов | Аналитика | — | — | [Слайды на русском языке, май 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup22/strategies.pdf) | -| [Данные По Кадьяку](https://www.kodiakdata.com/) | Облака | Главный продукт | — | — | [Слайды на английском языке, апрель 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup13/kodiak_data.pdf) | -| [Контур](https://kontur.ru) | Разработка программного обеспечения | Метрика | — | — | [Говорить по-русски, ноябрь 2018](https://www.youtube.com/watch?v=U4u4Bd0FtrY) | -| [LifeStreet](https://lifestreet.com/) | Рекламная сеть | Главный продукт | 75 серверов (3 реплики) | 5.27 ПИБ | [Запись в блоге на русском языке, февраль 2017 года](https://habr.com/en/post/322620/) | -| [Mail.ru Облачные Решения](https://mcs.mail.ru/) | Облачные сервисы | Главный продукт | — | — | [Запуск экземпляра ClickHouse на русском языке](https://mcs.mail.ru/help/db-create/clickhouse#) | -| [MessageBird](https://www.messagebird.com) | Электросвязь | Статистика | — | — | [Слайды на английском языке, ноябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup20/messagebird.pdf) | -| [MGID](https://www.mgid.com/) | Рекламная сеть | Веб-аналитика | — | — | [Наш опыт внедрения аналитической СУБД ClickHouse на русском языке](http://gs-studio.com/news-about-it/32777----clickhouse---c) | -| [OneAPM](https://www.oneapm.com/) | Мониторинг и анализ данных | Главный продукт | — | — | [Слайды на китайском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup19/8.%20clickhouse在OneAPM的应用%20杜龙.pdf) | -| [ПРАГМА Инноваций](http://www.pragma-innovation.fr/) | Телеметрия и анализ Больших Данных | Главный продукт | — | — | [Слайды на английском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup18/4_pragma_innovation.pdf) | -| [QINGCLOUD](https://www.qingcloud.com/) | Облачные сервисы | Главный продукт | — | — | [Слайды на китайском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup19/4.%20Cloud%20%2B%20TSDB%20for%20ClickHouse%20张健%20QingCloud.pdf) | -| [Qrator](https://qrator.net) | Защита от DDoS-атак | Главный продукт | — | — | [Сообщение В Блоге, Март 2019 Года](https://blog.qrator.net/en/clickhouse-ddos-mitigation_37/) | -| [Beijing PERCENT Information Technology Co., Лимитед.](https://www.percent.cn/) | Аналитика | Главный продукт | — | — | [Слайды на китайском языке, июнь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup24/4.%20ClickHouse万亿数据双中心的设计与实践%20.pdf) | -| [Бродяга](https://rambler.ru) | Интернет услуги | Аналитика | — | — | [Говорить по-русски, апрель 2018](https://medium.com/@ramblertop/разработка-api-clickhouse-для-рамблер-топ-100-f4c7e56f3141) | -| [Tencent](https://www.tencent.com) | Обмен сообщениями | Регистрация | — | — | [Говорить по-китайски, ноябрь 2019](https://youtu.be/T-iVQRuw-QY?t=5050) | -| [Движения Звезд](https://trafficstars.com/) | Рекламная сеть | — | — | — | [Слайды на русском языке, май 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup15/lightning/ninja.pdf) | -| [S7 Airlines](https://www.s7.ru) | Авиакомпании | Метрики, Ведение Журнала | — | — | [Разговор на русском языке, март 2019 года](https://www.youtube.com/watch?v=nwG68klRpPg&t=15s) | -| [Общий](https://www.semrush.com/) | Маркетинг | Главный продукт | — | — | [Слайды на русском языке, август 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup17/5_semrush.pdf) | -| [scireum ГмбХ](https://www.scireum.de/) | электронная коммерция | Главный продукт | — | — | [Говорить по-немецки, февраль 2020](https://www.youtube.com/watch?v=7QWAn5RbyR4) | -| [Караул](https://sentry.io/) | Разработчик | Бэкэнд для продукта | — | — | [Сообщение в блоге на английском языке, май 2019 года](https://blog.sentry.io/2019/05/16/introducing-snuba-sentrys-new-search-infrastructure) | -| [SGK](http://www.sgk.gov.tr/wps/portal/sgk/tr) | Государственное Социальное Обеспечение | Аналитика | — | — | [Слайды на английском языке, ноябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup35/ClickHouse%20Meetup-Ramazan%20POLAT.pdf) | -| [СЕО.делать](https://seo.do/) | Аналитика | Главный продукт | — | — | [Слайды на английском языке, ноябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup35/CH%20Presentation-%20Metehan%20Çetinkaya.pdf) | -| [Зина](http://english.sina.com/index.html) | Новости | — | — | — | [Слайды на китайском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup19/6.%20ClickHouse最佳实践%20高鹏_新浪.pdf) | -| [SMI2](https://smi2.ru/) | Новости | Аналитика | — | — | [Запись в блоге на русском языке, ноябрь 2017 года](https://habr.com/ru/company/smi2/blog/314558/) | -| [Чмок](https://www.splunk.com/) | Бизнес-аналитика | Главный продукт | — | — | [Слайды на английском языке, январь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup12/splunk.pdf) | -| [Спотифай](https://www.spotify.com) | Музыка | Экспериментирование | — | — | [Слайды, Июль 2018 Года](https://www.slideshare.net/glebus/using-clickhouse-for-experimentation-104247173) | -| [Tencent](https://www.tencent.com) | Большие данные | Обработка данных | — | — | [Слайды на китайском языке, октябрь 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup19/5.%20ClickHouse大数据集群应用_李俊飞腾讯网媒事业部.pdf) | -| [Убер](https://www.uber.com) | Такси | Регистрация | — | — | [Слайды, Февраль 2020 Года](https://presentations.clickhouse.tech/meetup40/uber.pdf) | -| [ВКонтакте](https://vk.com) | Социальная сеть | Статистика, Ведение Журнала | — | — | [Слайды на русском языке, август 2018 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup17/3_vk.pdf) | -| [Мудрецы](https://wisebits.com/) | IT-решение | Аналитика | — | — | [Слайды на русском языке, май 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup22/strategies.pdf) | -| [Технология Сяосин.](https://www.xiaoheiban.cn/) | Образование | Общая цель | — | — | [Слайды на английском языке, ноябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup33/sync-clickhouse-with-mysql-mongodb.pptx) | -| [Сималайя](https://www.ximalaya.com/) | Общий доступ к аудио | OLAP | — | — | [Слайды на английском языке, ноябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup33/ximalaya.pdf) | -| [Облако Яндекса](https://cloud.yandex.ru/services/managed-clickhouse) | Публичное Облако | Главный продукт | — | — | [Разговор на русском языке, декабрь 2019 года](https://www.youtube.com/watch?v=pgnak9e_E0o) | -| [DataLens Яндекс](https://cloud.yandex.ru/services/datalens) | Бизнес-разведка | Главный продукт | — | — | [Слайды на русском языке, декабрь 2019 года](https://presentations.clickhouse.tech/meetup38/datalens.pdf) | -| [Яндекс Маркет](https://market.yandex.ru/) | электронная коммерция | Метрики, Ведение Журнала | — | — | [Разговор на русском языке, январь 2019 года](https://youtu.be/_l1qP0DyBcA?t=478) | -| [Яндекс Метрика](https://metrica.yandex.com) | Веб-аналитика | Главный продукт | 360 серверов в одном кластере, 1862 сервера в одном отделе | 66.41 ПИБ / 5.68 ПИБ | [Слайды, Февраль 2020 Года](https://presentations.clickhouse.tech/meetup40/introduction/#13) | -| [ЦВТ](https://htc-cs.ru/) | Разработка программного обеспечения | Метрики, Ведение Журнала | — | — | [Сообщение в блоге, март 2019 года, на русском языке](https://vc.ru/dev/62715-kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk) | -| [МКБ](https://mkb.ru/) | Банк | Мониторинг веб-систем | — | — | [Слайды на русском языке, сентябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup28/mkb.pdf) | -| [金数据](https://jinshuju.net) | Би аналитика | Главный продукт | — | — | [Слайды на китайском языке, октябрь 2019 года](https://github.com/ClickHouse/clickhouse-presentations/blob/master/meetup24/3.%20金数据数据架构调整方案Public.pdf) | - -[Оригинальная статья](https://clickhouse.tech/docs/en/introduction/adopters/) diff --git a/docs/ru/introduction/adopters.md b/docs/ru/introduction/adopters.md new file mode 120000 index 0000000000..b9b77a27eb --- /dev/null +++ b/docs/ru/introduction/adopters.md @@ -0,0 +1 @@ +en/introduction/adopters.md \ No newline at end of file diff --git a/docs/ru/operations/optimizing_performance/sampling_query_profiler.md b/docs/ru/operations/optimizing_performance/sampling_query_profiler.md deleted file mode 100644 index d2cc973874..0000000000 --- a/docs/ru/operations/optimizing_performance/sampling_query_profiler.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Выборки Профилировщик Запросов {#sampling-query-profiler} - -ClickHouse запускает профилировщик выборок, который позволяет анализировать выполнение запросов. С помощью profiler можно найти подпрограммы исходного кода, которые наиболее часто используются во время выполнения запроса. Вы можете отслеживать процессорное время и время работы настенных часов, включая время простоя. - -Чтобы использовать профилировщик: - -- Настройка программы [журнал трассировки](../server_configuration_parameters/settings.md#server_configuration_parameters-trace_log) раздел конфигурации сервера. - - В этом разделе настраиваются следующие параметры: [журнал трассировки](../../operations/optimizing_performance/sampling_query_profiler.md#system_tables-trace_log) системная таблица, содержащая результаты работы профилировщика. Он настроен по умолчанию. Помните, что данные в этой таблице действительны только для работающего сервера. После перезагрузки сервера ClickHouse не очищает таблицу, и все сохраненные адреса виртуальной памяти могут стать недействительными. - -- Настройка программы [query\_profiler\_cpu\_time\_period\_ns](../settings/settings.md#query_profiler_cpu_time_period_ns) или [query\_profiler\_real\_time\_period\_ns](../settings/settings.md#query_profiler_real_time_period_ns) настройки. Обе настройки можно использовать одновременно. - - Эти параметры позволяют настроить таймеры профилировщика. Поскольку это параметры сеанса, вы можете получить различную частоту дискретизации для всего сервера, отдельных пользователей или профилей пользователей, для вашего интерактивного сеанса и для каждого отдельного запроса. - -Частота дискретизации по умолчанию составляет одну выборку в секунду, и включены как ЦП, так и реальные таймеры. Эта частота позволяет собрать достаточно информации о кластере ClickHouse. В то же время, работая с такой частотой, профилировщик не влияет на производительность сервера ClickHouse. Если вам нужно профилировать каждый отдельный запрос, попробуйте использовать более высокую частоту дискретизации. - -Для того чтобы проанализировать `trace_log` системная таблица: - -- Установите устройство `clickhouse-common-static-dbg` пакет. Видеть [Установка из пакетов DEB](../../getting_started/install.md#install-from-deb-packages). - -- Разрешить функции самоанализа с помощью [allow\_introspection\_functions](../settings/settings.md#settings-allow_introspection_functions) установка. - - По соображениям безопасности функции самоанализа по умолчанию отключены. - -- Используйте `addressToLine`, `addressToSymbol` и `demangle` [функции самоанализа](../../operations/optimizing_performance/sampling_query_profiler.md) чтобы получить имена функций и их позиции в коде ClickHouse. Чтобы получить профиль для какого-либо запроса, вам необходимо агрегировать данные из `trace_log` стол. Вы можете агрегировать данные по отдельным функциям или по всем трассировкам стека. - -Если вам нужно визуализировать `trace_log` информация, попробуйте [огнемет](../../interfaces/third-party/gui/#clickhouse-flamegraph) и [speedscope](https://github.com/laplab/clickhouse-speedscope). - -## Пример {#example} - -В этом примере мы: - -- Фильтрация `trace_log` данные по идентификатору запроса и текущей дате. - -- Агрегирование по трассировке стека. - -- Используя функции интроспекции, мы получим отчет о: - - - Имена символов и соответствующие им функции исходного кода. - - Расположение исходных кодов этих функций. - - - -``` sql -SELECT - count(), - arrayStringConcat(arrayMap(x -> concat(demangle(addressToSymbol(x)), '\n ', addressToLine(x)), trace), '\n') AS sym -FROM system.trace_log -WHERE (query_id = 'ebca3574-ad0a-400a-9cbc-dca382f5998c') AND (event_date = today()) -GROUP BY trace -ORDER BY count() DESC -LIMIT 10 -``` - -``` text -{% include "operations/performance/sampling_query_profiler_example_result.txt" %} -``` diff --git a/docs/ru/operations/optimizing_performance/sampling_query_profiler.md b/docs/ru/operations/optimizing_performance/sampling_query_profiler.md new file mode 120000 index 0000000000..565f39130f --- /dev/null +++ b/docs/ru/operations/optimizing_performance/sampling_query_profiler.md @@ -0,0 +1 @@ +en/operations/optimizing_performance/sampling_query_profiler.md \ No newline at end of file diff --git a/docs/ru/operations/performance_test.md b/docs/ru/operations/performance_test.md deleted file mode 100644 index 9b5c6f4fed..0000000000 --- a/docs/ru/operations/performance_test.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Как Протестировать Ваше Оборудование С Помощью ClickHouse {#how-to-test-your-hardware-with-clickhouse} - -С помощью этой инструкции вы можете запустить базовый тест производительности ClickHouse на любом сервере без установки пакетов ClickHouse. - -1. Идти к «commits» страница: https://github.com/ClickHouse/ClickHouse/commits/master - -2. Нажмите на первую зеленую галочку или красный крест с зеленым цветом «ClickHouse Build Check» и нажмите на кнопку «Details» ссылка рядом «ClickHouse Build Check». - -3. Скопируйте ссылку на «clickhouse» двоичный код для amd64 или aarch64. - -4. ssh к серверу и скачать его с помощью wget: - - - - # For amd64: - wget https://clickhouse-builds.s3.yandex.net/0/00ba767f5d2a929394ea3be193b1f79074a1c4bc/1578163263_binary/clickhouse - # For aarch64: - wget https://clickhouse-builds.s3.yandex.net/0/00ba767f5d2a929394ea3be193b1f79074a1c4bc/1578161264_binary/clickhouse - # Then do: - chmod a+x clickhouse - -1. Скачать конфиги: - - - - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/programs/server/config.xml - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/programs/server/users.xml - mkdir config.d - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/programs/server/config.d/path.xml -O config.d/path.xml - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/programs/server/config.d/log_to_console.xml -O config.d/log_to_console.xml - -1. Скачать тест файлы: - - - - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/benchmark/clickhouse/benchmark-new.sh - chmod a+x benchmark-new.sh - wget https://raw.githubusercontent.com/ClickHouse/ClickHouse/master/benchmark/clickhouse/queries.sql - -1. Загрузите тестовые данные в соответствии с [Яндекс.Набор метрика](../getting_started/example_datasets/metrica.md) инструкция («hits» таблица, содержащая 100 миллионов строк). - - - - wget https://clickhouse-datasets.s3.yandex.net/hits/partitions/hits_100m_obfuscated_v1.tar.xz - tar xvf hits_100m_obfuscated_v1.tar.xz -C . - mv hits_100m_obfuscated_v1/* . - -1. Запустите сервер: - - - - ./clickhouse server - -1. Проверьте данные: ssh на сервер в другом терминале - - - - ./clickhouse client --query "SELECT count() FROM hits_100m_obfuscated" - 100000000 - -1. Отредактируйте текст benchmark-new.sh, изменение «clickhouse-client» к «./clickhouse client» и добавить «–max\_memory\_usage 100000000000» параметр. - - - - mcedit benchmark-new.sh - -1. Выполнить тест: - - - - ./benchmark-new.sh hits_100m_obfuscated - -1. Отправьте номера и информацию о конфигурации вашего оборудования по адресу clickhouse-feedback@yandex-team.com - -Все результаты опубликованы здесь: https://clickhouse-да.технология / benchmark\_hardware.HTML diff --git a/docs/ru/operations/performance_test.md b/docs/ru/operations/performance_test.md new file mode 120000 index 0000000000..3787adb92b --- /dev/null +++ b/docs/ru/operations/performance_test.md @@ -0,0 +1 @@ +en/operations/performance_test.md \ No newline at end of file diff --git a/docs/ru/operations/utilities/clickhouse-benchmark.md b/docs/ru/operations/utilities/clickhouse-benchmark.md deleted file mode 100644 index 5467a58676..0000000000 --- a/docs/ru/operations/utilities/clickhouse-benchmark.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# clickhouse-бенчмарк {#clickhouse-benchmark} - -Подключается к серверу ClickHouse и повторно отправляет указанные запросы. - -Синтаксис: - -``` bash -$ echo "single query" | clickhouse-benchmark [keys] -``` - -или - -``` bash -$ clickhouse-benchmark [keys] <<< "single query" -``` - -Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос в отдельную строку в этом файле. Например: - -``` sql -SELECT * FROM system.numbers LIMIT 10000000 -SELECT 1 -``` - -Затем передайте этот файл на стандартный вход `clickhouse-benchmark`. - -``` bash -clickhouse-benchmark [keys] < queries_file -``` - -## Ключи {#clickhouse-benchmark-keys} - -- `-c N`, `--concurrency=N` — Number of queries that `clickhouse-benchmark` посылает одновременно. Значение по умолчанию: 1. -- `-d N`, `--delay=N` — Interval in seconds between intermediate reports (set 0 to disable reports). Default value: 1. -- `-h WORD`, `--host=WORD` — Server host. Default value: `localhost`. Для [режим сравнения](#clickhouse-benchmark-comparison-mode) вы можете использовать несколько `-h` ключи. -- `-p N`, `--port=N` — Server port. Default value: 9000. For the [режим сравнения](#clickhouse-benchmark-comparison-mode) вы можете использовать несколько `-p` ключи. -- `-i N`, `--iterations=N` — Total number of queries. Default value: 0. -- `-r`, `--randomize` — Random order of queries execution if there is more then one input query. -- `-s`, `--secure` — Using TLS connection. -- `-t N`, `--timelimit=N` — Time limit in seconds. `clickhouse-benchmark` прекращает отправку запросов по достижении указанного срока. Значение по умолчанию: 0 (ограничение по времени отключено). -- `--confidence=N` — Level of confidence for T-test. Possible values: 0 (80%), 1 (90%), 2 (95%), 3 (98%), 4 (99%), 5 (99.5%). Default value: 5. In the [режим сравнения](#clickhouse-benchmark-comparison-mode) `clickhouse-benchmark` выполняет следующие функции: [Независимый двухпробный t-тест Стьюдента](https://en.wikipedia.org/wiki/Student%27s_t-test#Independent_two-sample_t-test) проверьте, не отличаются ли эти два распределения с выбранным уровнем достоверности. -- `--cumulative` — Printing cumulative data instead of data per interval. -- `--database=DATABASE_NAME` — ClickHouse database name. Default value: `default`. -- `--json=FILEPATH` — JSON output. When the key is set, `clickhouse-benchmark` выводит отчет в указанный JSON-файл. -- `--user=USERNAME` — ClickHouse user name. Default value: `default`. -- `--password=PSWD` — ClickHouse user password. Default value: empty string. -- `--stacktrace` — Stack traces output. When the key is set, `clickhouse-bencmark` выводит трассировки стека исключений. -- `--stage=WORD` — Query processing stage at server. ClickHouse stops query processing and returns answer to `clickhouse-benchmark` на указанном этапе. Возможное значение: `complete`, `fetch_columns`, `with_mergeable_state`. Значение по умолчанию: `complete`. -- `--help` — Shows the help message. - -Если вы хотите применить некоторые из них [настройки](../../operations/settings/index.md) для запросов передайте их в качестве ключа `--= SETTING_VALUE`. Например, `--max_memory_usage=1048576`. - -## Выход {#clickhouse-benchmark-output} - -По умолчанию, `clickhouse-benchmark` отчеты для каждого из них `--delay` интервал. - -Пример отчета: - -``` text -Queries executed: 10. - -localhost:9000, queries 10, QPS: 6.772, RPS: 67904487.440, MiB/s: 518.070, result RPS: 67721584.984, result MiB/s: 516.675. - -0.000% 0.145 sec. -10.000% 0.146 sec. -20.000% 0.146 sec. -30.000% 0.146 sec. -40.000% 0.147 sec. -50.000% 0.148 sec. -60.000% 0.148 sec. -70.000% 0.148 sec. -80.000% 0.149 sec. -90.000% 0.150 sec. -95.000% 0.150 sec. -99.000% 0.150 sec. -99.900% 0.150 sec. -99.990% 0.150 sec. -``` - -В отчете вы можете найти:: - -- Количество запросов в системе `Queries executed:` поле. - -- Строка состояния, содержащая (по порядку): - - - Конечная точка сервера ClickHouse. - - Количество обработанных запросов. - - QPS: QPS: сколько запросов сервер выполняет в секунду в течение периода, указанного в `--delay` аргумент. - - RPS: сколько строк сервер читает в секунду в течение периода, указанного в `--delay` аргумент. - - MiB/s: сколько мегабайт сервер читает в секунду в течение периода, указанного в `--delay` аргумент. - - result RPS: сколько строк помещается сервером в результат запроса в секунду в течение периода, указанного в `--delay` аргумент. - - результат MiB/s. сколько мебибайт помещается сервером в результат запроса в секунду в течение периода, указанного в `--delay` аргумент. - -- Процентили времени выполнения запросов. - -## Режим сравнения {#clickhouse-benchmark-comparison-mode} - -`clickhouse-benchmark` можно сравнить производительность для двух запущенных серверов ClickHouse. - -Чтобы использовать режим сравнения, укажите конечные точки обоих серверов по двум парам `--host`, `--port` ключи. Ключи, сопоставленные вместе по позиции в списке аргументов, первые `--host` сопоставляется с первым `--port` и так далее. `clickhouse-benchmark` устанавливает соединения с обоими серверами, а затем отправляет запросы. Каждый запрос адресован случайно выбранному серверу. Результаты отображаются для каждого сервера отдельно. - -## Пример {#clickhouse-benchmark-example} - -``` bash -$ echo "SELECT * FROM system.numbers LIMIT 10000000 OFFSET 10000000" | clickhouse-benchmark -i 10 -``` - -``` text -Loaded 1 queries. - -Queries executed: 6. - -localhost:9000, queries 6, QPS: 6.153, RPS: 123398340.957, MiB/s: 941.455, result RPS: 61532982.200, result MiB/s: 469.459. - -0.000% 0.159 sec. -10.000% 0.159 sec. -20.000% 0.159 sec. -30.000% 0.160 sec. -40.000% 0.160 sec. -50.000% 0.162 sec. -60.000% 0.164 sec. -70.000% 0.165 sec. -80.000% 0.166 sec. -90.000% 0.166 sec. -95.000% 0.167 sec. -99.000% 0.167 sec. -99.900% 0.167 sec. -99.990% 0.167 sec. - - - -Queries executed: 10. - -localhost:9000, queries 10, QPS: 6.082, RPS: 121959604.568, MiB/s: 930.478, result RPS: 60815551.642, result MiB/s: 463.986. - -0.000% 0.159 sec. -10.000% 0.159 sec. -20.000% 0.160 sec. -30.000% 0.163 sec. -40.000% 0.164 sec. -50.000% 0.165 sec. -60.000% 0.166 sec. -70.000% 0.166 sec. -80.000% 0.167 sec. -90.000% 0.167 sec. -95.000% 0.170 sec. -99.000% 0.172 sec. -99.900% 0.172 sec. -99.990% 0.172 sec. -``` diff --git a/docs/ru/operations/utilities/clickhouse-benchmark.md b/docs/ru/operations/utilities/clickhouse-benchmark.md new file mode 120000 index 0000000000..fda8b1a50c --- /dev/null +++ b/docs/ru/operations/utilities/clickhouse-benchmark.md @@ -0,0 +1 @@ +en/operations/utilities/clickhouse-benchmark.md \ No newline at end of file diff --git a/docs/ru/whats_new/changelog/2017.md b/docs/ru/whats_new/changelog/2017.md deleted file mode 100644 index 1c82045390..0000000000 --- a/docs/ru/whats_new/changelog/2017.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -### ClickHouse релиз 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21} - -Этот выпуск содержит исправления ошибок для предыдущей версии 1.1.54318: - -- Исправлена ошибка с возможным состоянием гонки в репликации, которая могла привести к потере данных. Эта проблема затрагивает версии 1.1.54310 и 1.1.54318. Если вы используете одну из этих версий с Реплицированными таблицами, настоятельно рекомендуется обновить ее. Эта проблема отображается в журналах в предупреждающих сообщениях, таких как `Part ... from own log doesn't exist.` Эта проблема актуальна, даже если вы не видите эти сообщения в журналах. - -### ClickHouse релиз 1.1.54318, 2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30} - -Этот выпуск содержит исправления ошибок для предыдущей версии 1.1.54310: - -- Исправлено некорректное удаление строк при слияниях в движке SummingMergeTree -- Исправлена утечка памяти в несложных движках MergeTree -- Исправлено снижение производительности при частых вставках в двигатели MergeTree -- Исправлена ошибка, из-за которой очередь репликации останавливалась -- Исправлена ротация и архивация журналов сервера - -### ClickHouse релиз 1.1.54310, 2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01} - -#### Новые средства: {#new-features} - -- Пользовательский ключ секционирования для семейства движков таблиц MergeTree. -- [Кафка](https://clickhouse.yandex/docs/en/operations/table_engines/kafka/) настольный двигатель. -- Добавлена поддержка загрузки [CatBoost](https://catboost.yandex/) модели и их применение к данным, хранящимся в ClickHouse. -- Добавлена поддержка часовых поясов с нецелочисленными смещениями от UTC. -- Добавлена поддержка арифметических операций с временными интервалами. -- Диапазон значений для типов Date и DateTime расширен до 2105 года. -- Добавил тот `CREATE MATERIALIZED VIEW x TO y` запрос (указывает существующую таблицу для хранения данных материализованного представления). -- Добавил тот `ATTACH TABLE` запрос без аргументов. -- Логика обработки вложенных столбцов с именами, оканчивающимися на-Map в таблице SummingMergeTree, была извлечена в агрегатную функцию sumMap. Теперь вы можете указать такие столбцы явно. -- Максимальный размер словаря IP trie увеличен до 128 миллионов записей. -- Добавлена функция getSizeOfEnumType. -- Добавлена агрегатная функция sumWithOverflow. -- Добавлена поддержка формата ввода Cap'n Proto. -- Теперь вы можете настроить уровень сжатия при использовании алгоритма zstd. - -#### Назад несовместимые изменения: {#backward-incompatible-changes} - -- Создание временных таблиц с движком, отличным от памяти, не допускается. -- Явное создание таблиц с помощью движка View или MaterializedView не допускается. -- Во время создания таблицы новая проверка проверяет, что выражение ключа выборки включено в первичный ключ. - -#### Устранение ошибок: {#bug-fixes} - -- Исправлены зависания при синхронной вставке в распределенную таблицу. -- Исправлено неатомное добавление и удаление деталей в реплицируемых таблицах. -- Данные, вставленные в материализованное представление, не подвергаются ненужной дедупликации. -- Выполнение запроса к распределенной таблице, для которой локальная реплика отстает, а удаленные реплики недоступны, больше не приводит к ошибке. -- Пользователям не нужны разрешения на доступ к `default` база данных для создания временных таблиц больше не существует. -- Исправлен сбой при указании типа массива без аргументов. -- Исправлены зависания, когда дисковый том, содержащий журналы сервера, заполнен. -- Исправлено переполнение в функции toRelativeWeekNum для первой недели эпохи Unix. - -#### Улучшения сборки: {#build-improvements} - -- Несколько сторонних библиотек (особенно Poco) были обновлены и преобразованы в подмодули git. - -### ClickHouse релиз 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19} - -#### Новые средства: {#new-features-1} - -- Поддержка TLS в собственном протоколе (чтобы включить, установите `tcp_ssl_port` в `config.xml` ). - -#### Устранение ошибок: {#bug-fixes-1} - -- `ALTER` для реплицированных таблиц теперь пытается начать работать как можно скорее. -- Исправлен сбой при чтении данных с настройкой `preferred_block_size_bytes=0.` -- Исправлены сбои в работе `clickhouse-client` при нажатии на кнопку `Page Down` -- Правильная интерпретация некоторых сложных запросов с помощью `GLOBAL IN` и `UNION ALL` -- `FREEZE PARTITION` теперь он всегда работает атомарно. -- Пустые почтовые запросы теперь возвращают ответ с кодом 411. -- Исправлены ошибки интерпретации таких выражений, как `CAST(1 AS Nullable(UInt8)).` -- Исправлена ошибка при чтении `Array(Nullable(String))` колонки от `MergeTree` таблицы. -- Исправлен сбой при разборе таких запросов, как `SELECT dummy AS dummy, dummy AS b` -- Пользователи обновляются правильно с недопустимым `users.xml` -- Правильная обработка, когда исполняемый словарь возвращает ненулевой код ответа. - -### ClickHouse релиз 1.1.54292, 2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20} - -#### Новые средства: {#new-features-2} - -- Добавил тот `pointInPolygon` функция для работы с координатами на координатной плоскости. -- Добавил тот `sumMap` агрегатная функция для вычисления суммы массивов, аналогичная `SummingMergeTree`. -- Добавил тот `trunc` функция. Улучшена производительность функций округления (`round`, `floor`, `ceil`, `roundToExp2`) и скорректировал логику их работы. Поменялась логика игры `roundToExp2` функция для дробей и отрицательных чисел. -- Исполняемый файл ClickHouse теперь меньше зависит от версии libc. Один и тот же исполняемый файл ClickHouse может работать на самых разных системах Linux. Существует еще зависимость при использовании скомпилированных запросов (с настройкой `compile = 1` , который не используется по умолчанию). -- Сократилось время, необходимое для динамической компиляции запросов. - -#### Устранение ошибок: {#bug-fixes-2} - -- Исправлена ошибка, которая иногда производилась `part ... intersects previous part` сообщения и ослабленная согласованность реплик. -- Исправлена ошибка, из-за которой сервер блокировался, если ZooKeeper был недоступен во время завершения работы. -- Удалено избыточное ведение журнала при восстановлении реплик. -- Исправлена ошибка в объединении всех реализаций. -- Исправлена ошибка в функции concat, возникшая, если первый столбец в блоке имеет тип массива. -- Прогресс теперь отображается в системе правильно.таблица слияний. - -### ClickHouse релиз 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13} - -#### Новые средства: {#new-features-3} - -- `SYSTEM` запросы для администрирования сервера: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`. -- Добавлены функции для работы с массивами: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`. -- Добавлен `root` и `identity` параметры для конфигурации ZooKeeper. Это позволяет изолировать отдельных пользователей в одном кластере ZooKeeper. -- Добавлены статистические функции `groupBitAnd`, `groupBitOr`, и `groupBitXor` (для совместимости они также доступны под названиями `BIT_AND`, `BIT_OR`, и `BIT_XOR`). -- Внешние словари можно загрузить из MySQL, указав сокет в файловой системе. -- Внешние словари могут быть загружены из MySQL по протоколу SSL (`ssl_cert`, `ssl_key`, `ssl_ca` параметры). -- Добавил тот `max_network_bandwidth_for_user` настройка для ограничения общего использования полосы пропускания для запросов на одного пользователя. -- Поддержка `DROP TABLE` для временных таблиц. -- Поддержка чтения `DateTime` значения в формате временных меток Unix от `CSV` и `JSONEachRow` форматы. -- Запаздывающие реплики в распределенных запросах теперь исключаются по умолчанию (пороговое значение по умолчанию-5 минут). -- Блокировка FIFO используется во время ALTER: запрос ALTER не блокируется бесконечно для непрерывно выполняемых запросов. -- Возможность установки `umask` в конфигурационном файле. -- Улучшенная производительность для запросов с помощью `DISTINCT` . - -#### Устранение ошибок: {#bug-fixes-3} - -- Улучшен процесс удаления старых узлов в ZooKeeper. Раньше старые узлы иногда не удалялись, если были очень частые вставки, что приводило к медленному завершению работы сервера, среди прочего. -- Исправлена рандомизация при выборе хостов для подключения к ZooKeeper. -- Исправлено исключение запаздывающих реплик в распределенных запросах, если реплика является localhost. -- Исправлена ошибка, когда часть данных в a `ReplicatedMergeTree` стол может быть сломан после запуска `ALTER MODIFY` на элементе в `Nested` структура. -- Исправлена ошибка, которая могла привести к тому, что запросы SELECT «hang». -- Улучшения в распределенных DDL-запросах. -- Исправлен запрос `CREATE TABLE ... AS `. -- Разрешен тупик в работе `ALTER ... CLEAR COLUMN IN PARTITION` запрос для `Buffer` таблицы. -- Исправлено недопустимое значение по умолчанию для `Enum` s (0 вместо минимума) при использовании `JSONEachRow` и `TSKV` форматы. -- Разрешен внешний вид зомби-процессов при использовании словаря с помощью `executable` источник. -- Исправлена обработка выхода онлайн / оффлайн для запроса. - -#### Улучшен рабочий процесс разработки и сборки ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse} - -- Вы можете использовать `pbuilder` чтобы построить ClickHouse. -- Вы можете использовать `libc++` вместо `libstdc++` для сборок на Linux. -- Добавлены инструкции по использованию инструментов статического анализа кода: `Coverage`, `clang-tidy`, `cppcheck`. - -#### Пожалуйста, обратите внимание при обновлении: {#please-note-when-upgrading} - -- Теперь существует более высокое значение по умолчанию для параметра MergeTree `max_bytes_to_merge_at_max_space_in_pool` (максимальный общий размер частей данных для слияния, в байтах): он увеличился со 100 гигабайт до 150 гигабайт. Это может привести к большим слияниям, выполняемым после обновления сервера, что может привести к увеличению нагрузки на дисковую подсистему. Если свободное пространство, доступное на сервере, меньше чем в два раза общего объема выполняемых слияний, это приведет к остановке всех других слияний, включая слияния небольших частей данных. В результате запросы INSERT завершатся ошибкой с сообщением «Merges are processing significantly slower than inserts.» Используйте `SELECT * FROM system.merges` запрос на мониторинг ситуации. Вы также можете проверить следующее: `DiskSpaceReservedForMerge` метрика в системе `system.metrics` таблица, или в графите. Вам не нужно ничего делать, чтобы исправить это, так как проблема будет решена сама собой, как только большие слияния закончатся. Если вы сочтете это неприемлемым, вы можете восстановить предыдущее значение для `max_bytes_to_merge_at_max_space_in_pool` установка. Чтобы сделать это, перейдите в раздел раздел в конфигурации.xml, набор ``` ``107374182400 ``` и перезагрузите сервер. - -### ClickHouse релиз 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29} - -- Это исправленный выпуск для предыдущей версии 1.1.54282. Он исправляет утечки в каталоге запчастей в ZooKeeper. - -### ClickHouse релиз 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23} - -Этот выпуск содержит исправления ошибок для предыдущей версии 1.1.54276: - -- Исправлено `DB::Exception: Assertion violation: !_path.empty()` при вставке в распределенную таблицу. -- Исправлен синтаксический анализ при вставке в формат RowBinary, если входные данные начинаются с';'. -- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`). - -### Clickhouse Релиз 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16} - -#### Новые средства: {#new-features-4} - -- Добавлен дополнительный раздел для запроса SELECT. Пример запроса: `WITH 1+1 AS a SELECT a, a*a` -- Вставка может быть выполнена синхронно в распределенной таблице: OK возвращается только после того, как все данные сохранены на всех осколках. Это активируется установкой insert\_distributed\_sync=1. -- Добавлен тип данных UUID для работы с 16-байтовыми идентификаторами. -- Добавлены псевдонимы CHAR, FLOAT и других типов для совместимости с таблицей. -- Добавлены функции toYYYYMM, toYYYYMMDD и toYYYYMMDDhhmmss для преобразования времени в числа. -- Вы можете использовать IP-адреса (вместе с именем хоста) для идентификации серверов для кластеризованных запросов DDL. -- Добавлена поддержка непостоянных аргументов и отрицательных смещений в функции `substring(str, pos, len).` -- Добавлен параметр max\_size для `groupArray(max_size)(column)` агрегатная функция и оптимизированная ее производительность. - -#### Основное изменение: {#main-changes} - -- Улучшения безопасности: все файлы сервера создаются с разрешениями 0640 (могут быть изменены с помощью параметр config). -- Улучшены сообщения об ошибках для запросов с неверным синтаксисом. -- Значительно сокращается потребление памяти и повышается производительность при слиянии больших разделов данных MergeTree. -- Значительно повысилась производительность слияний данных для заменяющего движка Mergetree. -- Улучшена производительность асинхронных вставок из распределенной таблицы за счет объединения нескольких исходных вставок. Чтобы включить эту функцию, используйте параметр distributed\_directory\_monitor\_batch\_inserts=1. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-1} - -- Изменен двоичный формат агрегатных состояний `groupArray(array_column)` функции для массивов. - -#### Полный список изменений: {#complete-list-of-changes} - -- Добавил тот `output_format_json_quote_denormals` настройка, которая позволяет выводить значения nan и inf в формате JSON. -- Оптимизировано распределение потока при чтении из распределенной таблицы. -- Настройки можно настроить в режиме только для чтения, если значение не изменяется. -- Добавлена возможность извлечения нецелочисленных гранул движка MergeTree для выполнения ограничений на размер блока, указанных в параметре preferred\_block\_size\_bytes. Цель состоит в том, чтобы уменьшить потребление оперативной памяти и увеличить локальность кэша при обработке запросов из таблиц с большими столбцами. -- Эффективное использование индексов, содержащих такие выражения, как `toStartOfHour(x)` для таких условий, как `toStartOfHour(x) op сonstexpr.` -- Добавлены новые настройки для движков MergeTree (раздел merge\_tree в config.XML): - - replicated\_deduplication\_window\_seconds задает количество секунд, разрешенных для дедуплицирующих вставок в реплицируемые таблицы. - - cleanup\_delay\_period устанавливает, как часто нужно запустить программу очистки, чтобы удалить устаревшие данные. - - replicated\_can\_become\_leader может препятствовать тому, чтобы реплика становилась лидером (и назначала слияния). -- Ускоренная очистка для удаления устаревших данных из ZooKeeper. -- Множество улучшений и исправлений для кластеризованных DDL-запросов. Особый интерес представляет новая настройка distributed\_ddl\_task\_timeout, которая ограничивает время ожидания ответа от серверов в кластере. Если запрос ddl не был выполнен на всех хостах, ответ будет содержать ошибку таймаута, и запрос будет выполнен в асинхронном режиме. -- Улучшено отображение трассировок стека в журналах сервера. -- Добавил тот «none» значение для метода сжатия. -- Вы можете использовать несколько разделов dictionaries\_config в config.XML. -- Можно подключиться к MySQL через сокет в файловой системе. -- Система.в таблице деталей появился новый столбец с информацией о размере меток, в байтах. - -#### Устранение ошибок: {#bug-fixes-4} - -- Распределенные таблицы, использующие таблицу слияния, теперь корректно работают для запроса SELECT с условием на `_table` поле. -- Исправлено редкое состояние гонки в ReplicatedMergeTree при проверке частей данных. -- Исправлена возможная заморозка на «leader election» при запуске сервера. -- Параметр max\_replica\_delay\_for\_distributed\_queries был проигнорирован при использовании локальной реплики источника данных. Это было исправлено. -- Исправлено некорректное поведение `ALTER TABLE CLEAR COLUMN IN PARTITION` при попытке очистить несуществующий столбец. -- Исправлено исключение в функции multif при использовании пустых массивов или строк. -- Исправлено чрезмерное выделение памяти при десериализации собственного формата. -- Исправлено некорректное автоматическое обновление словарей Trie. -- Исправлено исключение при выполнении запросов с предложением GROUP BY из таблицы слияния при использовании SAMPLE. -- Исправлена ошибка, из группы при использовании distributed\_aggregation\_memory\_efficient=1. -- Теперь вы можете указать базу данных.таблицы в правой стороне и присоединиться. -- Слишком много потоков было использовано для параллельной агрегации. Это было исправлено. -- Исправлено как то «if» функция работает с аргументами FixedString. -- Выберите из распределенной таблицы неправильно сработавшие осколки с весом 0. Это было исправлено. -- Бегущий `CREATE VIEW IF EXISTS no longer causes crashes.` -- Исправлено некорректное поведение при установке input\_format\_skip\_unknown\_fields=1 и наличии отрицательных чисел. -- Исправлен бесконечный цикл в `dictGetHierarchy()` функция, если в словаре есть какие-то недопустимые данные. -- Исправлено `Syntax error: unexpected (...)` ошибки при выполнении распределенных запросов с вложенными запросами в предложении IN или JOIN и таблицах слияния. -- Исправлена неправильная интерпретация запроса SELECT из таблиц справочника. -- Исправлена ошибка «Cannot mremap» ошибка при использовании массивов в предложениях IN и JOIN с более чем 2 миллиардами элементов. -- Исправлена ошибка отработки отказа для словарей с MySQL в качестве источника. - -#### Улучшен рабочий процесс разработки и сборки ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse-1} - -- Сборки могут быть собраны в Аркадии. -- Вы можете использовать gcc 7 для компиляции ClickHouse. -- Параллельные сборки с использованием ccache+distcc теперь работают быстрее. - -### ClickHouse релиз 1.1.54245, 2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04} - -#### Новые средства: {#new-features-5} - -- Распределенный DDL (например, `CREATE TABLE ON CLUSTER`) -- Реплицированный запрос `ALTER TABLE CLEAR COLUMN IN PARTITION.` -- Движок для таблиц словаря (доступ к данным словаря в виде таблицы). -- Компонент Dictionary database engine (этот тип базы данных автоматически содержит таблицы словарей, доступные для всех подключенных внешних словарей). -- Вы можете проверить наличие обновлений в словаре, отправив запрос источнику. -- Полные имена столбцов -- Цитирование идентификаторов с использованием двойных кавычек. -- Сеансы в интерфейсе HTTP. -- Запрос оптимизации для реплицированной таблицы может выполняться не только на лидере. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-2} - -- Удалить набор глобальных. - -#### Несущественные изменения: {#minor-changes} - -- Теперь после срабатывания предупреждения журнал печатает полную трассировку стека. -- Ослаблена проверка количества поврежденных / лишних частей данных при запуске (было слишком много ложных срабатываний). - -#### Устранение ошибок: {#bug-fixes-5} - -- Исправлена плохая связь «sticking» при вставке в распределенную таблицу. -- GLOBAL IN теперь работает для запроса из таблицы слияния, которая смотрит на распределенную таблицу. -- Неверное количество ядер было обнаружено на виртуальной машине Google Compute Engine. Это было исправлено. -- Изменения в том, как работает исполняемый источник кэшированных внешних словарей. -- Исправлено сравнение строк, содержащих нулевые символы. -- Исправлено сравнение полей первичного ключа Float32 с константами. -- Ранее неверная оценка размера поля могла привести к чрезмерно большим распределениям. -- Исправлена ошибка, при отправке запроса столбец допускает значения NULL в таблицу с помощью инструкции Alter. -- Исправлена ошибка при сортировке по нулевому столбцу, если количество строк меньше предельного. -- Исправлен порядок по подзапросу, состоящему только из постоянных значений. -- Ранее реплицированная таблица могла оставаться в недопустимом состоянии после неудачного удаления таблицы. -- Псевдонимы для скалярных подзапросов с пустыми результатами больше не теряются. -- Теперь запрос, который использовал компиляцию, не завершается ошибкой, если файл .so поврежден. diff --git a/docs/ru/whats_new/changelog/2017.md b/docs/ru/whats_new/changelog/2017.md new file mode 120000 index 0000000000..f278c42f17 --- /dev/null +++ b/docs/ru/whats_new/changelog/2017.md @@ -0,0 +1 @@ +en/whats_new/changelog/2017.md \ No newline at end of file diff --git a/docs/ru/whats_new/changelog/2018.md b/docs/ru/whats_new/changelog/2018.md deleted file mode 100644 index 5de3ba6843..0000000000 --- a/docs/ru/whats_new/changelog/2018.md +++ /dev/null @@ -1,1061 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -## ClickHouse релиз 18.16 {#clickhouse-release-18-16} - -### ClickHouse релиз 18.16.1, 2018-12-21 {#clickhouse-release-18-16-1-2018-12-21} - -#### Устранение ошибок: {#bug-fixes} - -- Исправлена ошибка, которая приводила к проблемам с обновлением словарей с источником ODBC. [\#3825](https://github.com/ClickHouse/ClickHouse/issues/3825), [\#3829](https://github.com/ClickHouse/ClickHouse/issues/3829) -- JIT-компиляция агрегатных функций теперь работает с колонками LowCardinality. [\#3838](https://github.com/ClickHouse/ClickHouse/issues/3838) - -#### Улучшения: {#improvements} - -- Добавил тот `low_cardinality_allow_in_native_format` настройка (включена по умолчанию). Если этот параметр отключен, столбцы с низким коэффициентом полезности будут преобразованы в обычные столбцы для запросов SELECT, а обычные столбцы будут ожидаться для запросов INSERT. [\#3879](https://github.com/ClickHouse/ClickHouse/pull/3879) - -#### Улучшения сборки: {#build-improvements} - -- Исправления для сборок на macOS и ARM. - -### ClickHouse релиз 18.16.0, 2018-12-14 {#clickhouse-release-18-16-0-2018-12-14} - -#### Новые средства: {#new-features} - -- `DEFAULT` выражения вычисляются для пропущенных полей при загрузке данных в полуструктурированные входные форматы (`JSONEachRow`, `TSKV`). Эта функция включена с помощью `insert_sample_with_metadata` установка. [\#3555](https://github.com/ClickHouse/ClickHouse/pull/3555) -- То `ALTER TABLE` запрос теперь имеет следующее значение `MODIFY ORDER BY` действие для изменения ключа сортировки при добавлении или удалении столбца таблицы. Это полезно для таблиц в `MergeTree` семейство, выполняющее дополнительные задачи при слиянии на основе этого ключа сортировки, например `SummingMergeTree`, `AggregatingMergeTree` и так далее. [\#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) [\#3755](https://github.com/ClickHouse/ClickHouse/pull/3755) -- Для столиков в центре города `MergeTree` семья, теперь вы можете указать другой ключ сортировки (`ORDER BY`) и индекс (`PRIMARY KEY`). Ключ сортировки может быть длиннее индекса. [\#3581](https://github.com/ClickHouse/ClickHouse/pull/3581) -- Добавил тот `hdfs` функция таблицы и `HDFS` механизм таблиц для импорта и экспорта данных в HDFS. [chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/3617) -- Добавлены функции для работы с base64: `base64Encode`, `base64Decode`, `tryBase64Decode`. [Александр Крашенинников](https://github.com/ClickHouse/ClickHouse/pull/3350) -- Теперь вы можете использовать параметр для настройки точности `uniqCombined` агрегатная функция (выбор количества ячеек Гиперлога). [\#3406](https://github.com/ClickHouse/ClickHouse/pull/3406) -- Добавил тот `system.contributors` таблица, содержащая имена всех, кто совершил коммиты в ClickHouse. [\#3452](https://github.com/ClickHouse/ClickHouse/pull/3452) -- Добавлена возможность опустить Раздел для `ALTER TABLE ... FREEZE` запрос для резервного копирования всех разделов сразу. [\#3514](https://github.com/ClickHouse/ClickHouse/pull/3514) -- Добавлен `dictGet` и `dictGetOrDefault` функции, которые не требуют указания типа возвращаемого значения. Тип определяется автоматически из описания словаря. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3564) -- Теперь вы можете указать комментарии для столбца в описании таблицы и изменить его с помощью `ALTER`. [\#3377](https://github.com/ClickHouse/ClickHouse/pull/3377) -- Чтение поддерживается для `Join` введите таблицы с простыми ключами. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3728) -- Теперь вы можете указать следующие параметры `join_use_nulls`, `max_rows_in_join`, `max_bytes_in_join`, и `join_overflow_mode` при создании `Join` типизированная таблица. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3728) -- Добавил тот `joinGet` функция, которая позволяет вам использовать a `Join` введите таблицу, как словарь. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3728) -- Добавил тот `partition_key`, `sorting_key`, `primary_key`, и `sampling_key` колонны в сторону `system.tables` таблица для того, чтобы предоставить информацию о ключах таблицы. [\#3609](https://github.com/ClickHouse/ClickHouse/pull/3609) -- Добавил тот `is_in_partition_key`, `is_in_sorting_key`, `is_in_primary_key`, и `is_in_sampling_key` колонны в сторону `system.columns` стол. [\#3609](https://github.com/ClickHouse/ClickHouse/pull/3609) -- Добавил тот `min_time` и `max_time` колонны в сторону `system.parts` стол. Эти столбцы заполняются, когда ключ секционирования является выражением, состоящим из `DateTime` столбцы. [Emmanuel Donin de Rosière](https://github.com/ClickHouse/ClickHouse/pull/3800) - -#### Устранение ошибок: {#bug-fixes-1} - -- Исправления и улучшения производительности для `LowCardinality` тип данных. `GROUP BY` с помощью `LowCardinality(Nullable(...))`. Получение значений `extremes`. Обработка функций высокого порядка. `LEFT ARRAY JOIN`. Распределенный `GROUP BY`. Функции, которые возвращают `Array`. Исполнение приказа `ORDER BY`. Написание в адрес `Distributed` таблицы (nicelulu). Обратная совместимость для `INSERT` запросы от старых клиентов, которые реализуют `Native` протокол. Поддержка `LowCardinality` для `JOIN`. Улучшена производительность при работе в одном потоке. [\#3823](https://github.com/ClickHouse/ClickHouse/pull/3823) [\#3803](https://github.com/ClickHouse/ClickHouse/pull/3803) [\#3799](https://github.com/ClickHouse/ClickHouse/pull/3799) [\#3769](https://github.com/ClickHouse/ClickHouse/pull/3769) [\#3744](https://github.com/ClickHouse/ClickHouse/pull/3744) [\#3681](https://github.com/ClickHouse/ClickHouse/pull/3681) [\#3651](https://github.com/ClickHouse/ClickHouse/pull/3651) [\#3649](https://github.com/ClickHouse/ClickHouse/pull/3649) [\#3641](https://github.com/ClickHouse/ClickHouse/pull/3641) [\#3632](https://github.com/ClickHouse/ClickHouse/pull/3632) [\#3568](https://github.com/ClickHouse/ClickHouse/pull/3568) [\#3523](https://github.com/ClickHouse/ClickHouse/pull/3523) [\#3518](https://github.com/ClickHouse/ClickHouse/pull/3518) -- Исправлено как то `select_sequential_consistency` вариант работает. Ранее, когда этот параметр был включен, неполный результат иногда возвращался после начала записи в новый раздел. [\#2863](https://github.com/ClickHouse/ClickHouse/pull/2863) -- Базы данных правильно задаются при выполнении DDL `ON CLUSTER` запросы и `ALTER UPDATE/DELETE`. [\#3772](https://github.com/ClickHouse/ClickHouse/pull/3772) [\#3460](https://github.com/ClickHouse/ClickHouse/pull/3460) -- Базы данных правильно задаются для вложенных запросов внутри представления. [\#3521](https://github.com/ClickHouse/ClickHouse/pull/3521) -- Исправлена ошибка в работе `PREWHERE` с `FINAL` для `VersionedCollapsingMergeTree`. [7167bfd7](https://github.com/ClickHouse/ClickHouse/commit/7167bfd7b365538f7a91c4307ad77e552ab4e8c1) -- Теперь вы можете использовать `KILL QUERY` чтобы отменить запросы, которые еще не начались, потому что они ждут блокировки таблицы. [\#3517](https://github.com/ClickHouse/ClickHouse/pull/3517) -- Исправлены расчеты даты и времени, если часы были перенесены назад в полночь (это происходит в Иране, а произошло в Москве с 1981 по 1983 год). Ранее это приводило к тому, что время сбрасывалось на день раньше необходимого, а также вызывало неправильное форматирование даты и времени в текстовом формате. [\#3819](https://github.com/ClickHouse/ClickHouse/pull/3819) -- Исправлены ошибки в некоторых случаях `VIEW` и подзапросы, которые опускают базу данных. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3521) -- Исправлено состояние гонки при одновременном чтении из `MATERIALIZED VIEW` и удаление `MATERIALIZED VIEW` из-за того, что внутренняя дверь не запирается `MATERIALIZED VIEW`. [\#3404](https://github.com/ClickHouse/ClickHouse/pull/3404) [\#3694](https://github.com/ClickHouse/ClickHouse/pull/3694) -- Исправлена ошибка `Lock handler cannot be nullptr.` [\#3689](https://github.com/ClickHouse/ClickHouse/pull/3689) -- Исправлена обработка запросов, когда `compile_expressions` опция включена (она включена по умолчанию). Недетерминированные постоянные выражения, такие как `now` функции больше не разворачиваются. [\#3457](https://github.com/ClickHouse/ClickHouse/pull/3457) -- Исправлена ошибка при указании непостоянного аргумента масштаба в `toDecimal32/64/128` функции. -- Исправлена ошибка при попытке вставить массив с помощью `NULL` элементы в системе `Values` форматирование в столбец типа `Array` без `Nullable` (если `input_format_values_interpret_expressions` = 1). [\#3487](https://github.com/ClickHouse/ClickHouse/pull/3487) [\#3503](https://github.com/ClickHouse/ClickHouse/pull/3503) -- Исправлена непрерывная ошибка входа в систему `DDLWorker` если смотритель зоопарка не доступен. [8f50c620](https://github.com/ClickHouse/ClickHouse/commit/8f50c620334988b28018213ec0092fe6423847e2) -- Исправлен тип возврата для `quantile*` функции от `Date` и `DateTime` тип аргумента. [\#3580](https://github.com/ClickHouse/ClickHouse/pull/3580) -- Исправлена ошибка `WITH` предложение, если оно указывает простой псевдоним без выражений. [\#3570](https://github.com/ClickHouse/ClickHouse/pull/3570) -- Исправлена обработка запросов с именованными подзапросами и квалифицированными именами столбцов, когда `enable_optimize_predicate_expression` это включено. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3588) -- Исправлена ошибка `Attempt to attach to nullptr thread group` при работе с материализованными представлениями. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3623) -- Исправлена ошибка при передаче некоторых неверных аргументов в систему `arrayReverse` функция. [73e3a7b6](https://github.com/ClickHouse/ClickHouse/commit/73e3a7b662161d6005e7727d8a711b930386b871) -- Исправлено переполнение буфера в системе `extractURLParameter` функция. Повышение производительности. Добавлена корректная обработка строк, содержащих ноль байт. [141e9799](https://github.com/ClickHouse/ClickHouse/commit/141e9799e49201d84ea8e951d1bed4fb6d3dacb5) -- Исправлено переполнение буфера в системе `lowerUTF8` и `upperUTF8` функции. Удалена возможность выполнения этих функций сверх `FixedString` аргумент типа. [\#3662](https://github.com/ClickHouse/ClickHouse/pull/3662) -- Исправлено редкое состояние гонки при удалении `MergeTree` таблицы. [\#3680](https://github.com/ClickHouse/ClickHouse/pull/3680) -- Исправлено состояние гонки при чтении с `Buffer` таблицы и одновременно выполнять `ALTER` или `DROP` на целевых столах. [\#3719](https://github.com/ClickHouse/ClickHouse/pull/3719) -- Исправлен сегфолт, если `max_temporary_non_const_columns` лимит был превышен. [\#3788](https://github.com/ClickHouse/ClickHouse/pull/3788) - -#### Улучшения: {#improvements-1} - -- Сервер не записывает обработанные конфигурационные файлы в систему. `/etc/clickhouse-server/` каталог. Вместо этого он спасает их в будущем. `preprocessed_configs` каталог внутри `path`. Это означает, что `/etc/clickhouse-server/` Директория не имеет доступа на запись для `clickhouse` пользователь, что повышает безопасность. [\#2443](https://github.com/ClickHouse/ClickHouse/pull/2443) -- То `min_merge_bytes_to_use_direct_io` по умолчанию параметр установлен на 10 гигабайт. Слияние, которое образует большие части таблиц из семейства MergeTree, будет выполнено в `O_DIRECT` режим, который предотвращает чрезмерное вытеснение кэша страниц. [\#3504](https://github.com/ClickHouse/ClickHouse/pull/3504) -- Ускоренный запуск сервера при наличии очень большого количества таблиц. [\#3398](https://github.com/ClickHouse/ClickHouse/pull/3398) -- Добавлен пул соединений и HTTP `Keep-Alive` для связи между репликами. [\#3594](https://github.com/ClickHouse/ClickHouse/pull/3594) -- Если синтаксис запроса неверен, то `400 Bad Request` код возвращается в виде `HTTP` интерфейс (ранее было возвращено 500). [31bc680a](https://github.com/ClickHouse/ClickHouse/commit/31bc680ac5f4bb1d0360a8ba4696fa84bb47d6ab) -- То `join_default_strictness` параметр установлен в значение `ALL` по умолчанию для обеспечения совместимости. [120e2cbe](https://github.com/ClickHouse/ClickHouse/commit/120e2cbe2ff4fbad626c28042d9b28781c805afe) -- Удалено ведение журнала в `stderr` из `re2` библиотека для недопустимых или сложных регулярных выражений. [\#3723](https://github.com/ClickHouse/ClickHouse/pull/3723) -- Добавлено в `Kafka` механизм таблиц: проверяет наличие подписок перед началом чтения из Kafka; параметр kafka\_max\_block\_size для таблицы. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3396) -- То `cityHash64`, `farmHash64`, `metroHash64`, `sipHash64`, `halfMD5`, `murmurHash2_32`, `murmurHash2_64`, `murmurHash3_32`, и `murmurHash3_64` функции теперь работают для любого количества аргументов и для аргументов в виде кортежей. [\#3451](https://github.com/ClickHouse/ClickHouse/pull/3451) [\#3519](https://github.com/ClickHouse/ClickHouse/pull/3519) -- То `arrayReverse` функция теперь работает с любыми типами массивов. [73e3a7b6](https://github.com/ClickHouse/ClickHouse/commit/73e3a7b662161d6005e7727d8a711b930386b871) -- Добавлен необязательный параметр: размер слота для `timeSlots` функция. [Кирилл Шваков](https://github.com/ClickHouse/ClickHouse/pull/3724) -- Для `FULL` и `RIGHT JOIN`, этот `max_block_size` настройка используется для потока несвязанных данных из правой таблицы. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3699) -- Добавил тот `--secure` параметр командной строки в `clickhouse-benchmark` и `clickhouse-performance-test` чтобы включить TLS. [\#3688](https://github.com/ClickHouse/ClickHouse/pull/3688) [\#3690](https://github.com/ClickHouse/ClickHouse/pull/3690) -- Тип преобразования, когда структура a `Buffer` таблица типов не соответствует структуре целевой таблицы. [Виталий Баранов](https://github.com/ClickHouse/ClickHouse/pull/3603) -- Добавил тот `tcp_keep_alive_timeout` опция для включения пакетов keep-alive после бездействия в течение заданного интервала времени. [\#3441](https://github.com/ClickHouse/ClickHouse/pull/3441) -- Удалены ненужные кавычки значений для ключа раздела В разделе `system.parts` таблица, если она состоит из одного столбца. [\#3652](https://github.com/ClickHouse/ClickHouse/pull/3652) -- Функция по модулю работает для `Date` и `DateTime` тип данных. [\#3385](https://github.com/ClickHouse/ClickHouse/pull/3385) -- Добавлены синонимы для этого `POWER`, `LN`, `LCASE`, `UCASE`, `REPLACE`, `LOCATE`, `SUBSTR`, и `MID` функции. [\#3774](https://github.com/ClickHouse/ClickHouse/pull/3774) [\#3763](https://github.com/ClickHouse/ClickHouse/pull/3763) Некоторые имена функций не зависят от регистра для обеспечения совместимости со стандартом SQL. Добавлен синтаксический сахар `SUBSTRING(expr FROM start FOR length)` для совместимости с SQL. [\#3804](https://github.com/ClickHouse/ClickHouse/pull/3804) -- Добавлена возможность `mlock` страницы памяти, соответствующие `clickhouse-server` исполняемый код, чтобы предотвратить его вытеснение из памяти. По умолчанию эта функция отключена. [\#3553](https://github.com/ClickHouse/ClickHouse/pull/3553) -- Улучшенная производительность при чтении с `O_DIRECT` (с помощью `min_bytes_to_use_direct_io` опция включена). [\#3405](https://github.com/ClickHouse/ClickHouse/pull/3405) -- Улучшенная производительность системы `dictGet...OrDefault` функция для постоянного ключевого аргумента и непостоянного аргумента по умолчанию. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3563) -- То `firstSignificantSubdomain` функция теперь обрабатывает Домены `gov`, `mil`, и `edu`. [Игорь Hatarist](https://github.com/ClickHouse/ClickHouse/pull/3601) Повышение производительности. [\#3628](https://github.com/ClickHouse/ClickHouse/pull/3628) -- Возможность указать пользовательские переменные среды для запуска `clickhouse-server` с помощью `SYS-V init.d` сценарий по определению `CLICKHOUSE_PROGRAM_ENV` в `/etc/default/clickhouse`. - [Павел Башинский](https://github.com/ClickHouse/ClickHouse/pull/3612) -- Правильный код возврата для сценария clickhouse-server init. [\#3516](https://github.com/ClickHouse/ClickHouse/pull/3516) -- То `system.metrics` таблица теперь имеет `VersionInteger` метрика и `system.build_options` есть ли добавленная строка `VERSION_INTEGER`, который содержит числовую форму версии ClickHouse, например `18016000`. [\#3644](https://github.com/ClickHouse/ClickHouse/pull/3644) -- Удалена возможность сравнения `Date` введите с номером, чтобы избежать потенциальных ошибок, таких как `date = 2018-12-17`, где кавычки вокруг даты опущены по ошибке. [\#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) -- Исправлено поведение статусных функций, таких как `rowNumberInAllBlocks`. Ранее они выводили результат, который был на одно число больше из-за запуска во время анализа запроса. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3729) -- Если `force_restore_data` файл не может быть удален, отображается сообщение об ошибке. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3794) - -#### Улучшения сборки: {#build-improvements-1} - -- Обновлено приложение `jemalloc` библиотека, которая исправляет потенциальную утечку памяти. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3557) -- Профилирование с помощью `jemalloc` включен по умолчанию для отладки сборок. [2cc82f5c](https://github.com/ClickHouse/ClickHouse/commit/2cc82f5cbe266421cd4c1165286c2c47e5ffcb15) -- Добавлена возможность запуска интеграционных тестов только тогда, когда `Docker` устанавливается в системе. [\#3650](https://github.com/ClickHouse/ClickHouse/pull/3650) -- Добавлен тест выражения fuzz в запросах SELECT. [\#3442](https://github.com/ClickHouse/ClickHouse/pull/3442) -- Добавлен стресс-тест для коммитов, который выполняет функциональные тесты параллельно и в случайном порядке, чтобы обнаружить больше условий гонки. [\#3438](https://github.com/ClickHouse/ClickHouse/pull/3438) -- Улучшен метод запуска clickhouse-сервера в образе Docker. [Эльгазал Ахмед](https://github.com/ClickHouse/ClickHouse/pull/3663) -- Для Docker образ, добавлена поддержка для инициализации базы данных с помощью файлов в `/docker-entrypoint-initdb.d` каталог. [Константин Лебедев](https://github.com/ClickHouse/ClickHouse/pull/3695) -- Исправления опирается на руку. [\#3709](https://github.com/ClickHouse/ClickHouse/pull/3709) - -#### Назад несовместимые изменения: {#backward-incompatible-changes} - -- Удалена возможность сравнения `Date` тип с номером. Вместо `toDate('2018-12-18') = 17883`, вы должны использовать явное преобразование типов `= toDate(17883)` [\#3687](https://github.com/ClickHouse/ClickHouse/pull/3687) - -## ClickHouse релиз 18.14 {#clickhouse-release-18-14} - -### ClickHouse релиз 18.14.19, 2018-12-19 {#clickhouse-release-18-14-19-2018-12-19} - -#### Устранение ошибок: {#bug-fixes-2} - -- Исправлена ошибка, которая привела к проблемам с обновлением словарей с источником ODBC. [\#3825](https://github.com/ClickHouse/ClickHouse/issues/3825), [\#3829](https://github.com/ClickHouse/ClickHouse/issues/3829) -- Базы данных правильно задаются при выполнении DDL `ON CLUSTER` запросы. [\#3460](https://github.com/ClickHouse/ClickHouse/pull/3460) -- Исправлен сегфолт, если `max_temporary_non_const_columns` лимит был превышен. [\#3788](https://github.com/ClickHouse/ClickHouse/pull/3788) - -#### Улучшения сборки: {#build-improvements-2} - -- Исправления опирается на руку. - -### ClickHouse релиз 18.14.18, 2018-12-04 {#clickhouse-release-18-14-18-2018-12-04} - -#### Устранение ошибок: {#bug-fixes-3} - -- Исправлена ошибка в работе `dictGet...` функция для словарей типа `range`, если один из аргументов является постоянным, а другой-нет. [\#3751](https://github.com/ClickHouse/ClickHouse/pull/3751) -- Исправлена ошибка, приводившая к появлению сообщений `netlink: '...': attribute type 1 has an invalid length` чтобы быть напечатанным в журнале ядра Linux, это происходило только на достаточно свежих версиях ядра Linux. [\#3749](https://github.com/ClickHouse/ClickHouse/pull/3749) -- Исправлена обработка выхода онлайн / оффлайн в функции `empty` для аргументации из `FixedString` тип. [Дэниел, Дао Куанг Мин](https://github.com/ClickHouse/ClickHouse/pull/3703) -- Исправлено чрезмерное выделение памяти при использовании большого значения `max_query_size` настройка (фрагмент памяти из `max_query_size` байты были предварительно распределены сразу). [\#3720](https://github.com/ClickHouse/ClickHouse/pull/3720) - -#### Изменения в сборке: {#build-changes} - -- Исправлена сборка с библиотеками LLVM/Clang версии 7 из пакетов ОС (эти библиотеки используются для компиляции запросов во время выполнения). [\#3582](https://github.com/ClickHouse/ClickHouse/pull/3582) - -### ClickHouse релиз 18.14.17, 2018-11-30 {#clickhouse-release-18-14-17-2018-11-30} - -#### Устранение ошибок: {#bug-fixes-4} - -- Исправлены случаи, когда процесс моста ODBC не завершался с основным серверным процессом. [\#3642](https://github.com/ClickHouse/ClickHouse/pull/3642) -- Исправлено одновременное включение в `Distributed` таблица со списком столбцов, который отличается от списка столбцов удаленной таблицы. [\#3673](https://github.com/ClickHouse/ClickHouse/pull/3673) -- Исправлено редкое состояние гонки, которое может привести к аварии при падении таблицы MergeTree. [\#3643](https://github.com/ClickHouse/ClickHouse/pull/3643) -- Исправлена взаимоблокировка запросов в случае сбоя при создании потока запросов с помощью `Resource temporarily unavailable` ошибка. [\#3643](https://github.com/ClickHouse/ClickHouse/pull/3643) -- Исправлен разбор текста `ENGINE` п. Когда `CREATE AS table` был использован синтаксис, а также `ENGINE` оговорка была указана еще до того, как `AS table` (ошибка привела к игнорированию указанного движка). [\#3692](https://github.com/ClickHouse/ClickHouse/pull/3692) - -### ClickHouse релиз 18.14.15, 2018-11-21 {#clickhouse-release-18-14-15-2018-11-21} - -#### Устранение ошибок: {#bug-fixes-5} - -- Размер блока памяти был завышен при десериализации столбца типа `Array(String)` это приводит к тому, что «Memory limit exceeded» ошибки. Проблема появилась в версии 18.12.13. [\#3589](https://github.com/ClickHouse/ClickHouse/issues/3589) - -### ClickHouse релиз 18.14.14, 2018-11-20 {#clickhouse-release-18-14-14-2018-11-20} - -#### Устранение ошибок: {#bug-fixes-6} - -- Исправлено `ON CLUSTER` запросы, когда кластер настроен как безопасный (флаг ``). [\#3599](https://github.com/ClickHouse/ClickHouse/pull/3599) - -#### Изменения в сборке: {#build-changes-1} - -- Исправлены неполадки (llvm-7 от system, macos) [\#3582](https://github.com/ClickHouse/ClickHouse/pull/3582) - -### ClickHouse релиз 18.14.13, 2018-11-08 {#clickhouse-release-18-14-13-2018-11-08} - -#### Устранение ошибок: {#bug-fixes-7} - -- Исправлена ошибка `Block structure mismatch in MergingSorted stream` ошибка. [\#3162](https://github.com/ClickHouse/ClickHouse/issues/3162) -- Исправлено `ON CLUSTER` запросы в случае, если в конфигурации кластера были включены защищенные соединения (the `` флаг). [\#3465](https://github.com/ClickHouse/ClickHouse/pull/3465) -- Исправлена ошибка в запросах, которые использовались `SAMPLE`, `PREWHERE` и столбцы псевдонимов. [\#3543](https://github.com/ClickHouse/ClickHouse/pull/3543) -- Исправлена редкая ошибка `unknown compression method` ошибка, когда `min_bytes_to_use_direct_io` настройка была включена. [3544](https://github.com/ClickHouse/ClickHouse/pull/3544) - -#### Улучшения в производительности: {#performance-improvements} - -- Исправлена регрессия производительности запросов с помощью `GROUP BY` столбцов типа UInt16 или Date при выполнении на процессорах AMD EPYC. [Игорь Лапко](https://github.com/ClickHouse/ClickHouse/pull/3512) -- Исправлена регрессия производительности запросов, обрабатывающих длинные строки. [\#3530](https://github.com/ClickHouse/ClickHouse/pull/3530) - -#### Улучшения сборки: {#build-improvements-3} - -- Улучшения для упрощения сборки Arcadia. [\#3475](https://github.com/ClickHouse/ClickHouse/pull/3475), [\#3535](https://github.com/ClickHouse/ClickHouse/pull/3535) - -### ClickHouse релиз 18.14.12, 2018-11-02 {#clickhouse-release-18-14-12-2018-11-02} - -#### Устранение ошибок: {#bug-fixes-8} - -- Исправлена ошибка при соединении двух безымянных подзапросов. [\#3505](https://github.com/ClickHouse/ClickHouse/pull/3505) -- Исправлена генерация некорректных запросов (с пустым именем `WHERE` пункт 2) при запросе внешних баз данных. [хотид](https://github.com/ClickHouse/ClickHouse/pull/3477) -- Исправлено использование неверного значения таймаута в словарях ODBC. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3511) - -### ClickHouse релиз 18.14.11, 2018-10-29 {#clickhouse-release-18-14-11-2018-10-29} - -#### Устранение ошибок: {#bug-fixes-9} - -- Исправлена ошибка `Block structure mismatch in UNION stream: different number of columns` в предельных запросах. [\#2156](https://github.com/ClickHouse/ClickHouse/issues/2156) -- Исправлены ошибки при объединении данных в таблицах, содержащих массивы внутри вложенных структур. [\#3397](https://github.com/ClickHouse/ClickHouse/pull/3397) -- Исправлены неправильные результаты запроса, если `merge_tree_uniform_read_distribution` настройка отключена (по умолчанию она включена). [\#3429](https://github.com/ClickHouse/ClickHouse/pull/3429) -- Исправлена ошибка при вставках в распределенную таблицу в собственном формате. [\#3411](https://github.com/ClickHouse/ClickHouse/issues/3411) - -### ClickHouse релиз 18.14.10, 2018-10-23 {#clickhouse-release-18-14-10-2018-10-23} - -- То `compile_expressions` настройка (JIT-компиляция выражений) по умолчанию отключена. [\#3410](https://github.com/ClickHouse/ClickHouse/pull/3410) -- То `enable_optimize_predicate_expression` по умолчанию этот параметр отключен. - -### ClickHouse релиз 18.14.9, 2018-10-16 {#clickhouse-release-18-14-9-2018-10-16} - -#### Новые средства: {#new-features-1} - -- То `WITH CUBE` модификатор для `GROUP BY` (альтернативный синтаксис `GROUP BY CUBE(...)` также доступный). [\#3172](https://github.com/ClickHouse/ClickHouse/pull/3172) -- Добавил тот `formatDateTime` функция. [Александр Крашенинников](https://github.com/ClickHouse/ClickHouse/pull/2770) -- Добавил тот `JDBC` двигатель таблицы и `jdbc` табличная функция (требуется установка clickhouse-jdbc-bridge). [Александр Крашенинников](https://github.com/ClickHouse/ClickHouse/pull/3210) -- Добавлены функции для работы с номером недели ISO: `toISOWeek`, `toISOYear`, `toStartOfISOYear`, и `toDayOfYear`. [\#3146](https://github.com/ClickHouse/ClickHouse/pull/3146) -- Теперь вы можете использовать `Nullable` колонки для `MySQL` и `ODBC` таблицы. [\#3362](https://github.com/ClickHouse/ClickHouse/pull/3362) -- Вложенные структуры данных могут быть прочитаны как вложенные объекты в `JSONEachRow` формат. Добавил тот `input_format_import_nested_json` установка. [Веломан Юнкан](https://github.com/ClickHouse/ClickHouse/pull/3144) -- Параллельная обработка доступна для многих `MATERIALIZED VIEW`s при вставке данных. Смотрите сами `parallel_view_processing` установка. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3208) -- Добавил тот `SYSTEM FLUSH LOGS` запрос (принудительный сброс журнала в системные таблицы, такие как `query_log`) [\#3321](https://github.com/ClickHouse/ClickHouse/pull/3321) -- Теперь вы можете использовать заранее определенные `database` и `table` макросы при объявлении `Replicated` таблицы. [\#3251](https://github.com/ClickHouse/ClickHouse/pull/3251) -- Добавлена возможность чтения `Decimal` введите значения в инженерной нотации (с указанием степеней десять). [\#3153](https://github.com/ClickHouse/ClickHouse/pull/3153) - -#### Экспериментальная возможность: {#experimental-features} - -- Оптимизация группы по предложению для `LowCardinality data types.` [\#3138](https://github.com/ClickHouse/ClickHouse/pull/3138) -- Оптимизированный расчет выражений для `LowCardinality data types.` [\#3200](https://github.com/ClickHouse/ClickHouse/pull/3200) - -#### Улучшения: {#improvements-2} - -- Значительно уменьшено потребление памяти для запросов с помощью `ORDER BY` и `LIMIT`. Смотрите сами `max_bytes_before_remerge_sort` установка. [\#3205](https://github.com/ClickHouse/ClickHouse/pull/3205) -- В случае отсутствия `JOIN` (`LEFT`, `INNER`, …), `INNER JOIN` предполагается. [\#3147](https://github.com/ClickHouse/ClickHouse/pull/3147) -- Квалифицированные звездочки корректно работают в запросах с `JOIN`. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3202) -- То `ODBC` механизм таблиц правильно выбирает метод для цитирования идентификаторов на диалекте SQL удаленной базы данных. [Александр Крашенинников](https://github.com/ClickHouse/ClickHouse/pull/3210) -- То `compile_expressions` настройка (JIT-компиляция выражений) включена по умолчанию. -- Исправлено поведение для одновременного удаления базы данных / таблицы, если она существует, и создания базы данных/таблицы, если она не существует. Ранее, а `CREATE DATABASE ... IF NOT EXISTS` запрос может вернуть сообщение об ошибке «File … already exists», и то `CREATE TABLE ... IF NOT EXISTS` и `DROP TABLE IF EXISTS` запросы могут вернуться `Table ... is creating or attaching right now`. [\#3101](https://github.com/ClickHouse/ClickHouse/pull/3101) -- Как и в выражениях с постоянной правой половиной, они передаются на удаленный сервер при запросе из таблиц MySQL или ODBC. [\#3182](https://github.com/ClickHouse/ClickHouse/pull/3182) -- Сравнения с постоянными выражениями в предложении WHERE передаются удаленному серверу при запросе из таблиц MySQL и ODBC. Раньше проходили только сравнения с константами. [\#3182](https://github.com/ClickHouse/ClickHouse/pull/3182) -- Правильный расчет ширины строки в терминале для `Pretty` форматы, в том числе строки с иероглифами. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/3257). -- `ON CLUSTER` может быть указан для `ALTER UPDATE` запросы. -- Улучшенная производительность для считывания данных в `JSONEachRow` формат. [\#3332](https://github.com/ClickHouse/ClickHouse/pull/3332) -- Добавлены синонимы для этого `LENGTH` и `CHARACTER_LENGTH` функции для обеспечения совместимости. То `CONCAT` функция больше не зависит от регистра. [\#3306](https://github.com/ClickHouse/ClickHouse/pull/3306) -- Добавил тот `TIMESTAMP` синоним для этого `DateTime` тип. [\#3390](https://github.com/ClickHouse/ClickHouse/pull/3390) -- В журналах сервера всегда есть место, зарезервированное для query\_id, даже если строка журнала не связана с запросом. Это упрощает синтаксический анализ текстовых журналов сервера с помощью сторонних инструментов. -- Потребление памяти запросом регистрируется, когда оно превышает следующий уровень целого числа гигабайт. [\#3205](https://github.com/ClickHouse/ClickHouse/pull/3205) -- Добавлен режим совместимости для случая, когда клиентская библиотека, использующая собственный протокол, по ошибке отправляет меньше столбцов, чем сервер ожидает для запроса INSERT. Этот сценарий был возможен при использовании библиотеки clickhouse-cpp. Ранее этот сценарий приводил к сбою сервера. [\#3171](https://github.com/ClickHouse/ClickHouse/pull/3171) -- В пользовательском выражении WHERE in `clickhouse-copier`, теперь вы можете использовать a `partition_key` псевдоним (для дополнительной фильтрации по исходному разделу таблицы). Это полезно, если схема секционирования изменяется во время копирования,но только незначительно. [\#3166](https://github.com/ClickHouse/ClickHouse/pull/3166) -- Рабочий процесс компании `Kafka` движок был перемещен в фоновый пул потоков, чтобы автоматически снизить скорость считывания данных при высоких нагрузках. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3215). -- Поддержка чтения `Tuple` и `Nested` значения таких структур, как `struct` в `Cap'n'Proto format`. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3216) -- Список доменов верхнего уровня для `firstSignificantSubdomain` функция теперь включает в себя домен `biz`. [деказеал](https://github.com/ClickHouse/ClickHouse/pull/3219) -- В конфигурации внешних справочников, `null_value` интерпретируется как значение типа данных по умолчанию. [\#3330](https://github.com/ClickHouse/ClickHouse/pull/3330) -- Поддержка для the `intDiv` и `intDivOrZero` функции для `Decimal`. [b48402e8](https://github.com/ClickHouse/ClickHouse/commit/b48402e8712e2b9b151e0eef8193811d433a1264) -- Поддержка для the `Date`, `DateTime`, `UUID`, и `Decimal` типы в качестве ключа для `sumMap` статистическая функция. [\#3281](https://github.com/ClickHouse/ClickHouse/pull/3281) -- Поддержка для the `Decimal` тип данных во внешних справочниках. [\#3324](https://github.com/ClickHouse/ClickHouse/pull/3324) -- Поддержка для the `Decimal` введите данные в поле `SummingMergeTree` таблицы. [\#3348](https://github.com/ClickHouse/ClickHouse/pull/3348) -- Добавлены специализации для `UUID` в `if`. [\#3366](https://github.com/ClickHouse/ClickHouse/pull/3366) -- Уменьшилось количество `open` и `close` системные вызовы для чтения `MergeTree table`. [\#3283](https://github.com/ClickHouse/ClickHouse/pull/3283) -- A `TRUNCATE TABLE` запрос может быть выполнен на любой реплике (запрос передается в реплику лидера). [Кирилл Шваков](https://github.com/ClickHouse/ClickHouse/pull/3375) - -#### Устранение ошибок: {#bug-fixes-10} - -- Исправлена проблема с `Dictionary` таблицы для `range_hashed` словари. Эта ошибка произошла в версии 18.12.17. [\#1702](https://github.com/ClickHouse/ClickHouse/pull/1702) -- Исправлена ошибка при загрузке `range_hashed` словари (сообщение `Unsupported type Nullable (...)`). Эта ошибка произошла в версии 18.12.17. [\#3362](https://github.com/ClickHouse/ClickHouse/pull/3362) -- Исправлены ошибки в работе `pointInPolygon` функция обусловлена накоплением неточных вычислений для полигонов с большим количеством вершин, расположенных близко друг к другу. [\#3331](https://github.com/ClickHouse/ClickHouse/pull/3331) [\#3341](https://github.com/ClickHouse/ClickHouse/pull/3341) -- Если после слияния частей данных контрольная сумма для результирующей части отличается от результата того же слияния в другой реплике, то результат слияния удаляется и часть данных загружается из другой реплики (это правильное поведение). Но после загрузки части данных она не могла быть добавлена в рабочий набор из-за ошибки, что часть уже существует (потому что часть данных была удалена с некоторой задержкой после слияния). Это привело к циклическим попыткам загрузить одни и те же данные. [\#3194](https://github.com/ClickHouse/ClickHouse/pull/3194) -- Исправлено неправильное вычисление общего потребления памяти запросами (из-за неправильного вычисления `max_memory_usage_for_all_queries` установка сработала неправильно и то `MemoryTracking` метрика имела неверное значение). Эта ошибка произошла в версии 18.12.13. [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3344) -- Исправлена функциональность программы `CREATE TABLE ... ON CLUSTER ... AS SELECT ...` Эта ошибка произошла в версии 18.12.13. [\#3247](https://github.com/ClickHouse/ClickHouse/pull/3247) -- Исправлена ненужная подготовка структур данных для `JOIN`s на сервере, который инициирует запрос, если `JOIN` выполняется только на удаленных серверах. [\#3340](https://github.com/ClickHouse/ClickHouse/pull/3340) -- Исправлены ошибки в работе `Kafka` движок: взаимоблокировки после исключений при запуске чтения данных и блокировки по завершении работы [Marek Vavruša](https://github.com/ClickHouse/ClickHouse/pull/3215). -- Для `Kafka` таблицы, опциональные `schema` параметр не был передан (схема `Cap'n'Proto` формат). [Войтех Splichal](https://github.com/ClickHouse/ClickHouse/pull/3150) -- Если в ансамбле серверов ZooKeeper есть серверы, которые принимают соединение, но затем немедленно закрывают его вместо ответа на рукопожатие, ClickHouse выбирает для подключения другой сервер. Ранее это приводило к ошибке `Cannot read all data. Bytes read: 0. Bytes expected: 4.` и сервер не мог запуститься. [8218cf3a](https://github.com/ClickHouse/ClickHouse/commit/8218cf3a5f39a43401953769d6d12a0bb8d29da9) -- Если ансамбль серверов ZooKeeper содержит серверы, для которых DNS-запрос возвращает ошибку, эти серверы игнорируются. [17b8e209](https://github.com/ClickHouse/ClickHouse/commit/17b8e209221061325ad7ba0539f03c6e65f87f29) -- Фиксированное преобразование типа между `Date` и `DateTime` при вставке данных в `VALUES` формат (если `input_format_values_interpret_expressions = 1`). Ранее преобразование производилось между числовым значением числа дней в Unix Epoch time и unix timestamp, что приводило к неожиданным результатам. [\#3229](https://github.com/ClickHouse/ClickHouse/pull/3229) -- Исправлено преобразование типов между `Decimal` и целые числа. [\#3211](https://github.com/ClickHouse/ClickHouse/pull/3211) -- Исправлены ошибки в работе `enable_optimize_predicate_expression` установка. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3231) -- Исправлена ошибка синтаксического анализа в формате CSV с числами с плавающей запятой, если используется нестандартный разделитель CSV, например `;` [\#3155](https://github.com/ClickHouse/ClickHouse/pull/3155) -- Исправлена ошибка `arrayCumSumNonNegative` функция (она не накапливает отрицательных значений, если накопитель меньше нуля). [Алексей Студнев](https://github.com/ClickHouse/ClickHouse/pull/3163) -- Исправлено как `Merge` таблицы работают на верхней части `Distributed` таблицы при использовании `PREWHERE`. [\#3165](https://github.com/ClickHouse/ClickHouse/pull/3165) -- Исправлены ошибки в системе `ALTER UPDATE` запрос. -- Исправлены ошибки в работе `odbc` табличная функция, появившаяся в версии 18.12. [\#3197](https://github.com/ClickHouse/ClickHouse/pull/3197) -- Исправлена работа агрегатных функций с помощью `StateArray` комбинаторы. [\#3188](https://github.com/ClickHouse/ClickHouse/pull/3188) -- Исправлена ошибка при делении `Decimal` значение по нулю. [69dd6609](https://github.com/ClickHouse/ClickHouse/commit/69dd6609193beb4e7acd3e6ad216eca0ccfb8179) -- Фиксированный вывод типов для использования операций `Decimal` и целочисленные аргументы. [\#3224](https://github.com/ClickHouse/ClickHouse/pull/3224) -- Исправлена обработка выхода онлайн / оффлайн в `GROUP BY` на `Decimal128`. [3359ba06](https://github.com/ClickHouse/ClickHouse/commit/3359ba06c39fcd05bfdb87d6c64154819621e13a) -- То `log_query_threads` настройка (протоколирование информации о каждом потоке выполнения запроса) теперь вступает в силу только в том случае, если `log_queries` параметр (протоколирование информации о запросах) имеет значение 1. Поскольку `log_query_threads` опция включена по умолчанию, информация о потоках ранее регистрировалась, даже если ведение журнала запросов было отключено. [\#3241](https://github.com/ClickHouse/ClickHouse/pull/3241) -- Исправлена ошибка в распределенной работе агрегатной функции квантилей (сообщение об ошибке `Not found column quantile...`). [292a8855](https://github.com/ClickHouse/ClickHouse/commit/292a885533b8e3b41ce8993867069d14cbd5a664) -- Исправлена проблема совместимости при работе с кластером серверов версии 18.12.17 и более старых серверов одновременно. Для распределенных запросов с ключами GROUP BY как фиксированной, так и не фиксированной длины при наличии большого объема данных для агрегирования возвращаемые данные не всегда были полностью агрегированы (две разные строки содержали одни и те же ключи агрегирования). [\#3254](https://github.com/ClickHouse/ClickHouse/pull/3254) -- Исправлена обработка подстановок в `clickhouse-performance-test`, если запрос содержит только часть подстановок, объявленных в тесте. [\#3263](https://github.com/ClickHouse/ClickHouse/pull/3263) -- Исправлена ошибка при использовании `FINAL` с `PREWHERE`. [\#3298](https://github.com/ClickHouse/ClickHouse/pull/3298) -- Исправлена ошибка при использовании `PREWHERE` над столбцами, которые были добавлены во время `ALTER`. [\#3298](https://github.com/ClickHouse/ClickHouse/pull/3298) -- Добавлена проверка на отсутствие `arrayJoin` для `DEFAULT` и `MATERIALIZED` выражения. Ранее, `arrayJoin` это привело к ошибке при вставке данных. [\#3337](https://github.com/ClickHouse/ClickHouse/pull/3337) -- Добавлена проверка на отсутствие `arrayJoin` в `PREWHERE` пункт. Ранее это приводило к таким сообщениям, как `Size ... doesn't match` или `Unknown compression method` при выполнении запросов. [\#3357](https://github.com/ClickHouse/ClickHouse/pull/3357) -- Исправлена ошибка segfault, которая могла возникнуть в редких случаях после оптимизации, которая заменила и цепочки из оценок равенства с соответствующим выражением IN. [люимин-бытданс](https://github.com/ClickHouse/ClickHouse/pull/3339) -- Незначительные исправления к `clickhouse-benchmark`: раньше информация о клиенте не отправлялась на сервер, теперь количество выполненных запросов вычисляется более точно при выключении и ограничении количества итераций. [\#3351](https://github.com/ClickHouse/ClickHouse/pull/3351) [\#3352](https://github.com/ClickHouse/ClickHouse/pull/3352) - -#### Назад несовместимые изменения: {#backward-incompatible-changes-1} - -- Удалил то `allow_experimental_decimal_type` вариант. То `Decimal` тип данных доступен для использования по умолчанию. [\#3329](https://github.com/ClickHouse/ClickHouse/pull/3329) - -## ClickHouse релиз 18.12 {#clickhouse-release-18-12} - -### ClickHouse релиз 18.12.17, 2018-09-16 {#clickhouse-release-18-12-17-2018-09-16} - -#### Новые средства: {#new-features-2} - -- `invalidate_query` (возможность задать запрос для проверки необходимости обновления внешнего словаря) реализована для `clickhouse` источник. [\#3126](https://github.com/ClickHouse/ClickHouse/pull/3126) -- Добавлена возможность использования `UInt*`, `Int*`, и `DateTime` типы данных (вместе с `Date` типа) как `range_hashed` внешний ключ словаря, определяющий границы диапазонов. Сейчас `NULL` может использоваться для обозначения открытого диапазона. [Василий Немков](https://github.com/ClickHouse/ClickHouse/pull/3123) -- То `Decimal` тип теперь поддерживает `var*` и `stddev*` статистическая функция. [\#3129](https://github.com/ClickHouse/ClickHouse/pull/3129) -- То `Decimal` тип теперь поддерживает математические функции (`exp`, `sin` и так далее.) [\#3129](https://github.com/ClickHouse/ClickHouse/pull/3129) -- То `system.part_log` таблица теперь имеет `partition_id` колонка. [\#3089](https://github.com/ClickHouse/ClickHouse/pull/3089) - -#### Устранение ошибок: {#bug-fixes-11} - -- `Merge` теперь работает правильно на `Distributed` таблицы. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3159) -- Исправлена несовместимость (ненужная зависимость от `glibc` версия), что сделало невозможным запуск ClickHouse на `Ubuntu Precise` и более старые версии. Несовместимость возникла в версии 18.12.13. [\#3130](https://github.com/ClickHouse/ClickHouse/pull/3130) -- Исправлены ошибки в работе `enable_optimize_predicate_expression` установка. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3107) -- Исправлена незначительная проблема с обратной совместимостью, возникшая при работе с кластером реплик на версиях ранее 18.12.13 и одновременном создании новой реплики таблицы на сервере с более новой версией (показано в сообщении `Can not clone replica, because the ... updated to new ClickHouse version`, что вполне логично, но не должно произойти). [\#3122](https://github.com/ClickHouse/ClickHouse/pull/3122) - -#### Назад несовместимые изменения: {#backward-incompatible-changes-2} - -- То `enable_optimize_predicate_expression` опция включена по умолчанию (что довольно оптимистично). Если возникают ошибки анализа запросов, связанные с поиском имен столбцов, установите `enable_optimize_predicate_expression` до 0. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3107) - -### ClickHouse релиз 18.12.14, 2018-09-13 {#clickhouse-release-18-12-14-2018-09-13} - -#### Новые средства: {#new-features-3} - -- Добавлена поддержка для `ALTER UPDATE` запросы. [\#3035](https://github.com/ClickHouse/ClickHouse/pull/3035) -- Добавил тот `allow_ddl` опция, которая ограничивает доступ пользователя к DDL-запросам. [\#3104](https://github.com/ClickHouse/ClickHouse/pull/3104) -- Добавил тот `min_merge_bytes_to_use_direct_io` вариант для `MergeTree` движки, которые позволяют установить пороговое значение для общего размера слияния (при превышении порогового значения файлы частей данных будут обрабатываться с помощью O\_DIRECT). [\#3117](https://github.com/ClickHouse/ClickHouse/pull/3117) -- То `system.merges` системная таблица теперь содержит `partition_id` колонка. [\#3099](https://github.com/ClickHouse/ClickHouse/pull/3099) - -#### Улучшения {#improvements-3} - -- Если часть данных остается неизменной во время мутации, она не загружается репликами. [\#3103](https://github.com/ClickHouse/ClickHouse/pull/3103) -- Автозаполнение доступно для имен настроек при работе с ними `clickhouse-client`. [\#3106](https://github.com/ClickHouse/ClickHouse/pull/3106) - -#### Устранение ошибок: {#bug-fixes-12} - -- Добавлена проверка размеров массивов, являющихся элементами `Nested` введите поля при вставке. [\#3118](https://github.com/ClickHouse/ClickHouse/pull/3118) -- Исправлена ошибка обновления внешних словарей с помощью `ODBC` источник и `hashed` место хранения. Эта ошибка произошла в версии 18.12.13. -- Исправлена ошибка при создании временной таблицы из запроса с помощью `IN` состояние. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3098) -- Исправлена ошибка в агрегатных функциях для массивов, которые могут иметь `NULL` элементы. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/3097) - -### ClickHouse релиз 18.12.13, 2018-09-10 {#clickhouse-release-18-12-13-2018-09-10} - -#### Новые средства: {#new-features-4} - -- Добавил тот `DECIMAL(digits, scale)` тип данных (`Decimal32(scale)`, `Decimal64(scale)`, `Decimal128(scale)`). Чтобы включить его, используйте параметр `allow_experimental_decimal_type`. [\#2846](https://github.com/ClickHouse/ClickHouse/pull/2846) [\#2970](https://github.com/ClickHouse/ClickHouse/pull/2970) [\#3008](https://github.com/ClickHouse/ClickHouse/pull/3008) [\#3047](https://github.com/ClickHouse/ClickHouse/pull/3047) -- Новый `WITH ROLLUP` модификатор для `GROUP BY` (альтернативный синтаксис: `GROUP BY ROLLUP(...)`). [\#2948](https://github.com/ClickHouse/ClickHouse/pull/2948) -- В запросах с соединением символ звезды расширяется до списка столбцов во всех таблицах в соответствии со стандартом SQL. Вы можете восстановить старое поведение, установив `asterisk_left_columns_only` до 1 на уровне конфигурации пользователя. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2787) -- Добавлена поддержка соединения с табличными функциями. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2907) -- Автозаполнение осуществляется нажатием клавиши Tab в clickhouse-клиенте. [Сергей Щербин](https://github.com/ClickHouse/ClickHouse/pull/2447) -- Сочетание клавиш CTRL+C в clickhouse-клиент сбрасывает запрос, который был введен. [\#2877](https://github.com/ClickHouse/ClickHouse/pull/2877) -- Добавил тот `join_default_strictness` уставка: `"`, `'any'`, `'all'`). Это позволяет вам не указывать `ANY` или `ALL` для `JOIN`. [\#2982](https://github.com/ClickHouse/ClickHouse/pull/2982) -- Каждая строка журнала сервера, связанная с обработкой запросов, показывает идентификатор запроса. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- Теперь вы можете получить журналы выполнения запросов в clickhouse-клиенте (используйте `send_logs_level` установочный). При распределенной обработке запросов журналы каскадируются со всех серверов. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- То `system.query_log` и `system.processes` (`SHOW PROCESSLIST`) таблицы теперь содержат информацию обо всех измененных настройках при выполнении запроса (вложенная структура запроса). `Settings` данные). Добавил тот `log_query_settings` установка. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- То `system.query_log` и `system.processes` теперь в таблицах отображается информация о количестве потоков, участвующих в выполнении запроса (см. `thread_numbers` колонка). [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- Добавлен `ProfileEvents` счетчики, которые измеряют время, затраченное на чтение и запись по сети и чтение и запись на диск, количество сетевых ошибок и время ожидания, когда пропускная способность сети ограничена. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- Добавлен `ProfileEvents`счетчики, содержащие системные метрики из rusage (их можно использовать для получения информации об использовании ЦП в пользовательском пространстве и ядре, сбоях страниц и переключателях контекста), а также метрики taskstats (используйте их для получения информации о времени ожидания ввода-вывода, времени ожидания ЦП и объеме данных, считываемых и записываемых как с помощью кэша страниц, так и без него). [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- То `ProfileEvents` счетчики применяются глобально и для каждого запроса, а также для каждого потока выполнения запроса, что позволяет детально профилировать потребление ресурсов запросом. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- Добавил тот `system.query_thread_log` таблица, содержащая информацию о каждом потоке выполнения запроса. Добавил тот `log_query_threads` установка. [\#2482](https://github.com/ClickHouse/ClickHouse/pull/2482) -- То `system.metrics` и `system.events` таблицы теперь имеют встроенную документацию. [\#3016](https://github.com/ClickHouse/ClickHouse/pull/3016) -- Добавил тот `arrayEnumerateDense` функция. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2975) -- Добавил тот `arrayCumSumNonNegative` и `arrayDifference` функции. [Алексей Студнев](https://github.com/ClickHouse/ClickHouse/pull/2942) -- Добавил тот `retention` статистическая функция. [Вашим Ли](https://github.com/ClickHouse/ClickHouse/pull/2887) -- Теперь вы можете добавить (объединить) состояния агрегатных функций с помощью оператора плюс и умножить состояния агрегатных функций на неотрицательную константу. [\#3062](https://github.com/ClickHouse/ClickHouse/pull/3062) [\#3034](https://github.com/ClickHouse/ClickHouse/pull/3034) -- Таблицы в семействе MergeTree теперь имеют виртуальный столбец `_partition_id`. [\#3089](https://github.com/ClickHouse/ClickHouse/pull/3089) - -#### Экспериментальная возможность: {#experimental-features-1} - -- Добавил тот `LowCardinality(T)` тип данных. Этот тип данных автоматически создает локальный словарь значений и позволяет обрабатывать данные без распаковки словаря. [\#2830](https://github.com/ClickHouse/ClickHouse/pull/2830) -- Добавлен кэш JIT-скомпилированных функций и счетчик количества использований перед компиляцией. Чтобы выполнить JIT-компиляцию выражений, включите `compile_expressions` установка. [\#2990](https://github.com/ClickHouse/ClickHouse/pull/2990) [\#3077](https://github.com/ClickHouse/ClickHouse/pull/3077) - -#### Улучшения: {#improvements-4} - -- Исправлена проблема с неограниченным накоплением журнала репликации при наличии брошенных реплик. Добавлен эффективный режим восстановления для реплик с длительным запаздыванием. -- Улучшенная производительность `GROUP BY` с несколькими полями агрегации, когда одно из них является строковым, а другие-фиксированной длины. -- Улучшенная производительность при использовании `PREWHERE` и с неявной передачей выражений в `PREWHERE`. -- Улучшена производительность синтаксического анализа для текстовых форматов (`CSV`, `TSV`). [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2977) [\#2980](https://github.com/ClickHouse/ClickHouse/pull/2980) -- Улучшена производительность чтения строк и массивов в двоичных форматах. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2955) -- Повышенная производительность и снижение потребления памяти для запросов к `system.tables` и `system.columns` при наличии очень большого количества таблиц на одном сервере. [\#2953](https://github.com/ClickHouse/ClickHouse/pull/2953) -- Исправлена проблема производительности в случае большого потока запросов, приводящих к ошибке (the `_dl_addr` функция видна в `perf top`, но сервер не использует много процессора). [\#2938](https://github.com/ClickHouse/ClickHouse/pull/2938) -- Условия бросаются в поле зрения (когда `enable_optimize_predicate_expression` включен). [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2907) -- Улучшения в функциональности для `UUID` тип данных. [\#3074](https://github.com/ClickHouse/ClickHouse/pull/3074) [\#2985](https://github.com/ClickHouse/ClickHouse/pull/2985) -- То `UUID` тип данных поддерживается в словарях-Alchemist. [\#2822](https://github.com/ClickHouse/ClickHouse/pull/2822) -- То `visitParamExtractRaw` функция корректно работает с вложенными структурами. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2974) -- Когда `input_format_skip_unknown_fields` настройка включена, поля объекта в поле `JSONEachRow` формат пропущен правильно. [BlahGeek](https://github.com/ClickHouse/ClickHouse/pull/2958) -- Для `CASE` выражение с условиями теперь можно опустить `ELSE`, что эквивалентно `ELSE NULL`. [\#2920](https://github.com/ClickHouse/ClickHouse/pull/2920) -- Тайм-аут операции теперь можно настроить при работе с ZooKeeper. [urykhy](https://github.com/ClickHouse/ClickHouse/pull/2971) -- Вы можете указать смещение для `LIMIT n, m` как `LIMIT n OFFSET m`. [\#2840](https://github.com/ClickHouse/ClickHouse/pull/2840) -- Вы можете использовать `SELECT TOP n` синтаксис как альтернатива для `LIMIT`. [\#2840](https://github.com/ClickHouse/ClickHouse/pull/2840) -- Увеличен размер очереди для записи в системные таблицы, так что `SystemLog parameter queue is full` ошибки случаются не так часто. -- То `windowFunnel` агрегатная функция теперь поддерживает события, удовлетворяющие нескольким условиям. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2801) -- Повторяющиеся столбцы могут быть использованы в a `USING` пунктом `JOIN`. [\#3006](https://github.com/ClickHouse/ClickHouse/pull/3006) -- `Pretty` форматы теперь имеют ограничение на выравнивание столбцов по ширине. Используйте `output_format_pretty_max_column_pad_width` установка. Если значение больше, то оно все равно будет отображаться полностью, но другие ячейки таблицы не будут слишком широкими. [\#3003](https://github.com/ClickHouse/ClickHouse/pull/3003) -- То `odbc` функция таблицы теперь позволяет указать имя базы данных / схемы. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2885) -- Добавлена возможность использовать имя Пользователя, указанное в `clickhouse-client` конфигурационный файл. [Владимир Козбин](https://github.com/ClickHouse/ClickHouse/pull/2909) -- То `ZooKeeperExceptions` счетчик был разделен на три счетчика: `ZooKeeperUserExceptions`, `ZooKeeperHardwareExceptions`, и `ZooKeeperOtherExceptions`. -- `ALTER DELETE` запросы работают для материализованных представлений. -- Добавлена рандомизация при периодическом запуске потока очистки для `ReplicatedMergeTree` таблицы во избежание периодических скачков нагрузки при наличии очень большого количества `ReplicatedMergeTree` таблицы. -- Поддержка `ATTACH TABLE ... ON CLUSTER` запросы. [\#3025](https://github.com/ClickHouse/ClickHouse/pull/3025) - -#### Устранение ошибок: {#bug-fixes-13} - -- Исправлена проблема с `Dictionary` таблицы (бросает то `Size of offsets doesn't match size of column` или `Unknown compression method` исключение). Эта ошибка появилась в версии 18.10.3. [\#2913](https://github.com/ClickHouse/ClickHouse/issues/2913) -- Исправлена ошибка при слиянии `CollapsingMergeTree` таблицы, если одна из частей данных пуста (эти части формируются во время слияния или `ALTER DELETE` если все данные были удалены), а также `vertical` для слияния был использован алгоритм. [\#3049](https://github.com/ClickHouse/ClickHouse/pull/3049) -- Исправлено состояние гонки во время `DROP` или `TRUNCATE` для `Memory` столы с одновременным `SELECT`, что может привести к сбоям сервера. Эта ошибка появилась в версии 1.1.54388. [\#3038](https://github.com/ClickHouse/ClickHouse/pull/3038) -- Исправлена возможность потери данных при вставке в систему `Replicated` таблицы, если `Session is expired` возвращается ошибка (потеря данных может быть обнаружена с помощью `ReplicatedDataLoss` метрический). Эта ошибка произошла в версии 1.1.54378. [\#2939](https://github.com/ClickHouse/ClickHouse/pull/2939) [\#2949](https://github.com/ClickHouse/ClickHouse/pull/2949) [\#2964](https://github.com/ClickHouse/ClickHouse/pull/2964) -- Исправлен сегфолт при `JOIN ... ON`. [\#3000](https://github.com/ClickHouse/ClickHouse/pull/3000) -- Исправлена ошибка поиска имен столбцов, когда `WHERE` выражение полностью состоит из квалифицированного имени столбца, например `WHERE table.column`. [\#2994](https://github.com/ClickHouse/ClickHouse/pull/2994) -- Исправлена ошибка «Not found column» ошибка, возникшая при выполнении распределенных запросов, если с удаленного сервера запрашивается один столбец, состоящий из выражения IN с вложенным запросом. [\#3087](https://github.com/ClickHouse/ClickHouse/pull/3087) -- Исправлена ошибка `Block structure mismatch in UNION stream: different number of columns` ошибка, возникшая для распределенных запросов, если один из сегментов является локальным, а другой-нет, и оптимизация перемещения в `PREWHERE` это срабатывает. [\#2226](https://github.com/ClickHouse/ClickHouse/pull/2226) [\#3037](https://github.com/ClickHouse/ClickHouse/pull/3037) [\#3055](https://github.com/ClickHouse/ClickHouse/pull/3055) [\#3065](https://github.com/ClickHouse/ClickHouse/pull/3065) [\#3073](https://github.com/ClickHouse/ClickHouse/pull/3073) [\#3090](https://github.com/ClickHouse/ClickHouse/pull/3090) [\#3093](https://github.com/ClickHouse/ClickHouse/pull/3093) -- Исправлена ошибка `pointInPolygon` функция для некоторых случаев невыпуклых многоугольников. [\#2910](https://github.com/ClickHouse/ClickHouse/pull/2910) -- Исправлен неверный результат при сравнении `nan` с целыми числами. [\#3024](https://github.com/ClickHouse/ClickHouse/pull/3024) -- Исправлена ошибка в системе `zlib-ng` библиотека, которая в редких случаях может привести к segfault. [\#2854](https://github.com/ClickHouse/ClickHouse/pull/2854) -- Исправлена утечка памяти при вставке в таблицу с помощью `AggregateFunction` столбцы, если состояние агрегатной функции не простое (выделяет память отдельно), и если один запрос на вставку приводит к нескольким небольшим блокам. [\#3084](https://github.com/ClickHouse/ClickHouse/pull/3084) -- Исправлено состояние гонки при создании и удалении одного и того же объекта `Buffer` или `MergeTree` стол одновременно. -- Исправлена возможность segfault при сравнении кортежей, составленных из определенных нетривиальных типов, таких как кортежи. [\#2989](https://github.com/ClickHouse/ClickHouse/pull/2989) -- Исправлена возможность возникновения segfault при запуске некоторых `ON CLUSTER` запросы. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2960) -- Исправлена ошибка в системе `arrayDistinct` функция для `Nullable` элемент массива. [\#2845](https://github.com/ClickHouse/ClickHouse/pull/2845) [\#2937](https://github.com/ClickHouse/ClickHouse/pull/2937) -- То `enable_optimize_predicate_expression` опция теперь корректно поддерживает случаи с `SELECT *`. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2929) -- Исправлена ошибка segfault при повторной инициализации сеанса ZooKeeper. [\#2917](https://github.com/ClickHouse/ClickHouse/pull/2917) -- Исправлена блокировка при работе с зоопарка. -- Исправлен неверный код для добавления вложенных структур данных в a `SummingMergeTree`. -- При выделении памяти для состояний агрегатных функций корректно учитывается выравнивание, что позволяет использовать операции, требующие выравнивания при реализации состояний агрегатных функций. [chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/2808) - -#### Исправление безопасности: {#security-fix} - -- Безопасное использование источников данных ODBC. Взаимодействие с драйверами ODBC использует отдельный интерфейс `clickhouse-odbc-bridge` процесс. Ошибки в сторонних драйверах ODBC больше не вызывают проблем со стабильностью сервера или уязвимостями. [\#2828](https://github.com/ClickHouse/ClickHouse/pull/2828) [\#2879](https://github.com/ClickHouse/ClickHouse/pull/2879) [\#2886](https://github.com/ClickHouse/ClickHouse/pull/2886) [\#2893](https://github.com/ClickHouse/ClickHouse/pull/2893) [\#2921](https://github.com/ClickHouse/ClickHouse/pull/2921) -- Исправлена неправильная проверка пути к файлу в системе `catBoostPool` табличная функция. [\#2894](https://github.com/ClickHouse/ClickHouse/pull/2894) -- Содержание системных таблиц (`tables`, `databases`, `parts`, `columns`, `parts_columns`, `merges`, `mutations`, `replicas`, и `replication_queue`) фильтруются в соответствии с настроенным пользователем доступом к базам данных (`allow_databases`). [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2856) - -#### Назад несовместимые изменения: {#backward-incompatible-changes-3} - -- В запросах с соединением символ звезды расширяется до списка столбцов во всех таблицах в соответствии со стандартом SQL. Вы можете восстановить старое поведение, установив `asterisk_left_columns_only` до 1 на уровне конфигурации пользователя. - -#### Изменения в сборке: {#build-changes-2} - -- Большинство интеграционных тестов теперь можно запускать с помощью commit. -- Проверка стиля кода также может выполняться с помощью commit. -- То `memcpy` реализация выбрана правильно при построении на CentOS7/Fedora. [Этьен Шампетье](https://github.com/ClickHouse/ClickHouse/pull/2912) -- При использовании clang для сборки, некоторые предупреждения от `-Weverything` были добавлены, в дополнение к обычным `-Wall-Wextra -Werror`. [\#2957](https://github.com/ClickHouse/ClickHouse/pull/2957) -- Отладка сборки использует следующие методы: `jemalloc` вариант отладки. -- Интерфейс библиотеки для взаимодействия с ZooKeeper объявлен абстрактным. [\#2950](https://github.com/ClickHouse/ClickHouse/pull/2950) - -## ClickHouse релиз 18.10 {#clickhouse-release-18-10} - -### ClickHouse релиз 18.10.3, 2018-08-13 {#clickhouse-release-18-10-3-2018-08-13} - -#### Новые средства: {#new-features-5} - -- HTTPS можно использовать для репликации. [\#2760](https://github.com/ClickHouse/ClickHouse/pull/2760) -- Добавлены функции `murmurHash2_64`, `murmurHash3_32`, `murmurHash3_64`, и `murmurHash3_128` в дополнение к существующим `murmurHash2_32`. [\#2791](https://github.com/ClickHouse/ClickHouse/pull/2791) -- Поддержка типы, допускающие значения NULL в драйвере ODBC ClickHouse (`ODBCDriver2` выходной формат). [\#2834](https://github.com/ClickHouse/ClickHouse/pull/2834) -- Поддержка `UUID` в ключевых колонках. - -#### Улучшения: {#improvements-5} - -- Кластеры могут быть удалены без перезагрузки сервера, когда они удаляются из конфигурационных файлов. [\#2777](https://github.com/ClickHouse/ClickHouse/pull/2777) -- Внешние словари могут быть удалены без перезагрузки сервера, когда они удаляются из конфигурационных файлов. [\#2779](https://github.com/ClickHouse/ClickHouse/pull/2779) -- Добавлен `SETTINGS` поддержка для the `Kafka` настольный двигатель. [Александр Маршалов](https://github.com/ClickHouse/ClickHouse/pull/2781) -- Улучшения для компании `UUID` тип данных (еще не полный). [\#2618](https://github.com/ClickHouse/ClickHouse/pull/2618) -- Поддержка для пустых частей после слияния в `SummingMergeTree`, `CollapsingMergeTree` и `VersionedCollapsingMergeTree` двигатели. [\#2815](https://github.com/ClickHouse/ClickHouse/pull/2815) -- Старые записи завершенных мутаций удаляются (`ALTER DELETE`). [\#2784](https://github.com/ClickHouse/ClickHouse/pull/2784) -- Добавил тот `system.merge_tree_settings` стол. [Кирилл Шваков](https://github.com/ClickHouse/ClickHouse/pull/2841) -- То `system.tables` таблица теперь имеет столбцы зависимостей: `dependencies_database` и `dependencies_table`. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2851) -- Добавил тот `max_partition_size_to_drop` вариант конфигурации. [\#2782](https://github.com/ClickHouse/ClickHouse/pull/2782) -- Добавил тот `output_format_json_escape_forward_slashes` вариант. [Александр Бочаров](https://github.com/ClickHouse/ClickHouse/pull/2812) -- Добавил тот `max_fetch_partition_retries_count` установка. [\#2831](https://github.com/ClickHouse/ClickHouse/pull/2831) -- Добавил тот `prefer_localhost_replica` настройка для отключения предпочтения для локальной реплики и перехода к локальной реплике без межпроцессного взаимодействия. [\#2832](https://github.com/ClickHouse/ClickHouse/pull/2832) -- То `quantileExact` возвращает агрегатная функция `nan` в случае агрегации на пустом месте `Float32` или `Float64` набор. [Вашим Ли](https://github.com/ClickHouse/ClickHouse/pull/2855) - -#### Устранение ошибок: {#bug-fixes-14} - -- Удалено ненужное экранирование параметров строки подключения для ODBC, что сделало невозможным установление соединения. Эта ошибка произошла в версии 18.6.0. -- Исправлена логика обработки `REPLACE PARTITION` команды в очереди репликации. Если их будет двое `REPLACE` команды для одного и того же раздела, неправильная логика может привести к тому, что один из них останется в очереди репликации и не будет выполнен. [\#2814](https://github.com/ClickHouse/ClickHouse/pull/2814) -- Исправлена ошибка слияния, когда все части данных были пусты (части, которые были сформированы из слияния или из `ALTER DELETE` если все данные были удалены). Эта ошибка появилась в версии 18.1.0. [\#2930](https://github.com/ClickHouse/ClickHouse/pull/2930) -- Исправлена ошибка при одновременном использовании `Set` или `Join`. [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2823) -- Исправлена ошибка `Block structure mismatch in UNION stream: different number of columns` ошибка, которая произошла для `UNION ALL` запросы внутри подзапроса, если один из `SELECT` запросы содержат повторяющиеся имена столбцов. [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2094) -- Исправлена утечка памяти, если при подключении к серверу MySQL возникало исключение. -- Исправлен неверный код ответа clickhouse-клиента в случае ошибки запроса. -- Исправлено некорректное поведение материализованных представлений, содержащих отличия. [\#2795](https://github.com/ClickHouse/ClickHouse/issues/2795) - -#### Назад несовместимые изменения {#backward-incompatible-changes-4} - -- Удалена поддержка запросов CHECK TABLE для распределенных таблиц. - -#### Изменения в сборке: {#build-changes-3} - -- Распределитель был заменен: `jemalloc` теперь используется вместо `tcmalloc`. В некоторых сценариях это увеличивает скорость до 20%. Однако есть запросы, которые замедлились до 20%. Потребление памяти было уменьшено приблизительно на 10% в некоторых сценариях, с улучшенной стабильностью. При высокой конкурентной нагрузке использование процессора в пользовательском пространстве и в системе показывает лишь небольшое увеличение. [\#2773](https://github.com/ClickHouse/ClickHouse/pull/2773) -- Использование libressl из подмодуля. [\#1983](https://github.com/ClickHouse/ClickHouse/pull/1983) [\#2807](https://github.com/ClickHouse/ClickHouse/pull/2807) -- Использование unixodbc из подмодуля. [\#2789](https://github.com/ClickHouse/ClickHouse/pull/2789) -- Использование mariadb-connector-c из подмодуля. [\#2785](https://github.com/ClickHouse/ClickHouse/pull/2785) -- Добавлены функциональные тестовые файлы в репозиторий, зависящие от доступности тестовых данных (пока без самих тестовых данных). - -## ClickHouse релиз 18.6 {#clickhouse-release-18-6} - -### ClickHouse релиз 18.6.0, 2018-08-02 {#clickhouse-release-18-6-0-2018-08-02} - -#### Новые средства: {#new-features-6} - -- Добавлена поддержка выражений для соединения на синтаксис: - `JOIN ON Expr([table.]column ...) = Expr([table.]column, ...) [AND Expr([table.]column, ...) = Expr([table.]column, ...) ...]` - Выражение должно быть цепочкой равенств, Соединенных оператором и. Каждая сторона равенства может быть произвольным выражением над столбцами одной из таблиц. Поддерживается использование полных имен столбцов (`table.name`, `database.table.name`, `table_alias.name`, `subquery_alias.name`) для правильного стола. [\#2742](https://github.com/ClickHouse/ClickHouse/pull/2742) -- HTTPS может быть включен для репликации. [\#2760](https://github.com/ClickHouse/ClickHouse/pull/2760) - -#### Улучшения: {#improvements-6} - -- Сервер передает клиенту компонент исправлений своей версии. Данные о компоненте версии патча находятся в `system.processes` и `query_log`. [\#2646](https://github.com/ClickHouse/ClickHouse/pull/2646) - -## ClickHouse релиз 18.5 {#clickhouse-release-18-5} - -### ClickHouse релиз 18.5.1, 2018-07-31 {#clickhouse-release-18-5-1-2018-07-31} - -#### Новые средства: {#new-features-7} - -- Добавлена хэш-функция `murmurHash2_32` [\#2756](https://github.com/ClickHouse/ClickHouse/pull/2756). - -#### Улучшения: {#improvements-7} - -- Теперь вы можете использовать `from_env` [\#2741](https://github.com/ClickHouse/ClickHouse/pull/2741) атрибут для установки значений в конфигурационных файлах из переменных окружения. -- Добавлены версии с нечувствительностью к регистру символов `coalesce`, `ifNull`, и `nullIf functions` [\#2752](https://github.com/ClickHouse/ClickHouse/pull/2752). - -#### Устранение ошибок: {#bug-fixes-15} - -- Исправлена возможная ошибка при запуске реплики [\#2759](https://github.com/ClickHouse/ClickHouse/pull/2759). - -## ClickHouse релиз 18.4 {#clickhouse-release-18-4} - -### ClickHouse релиз 18.4.0, 2018-07-28 {#clickhouse-release-18-4-0-2018-07-28} - -#### Новые средства: {#new-features-8} - -- Добавлены системные таблицы: `formats`, `data_type_families`, `aggregate_function_combinators`, `table_functions`, `table_engines`, `collations` [\#2721](https://github.com/ClickHouse/ClickHouse/pull/2721). -- Добавлена возможность использовать табличную функцию вместо таблицы в качестве аргумента a `remote` или `cluster table function` [\#2708](https://github.com/ClickHouse/ClickHouse/pull/2708). -- Поддержка `HTTP Basic` аутентификация в протоколе репликации [\#2727](https://github.com/ClickHouse/ClickHouse/pull/2727). -- То `has` функция теперь позволяет искать числовое значение в массиве `Enum` ценности [Максим Хрисанфов](https://github.com/ClickHouse/ClickHouse/pull/2699). -- Поддержка добавления произвольных разделителей сообщений при чтении из `Kafka` [Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2701). - -#### Улучшения: {#improvements-8} - -- То `ALTER TABLE t DELETE WHERE` запрос не перезаписывает части данных, которые не были затронуты условием WHERE [\#2694](https://github.com/ClickHouse/ClickHouse/pull/2694). -- То `use_minimalistic_checksums_in_zookeeper` вариант для `ReplicatedMergeTree` таблицы включены по умолчанию. Этот параметр был добавлен в версии 1.1.54378, 2018-04-16. Версии, которые старше 1.1.54378, больше не могут быть установлены. -- Поддержка для бега `KILL` и `OPTIMIZE` запросы, которые определяют `ON CLUSTER` [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2689). - -#### Устранение ошибок: {#bug-fixes-16} - -- Исправлена ошибка `Column ... is not under an aggregate function and not in GROUP BY` для агрегатирования с выражением. Эта ошибка появилась в версии 18.1.0. ([bbdd780b](https://github.com/ClickHouse/ClickHouse/commit/bbdd780be0be06a0f336775941cdd536878dd2c2)) -- Исправлена ошибка в системе `windowFunnel aggregate function` [Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2735). -- Исправлена ошибка в системе `anyHeavy` статистическая функция ([a2101df2](https://github.com/ClickHouse/ClickHouse/commit/a2101df25a6a0fba99aa71f8793d762af2b801ee)) -- Исправлен сбой сервера при использовании `countArray()` статистическая функция. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-5} - -- Параметры для `Kafka` двигатель был изменен с `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_schema, kafka_num_consumers])` к `Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format[, kafka_row_delimiter, kafka_schema, kafka_num_consumers])`. Если ваши таблицы используют `kafka_schema` или `kafka_num_consumers` параметры, вы должны вручную редактировать файлы метаданных `path/metadata/database/table.sql` и добавить `kafka_row_delimiter` параметр с `''` ценность. - -## ClickHouse релиз 18.1 {#clickhouse-release-18-1} - -### ClickHouse релиз 18.1.0, 2018-07-23 {#clickhouse-release-18-1-0-2018-07-23} - -#### Новые средства: {#new-features-9} - -- Поддержка для the `ALTER TABLE t DELETE WHERE` запрос на нереплицируемые MergeTree таблицы ([\#2634](https://github.com/ClickHouse/ClickHouse/pull/2634)). -- Поддержка произвольных типов для `uniq*` семейство агрегатных функций ([\#2010](https://github.com/ClickHouse/ClickHouse/issues/2010)). -- Поддержка произвольных типов в операторах сравнения ([\#2026](https://github.com/ClickHouse/ClickHouse/issues/2026)). -- То `users.xml` файл позволяет установить маску подсети в формате `10.0.0.1/255.255.255.0`. Это необходимо для использования масок для сетей IPv6 с нулями посередине ([\#2637](https://github.com/ClickHouse/ClickHouse/pull/2637)). -- Добавил тот `arrayDistinct` функция ([\#2670](https://github.com/ClickHouse/ClickHouse/pull/2670)). -- Движок SummingMergeTree теперь может работать со столбцами типа AggregateFunction ([Константин Сергеевич Пан](https://github.com/ClickHouse/ClickHouse/pull/2566)). - -#### Улучшения: {#improvements-9} - -- Изменена схема нумерации для версий выпуска. Теперь первая часть содержит год выпуска (A. D., Московский часовой пояс, минус 2000), вторая часть содержит номер для крупных изменений (увеличивается для большинства релизов), а третья часть-это патч-версия. Релизы по-прежнему имеют обратную совместимость, если в списке изменений не указано иное. -- Более быстрое преобразование чисел с плавающей запятой в строку ([Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2664)). -- Если некоторые строки были пропущены во время вставки из-за ошибок синтаксического анализа (это возможно с помощью `input_allow_errors_num` и `input_allow_errors_ratio` настройки включены), количество пропущенных строк теперь записывается в журнал сервера ([Леонардо Чекки](https://github.com/ClickHouse/ClickHouse/pull/2669)). - -#### Устранение ошибок: {#bug-fixes-17} - -- Исправлена команда усечения для временных таблиц ([Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2624)). -- Исправлена редкая тупиковая ситуация в клиентской библиотеке ZooKeeper, возникшая при возникновении сетевой ошибки при чтении ответа ([c315200](https://github.com/ClickHouse/ClickHouse/commit/c315200e64b87e44bdf740707fc857d1fdf7e947)). -- Исправлена ошибка во время бросания на типы, допускающие значение null ([\#1322](https://github.com/ClickHouse/ClickHouse/issues/1322)). -- Исправлен неверный результат работы системы `maxIntersection()` функция, когда границы интервалов совпадают ([Майкл Фурмур](https://github.com/ClickHouse/ClickHouse/pull/2657)). -- Исправлено некорректное преобразование цепочки выражений OR в аргумент функции ([chenxing-xc](https://github.com/ClickHouse/ClickHouse/pull/2663)). -- Исправлено снижение производительности для запросов, содержащих `IN (subquery)` выражения внутри другого подзапроса ([\#2571](https://github.com/ClickHouse/ClickHouse/issues/2571)). -- Исправлена несовместимость серверов с различными версиями в распределенных запросах, использующих a `CAST` функция, которая не написана прописными буквами ([fe8c4d6](https://github.com/ClickHouse/ClickHouse/commit/fe8c4d64e434cacd4ceef34faa9005129f2190a5)). -- Добавлено отсутствующее цитирование идентификаторов для запросов к внешней СУБД ([\#2635](https://github.com/ClickHouse/ClickHouse/issues/2635)). - -#### Назад несовместимые изменения: {#backward-incompatible-changes-6} - -- Преобразование строки, содержащей нулевое число, в DateTime не работает. Пример: `SELECT toDateTime('0')`. Это также является причиной того, что `DateTime DEFAULT '0'` не работает в таблицах, а также `0` в словарях. Решение: заменить `0` с `0000-00-00 00:00:00`. - -## ClickHouse release 1.1 {#clickhouse-release-1-1} - -### ClickHouse релиз 1.1.54394, 2018-07-12 {#clickhouse-release-1-1-54394-2018-07-12} - -#### Новые средства: {#new-features-10} - -- Добавил тот `histogram` статистическая функция ([Михаил Сурин](https://github.com/ClickHouse/ClickHouse/pull/2521)). -- Сейчас `OPTIMIZE TABLE ... FINAL` может использоваться без указания разделов для `ReplicatedMergeTree` ([Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2600)). - -#### Устранение ошибок: {#bug-fixes-18} - -- Исправлена проблема с очень малым таймаутом для сокетов (одна секунда) для чтения и записи при отправке и загрузке реплицированных данных, что делало невозможной загрузку больших частей при наличии нагрузки на сеть или диск (это приводило к циклическим попыткам загрузки частей). Эта ошибка произошла в версии 1.1.54388. -- Исправлены проблемы при использовании chroot в ZooKeeper, если вы вставили дубликаты блоков данных в таблицу. -- То `has` функция теперь корректно работает для массива с нулевыми элементами ([\#2115](https://github.com/ClickHouse/ClickHouse/issues/2115)). -- То `system.tables` таблица теперь работает корректно при использовании в распределенных запросах. То `metadata_modification_time` и `engine_full` столбцы теперь не являются виртуальными. Исправлена ошибка, возникавшая при запросе из таблицы только этих столбцов. -- Исправлено как пустой `TinyLog` таблица работает после вставки пустого блока данных ([\#2563](https://github.com/ClickHouse/ClickHouse/issues/2563)). -- То `system.zookeeper` таблица работает, если значение узла в ZooKeeper равно NULL. - -### ClickHouse релиз 1.1.54390, 2018-07-06 {#clickhouse-release-1-1-54390-2018-07-06} - -#### Новые средства: {#new-features-11} - -- Запросы могут быть отправлены в `multipart/form-data` формат (в виде `query` поле), что полезно, если внешние данные также отправляются для обработки запросов ([Ольга Хвостикова](https://github.com/ClickHouse/ClickHouse/pull/2490)). -- Добавлена возможность включения или отключения обработки одинарных или двойных кавычек при чтении данных в формате CSV. Вы можете настроить это в разделе `format_csv_allow_single_quotes` и `format_csv_allow_double_quotes` настройки ([Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2574)). -- Сейчас `OPTIMIZE TABLE ... FINAL` может использоваться без указания раздела для нереплицированных вариантов `MergeTree` ([Амос Птица](https://github.com/ClickHouse/ClickHouse/pull/2599)). - -#### Улучшения: {#improvements-10} - -- Улучшенная производительность, снижение потребления памяти и корректное отслеживание потребления памяти с использованием оператора IN, когда можно использовать табличный индекс ([\#2584](https://github.com/ClickHouse/ClickHouse/pull/2584)). -- Удалена избыточная проверка контрольных сумм при добавлении части данных. Это важно при наличии большого количества реплик, так как в этих случаях общее число проверок было равно N^2. -- Добавлена поддержка для `Array(Tuple(...))` аргументы в пользу этого `arrayEnumerateUniq` функция ([\#2573](https://github.com/ClickHouse/ClickHouse/pull/2573)). -- Добавлен `Nullable` поддержка для the `runningDifference` функция ([\#2594](https://github.com/ClickHouse/ClickHouse/pull/2594)). -- Улучшена производительность анализа запросов при наличии очень большого количества выражений ([\#2572](https://github.com/ClickHouse/ClickHouse/pull/2572)). -- Более быстрый выбор частей данных для слияния в `ReplicatedMergeTree` таблицы. Более быстрое восстановление сеанса смотрителя зоопарка ([\#2597](https://github.com/ClickHouse/ClickHouse/pull/2597)). -- То `format_version.txt` файл для `MergeTree` таблицы создаются заново, если они отсутствуют, что имеет смысл, если ClickHouse запускается после копирования структуры каталогов без файлов ([Киприан Хакман](https://github.com/ClickHouse/ClickHouse/pull/2593)). - -#### Устранение ошибок: {#bug-fixes-19} - -- Исправлена ошибка при работе с ZooKeeper, которая могла сделать невозможным восстановление сеанса и состояний таблиц только для чтения перед перезапуском сервера. -- Исправлена ошибка при работе с ZooKeeper, которая могла привести к тому, что старые узлы не удалялись, если сеанс прерывался. -- Исправлена ошибка в системе `quantileTDigest` функции для Аргументов с плавающей точкой (эта ошибка была введена в версии 1.1.54388) ([Михаил Сурин](https://github.com/ClickHouse/ClickHouse/pull/2553)). -- Исправлена ошибка в индексе для таблиц MergeTree, если столбец первичного ключа находится внутри функции преобразования типов между знаковыми и беззнаковыми целыми числами одинакового размера ([\#2603](https://github.com/ClickHouse/ClickHouse/pull/2603)). -- Исправлена обработка выхода онлайн / оффлайн если `macros` используются, но их нет в файле конфигурации ([\#2570](https://github.com/ClickHouse/ClickHouse/pull/2570)). -- Исправлено переключение на базу данных по умолчанию при повторном подключении клиента ([\#2583](https://github.com/ClickHouse/ClickHouse/pull/2583)). -- Исправлена ошибка, возникшая при появлении `use_index_for_in_with_subqueries` настройка была отключена. - -#### Исправление безопасности: {#security-fix-1} - -- Отправка файлов больше не возможна при подключении к MySQL (`LOAD DATA LOCAL INFILE`). - -### ClickHouse релиз 1.1.54388, 2018-06-28 {#clickhouse-release-1-1-54388-2018-06-28} - -#### Новые средства: {#new-features-12} - -- Поддержка для the `ALTER TABLE t DELETE WHERE` запрос для реплицированных таблиц. Добавил тот `system.mutations` таблица для отслеживания хода выполнения запросов этого типа. -- Поддержка для the `ALTER TABLE t [REPLACE|ATTACH] PARTITION` запрос для таблиц \* MergeTree. -- Поддержка для the `TRUNCATE TABLE` запрос ([Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2260)) -- Несколько новый `SYSTEM` запросы к реплицируемым таблицам (`RESTART REPLICAS`, `SYNC REPLICA`, `[STOP|START] [MERGES|FETCHES|SENDS REPLICATED|REPLICATION QUEUES]`). -- Добавлена возможность записи в таблицу с помощью движка MySQL и соответствующей табличной функции ([Санди-ли](https://github.com/ClickHouse/ClickHouse/pull/2294)). -- Добавил тот `url()` функция таблицы и `URL` настольный двигатель ([Александр Сапин](https://github.com/ClickHouse/ClickHouse/pull/2501)). -- Добавил тот `windowFunnel` статистическая функция ([Санди-ли](https://github.com/ClickHouse/ClickHouse/pull/2352)). -- Новый `startsWith` и `endsWith` функции для строк ([Вадим Плахтинский](https://github.com/ClickHouse/ClickHouse/pull/2429)). -- То `numbers()` функция таблицы теперь позволяет указать смещение ([Зимний Чжан](https://github.com/ClickHouse/ClickHouse/pull/2535)). -- Пароль к нему `clickhouse-client` может быть введен в интерактивном режиме. -- Теперь журналы сервера можно отправлять в системный журнал ([Александр Крашенинников](https://github.com/ClickHouse/ClickHouse/pull/2459)). -- Поддержка входа в словари с общим источником библиотеки ([Александр Сапин](https://github.com/ClickHouse/ClickHouse/pull/2472)). -- Поддержка пользовательских разделителей CSV ([Иван Жуков](https://github.com/ClickHouse/ClickHouse/pull/2263)) -- Добавил тот `date_time_input_format` установка. Если вы переключите этот параметр на `'best_effort'`, Значения DateTime будут считываться в широком диапазоне форматов. -- Добавил тот `clickhouse-obfuscator` утилита для запутывания данных. Пример использования: публикация данных, используемых в тестах производительности. - -#### Экспериментальная возможность: {#experimental-features-2} - -- Добавлена возможность расчета `and` аргументы только там, где они нужны ([Анастасия Царькова](https://github.com/ClickHouse/ClickHouse/pull/2272)) -- JIT компиляция в машинный код теперь доступна для некоторых выражений ([Плес](https://github.com/ClickHouse/ClickHouse/pull/2277)). - -#### Устранение ошибок: {#bug-fixes-20} - -- Дубликаты больше не появляются для запроса с `DISTINCT` и `ORDER BY`. -- Запросы с помощью `ARRAY JOIN` и `arrayFilter` больше не возвращайте неверный результат. -- Исправлена ошибка при чтении столбца массива из вложенной структуры ([\#2066](https://github.com/ClickHouse/ClickHouse/issues/2066)). -- Исправлена ошибка при анализе запросов с предложением HAVING, например `HAVING tuple IN (...)`. -- Исправлена ошибка при анализе запросов с рекурсивными псевдонимами. -- Исправлена ошибка при чтении из ReplacingMergeTree с условием в PREWHERE, которое фильтрует все строки ([\#2525](https://github.com/ClickHouse/ClickHouse/issues/2525)). -- Настройки профиля пользователя не применялись при использовании сеансов в интерфейсе HTTP. -- Исправлено применение настроек из параметров командной строки в clickhouse-local. -- Клиентская библиотека ZooKeeper теперь использует тайм-аут сеанса, полученный от сервера. -- Исправлена ошибка в клиентской библиотеке ZooKeeper, когда клиент ждал ответа сервера дольше, чем тайм-аут. -- Исправлена обрезка деталей для запросов с условиями по ключевым столбцам разделов ([\#2342](https://github.com/ClickHouse/ClickHouse/issues/2342)). -- Слияния теперь возможны после `CLEAR COLUMN IN PARTITION` ([\#2315](https://github.com/ClickHouse/ClickHouse/issues/2315)). -- Исправлено отображение типов в функции таблицы ODBC ([Санди-ли](https://github.com/ClickHouse/ClickHouse/pull/2268)). -- Сравнение типов было исправлено для `DateTime` с часовым поясом и без него ([Александр Бочаров](https://github.com/ClickHouse/ClickHouse/pull/2400)). -- Исправлен синтаксический разбор и форматирование текста `CAST` оператор. -- Исправлена вставка в материализованный вид для механизма распределенных таблиц ([Babacar Diassé](https://github.com/ClickHouse/ClickHouse/pull/2411)). -- Исправлено состояние гонки при записи данных из `Kafka` двигатель к материализованным представлениям ([Янкуань Лю](https://github.com/ClickHouse/ClickHouse/pull/2448)). -- Исправлена ошибка SSRF в функции таблицы remote (). -- Исправлено поведение выхода из системы `clickhouse-client` в многострочном режиме ([\#2510](https://github.com/ClickHouse/ClickHouse/issues/2510)). - -#### Улучшения: {#improvements-11} - -- Фоновые задачи в реплицированных таблицах теперь выполняются в пуле потоков, а не в отдельных потоках ([Сильвиу Развивается](https://github.com/ClickHouse/ClickHouse/pull/1722)). -- Улучшена производительность сжатия LZ4. -- Более быстрый анализ запросов с большим количеством соединений и подзапросов. -- Кэш DNS теперь обновляется автоматически, когда возникает слишком много сетевых ошибок. -- Вставка таблицы больше не происходит, если вставка в один из материализованных видов невозможна из-за слишком большого количества деталей. -- Исправлено несоответствие в счетчиках событий `Query`, `SelectQuery`, и `InsertQuery`. -- Такие выражения, как `tuple IN (SELECT tuple)` разрешены, если типы кортежей совпадают. -- Сервер с реплицированными таблицами может запуститься, даже если вы еще не настроили ZooKeeper. -- При расчете количества доступных ядер ЦП теперь учитываются ограничения на контрольные группы ([Атри Шарма](https://github.com/ClickHouse/ClickHouse/pull/2325)). -- Добавлено меню для конфигурации каталогов в файл systemd конфиг ([Михаил Ширяев](https://github.com/ClickHouse/ClickHouse/pull/2421)). - -#### Изменения в сборке: {#build-changes-4} - -- Компилятор gcc8 можно использовать для сборки. -- Добавлена возможность построения llvm из подмодуля. -- Версия библиотеки librdkafka была обновлена с v0.11.4. -- Добавлена возможность использования системной библиотеки libcpuid. Версия библиотеки была обновлена до версии 0.4.0. -- Исправлена сборка с использованием библиотеки vectorclass ([Babacar Diassé](https://github.com/ClickHouse/ClickHouse/pull/2274)). -- Cmake теперь генерирует файлы для ninja по умолчанию (например, при использовании `-G Ninja`). -- Добавлена возможность использовать библиотеку libtinfo вместо libtermcap ([Георгий Кондратьев](https://github.com/ClickHouse/ClickHouse/pull/2519)). -- Исправлен конфликт заголовочных файлов в Fedora Rawhide ([\#2520](https://github.com/ClickHouse/ClickHouse/issues/2520)). - -#### Назад несовместимые изменения: {#backward-incompatible-changes-7} - -- Удален побег в `Vertical` и `Pretty*` форматы и удалил `VerticalRaw` формат. -- Если серверы с версией 1.1.54388 (или более поздней) и серверы с более старой версией используются одновременно в распределенном запросе, то запрос имеет следующее значение: `cast(x, 'Type')` выражение лица без лица `AS` ключевое слово и не имеет этого слова `cast` в верхнем регистре исключение будет выдано с сообщением типа `Not found column cast(0, 'UInt8') in block`. Решение: обновите сервер на всем кластере. - -### ClickHouse релиз 1.1.54385, 2018-06-01 {#clickhouse-release-1-1-54385-2018-06-01} - -#### Устранение ошибок: {#bug-fixes-21} - -- Исправлена ошибка,которая в некоторых случаях приводила к блокировке операций ZooKeeper. - -### ClickHouse релиз 1.1.54383, 2018-05-22 {#clickhouse-release-1-1-54383-2018-05-22} - -#### Устранение ошибок: {#bug-fixes-22} - -- Исправлено замедление очереди репликации, если таблица содержит много реплик. - -### ClickHouse релиз 1.1.54381, 2018-05-14 {#clickhouse-release-1-1-54381-2018-05-14} - -#### Устранение ошибок: {#bug-fixes-23} - -- Исправлена утечка узлов в ZooKeeper, когда ClickHouse теряет соединение с сервером ZooKeeper. - -### ClickHouse релиз 1.1.54380, 2018-04-21 {#clickhouse-release-1-1-54380-2018-04-21} - -#### Новые средства: {#new-features-13} - -- Добавлена функция таблицы `file(path, format, structure)`. Пример чтения байтов из `/dev/urandom`: ``` ln -s /dev/urandom /var/lib/clickhouse/user_files/random``clickhouse-client -q "SELECT * FROM file('random', 'RowBinary', 'd UInt8') LIMIT 10" ```. - -#### Улучшения: {#improvements-12} - -- Вложенные запросы могут быть обернуты в `()` скобки для повышения удобочитаемости запросов. Например: `(SELECT 1) UNION ALL (SELECT 1)`. -- Простой `SELECT` запросы от компании `system.processes` таблица не входит в состав `max_concurrent_queries` предел. - -#### Устранение ошибок: {#bug-fixes-24} - -- Исправлено некорректное поведение устройства `IN` оператор при выборе из `MATERIALIZED VIEW`. -- Исправлена некорректная фильтрация по индексу раздела в выражениях типа `partition_key_column IN (...)`. -- Исправлена невозможность выполнения `OPTIMIZE` запрос на реплику без лидера, если `REANAME` было исполнено на столе. -- Исправлена ошибка авторизации при выполнении `OPTIMIZE` или `ALTER` запросы к реплике, не являющейся лидером. -- Исправлено зависание `KILL QUERY`. -- Исправлена ошибка в клиентской библиотеке ZooKeeper, которая приводила к потере часов, замораживанию распределенной очереди DDL и замедлению работы очереди репликации, если она была непустой. `chroot` префикс используется в конфигурации ZooKeeper. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-8} - -- Удалена поддержка таких выражений как `(a, b) IN (SELECT (a, b))` (вы можете использовать эквивалентное выражение `(a, b) IN (SELECT a, b)`). В предыдущих выпусках эти выражения приводили к неопределенным `WHERE` фильтрация или вызванные ошибки. - -### ClickHouse релиз 1.1.54378, 2018-04-16 {#clickhouse-release-1-1-54378-2018-04-16} - -#### Новые средства: {#new-features-14} - -- Уровень ведения журнала можно изменить без перезагрузки сервера. -- Добавил тот `SHOW CREATE DATABASE` запрос. -- То `query_id` может быть передан в `clickhouse-client` (локтевой зал). -- Новая настройка: `max_network_bandwidth_for_all_users`. -- Добавлена поддержка для `ALTER TABLE ... PARTITION ...` для `MATERIALIZED VIEW`. -- Добавлена информация о размере частей данных в несжатом виде в системной таблице. -- Поддержка межсерверного шифрования распределенных таблиц (`1` в конфигурации реплики in ``). -- Конфигурация уровня таблицы для `ReplicatedMergeTree` семья для того, чтобы свести к минимуму объем данных, хранящихся в Zookeeper: : `use_minimalistic_checksums_in_zookeeper = 1` -- Конфигурация системы `clickhouse-client` срочный. По умолчанию имена серверов теперь выводятся в приглашение. Отображаемое имя сервера может быть изменено. Он также отправлен в США. `X-ClickHouse-Display-Name` Заголовок HTTP (Кирилл Шваков). -- Несколько разделенных запятыми `topics` может быть указан для `Kafka` двигатель (Тобиас Адамсон) -- Когда запрос остановлен `KILL QUERY` или `replace_running_query`, клиент получает `Query was canceled` исключение вместо неполного результата. - -#### Улучшения: {#improvements-13} - -- `ALTER TABLE ... DROP/DETACH PARTITION` запросы выполняются в передней части очереди репликации. -- `SELECT ... FINAL` и `OPTIMIZE ... FINAL` может использоваться даже в том случае, если таблица содержит одну часть данных. -- A `query_log` таблица воссоздается на лету, если она была удалена вручную (Кирилл Шваков). -- То `lengthUTF8` функция работает быстрее (zhang2014). -- Улучшенная производительность синхронных вставок в `Distributed` таблицы (`insert_distributed_sync = 1`) при наличии очень большого количества осколков. -- Сервер принимает следующее: `send_timeout` и `receive_timeout` настройки от клиента и применяет их при подключении к клиенту (они применяются в обратном порядке: сокет сервера `send_timeout` устанавливается в положение `receive_timeout` ценность, полученная от клиента, и наоборот). -- Более надежное аварийное восстановление для асинхронной вставки в систему `Distributed` таблицы. -- Возвращаемый тип объекта `countEqual` функция изменяется от `UInt32` к `UInt64` (谢磊). - -#### Устранение ошибок: {#bug-fixes-25} - -- Исправлена ошибка с помощью `IN` когда левая сторона выражения является `Nullable`. -- Правильные результаты теперь возвращаются при использовании кортежей с `IN` когда некоторые компоненты кортежа находятся в индексе таблицы. -- То `max_execution_time` limit теперь корректно работает с распределенными запросами. -- Исправлены ошибки при вычислении размера составных столбцов в системе `system.columns` стол. -- Исправлена ошибка при создании временной таблицы `CREATE TEMPORARY TABLE IF NOT EXISTS.` -- Исправлены ошибки в работе `StorageKafka` (\#\#2075) -- Исправлены сбои сервера из-за недопустимых аргументов некоторых агрегатных функций. -- Исправлена ошибка, которая помешала `DETACH DATABASE` запрос от остановки фоновых задач для `ReplicatedMergeTree` таблицы. -- `Too many parts` состояние с меньшей вероятностью произойдет при вставке в агрегированные материализованные представления (\#\#2084). -- Исправлена рекурсивная обработка подстановок в конфигурации, если за подстановкой должна следовать другая подстановка на том же уровне. -- Исправлен синтаксис в файле метаданных при создании `VIEW` это использует запрос с `UNION ALL`. -- `SummingMergeTree` теперь корректно работает суммирование вложенных структур данных с помощью составного ключа. -- Исправлена возможность возникновения расового состояния при выборе лидера для участия в гонке. `ReplicatedMergeTree` таблицы. - -#### Изменения в сборке: {#build-changes-5} - -- Сборка поддерживает `ninja` вместо `make` и использует `ninja` по умолчанию для построения релизов. -- Переименованные пакеты: `clickhouse-server-base` в `clickhouse-common-static`; `clickhouse-server-common` в `clickhouse-server`; `clickhouse-common-dbg` в `clickhouse-common-static-dbg`. Для установки используйте `clickhouse-server clickhouse-client`. Пакеты со старыми именами по-прежнему будут загружаться в репозитории для обеспечения обратной совместимости. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-9} - -- Удалена специальная интерпретация выражения IN, если массив указан с левой стороны. Ранее выражение `arr IN (set)` было истолковано как «at least one `arr` element belongs to the `set`». Чтобы получить такое же поведение в новой версии, напишите `arrayExists(x -> x IN (set), arr)`. -- Отключено неправильное использование опции сокета `SO_REUSEPORT`, который был неправильно включен по умолчанию в библиотеке Poco. Обратите внимание, что в Linux больше нет никаких причин одновременно указывать адреса `::` и `0.0.0.0` for listen – use just `::`, что позволяет прослушивать соединение как по IPv4, так и по IPv6 (с настройками конфигурации ядра по умолчанию). Вы также можете вернуться к поведению из предыдущих версий, указав `1` в конфигурации. - -### ClickHouse релиз 1.1.54370, 2018-03-16 {#clickhouse-release-1-1-54370-2018-03-16} - -#### Новые средства: {#new-features-15} - -- Добавил тот `system.macros` таблица и автоматическое обновление макросов при изменении конфигурационного файла. -- Добавил тот `SYSTEM RELOAD CONFIG` запрос. -- Добавил тот `maxIntersections(left_col, right_col)` агрегатная функция, возвращающая максимальное количество одновременно пересекающихся интервалов `[left; right]`. То `maxIntersectionsPosition(left, right)` функция возвращает начало строки «maximum» интервал. ([Майкл Фурмур](https://github.com/ClickHouse/ClickHouse/pull/2012)). - -#### Улучшения: {#improvements-14} - -- При вставке данных в `Replicated` таблица, меньше запросов делается к `ZooKeeper` (и большинство ошибок на уровне пользователя исчезли с экрана. `ZooKeeper` бревно). -- Добавлена возможность создавать псевдонимы для наборов данных. Пример: `WITH (1, 2, 3) AS set SELECT number IN set FROM system.numbers LIMIT 10`. - -#### Устранение ошибок: {#bug-fixes-26} - -- Исправлена ошибка `Illegal PREWHERE` ошибка при чтении из таблиц слияния для `Distributed`таблицы. -- Добавлены исправления, позволяющие запускать clickhouse-сервер в контейнерах Docker только для IPv4. -- Исправлено состояние гонки при считывании из системы `system.parts_columns tables.` -- Удалена двойная буферизация во время синхронной вставки в a `Distributed` таблица, которая могла бы вызвать тайм-аут соединения. -- Исправлена ошибка, приводившая к чрезмерно долгому ожиданию недоступной реплики перед началом работы. `SELECT` запрос. -- Исправлены неверные даты в программе `system.parts` стол. -- Исправлена ошибка, из-за которой невозможно было вставить данные в `Replicated` таблица если `chroot` был непустым в конфигурации системы. `ZooKeeper` скопление. -- Исправлен алгоритм вертикального слияния для пустого объекта `ORDER BY` стол. -- Восстановлена возможность использования словарей в запросах к удаленным таблицам, даже если эти словари отсутствуют на сервере-запросчике. Эта функциональность была потеряна в выпуске 1.1.54362. -- Восстановлено поведение для таких запросов, как `SELECT * FROM remote('server2', default.table) WHERE col IN (SELECT col2 FROM default.table)` когда правая сторона `IN` следует использовать пульт дистанционного управления `default.table` а не какой-нибудь местный. Это поведение было нарушено в версии 1.1.54358. -- Удалено постороннее протоколирование уровня ошибок `Not found column ... in block`. - -### Clickhouse Релиз 1.1.54362, 2018-03-11 {#clickhouse-release-1-1-54362-2018-03-11} - -#### Новые средства: {#new-features-16} - -- Агрегация без `GROUP BY` для пустого набора (например, `SELECT count(*) FROM table WHERE 0`) теперь возвращает результат с одной строкой с нулевыми значениями для агрегатных функций, в соответствии со стандартом SQL. Чтобы восстановить старое поведение (вернуть пустой результат), установите `empty_result_for_aggregation_by_empty_set` до 1. -- Добавлено преобразование типов для `UNION ALL`. Здесь разрешены разные псевдонимы `SELECT` должности в `UNION ALL`, в соответствии со стандартом SQL. -- Произвольные выражения поддерживаются в `LIMIT BY` статьи. Ранее можно было использовать только столбцы, полученные в результате `SELECT`. -- Индекс из `MergeTree` таблицы используются, когда `IN` применяется к кортежу выражений из столбцов первичного ключа. Пример: `WHERE (UserID, EventDate) IN ((123, '2000-01-01'), ...)` (Анастасия Царькова). -- Добавил тот `clickhouse-copier` инструмент для копирования между кластерами и пересчета данных (бета-версия). -- Добавлены последовательные функции хэширования: `yandexConsistentHash`, `jumpConsistentHash`, `sumburConsistentHash`. Они могут быть использованы в качестве ключа сегментирования для уменьшения объема сетевого трафика во время последующих повторных сегментирования. -- Добавленные функции: `arrayAny`, `arrayAll`, `hasAny`, `hasAll`, `arrayIntersect`, `arrayResize`. -- Добавил тот `arrayCumSum` функция (Хави Сантана). -- Добавил тот `parseDateTimeBestEffort`, `parseDateTimeBestEffortOrZero`, и `parseDateTimeBestEffortOrNull` функции для чтения DateTime из строки, содержащей текст в широком спектре возможных форматов. -- Данные могут быть частично перезагружены из внешних словарей во время обновления (загружаются только те записи, в которых значение указанного поля больше, чем в предыдущей загрузке) (Арсен Акопян). -- Добавил тот `cluster` табличная функция. Пример: `cluster(cluster_name, db, table)`. То `remote` табличная функция может принять имя кластера в качестве первого аргумента, если оно указано в качестве идентификатора. -- То `remote` и `cluster` функции таблицы можно использовать в `INSERT` запросы. -- Добавил тот `create_table_query` и `engine_full` виртуальные столбцы для `system.tables`стол. То `metadata_modification_time` колонка виртуальная. -- Добавил тот `data_path` и `metadata_path` колонны до `system.tables`и`system.databases` таблицы, а также добавил `path` колонка к столу `system.parts` и `system.parts_columns` таблицы. -- Добавлена дополнительная информация о слияниях в системе `system.part_log` стол. -- Для этого можно использовать произвольный ключ секционирования. `system.query_log` стол (Кирилл Шваков). -- То `SHOW TABLES` запрос теперь также показывает временные таблицы. Добавлены временные таблицы и `is_temporary` столбец `system.tables` (zhang2014). -- Добавлен `DROP TEMPORARY TABLE` и `EXISTS TEMPORARY TABLE` запросы (zhang2014). -- Поддержка `SHOW CREATE TABLE` для временных таблиц (zhang2014). -- Добавил тот `system_profile` параметр конфигурации для параметров, используемых внутренними процессами. -- Поддержка для загрузки `object_id` в качестве атрибута `MongoDB` словари (Павел Литвиненко). -- Чтение `null` в качестве значения по умолчанию при загрузке данных для внешнего словаря с помощью `MongoDB` источник (Павел Литвиненко). -- Чтение `DateTime` значения в системе `Values` форматирование из временной метки Unix без одинарных кавычек. -- Отказоустойчивость поддерживается в `remote` табличные функции для случаев, когда некоторые реплики отсутствуют в запрашиваемой таблице. -- Параметры конфигурации могут быть переопределены в командной строке при запуске `clickhouse-server`. Пример: `clickhouse-server -- --logger.level=information`. -- Реализовано следующее `empty` функция от `FixedString` аргумент: функция возвращает 1, если строка полностью состоит из нулевых байтов (zhang2014). -- Добавил тот `listen_try`параметр конфигурации для прослушивания хотя бы одного из прослушиваемых адресов без выхода из системы, если некоторые адреса не могут быть прослушаны (полезно для систем с отключенной поддержкой IPv4 или IPv6). -- Добавил тот `VersionedCollapsingMergeTree` настольный двигатель. -- Поддержка строк и произвольных числовых типов для `library` источник словаря. -- `MergeTree` таблицы можно использовать и без первичного ключа (необходимо указать `ORDER BY tuple()`). -- A `Nullable` тип может быть `CAST` не-`Nullable` введите если аргумент не является таковым `NULL`. -- `RENAME TABLE` может быть выполнена для `VIEW`. -- Добавил тот `throwIf` функция. -- Добавил тот `odbc_default_field_size` опция, которая позволяет расширить максимальный размер значения, загруженного из источника ODBC (по умолчанию это 1024). -- То `system.processes` стол и `SHOW PROCESSLIST` теперь у вас есть `is_cancelled` и `peak_memory_usage` столбцы. - -#### Улучшения: {#improvements-15} - -- Ограничения и квоты на результат больше не применяются к промежуточным данным для `INSERT SELECT` запросы или для `SELECT` подзапросы. -- Меньше ложных срабатываний `force_restore_data` при проверке состояния `Replicated` таблицы при запуске сервера. -- Добавил тот `allow_distributed_ddl` вариант. -- Недетерминированные функции не допускаются в выражениях для `MergeTree` ключи от стола. -- Файлы с заменами из `config.d` каталоги загружаются в алфавитном порядке. -- Улучшенная производительность системы `arrayElement` функция в случае постоянного многомерного массива с пустым массивом в качестве одного из элементов. Пример: `[[1], []][x]`. -- Теперь сервер запускается быстрее при использовании конфигурационных файлов с очень большими заменами (например, очень большими списками IP-сетей). -- При выполнении запроса функции с табличным значением выполняются один раз. Ранее, `remote` и `mysql` функции с табличным значением дважды выполняли один и тот же запрос для получения структуры таблицы с удаленного сервера. -- То `MkDocs` используется генератор документации. -- При попытке удалить столбец таблицы, который `DEFAULT`/`MATERIALIZED` выражения других столбцов зависят от того, возникает ли исключение (zhang2014). -- Добавлена возможность разбирать пустую строку в текстовых форматах как число 0 для `Float` тип данных. Эта функция была ранее доступна, но была потеряна в выпуске 1.1.54342. -- `Enum` значения могут быть использованы в `min`, `max`, `sum` и некоторые другие функции. В этих случаях он использует соответствующие числовые значения. Эта функция была ранее доступна, но была потеряна в выпуске 1.1.54337. -- Добавлен `max_expanded_ast_elements` чтобы ограничить размер AST после рекурсивного расширения псевдонимов. - -#### Устранение ошибок: {#bug-fixes-27} - -- Исправлены случаи, когда ненужные столбцы были удалены из подзапросов по ошибке или не были удалены из подзапросов, содержащих `UNION ALL`. -- Исправлена ошибка в слияниях для `ReplacingMergeTree` таблицы. -- Исправлены синхронные вставки в `Distributed` таблицы (`insert_distributed_sync = 1`). -- Исправлена обработка выхода онлайн / оффлайн для определенного использования `FULL` и `RIGHT JOIN` с повторяющимися столбцами в подзапросах. -- Исправлена ошибка segfault для некоторых видов использования `replace_running_query` и `KILL QUERY`. -- Исправлен порядок следования `source` и `last_exception` колонны в центре города `system.dictionaries` стол. -- Исправлена ошибка, когда `DROP DATABASE` запрос не удалил файл с метаданными. -- Исправлена ошибка `DROP DATABASE` запрос для `Dictionary` база данных. -- Исправлена низкая точность `uniqHLL12` и `uniqCombined` функции для кардинальностей, превышающих 100 миллионов единиц (Алексей Бочаров). -- Исправлено вычисление неявных значений по умолчанию при необходимости одновременного вычисления явных выражений по умолчанию в `INSERT` запросы (zhang2014). -- Исправлен редкий случай, когда запрос к a `MergeTree` стол не смог закончить (chenxing-xc). -- Исправлена ошибка, возникшая при запуске программы `CHECK` запрос для `Distributed` таблицы, если все осколки являются локальными (chenxing.xc). -- Исправлена небольшая регрессия производительности с функциями, использующими регулярные выражения. -- Исправлена регрессия производительности при создании многомерных массивов из сложных выражений. -- Исправлена ошибка, которая могла привести к дополнительному `FORMAT` раздел, который будет отображаться в `.sql` файл с метаданными. -- Исправлена ошибка, которая вызвала `max_table_size_to_drop` ограничение для применения при попытке удалить a `MATERIALIZED VIEW` глядя на явно заданную таблицу. -- Исправлена несовместимость со старыми клиентами (старые клиенты иногда отправляли данные вместе со старыми клиентами). `DateTime('timezone')` типа, которого они не понимают). -- Исправлена ошибка при чтении `Nested` элементы столбцов структур, которые были добавлены с помощью `ALTER` но это пусто для старых разделов, когда условия для этих столбцов переместились в `PREWHERE`. -- Исправлена ошибка при фильтрации таблиц по виртуальным `_table` столбцы в запросах к `Merge` таблицы. -- Исправлена ошибка при использовании `ALIAS` колонны внутри `Distributed` таблицы. -- Исправлена ошибка, которая делала невозможной динамическую компиляцию запросов с агрегатными функциями из `quantile` семья. -- Исправлено условие гонки в конвейере выполнения запросов, которое возникало в очень редких случаях при использовании `Merge` таблицы с большим количеством таблиц, а при использовании `GLOBAL` подзапросы. -- Исправлена ошибка при передаче массивов разных размеров в `arrayReduce` функция при использовании агрегатных функций из нескольких аргументов. -- Запрещено использование запросов с помощью `UNION ALL` в `MATERIALIZED VIEW`. -- Исправлена ошибка при инициализации программы. `part_log` системная таблица при запуске сервера (по умолчанию, `part_log` отключен). - -#### Назад несовместимые изменения: {#backward-incompatible-changes-10} - -- Удалил то `distributed_ddl_allow_replicated_alter` вариант. Это поведение включено по умолчанию. -- Удалил то `strict_insert_defaults` установка. Если вы использовали эту функцию, напишите нам `clickhouse-feedback@yandex-team.com`. -- Удалил то `UnsortedMergeTree` двигатель. - -### Clickhouse Релиз 1.1.54343, 2018-02-05 {#clickhouse-release-1-1-54343-2018-02-05} - -- Добавлена поддержка макросов для определения имен кластеров в распределенных DDL запросах и конструкторах распределенных таблиц: `CREATE TABLE distr ON CLUSTER '{cluster}' (...) ENGINE = Distributed('{cluster}', 'db', 'table')`. -- Теперь такие запросы, как `SELECT ... FROM table WHERE expr IN (subquery)` обрабатываются с помощью `table` индекс. -- Улучшена обработка дубликатов при вставке в реплицируемые таблицы, поэтому они больше не замедляют выполнение очереди репликации. - -### Clickhouse Релиз 1.1.54342, 2018-01-22 {#clickhouse-release-1-1-54342-2018-01-22} - -Этот выпуск содержит исправления ошибок для предыдущей версии 1.1.54337: - -- Исправлена регрессия в 1.1.54337: если пользователь по умолчанию имеет доступ только для чтения, то сервер отказывается запускаться с сообщением `Cannot create database in readonly mode`. -- Исправлена регрессия в 1.1.54337: в системах с systemd журналы всегда записываются в syslog независимо от конфигурации; сценарий watchdog все еще использует init.д. -- Исправлена регрессия в 1.1.54337: неправильная конфигурация по умолчанию в образе Docker. -- Исправлено недетерминированное поведение GraphiteMergeTree (вы можете увидеть его в сообщениях журнала `Data after merge is not byte-identical to the data on another replicas`). -- Исправлена ошибка, которая могла привести к несогласованным слияниям после оптимизации запроса к Реплицируемым таблицам (вы можете увидеть это в сообщениях журнала `Part ... intersects the previous part`). -- Буферные таблицы теперь работают правильно, когда материализованные столбцы присутствуют в целевой таблице (по zhang2014). -- Исправлена ошибка в реализации NULL. - -### Clickhouse Релиз 1.1.54337, 2018-01-18 {#clickhouse-release-1-1-54337-2018-01-18} - -#### Новые средства: {#new-features-17} - -- Добавлена поддержка хранения многомерных массивов и кортежей (`Tuple` тип данных) в таблицах. -- Поддержка функций таблицы для `DESCRIBE` и `INSERT` запросы. Добавлена поддержка вложенных запросов в `DESCRIBE`. Примеры: `DESC TABLE remote('host', default.hits)`; `DESC TABLE (SELECT 1)`; `INSERT INTO TABLE FUNCTION remote('host', default.hits)`. Поддержка `INSERT INTO TABLE` в дополнение к `INSERT INTO`. -- Улучшена поддержка часовых поясов. То `DateTime` тип данных может быть аннотирован с помощью часового пояса, который используется для синтаксического анализа и форматирования в текстовых форматах. Пример: `DateTime('Europe/Moscow')`. Когда часовые пояса указаны в функциях для `DateTime` аргументы, возвращаемый тип будет отслеживать часовой пояс, и значение будет отображаться, как и ожидалось. -- Добавлены функции `toTimeZone`, `timeDiff`, `toQuarter`, `toRelativeQuarterNum`. То `toRelativeHour`/`Minute`/`Second` функции могут принимать значение типа `Date` в качестве аргумента. То `now` имя функции чувствительно к регистру. -- Добавил тот `toStartOfFifteenMinutes` функция (Кирилл Шваков). -- Добавил тот `clickhouse format` инструмент для форматирования запросов. -- Добавил тот `format_schema_path` configuration parameter (Marek Vavruşa). It is used for specifying a schema in `Cap'n Proto` формат. Файлы схемы могут быть расположены только в указанном каталоге. -- Добавлена поддержка подстановок конфигураций (`incl` и `conf.d`) для настройки внешних словарей и моделей (Павел Якунин). -- Добавлена колонка с документацией для `system.settings` стол (Кирилл Шваков). -- Добавил тот `system.parts_columns` таблица с информацией о размерах столбцов в каждой части данных `MergeTree` таблицы. -- Добавил тот `system.models` таблица с информацией о загруженных данных `CatBoost` модели машинного обучения. -- Добавил тот `mysql` и `odbc` таблица функций и соответствующих `MySQL` и `ODBC` табличные движки для доступа к удаленным базам данных. Эта функциональность находится в стадии бета-тестирования. -- Добавлена возможность передачи аргумента типа `AggregateFunction` для `groupArray` агрегатная функция (таким образом, вы можете создать массив состояний некоторой агрегатной функции). -- Сняты ограничения на различные комбинации комбинаторов агрегатных функций. Например, вы можете использовать `avgForEachIf` так же как `avgIfForEach` агрегатные функции, которые имеют различное поведение. -- То `-ForEach` комбинатор агрегатных функций расширен для случая агрегатных функций с несколькими аргументами. -- Добавлена поддержка агрегатных функций `Nullable` аргументы даже в тех случаях, когда функция возвращает не --`Nullable` результат (добавлено с вкладом Сильвиу Карагеа). Пример: `groupArray`, `groupUniqArray`, `topK`. -- Добавил тот `max_client_network_bandwidth` для `clickhouse-client` (Кирилл Шваков). -- Пользователи с помощью `readonly = 2` setting are allowed to work with TEMPORARY tables (CREATE, DROP, INSERT…) (Kirill Shvakov). -- Добавлена поддержка использования нескольких потребителей с помощью `Kafka` двигатель. Расширенные параметры конфигурации для `Kafka` (Marek Vavruša). -- Добавил тот `intExp3` и `intExp4` функции. -- Добавил тот `sumKahan` статистическая функция. -- Добавлены функции to \* Number\* OrNull, где \* Number\* - это числовой тип. -- Добавлена поддержка для `WITH` положения для `INSERT SELECT` запрос (автор: zhang2014). -- Добавлены настройки: `http_connection_timeout`, `http_send_timeout`, `http_receive_timeout`. В частности, эти параметры используются для загрузки частей данных для репликации. Изменение этих параметров позволяет ускорить отработку отказа при перегрузке сети. -- Добавлена поддержка для `ALTER` для таблиц типа `Null` (Анастасия Царькова). -- То `reinterpretAsString` функция расширена для всех типов данных, которые хранятся последовательно в памяти. -- Добавил тот `--silent` вариант для самого `clickhouse-local` инструмент. Он подавляет печать информации о выполнении запроса в stderr. -- Добавлена поддержка считывания значений типа `Date` из текста в формате, где месяц и / или день месяца указывается с использованием одной цифры вместо двух цифр (Amos Bird). - -#### Оптимизация производительности: {#performance-optimizations} - -- Улучшена производительность агрегатных функций `min`, `max`, `any`, `anyLast`, `anyHeavy`, `argMin`, `argMax` из строковых аргументов. -- Улучшенная производительность функций `isInfinite`, `isFinite`, `isNaN`, `roundToExp2`. -- Улучшена производительность синтаксического анализа и форматирования `Date` и `DateTime` введите значения в текстовом формате. -- Улучшена производительность и точность синтаксического анализа чисел с плавающей запятой. -- Пониженное использование памяти для `JOIN` в том случае, когда левая и правая части имеют столбцы с одинаковыми именами, которые не содержатся в `USING` . -- Улучшена производительность агрегатных функций `varSamp`, `varPop`, `stddevSamp`, `stddevPop`, `covarSamp`, `covarPop`, `corr` за счет снижения вычислительной стабильности. Старые функции доступны под названиями `varSampStable`, `varPopStable`, `stddevSampStable`, `stddevPopStable`, `covarSampStable`, `covarPopStable`, `corrStable`. - -#### Устранение ошибок: {#bug-fixes-28} - -- Исправлена дедупликация данных после запуска a `DROP` или `DETACH PARTITION` запрос. В предыдущей версии удаление раздела и вставка тех же данных снова не работали, потому что вставленные блоки считались дубликатами. -- Исправлена ошибка, которая могла привести к неправильной интерпретации текста. `WHERE` пунктом `CREATE MATERIALIZED VIEW` запросы с помощью `POPULATE` . -- Исправлена ошибка в использовании `root_path` параметр в поле `zookeeper_servers` конфигурация. -- Исправлены непредвиденные результаты прохождения теста `Date` аргумент в пользу `toStartOfDay` . -- Исправлена ошибка `addMonths` и `subtractMonths` функции и арифметика для `INTERVAL n MONTH` в тех случаях, когда результат имеет предыдущий год. -- Добавлена отсутствующая поддержка для `UUID` тип данных для `DISTINCT` , `JOIN` , и `uniq` агрегатные функции и внешние словари (Евгений Иванов). Поддержка `UUID` он все еще не завершен. -- Исправлено `SummingMergeTree` поведение в тех случаях, когда строки суммируются до нуля. -- Различные исправления для `Kafka` engine (Marek Vavruša). -- Исправлено некорректное поведение устройства `Join` настольный движок (птица Амос). -- Исправлено некорректное поведение распределителя под FreeBSD и OS X. -- То `extractAll` функция теперь поддерживает пустые матчи. -- Исправлена ошибка, которая блокировала использование `libressl` вместо `openssl` . -- Исправлена ошибка `CREATE TABLE AS SELECT` запрос из временных таблиц. -- Исправлена неатомность обновления очереди репликации. Это может привести к тому, что реплики будут несинхронизированы до тех пор, пока сервер не перезагрузится. -- Исправлено возможное переполнение внутри `gcd` , `lcm` и `modulo` (`%` оператор) (Макс Скороход). -- `-preprocessed` файлы теперь создаются после изменения `umask` (`umask` можно изменить в конфигурации). -- Исправлена ошибка в фоновой проверке деталей (`MergeTreePartChecker` ) при использовании пользовательского ключа раздела. -- Исправлен разбор кортежей (значения `Tuple` тип данных) в текстовых форматах. -- Улучшены сообщения об ошибках о несовместимых типах, передаваемых в `multiIf` , `array` и некоторые другие функции. -- Переработанная поддержка для `Nullable` типы. Исправлены ошибки, которые могут привести к сбою сервера. Исправлены почти все другие ошибки, связанные с `NULL` поддержка: некорректное преобразование типов в вставьте выберите, недостаточная поддержка значения NULL в наличии и PREWHERE, `join_use_nulls` режим, типы, допускающие значения NULL в качестве аргументов `OR` оператор и т. д. -- Исправлены различные ошибки, связанные с внутренней семантикой типов данных. Примеры: ненужное суммирование `Enum` поля, тип в `SummingMergeTree` ; выравнивание `Enum` напечатать `Pretty` форматы и т. д. -- Более строгие проверки допустимых комбинаций составных столбцов. -- Исправлено переполнение при указании очень большого параметра для `FixedString` тип данных. -- Исправлена ошибка в системе `topK` агрегатная функция в общем случае. -- Добавлена недостающая проверка на равенство размеров массива в аргументах n-арных вариантов агрегатных функций с АНА - `-Array` комбинатор. -- Исправлена ошибка в работе `--pager` для `clickhouse-client` (автор: кс1322). -- Исправлена точность установки `exp10` функция. -- Исправлено поведение объекта `visitParamExtract` функция для лучшего соответствия документации. -- Исправлена ошибка при указании неверных типов данных. -- Исправлено поведение `DISTINCT` в том случае, когда все столбцы являются константами. -- Исправлено форматирование запроса в случае использования `tupleElement` функция со сложным постоянным выражением в качестве индекса элемента кортежа. -- Исправлена ошибка в работе `Dictionary` таблицы для `range_hashed` словари. -- Исправлена ошибка, приводившая к избыточным строкам в результате `FULL` и `RIGHT JOIN` (Эймос Берд). -- Исправлен сбой сервера при создании и удалении временных файлов в системе `config.d` каталоги во время перезагрузки конфигурации. -- Исправлена ошибка `SYSTEM DROP DNS CACHE` запрос: Кэш был очищен, но адреса узлов кластера не были обновлены. -- Исправлено поведение `MATERIALIZED VIEW` после выполнения `DETACH TABLE` for the table under the view (Marek Vavruša). - -#### Улучшения сборки: {#build-improvements-4} - -- То `pbuilder` инструмент используется для сборки. Процесс сборки практически полностью независим от среды узла сборки. -- Одна сборка используется для разных версий ОС. Пакеты и двоичные файлы были сделаны совместимыми с широким спектром систем Linux. -- Добавил тот `clickhouse-test` пакет. Он может быть использован для выполнения функциональных тестов. -- Исходный тарбол теперь можно опубликовать в репозитории. Он может быть использован для воспроизведения сборки без использования GitHub. -- Добавлена ограниченная интеграция с Travis CI. Из-за ограничений на время сборки в Travis тестируется только отладочная сборка и выполняется ограниченное подмножество тестов. -- Добавлена поддержка для `Cap'n'Proto` в сборке по умолчанию. -- Изменен формат источников документации с `Restricted Text` к `Markdown`. -- Добавлена поддержка для `systemd` (Владимир Смирнов). Он отключен по умолчанию из-за несовместимости с некоторыми образами ОС и может быть включен вручную. -- Для динамической генерации кода, `clang` и `lld` они встроены в систему `clickhouse` двоичный. Они также могут быть вызваны как `clickhouse clang` и `clickhouse lld` . -- Удалено использование расширений GNU из кода. Включил эту функцию `-Wextra` вариант. При строительстве с помощью `clang` значение по умолчанию равно `libc++` вместо `libstdc++`. -- Извлеченный `clickhouse_parsers` и `clickhouse_common_io` библиотеки для ускорения сборки различных инструментов. - -#### Назад несовместимые изменения: {#backward-incompatible-changes-11} - -- Формат для отметок в `Log` введите таблицы, которые содержат `Nullable` колонны были изменены обратно несовместимым образом. Если у вас есть эти таблицы, вы должны преобразовать их в следующие: `TinyLog` введите текст перед запуском новой версии сервера. Чтобы сделать это, замените `ENGINE = Log` с `ENGINE = TinyLog` в соответствующем разделе `.sql` файл в папке `metadata` каталог. Если ваш стол не имеет `Nullable` столбцы или если тип вашей таблицы не указан `Log`- тогда вам ничего не нужно делать. -- Удалил то `experimental_allow_extended_storage_definition_syntax` установка. Теперь эта функция включена по умолчанию. -- То `runningIncome` функция была переименована в `runningDifferenceStartingWithFirstvalue` избежать недоразумений. -- Удалил то `FROM ARRAY JOIN arr` синтаксис, когда соединение массива задается непосредственно после FROM без таблицы (Amos Bird). -- Удалил то `BlockTabSeparated` формат, который использовался исключительно в демонстрационных целях. -- Изменен формат состояния для агрегатных функций `varSamp`, `varPop`, `stddevSamp`, `stddevPop`, `covarSamp`, `covarPop`, `corr`. Если вы сохранили состояния этих агрегатных функций в таблицах (с помощью `AggregateFunction` тип данных или материализованные представления с соответствующими состояниями), пожалуйста, напишите нам clickhouse-feedback@yandex-team.com-да. -- В предыдущих версиях сервера существовала недокументированная функция: если агрегатная функция зависит от параметров, то вы все равно можете указать ее без параметров в типе данных AggregateFunction. Пример: `AggregateFunction(quantiles, UInt64)` вместо `AggregateFunction(quantiles(0.5, 0.9), UInt64)`. Эта особенность была утеряна. Хотя он был недокументирован, мы планируем снова поддержать его в будущих выпусках. -- Типы данных Enum не могут использоваться в агрегатных функциях min/max. Эта способность будет возвращена в следующем выпуске. - -#### Пожалуйста, обратите внимание при обновлении: {#please-note-when-upgrading} - -- При выполнении скользящего обновления в кластере в тот момент, когда некоторые реплики работают под управлением старой версии ClickHouse, а некоторые-под управлением новой версии, репликация временно прекращается и появляется сообщение `unknown parameter 'shard'` появляется в журнале регистрации. Репликация будет продолжена после обновления всех реплик кластера. -- Если на серверах кластера запущены разные версии ClickHouse, то вполне возможно, что распределенные запросы, использующие следующие функции, будут иметь неверные результаты: `varSamp`, `varPop`, `stddevSamp`, `stddevPop`, `covarSamp`, `covarPop`, `corr`. Вы должны обновить все узлы кластера. - -## [Список изменений на 2017 год](https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/changelog/2017.md) {#changelog-for-2017} diff --git a/docs/ru/whats_new/changelog/2018.md b/docs/ru/whats_new/changelog/2018.md new file mode 120000 index 0000000000..675c07e8bb --- /dev/null +++ b/docs/ru/whats_new/changelog/2018.md @@ -0,0 +1 @@ +en/whats_new/changelog/2018.md \ No newline at end of file diff --git a/docs/ru/whats_new/changelog/2019.md b/docs/ru/whats_new/changelog/2019.md deleted file mode 100644 index ea5bffd74c..0000000000 --- a/docs/ru/whats_new/changelog/2019.md +++ /dev/null @@ -1,2072 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -## Релиз ClickHouse в19.17 {#clickhouse-release-v19-17} - -### Релиз ClickHouse в19.17.6.36, 2019-12-27 {#clickhouse-release-v19-17-6-36-2019-12-27} - -#### Исправление ошибок {#bug-fix} - -- Исправлено потенциальное переполнение буфера при распаковке. Злонамеренный пользователь может передавать сфабрикованные сжатые данные,которые могут вызвать чтение после буфера. Эту проблему обнаружил Эльдар Зайтов из команды информационной безопасности Яндекса. [\#8404](https://github.com/ClickHouse/ClickHouse/pull/8404) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена возможная ошибка сервера (`std::terminate`) когда сервер не может отправлять или записывать данные в формате JSON или XML со значениями строкового типа данных (которые требуют проверки UTF-8) или при сжатии результирующих данных с помощью алгоритма Brotli или в некоторых других редких случаях. [\#8384](https://github.com/ClickHouse/ClickHouse/pull/8384) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлены словари с исходным кодом из clickhouse `VIEW`, теперь чтение таких словарей не вызывает ошибки `There is no query`. [\#8351](https://github.com/ClickHouse/ClickHouse/pull/8351) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена проверка, разрешен ли клиентский хост с помощью host\_regexp, указанного в users.XML. [\#8241](https://github.com/ClickHouse/ClickHouse/pull/8241), [\#8342](https://github.com/ClickHouse/ClickHouse/pull/8342) ([Виталий Баранов](https://github.com/vitlibar)) -- `RENAME TABLE` для распределенной таблицы теперь переименовывается папка, содержащая вставленные данные перед отправкой в сегменты. Это исправляет проблему с последовательными переименованиями `tableA->tableB`, `tableC->tableA`. [\#8306](https://github.com/ClickHouse/ClickHouse/pull/8306) ([тавплубикс](https://github.com/tavplubix)) -- `range_hashed` внешние словари, созданные запросами DDL, теперь допускают диапазоны произвольных числовых типов. [\#8275](https://github.com/ClickHouse/ClickHouse/pull/8275) ([алесапин](https://github.com/alesapin)) -- Исправлено `INSERT INTO table SELECT ... FROM mysql(...)` табличная функция. [\#8234](https://github.com/ClickHouse/ClickHouse/pull/8234) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена обработка выхода онлайн / оффлайн в `INSERT INTO TABLE FUNCTION file()` при вставке в файл, который не существует. Теперь в этом случае файл будет создан, а затем вставка будет обработана. [\#8177](https://github.com/ClickHouse/ClickHouse/pull/8177) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправлена ошибка bitmapAnd при пересечении агрегированного растрового изображения и скалярного растрового изображения. [\#8082](https://github.com/ClickHouse/ClickHouse/pull/8082) ([Юе Хуанг](https://github.com/moon03432)) -- Исправлена обработка выхода онлайн / оффлайн, когда `EXISTS` запрос был использован без `TABLE` или `DICTIONARY` квалификатор, совсем как `EXISTS t`. [\#8213](https://github.com/ClickHouse/ClickHouse/pull/8213) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированный тип возврата для функций `rand` и `randConstant` в случае ничтожного аргумента. Теперь функции всегда возвращаются `UInt32` и никогда `Nullable(UInt32)`. [\#8204](https://github.com/ClickHouse/ClickHouse/pull/8204) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлено `DROP DICTIONARY IF EXISTS db.dict`, теперь он не бросает исключение, если `db` его просто не существует. [\#8185](https://github.com/ClickHouse/ClickHouse/pull/8185) ([Виталий Баранов](https://github.com/vitlibar)) -- Если таблица не была полностью удалена из-за сбоя сервера, сервер попытается восстановить и загрузить ее [\#8176](https://github.com/ClickHouse/ClickHouse/pull/8176) ([тавплубикс](https://github.com/tavplubix)) -- Исправлен тривиальный запрос count для распределенной таблицы, если существует более двух локальных таблиц shard. [\#8164](https://github.com/ClickHouse/ClickHouse/pull/8164) ([小路](https://github.com/nicelulu)) -- Исправлена ошибка, приводившая к гонке данных в DB:: BlockStreamProfileInfo:: calculateRowsBeforeLimit() [\#8143](https://github.com/ClickHouse/ClickHouse/pull/8143) ([Александр казаков](https://github.com/Akazz)) -- Исправлено `ALTER table MOVE part` выполняется сразу же после слияния указанной детали, что может привести к перемещению детали, в которую данная деталь была объединена. Теперь он правильно перемещает указанную деталь. [\#8104](https://github.com/ClickHouse/ClickHouse/pull/8104) ([Владимир Чеботарев](https://github.com/excitoon)) -- Теперь выражения для словарей можно задавать в виде строк. Это полезно для вычисления атрибутов при извлечении данных из источников, отличных от ClickHouse, поскольку позволяет использовать синтаксис, отличающийся от ClickHouse, для этих выражений. [\#8098](https://github.com/ClickHouse/ClickHouse/pull/8098) ([алесапин](https://github.com/alesapin)) -- Исправлена очень редкая гонка в `clickhouse-copier` из-за переполнения в ZXid. [\#8088](https://github.com/ClickHouse/ClickHouse/pull/8088) ([Дин Сян Фэй](https://github.com/dingxiangfei2009)) -- Исправлена ошибка, когда после неудачного запроса (из-за «Too many simultaneous queries» например) он не будет читать информацию о внешних таблицах, а также - следующий запрос будет интерпретировать эту информацию как начало следующего запроса, вызывающего ошибку типа `Unknown packet from client`. [\#8084](https://github.com/ClickHouse/ClickHouse/pull/8084) ([Азат Хужин](https://github.com/azat)) -- Избежать разыменования null после «Unknown packet X from server» [\#8071](https://github.com/ClickHouse/ClickHouse/pull/8071) ([Азат Хужин](https://github.com/azat)) -- Восстановите поддержку всех локалей ICU, добавьте возможность применять параметры сортировки для постоянных выражений и добавьте имя языка в систему.таблица сортировки. [\#8051](https://github.com/ClickHouse/ClickHouse/pull/8051) ([алесапин](https://github.com/alesapin)) -- Количество потоков для чтения из `StorageFile` и `StorageHDFS` теперь он ограничен, чтобы не превысить лимит памяти. [\#7981](https://github.com/ClickHouse/ClickHouse/pull/7981) ([алесапин](https://github.com/alesapin)) -- Исправлено `CHECK TABLE` запрос для `*MergeTree` таблицы без ключа. [\#7979](https://github.com/ClickHouse/ClickHouse/pull/7979) ([алесапин](https://github.com/alesapin)) -- Удалил номер мутации из имени детали на тот случай, если мутаций не было. Это удаление улучшило совместимость с более старыми версиями. [\#8250](https://github.com/ClickHouse/ClickHouse/pull/8250) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка, что мутации пропускаются для некоторых присоединенных частей из-за их data\_version больше, чем версия мутации таблицы. [\#7812](https://github.com/ClickHouse/ClickHouse/pull/7812) ([Zhichang Ю](https://github.com/yuzhichang)) -- Разрешить запуск сервера с избыточными копиями деталей после их перемещения на другое устройство. [\#7810](https://github.com/ClickHouse/ClickHouse/pull/7810) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена ошибка «Sizes of columns doesn’t match» это может появиться при использовании столбцов агрегатной функции. [\#7790](https://github.com/ClickHouse/ClickHouse/pull/7790) ([Борис Гранво](https://github.com/bgranvea)) -- Теперь исключение будет сделано в случае использования с привязками рядом с LIMIT BY. И теперь его можно использовать сверху предел. [\#7637](https://github.com/ClickHouse/ClickHouse/pull/7637) ([Никита Михайлов](https://github.com/nikitamikhaylov)) -- Исправьте перезагрузку словаря, если она есть `invalidate_query`, который остановил обновления и некоторые исключения при предыдущих попытках обновления. [\#8029](https://github.com/ClickHouse/ClickHouse/pull/8029) ([алесапин](https://github.com/alesapin)) - -### Релиз ClickHouse в19.17.4.11, 2019-11-22 {#clickhouse-release-v19-17-4-11-2019-11-22} - -#### Назад Несовместимые Изменения {#backward-incompatible-change} - -- Использование столбца вместо AST для хранения скалярных результатов подзапросов для повышения производительности. Установка `enable_scalar_subquery_optimization` был добавлен в 19.17, и он был включен по умолчанию. Это приводит к таким ошибкам, как [этот](https://github.com/ClickHouse/ClickHouse/issues/7851) во время обновления до 19.17.2 или 19.17.3 с предыдущих версий. Этот параметр был отключен по умолчанию в 19.17.4, чтобы сделать возможным обновление с 19.16 и более старых версий без ошибок. [\#7392](https://github.com/ClickHouse/ClickHouse/pull/7392) ([Амос Птица](https://github.com/amosbird)) - -#### Новая функция {#new-feature} - -- Добавьте возможность создавать словари с запросами DDL. [\#7360](https://github.com/ClickHouse/ClickHouse/pull/7360) ([алесапин](https://github.com/alesapin)) -- Сделай `bloom_filter` тип поддержки индекса `LowCardinality` и `Nullable` [\#7363](https://github.com/ClickHouse/ClickHouse/issues/7363) [\#7561](https://github.com/ClickHouse/ClickHouse/pull/7561) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Функция add `isValidJSON` чтобы проверить, что переданная строка является допустимым json. [\#5910](https://github.com/ClickHouse/ClickHouse/issues/5910) [\#7293](https://github.com/ClickHouse/ClickHouse/pull/7293) ([Вдимир](https://github.com/Vdimir)) -- Осуществлять `arrayCompact` функция [\#7328](https://github.com/ClickHouse/ClickHouse/pull/7328) ([Меморандум](https://github.com/Joeywzr)) -- Созданная функция `hex` для десятичных чисел. Это работает так `hex(reinterpretAsString())`, но не удаляет последние нулевые байты. [\#7355](https://github.com/ClickHouse/ClickHouse/pull/7355) ([Михаил Коротов](https://github.com/millb)) -- Добавь `arrayFill` и `arrayReverseFill` функции, которые заменяют элементы другими элементами спереди/сзади от них в массиве. [\#7380](https://github.com/ClickHouse/ClickHouse/pull/7380) ([hcz](https://github.com/hczhcz)) -- Добавь `CRC32IEEE()`/`CRC64()` поддержка [\#7480](https://github.com/ClickHouse/ClickHouse/pull/7480) ([Азат Хужин](https://github.com/azat)) -- Осуществлять `char` функция, аналогичная одной в [в MySQL](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_char) [\#7486](https://github.com/ClickHouse/ClickHouse/pull/7486) ([сундили](https://github.com/sundy-li)) -- Добавь `bitmapTransform` функция. Он преобразует массив значений в растровом изображении в другой массив значений, в результате чего получается новое растровое изображение [\#7598](https://github.com/ClickHouse/ClickHouse/pull/7598) ([Zhichang Ю](https://github.com/yuzhichang)) -- Реализованный `javaHashUTF16LE()` функция [\#7651](https://github.com/ClickHouse/ClickHouse/pull/7651) ([ачимбаб](https://github.com/achimbab)) -- Добавь `_shard_num` виртуальный столбец для распределенного движка [\#7624](https://github.com/ClickHouse/ClickHouse/pull/7624) ([Азат Хужин](https://github.com/azat)) - -#### Экспериментальная возможность {#experimental-feature} - -- Поддержка процессоров (новый конвейер выполнения запросов) в `MergeTree`. [\#7181](https://github.com/ClickHouse/ClickHouse/pull/7181) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -#### Исправление ошибок {#bug-fix-1} - -- Исправить неправильный парсинг float в `Values` [\#7817](https://github.com/ClickHouse/ClickHouse/issues/7817) [\#7870](https://github.com/ClickHouse/ClickHouse/pull/7870) ([тавплубикс](https://github.com/tavplubix)) -- Исправьте редкий тупик, который может произойти, когда trace\_log включен. [\#7838](https://github.com/ClickHouse/ClickHouse/pull/7838) ([Филимонов](https://github.com/filimonov)) -- Предотвратите дублирование сообщений при создании таблицы Кафки, в которой есть любой MVs, выбирающий из нее [\#7265](https://github.com/ClickHouse/ClickHouse/pull/7265) ([Иван](https://github.com/abyss7)) -- Поддержка `Array(LowCardinality(Nullable(String)))` в `IN`. Разрешает [\#7364](https://github.com/ClickHouse/ClickHouse/issues/7364) [\#7366](https://github.com/ClickHouse/ClickHouse/pull/7366) ([ачимбаб](https://github.com/achimbab)) -- Добавить обработку данных `SQL_TINYINT` и `SQL_BIGINT`, и исправьте обработку `SQL_FLOAT` типы источников данных в ODBC мост. [\#7491](https://github.com/ClickHouse/ClickHouse/pull/7491) ([Денис Глазачев](https://github.com/traceon)) -- Исправить агрегации (`avg` и квантили) над пустыми десятичными столбцами [\#7431](https://github.com/ClickHouse/ClickHouse/pull/7431) ([Андрей Коняев](https://github.com/akonyaev90)) -- Чинить `INSERT` в распределенный с `MATERIALIZED` столбцы [\#7377](https://github.com/ClickHouse/ClickHouse/pull/7377) ([Азат Хужин](https://github.com/azat)) -- Сделай `MOVE PARTITION` работайте, если некоторые части раздела уже находятся на целевом диске или томе [\#7434](https://github.com/ClickHouse/ClickHouse/pull/7434) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена ошибка, из-за которой жесткие ссылки не создавались во время мутаций в `ReplicatedMergeTree` в конфигурациях с несколькими дисками. [\#7558](https://github.com/ClickHouse/ClickHouse/pull/7558) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена ошибка с мутацией на MergeTree, когда вся часть остается неизменной, а лучшее место находится на другом диске [\#7602](https://github.com/ClickHouse/ClickHouse/pull/7602) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена ошибка с `keep_free_space_ratio` не считывается с конфигурации дисков [\#7645](https://github.com/ClickHouse/ClickHouse/pull/7645) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена ошибка с таблицей содержит только `Tuple` столбцы или столбцы со сложными путями. Исправления [7541](https://github.com/ClickHouse/ClickHouse/issues/7541). [\#7545](https://github.com/ClickHouse/ClickHouse/pull/7545) ([алесапин](https://github.com/alesapin)) -- Не учитывайте память для буферного движка в ограничении max\_memory\_usage [\#7552](https://github.com/ClickHouse/ClickHouse/pull/7552) ([Азат Хужин](https://github.com/azat)) -- Исправлена окончательная отметка использования в `MergeTree` таблицы, заказанные по `tuple()`. В редких случаях это может привести к тому, что `Can't adjust last granule` ошибка при выборе. [\#7639](https://github.com/ClickHouse/ClickHouse/pull/7639) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена ошибка в мутациях, которые имеют предикат с действиями, требующими контекста (например, функции для json), что может привести к сбоям или странным исключениям. [\#7664](https://github.com/ClickHouse/ClickHouse/pull/7664) ([алесапин](https://github.com/alesapin)) -- Исправлено несоответствие экранирования имен баз данных и таблиц `data/` и `shadow/` справочники [\#7575](https://github.com/ClickHouse/ClickHouse/pull/7575) ([Александр Бурмак](https://github.com/Alex-Burmak)) -- Support duplicated keys in RIGHT\|FULL JOINs, e.g. `ON t.x = u.x AND t.x = u.y`. Исправьте сбой в этом случае. [\#7586](https://github.com/ClickHouse/ClickHouse/pull/7586) ([Артем Зуйков](https://github.com/4ertus2)) -- Чинить `Not found column in block` при соединении по выражению с правым или полным соединением. [\#7641](https://github.com/ClickHouse/ClickHouse/pull/7641) ([Артем Зуйков](https://github.com/4ertus2)) -- Еще одна попытка исправить бесконечный цикл в `PrettySpace` формат [\#7591](https://github.com/ClickHouse/ClickHouse/pull/7591) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправлена ошибка в работе `concat` функция, когда все аргументы были `FixedString` такого же размера. [\#7635](https://github.com/ClickHouse/ClickHouse/pull/7635) ([алесапин](https://github.com/alesapin)) -- Исправлено исключение в случае использования 1 аргумента при определении хранилищ S3, URL и HDFS. [\#7618](https://github.com/ClickHouse/ClickHouse/pull/7618) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправлена область действия InterpreterSelectQuery для представлений с запросом [\#7601](https://github.com/ClickHouse/ClickHouse/pull/7601) ([Азат Хужин](https://github.com/azat)) - -#### Улучшение {#improvement} - -- `Nullable` столбцы признал и NULL-значения будут корректно обработаны в ODBC-мост [\#7402](https://github.com/ClickHouse/ClickHouse/pull/7402) ([Василий Немков](https://github.com/Enmk)) -- Напишите текущий пакет для распределенной отправки атомарно [\#7600](https://github.com/ClickHouse/ClickHouse/pull/7600) ([Азат Хужин](https://github.com/azat)) -- Вызовите исключение, если мы не можем обнаружить таблицу для имени столбца в запросе. [\#7358](https://github.com/ClickHouse/ClickHouse/pull/7358) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавь `merge_max_block_size` установка `MergeTreeSettings` [\#7412](https://github.com/ClickHouse/ClickHouse/pull/7412) ([Артем Зуйков](https://github.com/4ertus2)) -- Запросы с помощью `HAVING` и без него `GROUP BY` предположим, что группа по константе. Так, `SELECT 1 HAVING 1` теперь возвращает результат. [\#7496](https://github.com/ClickHouse/ClickHouse/pull/7496) ([Амос Птица](https://github.com/amosbird)) -- Поддержка синтаксического анализа `(X,)` как Кортеж похож на python. [\#7501](https://github.com/ClickHouse/ClickHouse/pull/7501), [\#7562](https://github.com/ClickHouse/ClickHouse/pull/7562) ([Амос Птица](https://github.com/amosbird)) -- Сделай `range` функциональное поведение почти как у питона. [\#7518](https://github.com/ClickHouse/ClickHouse/pull/7518) ([сундили](https://github.com/sundy-li)) -- Добавь `constraints` столбцы в таблицу `system.settings` [\#7553](https://github.com/ClickHouse/ClickHouse/pull/7553) ([Виталий Баранов](https://github.com/vitlibar)) -- Лучший нулевой формат для обработчика tcp, так что его можно использовать `select ignore() from table format Null` для измерения производительности через clickhouse-клиент [\#7606](https://github.com/ClickHouse/ClickHouse/pull/7606) ([Амос Птица](https://github.com/amosbird)) -- Такие запросы, как `CREATE TABLE ... AS (SELECT (1, 2))` разбираются правильно [\#7542](https://github.com/ClickHouse/ClickHouse/pull/7542) ([hcz](https://github.com/hczhcz)) - -#### Улучшение производительности {#performance-improvement} - -- Улучшена производительность агрегирования по коротким строковым ключам. [\#6243](https://github.com/ClickHouse/ClickHouse/pull/6243) ([Александр Кузьменков](https://github.com/akuzm), [Амос Птица](https://github.com/amosbird)) -- Выполните еще один проход синтаксического анализа / анализа выражений, чтобы получить потенциальную оптимизацию после того, как постоянные предикаты будут свернуты. [\#7497](https://github.com/ClickHouse/ClickHouse/pull/7497) ([Амос Птица](https://github.com/amosbird)) -- Использовать для хранения мета-информации, чтобы оценить тривиально `SELECT count() FROM table;` [\#7510](https://github.com/ClickHouse/ClickHouse/pull/7510) ([Амос Птица](https://github.com/amosbird), [Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Векторизация обработки `arrayReduce` аналогично агрегатору `addBatch`. [\#7608](https://github.com/ClickHouse/ClickHouse/pull/7608) ([Амос Птица](https://github.com/amosbird)) -- Незначительные улучшения в производительности `Kafka` потребление [\#7475](https://github.com/ClickHouse/ClickHouse/pull/7475) ([Иван](https://github.com/abyss7)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement} - -- Добавьте поддержку кросс-компиляции в архитектуру процессора AARCH64. Сценарий рефакторинга упаковщика. [\#7370](https://github.com/ClickHouse/ClickHouse/pull/7370) [\#7539](https://github.com/ClickHouse/ClickHouse/pull/7539) ([Иван](https://github.com/abyss7)) -- Распакуйте цепочки инструментов darwin-x86\_64 и linux-aarch64 в смонтированный том Docker при сборке пакетов [\#7534](https://github.com/ClickHouse/ClickHouse/pull/7534) ([Иван](https://github.com/abyss7)) -- Обновление образа Docker для двоичного упаковщика [\#7474](https://github.com/ClickHouse/ClickHouse/pull/7474) ([Иван](https://github.com/abyss7)) -- Исправлены ошибки компиляции на MacOS Catalina [\#7585](https://github.com/ClickHouse/ClickHouse/pull/7585) ([Эрнест Полетаев](https://github.com/ernestp)) -- Некоторые рефакторинги в логике анализа запросов: разделение сложного класса на несколько простых. [\#7454](https://github.com/ClickHouse/ClickHouse/pull/7454) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена сборка без подмодулей [\#7295](https://github.com/ClickHouse/ClickHouse/pull/7295) ([proller](https://github.com/proller)) -- Лучше `add_globs` в файлах CMake [\#7418](https://github.com/ClickHouse/ClickHouse/pull/7418) ([Амос Птица](https://github.com/amosbird)) -- Удалить жестко закодированные пути в `unwind` цель [\#7460](https://github.com/ClickHouse/ClickHouse/pull/7460) ([Константин Подшумок](https://github.com/podshumok)) -- Разрешить использовать формат mysql без ssl [\#7524](https://github.com/ClickHouse/ClickHouse/pull/7524) ([proller](https://github.com/proller)) - -#### Другой {#other} - -- Добавлена грамматика ANTLR4 для диалекта ClickHouse SQL [\#7595](https://github.com/ClickHouse/ClickHouse/issues/7595) [\#7596](https://github.com/ClickHouse/ClickHouse/pull/7596) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -## Релиз ClickHouse в19.16 {#clickhouse-release-v19-16} - -#### Релиз Clickhouse в19.16.14.65, 2020-03-25 {#clickhouse-release-v19-16-14-65-2020-03-25} - -- Исправлена ошибка в пакетных вычислениях тернарных логических операций по нескольким аргументам (более 10). [\#8718](https://github.com/ClickHouse/ClickHouse/pull/8718) ([Александр казаков](https://github.com/Akazz)) Это исправление было возвращено в версию 19.16 по специальному запросу Altinity. - -#### Релиз Clickhouse в19.16.14.65, 2020-03-05 {#clickhouse-release-v19-16-14-65-2020-03-05} - -- Исправлена несовместимость распределенных подзапросов с более старыми версиями CH. Исправления [\#7851](https://github.com/ClickHouse/ClickHouse/issues/7851) - [(tabplubix)](https://github.com/tavplubix) -- При выполнении `CREATE` запрос, сложите постоянные выражения в аргументах механизма хранения. Замените пустое имя базы данных текущей базой данных. Исправления [\#6508](https://github.com/ClickHouse/ClickHouse/issues/6508), [\#3492](https://github.com/ClickHouse/ClickHouse/issues/3492). Также исправлена проверка наличия локального адреса в системе `ClickHouseDictionarySource`. - [\#9262](https://github.com/ClickHouse/ClickHouse/pull/9262) [(tabplubix)](https://github.com/tavplubix) -- Теперь фон сливается воедино `*MergeTree` семейство движков таблиц более точно сохраняет порядок объема политики хранения. - [\#8549](https://github.com/ClickHouse/ClickHouse/pull/8549) ([Владимир Чеботарев](https://github.com/excitoon)) -- Предотвращение потери данных в `Kafka` в редких случаях, когда исключение происходит после чтения суффикса, но до фиксации. Исправления [\#9378](https://github.com/ClickHouse/ClickHouse/issues/9378). Связанный: [\#7175](https://github.com/ClickHouse/ClickHouse/issues/7175) - [\#9507](https://github.com/ClickHouse/ClickHouse/pull/9507) [(Филимонов)](https://github.com/filimonov) -- Исправлена ошибка, приводящая к завершению работы сервера при попытке использовать / drop `Kafka` таблица создана с неверными параметрами. Исправления [\#9494](https://github.com/ClickHouse/ClickHouse/issues/9494). Включает [\#9507](https://github.com/ClickHouse/ClickHouse/issues/9507). - [\#9513](https://github.com/ClickHouse/ClickHouse/pull/9513) [(Филимонов)](https://github.com/filimonov) -- Разрешить использование `MaterializedView` с подзапросами выше `Kafka` таблицы. - [\#8197](https://github.com/ClickHouse/ClickHouse/pull/8197) ([Филимонов](https://github.com/filimonov)) - -#### Новая функция {#new-feature-1} - -- Добавь `deduplicate_blocks_in_dependent_materialized_views` возможность управления поведением идемпотентных вставок в таблицы с материализованными представлениями. Эта новая функция была добавлена в релиз исправления ошибок по специальному запросу от Altinity. - [\#9070](https://github.com/ClickHouse/ClickHouse/pull/9070) [(урыхи)](https://github.com/urykhy) - -### Релиз ClickHouse в19.16.2.2, 2019-10-30 {#clickhouse-release-v19-16-2-2-2019-10-30} - -#### Назад Несовместимые Изменения {#backward-incompatible-change-1} - -- Добавьте недостающую проверку arity для count/countif. - [\#7095](https://github.com/ClickHouse/ClickHouse/issues/7095) - [\#7298](https://github.com/ClickHouse/ClickHouse/pull/7298) ([Вдимир](https://github.com/Vdimir)) -- Удаление устаревших `asterisk_left_columns_only` настройка (по умолчанию она была отключена). - [\#7335](https://github.com/ClickHouse/ClickHouse/pull/7335) ([Артем - Зуйков](https://github.com/4ertus2)) -- Строки формата для формата данных шаблона теперь задаются в файлах. - [\#7118](https://github.com/ClickHouse/ClickHouse/pull/7118) - ([тавплубикс](https://github.com/tavplubix)) - -#### Новая функция {#new-feature-2} - -- Введите uniqCombined64 () для вычисления мощности, большей, чем UINT\_MAX. - [\#7213](https://github.com/ClickHouse/ClickHouse/pull/7213), - [\#7222](https://github.com/ClickHouse/ClickHouse/pull/7222) ([Азат - Хужин](https://github.com/azat)) -- Поддержка индексов Bloom filter для столбцов массива. - [\#6984](https://github.com/ClickHouse/ClickHouse/pull/6984) - ([ачимбаб](https://github.com/achimbab)) -- Добавление функции `getMacro(name)` это возвращает строку со значением соответствующего `` - из конфигурации сервера. [\#7240](https://github.com/ClickHouse/ClickHouse/pull/7240) - ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Установите два параметра конфигурации для словаря, основанного на источнике HTTP: `credentials` и - `http-headers`. [\#7092](https://github.com/ClickHouse/ClickHouse/pull/7092) ([Гийом - Тассери](https://github.com/YiuRULE)) -- Добавьте новый ProfileEvent `Merge` это подсчитывает количество запущенных фоновых слияний. - [\#7093](https://github.com/ClickHouse/ClickHouse/pull/7093) ([Михаил - Коротов](https://github.com/millb)) -- Добавьте функцию fullHostName, которая возвращает полное доменное имя. - [\#7263](https://github.com/ClickHouse/ClickHouse/issues/7263) - [\#7291](https://github.com/ClickHouse/ClickHouse/pull/7291) ([сундили](https://github.com/sundy-li)) -- Функция add `arraySplit` и `arrayReverseSplit` которые разделяют массив на «cut off» - условия. Они полезны при обработке временных последовательностей. - [\#7294](https://github.com/ClickHouse/ClickHouse/pull/7294) ([hcz](https://github.com/hczhcz)) -- Добавьте новые функции, возвращающие массив всех сопоставленных индексов в семействе функций multiMatch. - [\#7299](https://github.com/ClickHouse/ClickHouse/pull/7299) ([Данила - Кутенин](https://github.com/danlark1)) -- Добавление нового компонента Database engine `Lazy` то есть оптимизирован для хранения большого количества мелких логов - таблицы. [\#7171](https://github.com/ClickHouse/ClickHouse/pull/7171) ([Никита - Васильев](https://github.com/nikvas0)) -- Добавьте агрегатные функции groupBitmapAnd, - Or, - Xor для растровых столбцов. [\#7109](https://github.com/ClickHouse/ClickHouse/pull/7109) ([Чжичан - Ю](https://github.com/yuzhichang)) -- Добавьте комбинаторы агрегатных функций-OrNull и-OrDefault, которые возвращают значение null - или значения по умолчанию, когда агрегировать нечего. - [\#7331](https://github.com/ClickHouse/ClickHouse/pull/7331) - ([hcz](https://github.com/hczhcz)) -- Представьте пользовательский разделенный формат данных, который поддерживает пользовательское экранирование и - правила разграничения. [\#7118](https://github.com/ClickHouse/ClickHouse/pull/7118) - ([тавплубикс](https://github.com/tavplubix)) -- Поддержка Redis в качестве источника внешнего словаря. [\#4361](https://github.com/ClickHouse/ClickHouse/pull/4361) [\#6962](https://github.com/ClickHouse/ClickHouse/pull/6962) ([comunodi](https://github.com/comunodi), [Антон - Попов](https://github.com/CurtizJ)) - -#### Исправление ошибок {#bug-fix-2} - -- Исправьте неправильный результат запроса, если он есть `WHERE IN (SELECT ...)` раздел и `optimize_read_in_order` является - использованный. [\#7371](https://github.com/ClickHouse/ClickHouse/pull/7371) ([Антон - Попов](https://github.com/CurtizJ)) -- Отключен плагин аутентификации MariaDB, который зависит от файлов вне проекта. - [\#7140](https://github.com/ClickHouse/ClickHouse/pull/7140) ([Юрий Владимирович - Баранов](https://github.com/yurriy)) -- Исправить исключение `Cannot convert column ... because it is constant but values of constants are different in source and result` что редко может произойти, когда функции `now()`, `today()`, - `yesterday()`, `randConstant()` не использовать. - [\#7156](https://github.com/ClickHouse/ClickHouse/pull/7156) ([Николай - Кочетов](https://github.com/KochetovNicolai)) -- Исправлена проблема с использованием HTTP, оставьте в живых тайм-аут вместо TCP оставить в живых тайм-аут. - [\#7351](https://github.com/ClickHouse/ClickHouse/pull/7351) ([Василий - Немков](https://github.com/Enmk)) -- Исправлена ошибка сегментации в groupBitmapOr (проблема [\#7109](https://github.com/ClickHouse/ClickHouse/issues/7109)). - [\#7289](https://github.com/ClickHouse/ClickHouse/pull/7289) ([Чжичан - Ю](https://github.com/yuzhichang)) -- Для материализованных представлений фиксация для Кафки вызывается после того, как все данные были записаны. - [\#7175](https://github.com/ClickHouse/ClickHouse/pull/7175) ([Иван](https://github.com/abyss7)) -- Исправлена ошибка `duration_ms` значение в `system.part_log` стол. Это было в десять раз хуже. - [\#7172](https://github.com/ClickHouse/ClickHouse/pull/7172) ([Владимир - Чеботарев](https://github.com/excitoon)) -- Быстрое исправление для устранения сбоя в таблице LIVE VIEW и повторного включения всех тестов LIVE VIEW. - [\#7201](https://github.com/ClickHouse/ClickHouse/pull/7201) - ([взаказников](https://github.com/vzakaznikov)) -- Правильно сериализовать значение NULL значений в мин/макс показатели MergeTree части. - [\#7234](https://github.com/ClickHouse/ClickHouse/pull/7234) ([Александр - Кузьменков](https://github.com/akuzm)) -- Не ставьте виртуальные столбцы .метаданные sql при создании таблицы в виде `CREATE TABLE AS`. - [\#7183](https://github.com/ClickHouse/ClickHouse/pull/7183) ([Иван](https://github.com/abyss7)) -- Исправлена ошибка сегментации в `ATTACH PART` запрос. - [\#7185](https://github.com/ClickHouse/ClickHouse/pull/7185) - ([алесапин](https://github.com/alesapin)) -- Исправьте неправильный результат для некоторых запросов, задаваемых оптимизацией empty в подзапросах и empty - INNER/RIGHT JOIN. [\#7284](https://github.com/ClickHouse/ClickHouse/pull/7284) ([Николай - Кочетов](https://github.com/KochetovNicolai)) -- Исправление ошибок в системах живой вид getHeader() метод. - [\#7271](https://github.com/ClickHouse/ClickHouse/pull/7271) - ([взаказников](https://github.com/vzakaznikov)) - -#### Улучшение {#improvement-1} - -- Добавьте сообщение в случае ожидания queue\_wait\_max\_ms. - [\#7390](https://github.com/ClickHouse/ClickHouse/pull/7390) ([Азат - Хужин](https://github.com/azat)) -- Выполнена установка `s3_min_upload_part_size` уровень таблицы. - [\#7059](https://github.com/ClickHouse/ClickHouse/pull/7059) ([Владимир - Чеботарев](https://github.com/excitoon)) -- Проверьте TTL в StorageFactory. [\#7304](https://github.com/ClickHouse/ClickHouse/pull/7304) - ([сундили](https://github.com/sundy-li)) -- Сквош левых блоков в частичном объединении слиянием (оптимизация). - [\#7122](https://github.com/ClickHouse/ClickHouse/pull/7122) ([Артем - Зуйков](https://github.com/4ertus2)) -- Не допускайте недетерминированных функций в мутациях реплицируемых движков таблиц, поскольку это - может привести к несогласованности между репликами. - [\#7247](https://github.com/ClickHouse/ClickHouse/pull/7247) ([Александр - Казаков](https://github.com/Akazz)) -- Отключите отслеживание памяти при преобразовании трассировки стека исключений в строку. Это может предотвратить потерю - сообщений об ошибках типа `Memory limit exceeded` на сервере, который вызвал `Attempt to read after eof` исключение для клиента. [\#7264](https://github.com/ClickHouse/ClickHouse/pull/7264) - ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Различные улучшения формата. Разрешает - [\#6033](https://github.com/ClickHouse/ClickHouse/issues/6033), - [\#2633](https://github.com/ClickHouse/ClickHouse/issues/2633), - [\#6611](https://github.com/ClickHouse/ClickHouse/issues/6611), - [\#6742](https://github.com/ClickHouse/ClickHouse/issues/6742) - [\#7215](https://github.com/ClickHouse/ClickHouse/pull/7215) - ([тавплубикс](https://github.com/tavplubix)) -- ClickHouse игнорирует значения в правой части оператора IN, которые не могут быть преобразованы в левую - side type. Make it work properly for compound types – Array and Tuple. - [\#7283](https://github.com/ClickHouse/ClickHouse/pull/7283) ([Александр - Кузьменков](https://github.com/akuzm)) -- Поддержка отсутствует Неравенство для следующих присоединиться. Можно объединить менее-или-равный вариант и строгий - больше и меньше вариантов для столбцов, следующих на синтаксис. - [\#7282](https://github.com/ClickHouse/ClickHouse/pull/7282) ([Артем - Зуйков](https://github.com/4ertus2)) -- Оптимизируйте частичное объединение слиянием. [\#7070](https://github.com/ClickHouse/ClickHouse/pull/7070) - ([Артем Зуйков](https://github.com/4ertus2)) -- Не используйте больше, чем 98К памяти в функции uniqCombined. - [\#7236](https://github.com/ClickHouse/ClickHouse/pull/7236), - [\#7270](https://github.com/ClickHouse/ClickHouse/pull/7270) ([Азат - Хужин](https://github.com/azat)) -- Промыть части правой соединительной таблицы на диске в PartialMergeJoin (если их недостаточно - память). Загружайте данные обратно, когда это необходимо. [\#7186](https://github.com/ClickHouse/ClickHouse/pull/7186) - ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшение производительности {#performance-improvement-1} - -- Ускорьте joinGet с аргументами const, избегая дублирования данных. - [\#7359](https://github.com/ClickHouse/ClickHouse/pull/7359) ([Амос - Птица](https://github.com/amosbird)) -- Возвращайтесь раньше, если подзапрос пуст. - [\#7007](https://github.com/ClickHouse/ClickHouse/pull/7007) ([小路](https://github.com/nicelulu)) -- Оптимизируйте синтаксический анализ SQL-выражения в значениях. - [\#6781](https://github.com/ClickHouse/ClickHouse/pull/6781) - ([тавплубикс](https://github.com/tavplubix)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-1} - -- Отключите некоторые вклады для кросс-компиляции в Mac OS. - [\#7101](https://github.com/ClickHouse/ClickHouse/pull/7101) ([Иван](https://github.com/abyss7)) -- Добавьте недостающую ссылку с PocoXML для clickhouse\_common\_io. - [\#7200](https://github.com/ClickHouse/ClickHouse/pull/7200) ([Азат - Хужин](https://github.com/azat)) -- Примите несколько аргументов тестового фильтра в clickhouse-test. - [\#7226](https://github.com/ClickHouse/ClickHouse/pull/7226) ([Александр - Кузьменков](https://github.com/akuzm)) -- Включите musl и jemalloc для ARM. [\#7300](https://github.com/ClickHouse/ClickHouse/pull/7300) - ([Амос Птица](https://github.com/amosbird)) -- Добавлен `--client-option` параметр to `clickhouse-test` чтобы передать клиенту дополнительные параметры. - [\#7277](https://github.com/ClickHouse/ClickHouse/pull/7277) ([Николай - Кочетов](https://github.com/KochetovNicolai)) -- Сохраните существующие конфигурации при обновлении пакета rpm. - [\#7103](https://github.com/ClickHouse/ClickHouse/pull/7103) - ([Филимонов](https://github.com/filimonov)) -- Исправление ошибок, обнаруженных ПВС. [\#7153](https://github.com/ClickHouse/ClickHouse/pull/7153) ([Артем - Зуйков](https://github.com/4ertus2)) -- Исправьте сборку для Дарвина. [\#7149](https://github.com/ClickHouse/ClickHouse/pull/7149) - ([Иван](https://github.com/abyss7)) -- совместимость с glibc 2.29. [\#7142](https://github.com/ClickHouse/ClickHouse/pull/7142) ([Амос - Птица](https://github.com/amosbird)) -- Убедитесь, что dh\_clean не касается потенциальных исходных файлов. - [\#7205](https://github.com/ClickHouse/ClickHouse/pull/7205) ([Амос - Птица](https://github.com/amosbird)) -- Попытка избежать конфликта при обновлении с altinity rpm - он имеет конфигурационный файл, упакованный отдельно - в clickhouse-server-common. [\#7073](https://github.com/ClickHouse/ClickHouse/pull/7073) - ([Филимонов](https://github.com/filimonov)) -- Оптимизируйте некоторые заголовочные файлы для более быстрого восстановления. - [\#7212](https://github.com/ClickHouse/ClickHouse/pull/7212), - [\#7231](https://github.com/ClickHouse/ClickHouse/pull/7231) ([Александр - Кузьменков](https://github.com/akuzm)) -- Добавьте тесты производительности для Date и DateTime. [\#7332](https://github.com/ClickHouse/ClickHouse/pull/7332) ([Василий - Немков](https://github.com/Enmk)) -- Исправьте некоторые тесты, которые содержали недетерминированные мутации. - [\#7132](https://github.com/ClickHouse/ClickHouse/pull/7132) ([Александр - Казаков](https://github.com/Akazz)) -- Добавьте сборку с MemorySanitizer в CI. [\#7066](https://github.com/ClickHouse/ClickHouse/pull/7066) - ([Александр Кузьменков](https://github.com/akuzm)) -- Избегайте использования неинициализированных значений в MetricsTransmitter. - [\#7158](https://github.com/ClickHouse/ClickHouse/pull/7158) ([Азат - Хужин](https://github.com/azat)) -- Исправьте некоторые проблемы в полях, найденных MemorySanitizer. - [\#7135](https://github.com/ClickHouse/ClickHouse/pull/7135), - [\#7179](https://github.com/ClickHouse/ClickHouse/pull/7179) ([Александр - Кузьменков](https://github.com/akuzm)), [\#7376](https://github.com/ClickHouse/ClickHouse/pull/7376) - ([Амос Птица](https://github.com/amosbird)) -- Исправьте неопределенное поведение в murmurhash32. [\#7388](https://github.com/ClickHouse/ClickHouse/pull/7388) ([Амос - Птица](https://github.com/amosbird)) -- Исправьте неопределенное поведение в StoragesInfoStream. [\#7384](https://github.com/ClickHouse/ClickHouse/pull/7384) - ([тавплубикс](https://github.com/tavplubix)) -- Исправлено сворачивание постоянных выражений для внешних движков баз данных (MySQL, ODBC, JDBC). В предыдущих случаях - версии он не работал для нескольких постоянных выражений и вообще не работал для даты, - Дата-время и UUID. Это исправление [\#7245](https://github.com/ClickHouse/ClickHouse/issues/7245) - [\#7252](https://github.com/ClickHouse/ClickHouse/pull/7252) - ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправление ошибки гонки данных ThreadSanitizer в режиме реального времени при обращении к переменной no\_users\_thread. - [\#7353](https://github.com/ClickHouse/ClickHouse/pull/7353) - ([взаказников](https://github.com/vzakaznikov)) -- Избавьтесь от символов malloc в libcommon - [\#7134](https://github.com/ClickHouse/ClickHouse/pull/7134), - [\#7065](https://github.com/ClickHouse/ClickHouse/pull/7065) ([Амос - Птица](https://github.com/amosbird)) -- Добавьте глобальный флаг ENABLE\_LIBRARIES для отключения всех библиотек. - [\#7063](https://github.com/ClickHouse/ClickHouse/pull/7063) - ([proller](https://github.com/proller)) - -#### Очистка кода {#code-cleanup} - -- Обобщите репозиторий конфигурации для подготовки к DDL для словарей. [\#7155](https://github.com/ClickHouse/ClickHouse/pull/7155) - ([алесапин](https://github.com/alesapin)) -- Парсер для словарей DDL без всякой семантики. - [\#7209](https://github.com/ClickHouse/ClickHouse/pull/7209) - ([алесапин](https://github.com/alesapin)) -- Разделите ParserCreateQuery на различные более мелкие Парсеры. - [\#7253](https://github.com/ClickHouse/ClickHouse/pull/7253) - ([алесапин](https://github.com/alesapin)) -- Небольшой рефакторинг и переименование рядом с внешними словарями. - [\#7111](https://github.com/ClickHouse/ClickHouse/pull/7111) - ([алесапин](https://github.com/alesapin)) -- Рефакторинг некоторого кода для подготовки к управлению доступом на основе ролей. [\#7235](https://github.com/ClickHouse/ClickHouse/pull/7235) ([Виталий - Баранов](https://github.com/vitlibar)) -- Некоторые улучшения в коде DatabaseOrdinary. - [\#7086](https://github.com/ClickHouse/ClickHouse/pull/7086) ([Никита - Васильев](https://github.com/nikvas0)) -- Не используйте итераторы в методах find () и emplace () хэш-таблиц. - [\#7026](https://github.com/ClickHouse/ClickHouse/pull/7026) ([Александр - Кузьменков](https://github.com/akuzm)) -- Исправьте getMultipleValuesFromConfig в случае, если корень параметра не пуст. [\#7374](https://github.com/ClickHouse/ClickHouse/pull/7374) - ([Михаил Коротов](https://github.com/millb)) -- Удалите часть copy-paste (TemporaryFile и TemporaryFileStream) - [\#7166](https://github.com/ClickHouse/ClickHouse/pull/7166) ([Артем - Зуйков](https://github.com/4ertus2)) -- Немного улучшена читаемость кода (`MergeTreeData::getActiveContainingPart`). - [\#7361](https://github.com/ClickHouse/ClickHouse/pull/7361) ([Владимир - Чеботарев](https://github.com/excitoon)) -- Дождитесь всех запланированных заданий, которые используют локальные объекты, если `ThreadPool::schedule(...)` бросает - исключение. Переименовать `ThreadPool::schedule(...)` к `ThreadPool::scheduleOrThrowOnError(...)` и - исправьте комментарии, чтобы сделать очевидным, что он может бросить. - [\#7350](https://github.com/ClickHouse/ClickHouse/pull/7350) - ([тавплубикс](https://github.com/tavplubix)) - -## ClickHouse релиз 19.15 {#clickhouse-release-19-15} - -### ClickHouse релиз 19.15.4.10, 2019-10-31 {#clickhouse-release-19-15-4-10-2019-10-31} - -#### Исправление ошибок {#bug-fix-3} - -- Добавлена обработка SQL\_TINYINT и SQL\_BIGINT, а также исправлена обработка типов источников данных SQL\_FLOAT в Мосте ODBC. - [\#7491](https://github.com/ClickHouse/ClickHouse/pull/7491) ([Денис Глазачев](https://github.com/traceon)) -- Разрешается иметь некоторые части на целевом диске или Томе в разделе перемещения. - [\#7434](https://github.com/ClickHouse/ClickHouse/pull/7434) ([Владимир Чеботарев](https://github.com/excitoon)) -- Фиксированное значение NULL-значений в столбцы, допускающие значения null через ODBC-мост. - [\#7402](https://github.com/ClickHouse/ClickHouse/pull/7402) ([Василий Немков](https://github.com/Enmk)) -- Исправлена вставка в распределенный нелокальный узел с материализованными столбцами. - [\#7377](https://github.com/ClickHouse/ClickHouse/pull/7377) ([Азат Хужин](https://github.com/azat)) -- Исправлена функция getMultipleValuesFromConfig. - [\#7374](https://github.com/ClickHouse/ClickHouse/pull/7374) ([Михаил Коротов](https://github.com/millb)) -- Исправлена проблема с использованием HTTP, оставьте в живых тайм-аут вместо TCP оставить в живых тайм-аут. - [\#7351](https://github.com/ClickHouse/ClickHouse/pull/7351) ([Василий Немков](https://github.com/Enmk)) -- Дождитесь завершения всех заданий по исключению (исправлены редкие сегменты). - [\#7350](https://github.com/ClickHouse/ClickHouse/pull/7350) ([тавплубикс](https://github.com/tavplubix)) -- Не нажимайте на MVs при вставке в таблицу Кафки. - [\#7265](https://github.com/ClickHouse/ClickHouse/pull/7265) ([Иван](https://github.com/abyss7)) -- Отключите отслеживание памяти для стека исключений. - [\#7264](https://github.com/ClickHouse/ClickHouse/pull/7264) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлен неверный код при преобразовании запроса для внешней базы данных. - [\#7252](https://github.com/ClickHouse/ClickHouse/pull/7252) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте использования неинициализированных значений в MetricsTransmitter. - [\#7158](https://github.com/ClickHouse/ClickHouse/pull/7158) ([Азат Хужин](https://github.com/azat)) -- Добавлен пример конфигурации с макросами для тестов ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.15.3.6, 2019-10-09 {#clickhouse-release-19-15-3-6-2019-10-09} - -#### Исправление ошибок {#bug-fix-4} - -- Исправлена ошибка bad\_variant в хэшированном словаре. - ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка с ошибкой сегментации в запросе ATTACH PART. - ([алесапин](https://github.com/alesapin)) -- Расчет фиксированного времени в `MergeTreeData`. - ([Владимир Чеботарев](https://github.com/excitoon)) -- Посвятите себя Кафке явно после того, как написание будет завершено. - [\#7175](https://github.com/ClickHouse/ClickHouse/pull/7175) ([Иван](https://github.com/abyss7)) -- Правильно сериализовать значение NULL значений в мин/макс показатели MergeTree части. - [\#7234](https://github.com/ClickHouse/ClickHouse/pull/7234) ([Александр Кузьменков](https://github.com/akuzm)) - -### ClickHouse релиз 19.15.2.2, 2019-10-01 {#clickhouse-release-19-15-2-2-2019-10-01} - -#### Новая функция {#new-feature-3} - -- Многоуровневое хранение: поддержка использования нескольких томов хранения для таблиц с движком MergeTree. Можно хранить свежие данные на SSD и автоматически перемещать старые данные на жесткий диск. ([пример](https://clickhouse.github.io/clickhouse-presentations/meetup30/new_features/#12)). [\#4918](https://github.com/ClickHouse/ClickHouse/pull/4918) ([Игр](https://github.com/ObjatieGroba)) [\#6489](https://github.com/ClickHouse/ClickHouse/pull/6489) ([алесапин](https://github.com/alesapin)) -- Добавить функцию таблицы `input` для считывания входящих данных в `INSERT SELECT` запрос. [\#5450](https://github.com/ClickHouse/ClickHouse/pull/5450) ([паласоник1](https://github.com/palasonic1)) [\#6832](https://github.com/ClickHouse/ClickHouse/pull/6832) ([Антон Попов](https://github.com/CurtizJ)) -- Добавить а `sparse_hashed` компоновка словаря, которая функционально эквивалентна `hashed` макет, но более эффективен для работы с памятью. Он использует примерно в два раза меньше памяти за счет более медленного извлечения значений. [\#6894](https://github.com/ClickHouse/ClickHouse/pull/6894) ([Азат Хужин](https://github.com/azat)) -- Реализована возможность определения списка пользователей для доступа к словарям. Используется только текущая подключенная база данных. [\#6907](https://github.com/ClickHouse/ClickHouse/pull/6907) ([Гийом Тассери](https://github.com/YiuRULE)) -- Добавь `LIMIT` опцион на `SHOW` запрос. [\#6944](https://github.com/ClickHouse/ClickHouse/pull/6944) ([Филипп Мальковский](https://github.com/malkfilipp)) -- Добавь `bitmapSubsetLimit(bitmap, range_start, limit)` функция, возвращающая подмножество наименьшего числа `limit` значения в наборе, который не меньше, чем `range_start`. [\#6957](https://github.com/ClickHouse/ClickHouse/pull/6957) ([Zhichang Ю](https://github.com/yuzhichang)) -- Добавь `bitmapMin` и `bitmapMax` функции. [\#6970](https://github.com/ClickHouse/ClickHouse/pull/6970) ([Zhichang Ю](https://github.com/yuzhichang)) -- Функция add `repeat` относится к [выпуск-6648](https://github.com/ClickHouse/ClickHouse/issues/6648) [\#6999](https://github.com/ClickHouse/ClickHouse/pull/6999) ([Флинн](https://github.com/ucasFL)) - -#### Экспериментальная возможность {#experimental-feature-1} - -- Реализуйте (в памяти) вариант соединения слиянием, который не изменяет текущий конвейер. Результат частично сортируется по ключу слияния. Набор `partial_merge_join = 1` чтобы использовать эту функцию. Соединение слиянием все еще находится в разработке. [\#6940](https://github.com/ClickHouse/ClickHouse/pull/6940) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавь `S3` функция двигателя и таблицы. Он все еще находится в разработке (пока нет поддержки аутентификации). [\#5596](https://github.com/ClickHouse/ClickHouse/pull/5596) ([Владимир Чеботарев](https://github.com/excitoon)) - -#### Улучшение {#improvement-2} - -- Каждое сообщение, прочитанное от Кафки, вставляется атомарно. Это решает почти все известные проблемы с двигателем Kafka. [\#6950](https://github.com/ClickHouse/ClickHouse/pull/6950) ([Иван](https://github.com/abyss7)) -- Улучшения для отработки отказа распределенных запросов. Сократите время восстановления, также оно теперь конфигурируемо и может быть увидено в `system.clusters`. [\#6399](https://github.com/ClickHouse/ClickHouse/pull/6399) ([Василий Немков](https://github.com/Enmk)) -- Поддержка числовых значений для перечислений непосредственно в `IN` раздел. \#6766 [\#6941](https://github.com/ClickHouse/ClickHouse/pull/6941) ([dimarub2000](https://github.com/dimarub2000)) -- Поддержка (опционально, по умолчанию отключен) перенаправляет на URL хранение. [\#6914](https://github.com/ClickHouse/ClickHouse/pull/6914) ([maqroll](https://github.com/maqroll)) -- Добавьте информационное сообщение, когда клиент с более старой версией подключается к серверу. [\#6893](https://github.com/ClickHouse/ClickHouse/pull/6893) ([Филипп Мальковский](https://github.com/malkfilipp)) -- Удалите максимальное ограничение времени ожидания обратного отсчета для отправки данных в распределенных таблицах [\#6895](https://github.com/ClickHouse/ClickHouse/pull/6895) ([Азат Хужин](https://github.com/azat)) -- Добавьте возможность отправлять графиту события профиля (счетчики) с кумулятивными значениями. Его можно включить в разделе `` в серверах `config.xml`. [\#6969](https://github.com/ClickHouse/ClickHouse/pull/6969) ([Азат Хужин](https://github.com/azat)) -- Добавить автоматическое приведение типа `T` к `LowCardinality(T)` при вставке данных в столбец типа `LowCardinality(T)` в родном формате через HTTP. [\#6891](https://github.com/ClickHouse/ClickHouse/pull/6891) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Добавить возможность использования функции `hex` без использования `reinterpretAsString` для `Float32`, `Float64`. [\#7024](https://github.com/ClickHouse/ClickHouse/pull/7024) ([Михаил Коротов](https://github.com/millb)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-2} - -- Добавьте gdb-индекс в двоичный файл clickhouse с отладочной информацией. Это ускорит время запуска системы. `gdb`. [\#6947](https://github.com/ClickHouse/ClickHouse/pull/6947) ([алесапин](https://github.com/alesapin)) -- Ускорить деб упаковки с исправленными помощью dpkg-деб, которая использует `pigz`. [\#6960](https://github.com/ClickHouse/ClickHouse/pull/6960) ([алесапин](https://github.com/alesapin)) -- Набор `enable_fuzzing = 1` чтобы включить инструментирование libfuzzer всего кода проекта. [\#7042](https://github.com/ClickHouse/ClickHouse/pull/7042) ([kyprizel](https://github.com/kyprizel)) -- Добавить сплит построить тест в КИ. [\#7061](https://github.com/ClickHouse/ClickHouse/pull/7061) ([алесапин](https://github.com/alesapin)) -- Добавьте сборку с MemorySanitizer в CI. [\#7066](https://github.com/ClickHouse/ClickHouse/pull/7066) ([Александр Кузьменков](https://github.com/akuzm)) -- Заменять `libsparsehash` с `sparsehash-c11` [\#6965](https://github.com/ClickHouse/ClickHouse/pull/6965) ([Азат Хужин](https://github.com/azat)) - -#### Исправление ошибок {#bug-fix-5} - -- Исправлено снижение производительности индексного анализа по сложным ключам на больших таблицах. Это исправляет \#6924. [\#7075](https://github.com/ClickHouse/ClickHouse/pull/7075) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена логическая ошибка, вызывающая segfaults при выборе из Кафки пустой темы. [\#6909](https://github.com/ClickHouse/ClickHouse/pull/6909) ([Иван](https://github.com/abyss7)) -- Исправлено слишком раннее закрытие соединения MySQL `MySQLBlockInputStream.cpp`. [\#6882](https://github.com/ClickHouse/ClickHouse/pull/6882) ([Clément Rodriguez](https://github.com/clemrodriguez)) -- Возвращена поддержка очень старых ядер Linux (исправление [\#6841](https://github.com/ClickHouse/ClickHouse/issues/6841)) [\#6853](https://github.com/ClickHouse/ClickHouse/pull/6853) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить возможную потерю данных в `insert select` запрос в случае пустого блока во входном потоке. \#6834 \#6862 [\#6911](https://github.com/ClickHouse/ClickHouse/pull/6911) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправление для функции `АrrayEnumerateUniqRanked` с пустыми массивами в парах [\#6928](https://github.com/ClickHouse/ClickHouse/pull/6928) ([proller](https://github.com/proller)) -- Исправьте сложные запросы с помощью соединений массивов и глобальных подзапросов. [\#6934](https://github.com/ClickHouse/ClickHouse/pull/6934) ([Иван](https://github.com/abyss7)) -- Чинить `Unknown identifier` ошибка в порядке ПО и группировка ПО с несколькими соединениями [\#7022](https://github.com/ClickHouse/ClickHouse/pull/7022) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено `MSan` предупреждение при выполнении функции с помощью `LowCardinality` аргумент. [\#7062](https://github.com/ClickHouse/ClickHouse/pull/7062) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-2} - -- Изменен формат сериализации состояний растровых \* агрегатных функций для повышения производительности. Сериализованные состояния растрового изображения\* из предыдущих версий не могут быть прочитаны. [\#6908](https://github.com/ClickHouse/ClickHouse/pull/6908) ([Zhichang Ю](https://github.com/yuzhichang)) - -## ClickHouse релиз 19.14 {#clickhouse-release-19-14} - -### ClickHouse релиз 19.14.7.15, 2019-10-02 {#clickhouse-release-19-14-7-15-2019-10-02} - -#### Исправление ошибок {#bug-fix-6} - -- Этот релиз также содержит все исправления ошибок от 19.11.12.69. -- Исправлена совместимость для распределенных запросов между 19.14 и более ранними версиями. Это исправление [\#7068](https://github.com/ClickHouse/ClickHouse/issues/7068). [\#7069](https://github.com/ClickHouse/ClickHouse/pull/7069) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.14.6.12, 2019-09-19 {#clickhouse-release-19-14-6-12-2019-09-19} - -#### Исправление ошибок {#bug-fix-7} - -- Исправление для функции `АrrayEnumerateUniqRanked` с пустыми массивами в парах. [\#6928](https://github.com/ClickHouse/ClickHouse/pull/6928) ([proller](https://github.com/proller)) -- Исправлено имя подзапроса в запросах с `ARRAY JOIN` и `GLOBAL IN subquery` с псевдонимом. Используйте псевдоним подзапроса для внешнего имени таблицы, если оно указано. [\#6934](https://github.com/ClickHouse/ClickHouse/pull/6934) ([Иван](https://github.com/abyss7)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-3} - -- Чинить [хлопанье](https://clickhouse-test-reports.s3.yandex.net/6944/aab95fd5175a513413c7395a73a82044bdafb906/functional_stateless_tests_(debug).html) тест `00715_fetch_merged_or_mutated_part_zookeeper` переписывая его в оболочку скриптов, потому что он должен ждать, пока мутации применятся. [\#6977](https://github.com/ClickHouse/ClickHouse/pull/6977) ([Александр казаков](https://github.com/Akazz)) -- Исправлены системные и MemSan сбой в функции `groupUniqArray` с аргументом массива emtpy. Это было вызвано размещением пустых `PaddedPODArray` в хэш-таблицу нулевая ячейка, потому что конструктор для нулевого значения ячейки не вызывался. [\#6937](https://github.com/ClickHouse/ClickHouse/pull/6937) ([Амос Птица](https://github.com/amosbird)) - -### ClickHouse релиз 19.14.3.3, 2019-09-10 {#clickhouse-release-19-14-3-3-2019-09-10} - -#### Новая функция {#new-feature-4} - -- `WITH FILL` модификатор для `ORDER BY`. (продолжение работы [\#5069](https://github.com/ClickHouse/ClickHouse/issues/5069)) [\#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Антон Попов](https://github.com/CurtizJ)) -- `WITH TIES` модификатор для `LIMIT`. (продолжение работы [\#5069](https://github.com/ClickHouse/ClickHouse/issues/5069)) [\#6610](https://github.com/ClickHouse/ClickHouse/pull/6610) ([Антон Попов](https://github.com/CurtizJ)) -- Разобрать некотируемых `NULL` буквальное значение NULL (если настройки `format_csv_unquoted_null_literal_as_null=1`). Инициализируйте нулевые поля значениями по умолчанию, если тип данных этого поля не является нулевым (если задано значение `input_format_null_as_default=1`). [\#5990](https://github.com/ClickHouse/ClickHouse/issues/5990) [\#6055](https://github.com/ClickHouse/ClickHouse/pull/6055) ([тавплубикс](https://github.com/tavplubix)) -- Поддержка подстановочных знаков в путях табличных функций `file` и `hdfs`. Если путь содержит подстановочные знаки, то таблица будет доступна только для чтения. Пример использования: `select * from hdfs('hdfs://hdfs1:9000/some_dir/another_dir/*/file{0..9}{0..9}')` и `select * from file('some_dir/{some_file,another_file,yet_another}.tsv', 'TSV', 'value UInt32')`. [\#6092](https://github.com/ClickHouse/ClickHouse/pull/6092) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Новый `system.metric_log` таблица, в которой хранятся значения `system.events` и `system.metrics` с заданным интервалом времени. [\#6363](https://github.com/ClickHouse/ClickHouse/issues/6363) [\#6467](https://github.com/ClickHouse/ClickHouse/pull/6467) ([Никита Михайлов](https://github.com/nikitamikhaylov)) [\#6530](https://github.com/ClickHouse/ClickHouse/pull/6530) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Разрешить запись текстовых журналов ClickHouse в `system.text_log` стол. [\#6037](https://github.com/ClickHouse/ClickHouse/issues/6037) [\#6103](https://github.com/ClickHouse/ClickHouse/pull/6103) ([Никита Михайлов](https://github.com/nikitamikhaylov)) [\#6164](https://github.com/ClickHouse/ClickHouse/pull/6164) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Показывать частные символы в трассировках стека (это делается с помощью синтаксического анализа таблиц символов файлов ELF). Добавлена информация о файле и номере строки в трассировках стека, если присутствует отладочная информация. Ускоренный поиск имени символа с индексацией символов, присутствующих в программе. Добавлены новые функции SQL для самоанализа: `demangle` и `addressToLine`. Переименованная функция `symbolizeAddress` к `addressToSymbol` для последовательности. Функция `addressToSymbol` вернет искалеченное имя по соображениям производительности и вам придется подать заявку `demangle`. Добавлена настройка `allow_introspection_functions` который по умолчанию отключен. [\#6201](https://github.com/ClickHouse/ClickHouse/pull/6201) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Табличная функция `values` (имя не чувствительно к регистру). Это позволяет читать из `VALUES` список предложенных в [\#5984](https://github.com/ClickHouse/ClickHouse/issues/5984). Пример: `SELECT * FROM VALUES('a UInt64, s String', (1, 'one'), (2, 'two'), (3, 'three'))`. [\#6217](https://github.com/ClickHouse/ClickHouse/issues/6217). [\#6209](https://github.com/ClickHouse/ClickHouse/pull/6209) ([dimarub2000](https://github.com/dimarub2000)) -- Добавлена возможность изменять настройки хранения. Синтаксис: `ALTER TABLE MODIFY SETTING = `. [\#6366](https://github.com/ClickHouse/ClickHouse/pull/6366) [\#6669](https://github.com/ClickHouse/ClickHouse/pull/6669) [\#6685](https://github.com/ClickHouse/ClickHouse/pull/6685) ([алесапин](https://github.com/alesapin)) -- Опора для снятия отсоединенных деталей. Синтаксис: `ALTER TABLE DROP DETACHED PART ''`. [\#6158](https://github.com/ClickHouse/ClickHouse/pull/6158) ([тавплубикс](https://github.com/tavplubix)) -- Ограничения таблицы. Позволяет добавить ограничение к определению таблицы,которое будет проверяться при вставке. [\#5273](https://github.com/ClickHouse/ClickHouse/pull/5273) ([Глеб Новиков](https://github.com/NanoBjorn)) [\#6652](https://github.com/ClickHouse/ClickHouse/pull/6652) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Суппорт для каскадных материализованных представлений. [\#6324](https://github.com/ClickHouse/ClickHouse/pull/6324) ([Амос Птица](https://github.com/amosbird)) -- Включите профилировщик запросов по умолчанию, чтобы один раз в секунду выполнять выборку каждого потока выполнения запроса. [\#6283](https://github.com/ClickHouse/ClickHouse/pull/6283) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Входной формат `ORC`. [\#6454](https://github.com/ClickHouse/ClickHouse/pull/6454) [\#6703](https://github.com/ClickHouse/ClickHouse/pull/6703) ([аконяев90](https://github.com/akonyaev90)) -- Добавлены две новые функции: `sigmoid` и `tanh` (которые полезны для приложений машинного обучения). [\#6254](https://github.com/ClickHouse/ClickHouse/pull/6254) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Функция `hasToken(haystack, token)`, `hasTokenCaseInsensitive(haystack, token)` чтобы проверить, находится ли данный токен в стоге сена. Токен-это подстрока максимальной длины между двумя не буквенно-цифровыми символами ASCII (или границами стога сена). Токен должен быть постоянной строкой. Поддерживается специализацией индекса tokenbf\_v1. [\#6596](https://github.com/ClickHouse/ClickHouse/pull/6596), [\#6662](https://github.com/ClickHouse/ClickHouse/pull/6662) ([Василий Немков](https://github.com/Enmk)) -- Новая функция `neighbor(value, offset[, default_value])`. Позволяет достичь значения prev / next внутри столбца в блоке данных. [\#5925](https://github.com/ClickHouse/ClickHouse/pull/5925) ([Алекс Краш](https://github.com/alex-krash)) [6685365ab8c5b74f9650492c88a012596eb1b0c6](https://github.com/ClickHouse/ClickHouse/commit/6685365ab8c5b74f9650492c88a012596eb1b0c6) [341e2e4587a18065c2da1ca888c73389f48ce36c](https://github.com/ClickHouse/ClickHouse/commit/341e2e4587a18065c2da1ca888c73389f48ce36c) [Алексей Миловидов](https://github.com/alexey-milovidov) -- Создал функцию `currentUser()`, возвращая логин авторизованного пользователя. Добавлен псевдоним `user()` для совместимости с MySQL. [\#6470](https://github.com/ClickHouse/ClickHouse/pull/6470) ([Алекс Краш](https://github.com/alex-krash)) -- Новые агрегатные функции `quantilesExactInclusive` и `quantilesExactExclusive` которые были предложены в [\#5885](https://github.com/ClickHouse/ClickHouse/issues/5885). [\#6477](https://github.com/ClickHouse/ClickHouse/pull/6477) ([dimarub2000](https://github.com/dimarub2000)) -- Функция `bitmapRange(bitmap, range_begin, range_end)` который возвращает новый набор с заданным диапазоном (не включает в себя `range_end`). [\#6314](https://github.com/ClickHouse/ClickHouse/pull/6314) ([Zhichang Ю](https://github.com/yuzhichang)) -- Функция `geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)` что создает массив прецизионных длинных строк геохаш-боксов, покрывающих заданную площадь. [\#6127](https://github.com/ClickHouse/ClickHouse/pull/6127) ([Василий Немков](https://github.com/Enmk)) -- Реализуйте поддержку запроса INSERT с помощью `Kafka` таблицы. [\#6012](https://github.com/ClickHouse/ClickHouse/pull/6012) ([Иван](https://github.com/abyss7)) -- Добавлена поддержка для `_partition` и `_timestamp` виртуальные колонки для движка Кафки. [\#6400](https://github.com/ClickHouse/ClickHouse/pull/6400) ([Иван](https://github.com/abyss7)) -- Возможность удаления конфиденциальных данных из `query_log`, журналы серверов, список процессов с правилами на основе регулярных выражений. [\#5710](https://github.com/ClickHouse/ClickHouse/pull/5710) ([Филимонов](https://github.com/filimonov)) - -#### Экспериментальная возможность {#experimental-feature-2} - -- Формат входных и выходных данных `Template`. Он позволяет указать строку пользовательского формата для ввода и вывода. [\#4354](https://github.com/ClickHouse/ClickHouse/issues/4354) [\#6727](https://github.com/ClickHouse/ClickHouse/pull/6727) ([тавплубикс](https://github.com/tavplubix)) -- Реализация проекта `LIVE VIEW` таблицы, которые были первоначально предложены в [\#2898](https://github.com/ClickHouse/ClickHouse/pull/2898), подготовленные в [\#3925](https://github.com/ClickHouse/ClickHouse/issues/3925), а затем обновляется в [\#5541](https://github.com/ClickHouse/ClickHouse/issues/5541). Видеть [\#5541](https://github.com/ClickHouse/ClickHouse/issues/5541) для детального описания. [\#5541](https://github.com/ClickHouse/ClickHouse/issues/5541) ([взаказников](https://github.com/vzakaznikov)) [\#6425](https://github.com/ClickHouse/ClickHouse/pull/6425) ([Николай Кочетов](https://github.com/KochetovNicolai)) [\#6656](https://github.com/ClickHouse/ClickHouse/pull/6656) ([взаказников](https://github.com/vzakaznikov)) Заметить что `LIVE VIEW` функция может быть удалена в следующих версиях. - -#### Исправление ошибок {#bug-fix-8} - -- Этот релиз также содержит все исправления ошибок от 19.13 и 19.11. -- Исправьте ошибку сегментации, когда в таблице есть индексы пропуска и происходит вертикальное слияние. [\#6723](https://github.com/ClickHouse/ClickHouse/pull/6723) ([алесапин](https://github.com/alesapin)) -- Исправьте ТТЛ для каждого столбца с нетривиальными значениями по умолчанию для столбцов. Ранее в случае принудительного слияния TTL с `OPTIMIZE ... FINAL` запрос, истекшие значения были заменены типом defaults вместо заданных пользователем значений столбца defaults. [\#6796](https://github.com/ClickHouse/ClickHouse/pull/6796) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена проблема дублирования сообщений Кафки при обычном перезапуске сервера. [\#6597](https://github.com/ClickHouse/ClickHouse/pull/6597) ([Иван](https://github.com/abyss7)) -- Исправлена бесконечная петля при чтении сообщений Кафки. Не приостанавливайте/возобновляйте потребительскую подписку вообще - в противном случае она может быть приостановлена на неопределенный срок в некоторых сценариях. [\#6354](https://github.com/ClickHouse/ClickHouse/pull/6354) ([Иван](https://github.com/abyss7)) -- Чинить `Key expression contains comparison between inconvertible types` исключение в `bitmapContains` функция. [\#6136](https://github.com/ClickHouse/ClickHouse/issues/6136) [\#6146](https://github.com/ClickHouse/ClickHouse/issues/6146) [\#6156](https://github.com/ClickHouse/ClickHouse/pull/6156) ([dimarub2000](https://github.com/dimarub2000)) -- Исправлена обработка выхода онлайн / оффлайн с поддержкой `optimize_skip_unused_shards` и пропал ключ от осколков. [\#6384](https://github.com/ClickHouse/ClickHouse/pull/6384) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлен неправильный код в мутациях, которые могут привести к повреждению памяти. Исправлена обработка выхода онлайн / оффлайн чтения адреса `0x14c0` это может произойти из-за совпадения `DROP TABLE` и `SELECT` от `system.parts` или `system.parts_columns`. Фиксированное состояние расы при подготовке запросов мутаций. Исправлена тупиковая ситуация, вызванная `OPTIMIZE` реплицированных таблиц и параллельных операций модификации, таких как ALTERs. [\#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Убраны лишние подробный вход в интерфейс для MySQL [\#6389](https://github.com/ClickHouse/ClickHouse/pull/6389) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Возвращает возможность разбора логических настроек из ‘true’ и ‘false’ в конфигурационном файле. [\#6278](https://github.com/ClickHouse/ClickHouse/pull/6278) ([алесапин](https://github.com/alesapin)) -- Исправить сбой в работе `quantile` и `median` функции `Nullable(Decimal128)`. [\#6378](https://github.com/ClickHouse/ClickHouse/pull/6378) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлен возможный неполный результат возвращаемый компанией `SELECT` запрос с помощью `WHERE` условие о первичном ключе содержало преобразование в тип Float. Это было вызвано неправильной проверкой монотонности в `toFloat` функция. [\#6248](https://github.com/ClickHouse/ClickHouse/issues/6248) [\#6374](https://github.com/ClickHouse/ClickHouse/pull/6374) ([dimarub2000](https://github.com/dimarub2000)) -- Проверять `max_expanded_ast_elements` установка для мутаций. Ясные мутации после `TRUNCATE TABLE`. [\#6205](https://github.com/ClickHouse/ClickHouse/pull/6205) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправьте результаты соединения для ключевых столбцов при использовании с `join_use_nulls`. Прикрепите значения null вместо столбцов по умолчанию. [\#6249](https://github.com/ClickHouse/ClickHouse/pull/6249) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка пропуска индексов с вертикальным слиянием и alter. Исправить для `Bad size of marks file` исключение. [\#6594](https://github.com/ClickHouse/ClickHouse/issues/6594) [\#6713](https://github.com/ClickHouse/ClickHouse/pull/6713) ([алесапин](https://github.com/alesapin)) -- Исправлена редкая ошибка в `ALTER MODIFY COLUMN` и вертикальное слияние, когда одна из Объединенных/измененных частей пуста (0 строк) [\#6746](https://github.com/ClickHouse/ClickHouse/issues/6746) [\#6780](https://github.com/ClickHouse/ClickHouse/pull/6780) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка в преобразовании `LowCardinality` напечатать `AggregateFunctionFactory`. Это исправление [\#6257](https://github.com/ClickHouse/ClickHouse/issues/6257). [\#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправить неправильное поведение и возможные вылеты в `topK` и `topKWeighted` агрегированные функции. [\#6404](https://github.com/ClickHouse/ClickHouse/pull/6404) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлен небезопасный код вокруг `getIdentifier` функция. [\#6401](https://github.com/ClickHouse/ClickHouse/issues/6401) [\#6409](https://github.com/ClickHouse/ClickHouse/pull/6409) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка в протоколе MySQL wire (используется при подключении к ClickHouse form MySQL client). Вызвано переполнением буфера кучи в `PacketPayloadWriteBuffer`. [\#6212](https://github.com/ClickHouse/ClickHouse/pull/6212) ([Юрий Баранов](https://github.com/yurriy)) -- Исправлена утечка памяти внутри `bitmapSubsetInRange` функция. [\#6819](https://github.com/ClickHouse/ClickHouse/pull/6819) ([Zhichang Ю](https://github.com/yuzhichang)) -- Исправлена редкая ошибка, когда мутация выполнялась после изменения детализации. [\#6816](https://github.com/ClickHouse/ClickHouse/pull/6816) ([алесапин](https://github.com/alesapin)) -- Разрешить сообщение protobuf со всеми полями по умолчанию. [\#6132](https://github.com/ClickHouse/ClickHouse/pull/6132) ([Виталий Баранов](https://github.com/vitlibar)) -- Устраните ошибку с помощью `nullIf` функция, когда мы посылаем `NULL` аргумент по второму аргументу. [\#6446](https://github.com/ClickHouse/ClickHouse/pull/6446) ([Гийом Тассери](https://github.com/YiuRULE)) -- Исправлена редкая ошибка с неправильным выделением/освобождением памяти в сложных ключевых словарях кэша со строковыми полями, что приводит к бесконечному потреблению памяти (похоже на утечку памяти). Ошибка воспроизводится, когда размер строки был равен степени два, начиная с восьми (8, 16, 32 и т. д.). [\#6447](https://github.com/ClickHouse/ClickHouse/pull/6447) ([алесапин](https://github.com/alesapin)) -- Исправлено кодирование горилл на небольших последовательностях, которое вызывало исключение `Cannot write after end of buffer`. [\#6398](https://github.com/ClickHouse/ClickHouse/issues/6398) [\#6444](https://github.com/ClickHouse/ClickHouse/pull/6444) ([Василий Немков](https://github.com/Enmk)) -- Разрешить использовать не обнуляемые типы В соединениях с `join_use_nulls` включен. [\#6705](https://github.com/ClickHouse/ClickHouse/pull/6705) ([Артем Зуйков](https://github.com/4ertus2)) -- Отключать `Poco::AbstractConfiguration` подстановки в запрос `clickhouse-client`. [\#6706](https://github.com/ClickHouse/ClickHouse/pull/6706) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте тупиковых ситуаций в `REPLACE PARTITION`. [\#6677](https://github.com/ClickHouse/ClickHouse/pull/6677) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- С помощью `arrayReduce` для постоянных аргументов может привести к обработка выхода онлайн / оффлайн. [\#6242](https://github.com/ClickHouse/ClickHouse/issues/6242) [\#6326](https://github.com/ClickHouse/ClickHouse/pull/6326) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте несогласованные детали, которые могут появиться, если реплика была восстановлена после этого `DROP PARTITION`. [\#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [\#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([тавплубикс](https://github.com/tavplubix)) -- Исправлено зависание `JSONExtractRaw` функция. [\#6195](https://github.com/ClickHouse/ClickHouse/issues/6195) [\#6198](https://github.com/ClickHouse/ClickHouse/pull/6198) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка с неправильной сериализацией индексов пропуска и агрегацией с адаптивной детализацией. [\#6594](https://github.com/ClickHouse/ClickHouse/issues/6594). [\#6748](https://github.com/ClickHouse/ClickHouse/pull/6748) ([алесапин](https://github.com/alesapin)) -- Чинить `WITH ROLLUP` и `WITH CUBE` модификаторы `GROUP BY` с двухуровневой агрегацией. [\#6225](https://github.com/ClickHouse/ClickHouse/pull/6225) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена ошибка с написанием вторичных индексных меток с адаптивной детализацией. [\#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([алесапин](https://github.com/alesapin)) -- Исправьте порядок инициализации при запуске сервера. С `StorageMergeTree::background_task_handle` инициализируется в `startup()` то `MergeTreeBlockOutputStream::write()` возможно, вы попытаетесь использовать его перед инициализацией. Просто проверьте, инициализирован ли он. [\#6080](https://github.com/ClickHouse/ClickHouse/pull/6080) ([Иван](https://github.com/abyss7)) -- Очистка буфера данных от предыдущей операции чтения, которая была завершена с ошибкой. [\#6026](https://github.com/ClickHouse/ClickHouse/pull/6026) ([Николай](https://github.com/bopohaa)) -- Исправлена ошибка с включением адаптивной детализации при создании новой реплики для реплицированной таблицы \* MergeTree. [\#6394](https://github.com/ClickHouse/ClickHouse/issues/6394) [\#6452](https://github.com/ClickHouse/ClickHouse/pull/6452) ([алесапин](https://github.com/alesapin)) -- Исправлена возможная ошибка при запуске сервера в случае возникновения исключения `libunwind` во время исключения при доступе к неинициализированному `ThreadStatus` структура. [\#6456](https://github.com/ClickHouse/ClickHouse/pull/6456) ([Никита Михайлов](https://github.com/nikitamikhaylov)) -- Исправить сбой в работе `yandexConsistentHash` функция. Найдено с помощью теста fuzz. [\#6304](https://github.com/ClickHouse/ClickHouse/issues/6304) [\#6305](https://github.com/ClickHouse/ClickHouse/pull/6305) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена возможность зависания запросов, когда сервер перегружен и глобальный пул потоков становится почти полным. Это имеет более высокие шансы произойти в кластерах с большим количеством сегментов (сотни), поскольку распределенные запросы выделяют поток для каждого соединения с каждым сегментом. Например, эта проблема может возникнуть, если кластер из 330 сегментов обрабатывает 30 параллельных распределенных запросов. Эта проблема затрагивает все версии, начиная с версии 19.2. [\#6301](https://github.com/ClickHouse/ClickHouse/pull/6301) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированная логика работы `arrayEnumerateUniqRanked` функция. [\#6423](https://github.com/ClickHouse/ClickHouse/pull/6423) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка segfault при декодировании таблицы символов. [\#6603](https://github.com/ClickHouse/ClickHouse/pull/6603) ([Амос Птица](https://github.com/amosbird)) -- Исправлено неуместное исключение в приведении `LowCardinality(Nullable)` to not-Nullable column in case if it doesn't contain Nulls (e.g. in query like `SELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String)`. [\#6094](https://github.com/ClickHouse/ClickHouse/issues/6094) [\#6119](https://github.com/ClickHouse/ClickHouse/pull/6119) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Удалено дополнительное цитирование описания в `system.settings` стол. [\#6696](https://github.com/ClickHouse/ClickHouse/issues/6696) [\#6699](https://github.com/ClickHouse/ClickHouse/pull/6699) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте возможных тупиков в работе `TRUNCATE` из реплицированной таблицы. [\#6695](https://github.com/ClickHouse/ClickHouse/pull/6695) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте чтение в порядке сортировки ключа. [\#6189](https://github.com/ClickHouse/ClickHouse/pull/6189) ([Антон Попов](https://github.com/CurtizJ)) -- Чинить `ALTER TABLE ... UPDATE` запрос для таблиц с `enable_mixed_granularity_parts=1`. [\#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([алесапин](https://github.com/alesapin)) -- Исправить ошибку, открытую [\#4405](https://github.com/ClickHouse/ClickHouse/pull/4405) (начиная с 19.4.0). Воспроизводится в запросах к распределенным таблицам через таблицы MergeTree, когда мы не запрашиваем никаких столбцов (`SELECT 1`). [\#6236](https://github.com/ClickHouse/ClickHouse/pull/6236) ([алесапин](https://github.com/alesapin)) -- Исправлено переполнение при целочисленном делении знакового типа на беззнаковый. Поведение было точно таким же, как в языке C или C++ (целочисленные правила продвижения), что может быть удивительно. Обратите внимание, что переполнение все еще возможно при делении большого числа со знаком на большое число без знака или наоборот (но этот случай менее обычен). Эта проблема существовала во всех версиях сервера. [\#6214](https://github.com/ClickHouse/ClickHouse/issues/6214) [\#6233](https://github.com/ClickHouse/ClickHouse/pull/6233) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Ограничьте максимальное время сна для дросселирования, когда `max_execution_speed` или `max_execution_speed_bytes` заданный. Исправлены ложные ошибки, такие как `Estimated query execution time (inf seconds) is too long`. [\#5547](https://github.com/ClickHouse/ClickHouse/issues/5547) [\#6232](https://github.com/ClickHouse/ClickHouse/pull/6232) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлены проблемы, связанные с использованием `MATERIALIZED` столбцы и псевдонимы в `MaterializedView`. [\#448](https://github.com/ClickHouse/ClickHouse/issues/448) [\#3484](https://github.com/ClickHouse/ClickHouse/issues/3484) [\#3450](https://github.com/ClickHouse/ClickHouse/issues/3450) [\#2878](https://github.com/ClickHouse/ClickHouse/issues/2878) [\#2285](https://github.com/ClickHouse/ClickHouse/issues/2285) [\#3796](https://github.com/ClickHouse/ClickHouse/pull/3796) ([Амос Птица](https://github.com/amosbird)) [\#6316](https://github.com/ClickHouse/ClickHouse/pull/6316) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Чинить `FormatFactory` поведение для входных потоков, которые не реализованы в качестве процессора. [\#6495](https://github.com/ClickHouse/ClickHouse/pull/6495) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена опечатка. [\#6631](https://github.com/ClickHouse/ClickHouse/pull/6631) ([Алексей Рындин](https://github.com/alexryndin)) -- Опечатка в сообщении об ошибке (is - \> are). [\#6839](https://github.com/ClickHouse/ClickHouse/pull/6839) ([Денис Журавлев](https://github.com/den-crane)) -- Исправлена ошибка при разборе списка столбцов из строки, Если тип содержал запятую (эта проблема была актуальна для `File`, `URL`, `HDFS` хранения) [\#6217](https://github.com/ClickHouse/ClickHouse/issues/6217). [\#6209](https://github.com/ClickHouse/ClickHouse/pull/6209) ([dimarub2000](https://github.com/dimarub2000)) - -#### Исправление безопасности {#security-fix} - -- Этот релиз также содержит все исправления безопасности ошибок от 19.13 и 19.11. -- Исправлена возможность сфабрикованного запроса вызвать сбой сервера из-за переполнения стека в синтаксическом анализаторе SQL. Исправлена возможность переполнения стека в таблицах слияния и распределения, материализованных представлениях и условиях безопасности на уровне строк, включающих подзапросы. [\#6433](https://github.com/ClickHouse/ClickHouse/pull/6433) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшение {#improvement-3} - -- Правильная реализация троичной логики для `AND/OR`. [\#6048](https://github.com/ClickHouse/ClickHouse/pull/6048) ([Александр казаков](https://github.com/Akazz)) -- Теперь значения и строки с истекшим сроком действия TTL будут удалены после этого `OPTIMIZE ... FINAL` query from old parts without TTL infos or with outdated TTL infos, e.g. after `ALTER ... MODIFY TTL` запрос. Добавленные запросы `SYSTEM STOP/START TTL MERGES` чтобы запретить / разрешить назначать слияния с TTL и фильтровать просроченные значения во всех слияниях. [\#6274](https://github.com/ClickHouse/ClickHouse/pull/6274) ([Антон Попов](https://github.com/CurtizJ)) -- Возможность изменить расположение файла истории ClickHouse для использования клиентом `CLICKHOUSE_HISTORY_FILE` ОКР. [\#6840](https://github.com/ClickHouse/ClickHouse/pull/6840) ([Филимонов](https://github.com/filimonov)) -- Удалять `dry_run` флаг от `InterpreterSelectQuery`. … [\#6375](https://github.com/ClickHouse/ClickHouse/pull/6375) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Поддержка `ASOF JOIN` с `ON` раздел. [\#6211](https://github.com/ClickHouse/ClickHouse/pull/6211) ([Артем Зуйков](https://github.com/4ertus2)) -- Улучшенная поддержка индексов пропуска для мутаций и репликации. Поддержка `MATERIALIZE/CLEAR INDEX ... IN PARTITION` запрос. `UPDATE x = x` пересчитывает все индексы, использующие столбец `x`. [\#5053](https://github.com/ClickHouse/ClickHouse/pull/5053) ([Никита Васильев](https://github.com/nikvas0)) -- Разрешить `ATTACH` живые представления (например, при запуске сервера) независимо от того, чтобы `allow_experimental_live_view` установка. [\#6754](https://github.com/ClickHouse/ClickHouse/pull/6754) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Для трассировок стека, собранных профилировщиком запросов, не включайте кадры стека, созданные самим профилировщиком запросов. [\#6250](https://github.com/ClickHouse/ClickHouse/pull/6250) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Теперь функции таблицы `values`, `file`, `url`, `hdfs` есть поддержка столбцов псевдонимов. [\#6255](https://github.com/ClickHouse/ClickHouse/pull/6255) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Создайте исключение, если `config.d` файл не имеет соответствующего корневого элемента в качестве файла конфигурации. [\#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) -- Распечатайте дополнительную информацию в сообщении об исключении для `no space left on device`. [\#6182](https://github.com/ClickHouse/ClickHouse/issues/6182), [\#6252](https://github.com/ClickHouse/ClickHouse/issues/6252) [\#6352](https://github.com/ClickHouse/ClickHouse/pull/6352) ([тавплубикс](https://github.com/tavplubix)) -- При определении осколков а `Distributed` таблица, которая будет покрыта запросом на чтение (для `optimize_skip_unused_shards` = 1) ClickHouse теперь проверяет условия от обоих `prewhere` и `where` предложения оператора select. [\#6521](https://github.com/ClickHouse/ClickHouse/pull/6521) ([Александр казаков](https://github.com/Akazz)) -- Включенный `SIMDJSON` для машин без AVX2, но с набором инструкций SSE 4.2 и PCLMUL. [\#6285](https://github.com/ClickHouse/ClickHouse/issues/6285) [\#6320](https://github.com/ClickHouse/ClickHouse/pull/6320) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- ClickHouse может работать на файловых системах без `O_DIRECT` поддержка (например, ZFS и BtrFS) без дополнительной настройки. [\#4449](https://github.com/ClickHouse/ClickHouse/issues/4449) [\#6730](https://github.com/ClickHouse/ClickHouse/pull/6730) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Поддержка push down предиката для окончательного подзапроса. [\#6120](https://github.com/ClickHouse/ClickHouse/pull/6120) ([TCeason](https://github.com/TCeason)) [\#6162](https://github.com/ClickHouse/ClickHouse/pull/6162) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Лучше `JOIN ON` извлечение ключей [\#6131](https://github.com/ClickHouse/ClickHouse/pull/6131) ([Артем Зуйков](https://github.com/4ertus2)) -- Обновление `SIMDJSON`. [\#6285](https://github.com/ClickHouse/ClickHouse/issues/6285). [\#6306](https://github.com/ClickHouse/ClickHouse/pull/6306) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Оптимизируйте выбор самого маленького столбца для `SELECT count()` запрос. [\#6344](https://github.com/ClickHouse/ClickHouse/pull/6344) ([Амос Птица](https://github.com/amosbird)) -- Добавлен `strict` параметр в `windowFunnel()`. Когда `strict` устанавливается, то `windowFunnel()` применяет условия только для уникальных значений. [\#6548](https://github.com/ClickHouse/ClickHouse/pull/6548) ([ачимбаб](https://github.com/achimbab)) -- Более безопасный интерфейс `mysqlxx::Pool`. [\#6150](https://github.com/ClickHouse/ClickHouse/pull/6150) ([авасилиев](https://github.com/avasiliev)) -- Параметры размер строки при выполнении с помощью `--help` опция теперь соответствует размеру терминала. [\#6590](https://github.com/ClickHouse/ClickHouse/pull/6590) ([dimarub2000](https://github.com/dimarub2000)) -- Отключать «read in order» оптимизация для агрегации без ключей. [\#6599](https://github.com/ClickHouse/ClickHouse/pull/6599) ([Антон Попов](https://github.com/CurtizJ)) -- Код состояния HTTP для `INCORRECT_DATA` и `TYPE_MISMATCH` коды ошибок были изменены по умолчанию `500 Internal Server Error` к `400 Bad Request`. [\#6271](https://github.com/ClickHouse/ClickHouse/pull/6271) ([Александр Родин](https://github.com/a-rodin)) -- Переместить объект соединения из `ExpressionAction` в `AnalyzedJoin`. `ExpressionAnalyzer` и `ExpressionAction` не знаю о чем `Join` больше никаких занятий. Его логика скрыта за `AnalyzedJoin` iface защитный. [\#6801](https://github.com/ClickHouse/ClickHouse/pull/6801) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена возможная взаимоблокировка распределенных запросов, когда один из сегментов является localhost, но запрос отправляется через сетевое соединение. [\#6759](https://github.com/ClickHouse/ClickHouse/pull/6759) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Изменена семантика нескольких таблиц `RENAME` чтобы избежать возможных тупиков. [\#6757](https://github.com/ClickHouse/ClickHouse/issues/6757). [\#6756](https://github.com/ClickHouse/ClickHouse/pull/6756) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Переписан сервер совместимости MySQL, чтобы предотвратить загрузку полной полезной нагрузки пакета в память. Снижение потребления памяти для каждого соединения примерно до `2 * DBMS_DEFAULT_BUFFER_SIZE` (буферы чтения/записи). [\#5811](https://github.com/ClickHouse/ClickHouse/pull/5811) ([Юрий Баранов](https://github.com/yurriy)) -- Переместите логику интерпретации псевдонимов AST из синтаксического анализатора, который не должен ничего знать о семантике запросов. [\#6108](https://github.com/ClickHouse/ClickHouse/pull/6108) ([Артем Зуйков](https://github.com/4ertus2)) -- Чуть более безопасный разбор данных `NamesAndTypesList`. [\#6408](https://github.com/ClickHouse/ClickHouse/issues/6408). [\#6410](https://github.com/ClickHouse/ClickHouse/pull/6410) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `clickhouse-copier`: Разрешить использование `where_condition` из конфигурации с `partition_key` псевдоним в запросе для проверки существования раздела (ранее он использовался только при чтении запросов данных). [\#6577](https://github.com/ClickHouse/ClickHouse/pull/6577) ([proller](https://github.com/proller)) -- Добавлен необязательный аргумент сообщения в поле `throwIf`. ([\#5772](https://github.com/ClickHouse/ClickHouse/issues/5772)) [\#6329](https://github.com/ClickHouse/ClickHouse/pull/6329) ([Вдимир](https://github.com/Vdimir)) -- Исключение сервера, полученное при отправке данных вставки, теперь обрабатывается и в клиенте. [\#5891](https://github.com/ClickHouse/ClickHouse/issues/5891) [\#6711](https://github.com/ClickHouse/ClickHouse/pull/6711) ([dimarub2000](https://github.com/dimarub2000)) -- Добавлена метрика `DistributedFilesToInsert` это показывает общее количество файлов в файловой системе, выбранных для отправки на удаленные серверы распределенными таблицами. Это число суммируется по всем осколкам. [\#6600](https://github.com/ClickHouse/ClickHouse/pull/6600) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Переместите большинство соединений подготовьте логику из `ExpressionAction/ExpressionAnalyzer` к `AnalyzedJoin`. [\#6785](https://github.com/ClickHouse/ClickHouse/pull/6785) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправить Цан [предупреждение](https://clickhouse-test-reports.s3.yandex.net/6399/c1c1d1daa98e199e620766f1bd06a5921050a00d/functional_stateful_tests_(thread).html) ‘lock-order-inversion’. [\#6740](https://github.com/ClickHouse/ClickHouse/pull/6740) ([Василий Немков](https://github.com/Enmk)) -- Улучшенные информационные сообщения об отсутствии возможностей Linux. Протоколирование фатальных ошибок с помощью «fatal» уровень, который будет легче найти в `system.text_log`. [\#6441](https://github.com/ClickHouse/ClickHouse/pull/6441) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Когда включить сброс временных данных на диск, чтобы ограничить использование памяти во время `GROUP BY`, `ORDER BY`, он не проверял свободное место на диске. Исправление добавить новую настройку `min_free_disk_space`, когда свободное место на диске будет меньше порогового значения, запрос остановится и бросит `ErrorCodes::NOT_ENOUGH_SPACE`. [\#6678](https://github.com/ClickHouse/ClickHouse/pull/6678) ([Вэйцин Сюй](https://github.com/weiqxu)) [\#6691](https://github.com/ClickHouse/ClickHouse/pull/6691) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Удален рекурсивной записи по теме. Это не имеет смысла, потому что потоки используются повторно между запросами. `SELECT` запрос может получить Блокировку в одном потоке, удерживать блокировку в другом потоке и выходить из первого потока. В то же время, первый поток может быть повторно использован `DROP` запрос. Это приведет к ложным результатам «Attempt to acquire exclusive lock recursively» сообщения. [\#6771](https://github.com/ClickHouse/ClickHouse/pull/6771) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Расщеплять `ExpressionAnalyzer.appendJoin()`. Подготовьте место в `ExpressionAnalyzer` для `MergeJoin`. [\#6524](https://github.com/ClickHouse/ClickHouse/pull/6524) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавлен `mysql_native_password` плагин аутентификации для сервера совместимости MySQL. [\#6194](https://github.com/ClickHouse/ClickHouse/pull/6194) ([Юрий Баранов](https://github.com/yurriy)) -- Меньшее количество `clock_gettime` вызовы; исправлена совместимость ABI между debug/release in `Allocator` (незначительный вопрос). [\#6197](https://github.com/ClickHouse/ClickHouse/pull/6197) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Подвиньте `collectUsedColumns` от `ExpressionAnalyzer` к `SyntaxAnalyzer`. `SyntaxAnalyzer` делает `required_source_columns` теперь он сам по себе. [\#6416](https://github.com/ClickHouse/ClickHouse/pull/6416) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавить настройку `joined_subquery_requires_alias` чтобы требовать псевдонимы для подселектов и табличных функций в `FROM` that more than one table is present (i.e. queries with JOINs). [\#6733](https://github.com/ClickHouse/ClickHouse/pull/6733) ([Артем Зуйков](https://github.com/4ertus2)) -- Извлекать `GetAggregatesVisitor` класс от `ExpressionAnalyzer`. [\#6458](https://github.com/ClickHouse/ClickHouse/pull/6458) ([Артем Зуйков](https://github.com/4ertus2)) -- `system.query_log`: изменение типа данных `type` столбец `Enum`. [\#6265](https://github.com/ClickHouse/ClickHouse/pull/6265) ([Никита Михайлов](https://github.com/nikitamikhaylov)) -- Статическое соединение `sha256_password` плагин аутентификации. [\#6512](https://github.com/ClickHouse/ClickHouse/pull/6512) ([Юрий Баранов](https://github.com/yurriy)) -- Избегайте дополнительной зависимости для настройки `compile` работать. В предыдущих версиях пользователь может получить ошибку типа `cannot open crti.o`, `unable to find library -lc` и т.д. [\#6309](https://github.com/ClickHouse/ClickHouse/pull/6309) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Дополнительная проверка входных данных, которые могут быть получены от вредоносной реплики. [\#6303](https://github.com/ClickHouse/ClickHouse/pull/6303) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Сейчас `clickhouse-obfuscator` файл доступен в формате `clickhouse-client` пакет. В предыдущих версиях он был доступен как `clickhouse obfuscator` (с пробелами). [\#5816](https://github.com/ClickHouse/ClickHouse/issues/5816) [\#6609](https://github.com/ClickHouse/ClickHouse/pull/6609) ([dimarub2000](https://github.com/dimarub2000)) -- Исправлена взаимоблокировка, когда у нас есть по крайней мере два запроса, которые читают по крайней мере две таблицы в разном порядке, и еще один запрос, который выполняет операцию DDL на одной из таблиц. Исправлена еще одна очень редкая тупиковая ситуация. [\#6764](https://github.com/ClickHouse/ClickHouse/pull/6764) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлен `os_thread_ids` столбец `system.processes` и `system.query_log` для улучшения возможностей отладки. [\#6763](https://github.com/ClickHouse/ClickHouse/pull/6763) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Обходной путь для ошибок расширения PHP mysqlnd, которые возникают, когда `sha256_password` используется в качестве плагина аутентификации по умолчанию (описано в разделе [\#6031](https://github.com/ClickHouse/ClickHouse/issues/6031)). [\#6113](https://github.com/ClickHouse/ClickHouse/pull/6113) ([Юрий Баранов](https://github.com/yurriy)) -- Удалите ненужное место с измененными столбцами nullability. [\#6693](https://github.com/ClickHouse/ClickHouse/pull/6693) ([Артем Зуйков](https://github.com/4ertus2)) -- Установите значение по умолчанию: `queue_max_wait_ms` до нуля, потому что текущее значение (пять секунд) не имеет никакого смысла. Есть редкие обстоятельства, когда эта настройка имеет какое-либо применение. Добавлены настройки `replace_running_query_max_wait_ms`, `kafka_max_wait_ms` и `connection_pool_max_wait_ms` для устранения двусмысленности. [\#6692](https://github.com/ClickHouse/ClickHouse/pull/6692) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Извлекать `SelectQueryExpressionAnalyzer` от `ExpressionAnalyzer`. Оставьте последний вариант для запросов, не связанных с выбором. [\#6499](https://github.com/ClickHouse/ClickHouse/pull/6499) ([Артем Зуйков](https://github.com/4ertus2)) -- Удалено дублирование входных и выходных форматов. [\#6239](https://github.com/ClickHouse/ClickHouse/pull/6239) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Позволяет пользователю переопределить `poll_interval` и `idle_connection_timeout` настройки при подключении. [\#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `MergeTree` теперь есть дополнительная опция `ttl_only_drop_parts` (отключено по умолчанию), чтобы избежать частичной обрезки деталей, чтобы они полностью выпадали, когда все строки в детали истекли. [\#6191](https://github.com/ClickHouse/ClickHouse/pull/6191) ([Сергей Владыкин](https://github.com/svladykin)) -- Тип проверяет наличие заданных индексных функций. Бросьте исключение, если функция получила неправильный тип. Это устраняет тестирования с помощью утилиты. [\#6511](https://github.com/ClickHouse/ClickHouse/pull/6511) ([Никита Васильев](https://github.com/nikvas0)) - -#### Улучшение производительности {#performance-improvement-2} - -- Оптимизируйте запросы с помощью `ORDER BY expressions` пункт, где `expressions` есть совпадающий префикс с ключом сортировки в `MergeTree` таблицы. Эта оптимизация управляется с помощью `optimize_read_in_order` установка. [\#6054](https://github.com/ClickHouse/ClickHouse/pull/6054) [\#6629](https://github.com/ClickHouse/ClickHouse/pull/6629) ([Антон Попов](https://github.com/CurtizJ)) -- Позволяет использовать несколько резьб при загрузке и демонтаже деталей. [\#6372](https://github.com/ClickHouse/ClickHouse/issues/6372) [\#6074](https://github.com/ClickHouse/ClickHouse/issues/6074) [\#6438](https://github.com/ClickHouse/ClickHouse/pull/6438) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Реализован пакетный вариант обновления состояний агрегатной функции. Это может привести к повышению производительности. [\#6435](https://github.com/ClickHouse/ClickHouse/pull/6435) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- С помощью `FastOps` библиотека для функций `exp`, `log`, `sigmoid`, `tanh`. FastOps-это быстрая векторная математическая библиотека от Михаила Парахина (технический директор Яндекса). Улучшенная производительность `exp` и `log` функции более чем в 6 раз. Функция `exp` и `log` от `Float32` аргумент вернется `Float32` (в предыдущих версиях они всегда возвращаются `Float64`). Сейчас `exp(nan)` может вернуться `inf`. Результат работы `exp` и `log` функции могут быть не самым близким машинным представимым числом к истинному ответу. [\#6254](https://github.com/ClickHouse/ClickHouse/pull/6254) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) Используя вариант Данилы Кутенина, чтобы сделать fastops работающими [\#6317](https://github.com/ClickHouse/ClickHouse/pull/6317) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Отключить последовательную оптимизацию ключа для `UInt8/16`. [\#6298](https://github.com/ClickHouse/ClickHouse/pull/6298) [\#6701](https://github.com/ClickHouse/ClickHouse/pull/6701) ([акузм](https://github.com/akuzm)) -- Улучшенная производительность `simdjson` библиотека, избавившись от динамического распределения в `ParsedJson::Iterator`. [\#6479](https://github.com/ClickHouse/ClickHouse/pull/6479) ([Виталий Баранов](https://github.com/vitlibar)) -- Предаварийные страницы при выделении памяти с помощью `mmap()`. [\#6667](https://github.com/ClickHouse/ClickHouse/pull/6667) ([акузм](https://github.com/akuzm)) -- Исправлена ошибка производительности в `Decimal` сравнение. [\#6380](https://github.com/ClickHouse/ClickHouse/pull/6380) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-4} - -- Удалите компилятор (экземпляр шаблона времени выполнения), потому что мы выиграли его производительность. [\#6646](https://github.com/ClickHouse/ClickHouse/pull/6646) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлен тест производительности, чтобы показать ухудшение производительности в gcc-9 более изолированным способом. [\#6302](https://github.com/ClickHouse/ClickHouse/pull/6302) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена функция таблицы `numbers_mt`, который является многопоточным вариантом `numbers`. Обновленные тесты производительности с хэш-функциями. [\#6554](https://github.com/ClickHouse/ClickHouse/pull/6554) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Режим сравнения в `clickhouse-benchmark` [\#6220](https://github.com/ClickHouse/ClickHouse/issues/6220) [\#6343](https://github.com/ClickHouse/ClickHouse/pull/6343) ([dimarub2000](https://github.com/dimarub2000)) -- Самое лучшее усилие для печати следов стека. Также добавить `SIGPROF` в качестве отладочного сигнала для печати трассировки стека запущенного потока. [\#6529](https://github.com/ClickHouse/ClickHouse/pull/6529) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Каждая функция в своем собственном файле, часть 10. [\#6321](https://github.com/ClickHouse/ClickHouse/pull/6321) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Удалить два раза константный `TABLE_IS_READ_ONLY`. [\#6566](https://github.com/ClickHouse/ClickHouse/pull/6566) ([Филимонов](https://github.com/filimonov)) -- Изменения форматирования для `StringHashMap` PR [\#5417](https://github.com/ClickHouse/ClickHouse/issues/5417). [\#6700](https://github.com/ClickHouse/ClickHouse/pull/6700) ([акузм](https://github.com/akuzm)) -- Лучший подзапрос для создания соединения в `ExpressionAnalyzer`. [\#6824](https://github.com/ClickHouse/ClickHouse/pull/6824) ([Артем Зуйков](https://github.com/4ertus2)) -- Удалить ненужное состояние (найденных с помощью PVS-студия). [\#6775](https://github.com/ClickHouse/ClickHouse/pull/6775) ([акузм](https://github.com/akuzm)) -- Разделите интерфейс хэш-таблицы для `ReverseIndex`. [\#6672](https://github.com/ClickHouse/ClickHouse/pull/6672) ([акузм](https://github.com/akuzm)) -- Рефакторинг настроек. [\#6689](https://github.com/ClickHouse/ClickHouse/pull/6689) ([алесапин](https://github.com/alesapin)) -- Добавить комментарии для `set` индексные функции. [\#6319](https://github.com/ClickHouse/ClickHouse/pull/6319) ([Никита Васильев](https://github.com/nikvas0)) -- Увеличьте оценку OOM в отладочной версии на Linux. [\#6152](https://github.com/ClickHouse/ClickHouse/pull/6152) ([акузм](https://github.com/akuzm)) -- HDFS HA теперь работает в debug build. [\#6650](https://github.com/ClickHouse/ClickHouse/pull/6650) ([Вэйцин Сюй](https://github.com/weiqxu)) -- Добавлен тест на `transform_query_for_external_database`. [\#6388](https://github.com/ClickHouse/ClickHouse/pull/6388) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте тест для нескольких материализованных представлений для таблицы Кафки. [\#6509](https://github.com/ClickHouse/ClickHouse/pull/6509) ([Иван](https://github.com/abyss7)) -- Сделайте лучшую схему сборки. [\#6500](https://github.com/ClickHouse/ClickHouse/pull/6500) ([Иван](https://github.com/abyss7)) -- Исправлено `test_external_dictionaries` интеграция в случае, если она была выполнена под некорневым пользователем. [\#6507](https://github.com/ClickHouse/ClickHouse/pull/6507) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Ошибка воспроизводится, когда общий размер записанных пакетов превышает `DBMS_DEFAULT_BUFFER_SIZE`. [\#6204](https://github.com/ClickHouse/ClickHouse/pull/6204) ([Юрий Баранов](https://github.com/yurriy)) -- Добавлен тест для `RENAME` состояние гонки таблицы [\#6752](https://github.com/ClickHouse/ClickHouse/pull/6752) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте гонки данных по настройкам в `KILL QUERY`. [\#6753](https://github.com/ClickHouse/ClickHouse/pull/6753) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте интеграционный тест для обработки ошибок с помощью словаря кэша. [\#6755](https://github.com/ClickHouse/ClickHouse/pull/6755) ([Виталий Баранов](https://github.com/vitlibar)) -- Отключите синтаксический анализ объектных файлов ELF на Mac OS, потому что это не имеет никакого смысла. [\#6578](https://github.com/ClickHouse/ClickHouse/pull/6578) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Попытайтесь сделать генератор списка изменений лучше. [\#6327](https://github.com/ClickHouse/ClickHouse/pull/6327) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавление `-Wshadow` перейти к ССЗ. [\#6325](https://github.com/ClickHouse/ClickHouse/pull/6325) ([kreuzerkrieg](https://github.com/kreuzerkrieg)) -- Удален устаревший код для `mimalloc` поддержка. [\#6715](https://github.com/ClickHouse/ClickHouse/pull/6715) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `zlib-ng` определяет возможности x86 и сохраняет эту информацию в глобальных переменных. Это делается в вызове defalteInit, который может быть выполнен разными потоками одновременно. Чтобы избежать многопоточной записи, сделайте это при запуске библиотеки. [\#6141](https://github.com/ClickHouse/ClickHouse/pull/6141) ([акузм](https://github.com/akuzm)) -- Регрессионный тест на ошибку, которая в соединении была исправлена в [\#5192](https://github.com/ClickHouse/ClickHouse/issues/5192). [\#6147](https://github.com/ClickHouse/ClickHouse/pull/6147) ([Бахтиер Рузиев](https://github.com/theruziev)) -- Исправлен отчет MSan. [\#6144](https://github.com/ClickHouse/ClickHouse/pull/6144) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте хлопающий тест TTL. [\#6782](https://github.com/ClickHouse/ClickHouse/pull/6782) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена гонка ложных данных в `MergeTreeDataPart::is_frozen` поле. [\#6583](https://github.com/ClickHouse/ClickHouse/pull/6583) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлены тайм-ауты в тесте fuzz. В предыдущей версии ему удалось найти ложное зависание в запросе `SELECT * FROM numbers_mt(gccMurmurHash(''))`. [\#6582](https://github.com/ClickHouse/ClickHouse/pull/6582) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлены отладочные проверки для `static_cast` из колонн. [\#6581](https://github.com/ClickHouse/ClickHouse/pull/6581) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Поддержка Oracle Linux в официальных пакетах RPM. [\#6356](https://github.com/ClickHouse/ClickHouse/issues/6356) [\#6585](https://github.com/ClickHouse/ClickHouse/pull/6585) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Изменен JSON perftests с `once` к `loop` тип. [\#6536](https://github.com/ClickHouse/ClickHouse/pull/6536) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- `odbc-bridge.cpp` определяет `main()` поэтому он не должен быть включен в состав `clickhouse-lib`. [\#6538](https://github.com/ClickHouse/ClickHouse/pull/6538) ([Оривей Деш](https://github.com/orivej)) -- Тест на аварийное включение `FULL|RIGHT JOIN` с нулями в ключах правого стола. [\#6362](https://github.com/ClickHouse/ClickHouse/pull/6362) ([Артем Зуйков](https://github.com/4ertus2)) -- На всякий случай добавлен тест на ограничение по расширению псевдонимов. [\#6442](https://github.com/ClickHouse/ClickHouse/pull/6442) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Переключился с `boost::filesystem` к `std::filesystem` при необходимости. [\#6253](https://github.com/ClickHouse/ClickHouse/pull/6253) [\#6385](https://github.com/ClickHouse/ClickHouse/pull/6385) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлены пакеты RPM на веб-сайт. [\#6251](https://github.com/ClickHouse/ClickHouse/pull/6251) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте тест для фиксированного `Unknown identifier` исключение в `IN` раздел. [\#6708](https://github.com/ClickHouse/ClickHouse/pull/6708) ([Артем Зуйков](https://github.com/4ertus2)) -- Упрощать `shared_ptr_helper` потому что люди сталкиваются с трудностями понимания этого. [\#6675](https://github.com/ClickHouse/ClickHouse/pull/6675) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлены тесты производительности для исправленных кодеков Gorilla и DoubleDelta. [\#6179](https://github.com/ClickHouse/ClickHouse/pull/6179) ([Василий Немков](https://github.com/Enmk)) -- Разделите интеграционный тест `test_dictionaries` в 4 отдельных теста. [\#6776](https://github.com/ClickHouse/ClickHouse/pull/6776) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправить предупреждение PVS-Studio в `PipelineExecutor`. [\#6777](https://github.com/ClickHouse/ClickHouse/pull/6777) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Разрешить использовать `library` источник словаря с ASan. [\#6482](https://github.com/ClickHouse/ClickHouse/pull/6482) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена возможность генерировать список изменений из списка PR. [\#6350](https://github.com/ClickHouse/ClickHouse/pull/6350) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Заприте дверь `TinyLog` хранение при чтении. [\#6226](https://github.com/ClickHouse/ClickHouse/pull/6226) ([акузм](https://github.com/akuzm)) -- Проверить неработающие ссылки в ИЦ. [\#6634](https://github.com/ClickHouse/ClickHouse/pull/6634) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Увеличьте тайм-аут для «stack overflow» тест, потому что это может занять много времени в отладочной сборке. [\#6637](https://github.com/ClickHouse/ClickHouse/pull/6637) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена проверка на наличие двойных пробелов. [\#6643](https://github.com/ClickHouse/ClickHouse/pull/6643) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Чинить `new/delete` отслеживание памяти при сборке с помощью дезинфицирующих средств. Слежка не совсем ясна. Это только предотвращает исключения ограничения памяти в тестах. [\#6450](https://github.com/ClickHouse/ClickHouse/pull/6450) ([Артем Зуйков](https://github.com/4ertus2)) -- Включите обратную проверку неопределенных символов при связывании. [\#6453](https://github.com/ClickHouse/ClickHouse/pull/6453) ([Иван](https://github.com/abyss7)) -- Избежать восстановления `hyperscan` каждый день. [\#6307](https://github.com/ClickHouse/ClickHouse/pull/6307) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен отчет утилиты в `ProtobufWriter`. [\#6163](https://github.com/ClickHouse/ClickHouse/pull/6163) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Не разрешайте использовать query profiler с дезинфицирующими средствами, потому что он не совместим. [\#6769](https://github.com/ClickHouse/ClickHouse/pull/6769) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте тест для перезагрузки словаря после сбоя по таймеру. [\#6114](https://github.com/ClickHouse/ClickHouse/pull/6114) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправить несоответствие `PipelineExecutor::prepareProcessor` тип аргумента. [\#6494](https://github.com/ClickHouse/ClickHouse/pull/6494) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Добавлен тест на плохие URI. [\#6493](https://github.com/ClickHouse/ClickHouse/pull/6493) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлены дополнительные проверки для `CAST` функция. Это должно получить больше информации о неисправности сегментации в нечетком тесте. [\#6346](https://github.com/ClickHouse/ClickHouse/pull/6346) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Добавлен `gcc-9` поддержка для `docker/builder` контейнер, который создает образ локально. [\#6333](https://github.com/ClickHouse/ClickHouse/pull/6333) ([Глеб Новиков](https://github.com/NanoBjorn)) -- Тест для первичного ключа с помощью `LowCardinality(String)`. [\#5044](https://github.com/ClickHouse/ClickHouse/issues/5044) [\#6219](https://github.com/ClickHouse/ClickHouse/pull/6219) ([dimarub2000](https://github.com/dimarub2000)) -- Исправлены тесты, связанные с медленной печатью трассировок стека. [\#6315](https://github.com/ClickHouse/ClickHouse/pull/6315) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте тестовый случай для аварийного входа `groupUniqArray` фиксированной в [\#6029](https://github.com/ClickHouse/ClickHouse/pull/6029). [\#4402](https://github.com/ClickHouse/ClickHouse/issues/4402) [\#6129](https://github.com/ClickHouse/ClickHouse/pull/6129) ([акузм](https://github.com/akuzm)) -- Фиксированные индексы мутаций тестов. [\#6645](https://github.com/ClickHouse/ClickHouse/pull/6645) ([Никита Васильев](https://github.com/nikvas0)) -- В тесте производительности не считывайте журнал запросов для запросов, которые мы не выполняли. [\#6427](https://github.com/ClickHouse/ClickHouse/pull/6427) ([акузм](https://github.com/akuzm)) -- Материализованное представление теперь может быть создано с любыми типами низкой мощности независимо от настройки о подозрительных типах низкой мощности. [\#6428](https://github.com/ClickHouse/ClickHouse/pull/6428) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Обновленные тесты для `send_logs_level` установка. [\#6207](https://github.com/ClickHouse/ClickHouse/pull/6207) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена сборка под gcc-8.2. [\#6196](https://github.com/ClickHouse/ClickHouse/pull/6196) ([Макс Ахмедов](https://github.com/zlobober)) -- Исправлена сборка с помощью внутреннего libc++. [\#6724](https://github.com/ClickHouse/ClickHouse/pull/6724) ([Иван](https://github.com/abyss7)) -- Исправлена общая сборка с помощью `rdkafka` библиотека [\#6101](https://github.com/ClickHouse/ClickHouse/pull/6101) ([Иван](https://github.com/abyss7)) -- Исправления для сборки Mac OS (неполные). [\#6390](https://github.com/ClickHouse/ClickHouse/pull/6390) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) [\#6429](https://github.com/ClickHouse/ClickHouse/pull/6429) ([Алексей-Зайцев](https://github.com/alex-zaitsev)) -- Чинить «splitted» строить. [\#6618](https://github.com/ClickHouse/ClickHouse/pull/6618) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Другие исправления сборки: [\#6186](https://github.com/ClickHouse/ClickHouse/pull/6186) ([Амос Птица](https://github.com/amosbird)) [\#6486](https://github.com/ClickHouse/ClickHouse/pull/6486) [\#6348](https://github.com/ClickHouse/ClickHouse/pull/6348) ([vxider](https://github.com/Vxider)) [\#6744](https://github.com/ClickHouse/ClickHouse/pull/6744) ([Иван](https://github.com/abyss7)) [\#6016](https://github.com/ClickHouse/ClickHouse/pull/6016) [\#6421](https://github.com/ClickHouse/ClickHouse/pull/6421) [\#6491](https://github.com/ClickHouse/ClickHouse/pull/6491) ([proller](https://github.com/proller)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-3} - -- Удалены редко используемые функции таблица `catBoostPool` и хранение `CatBoostPool`. Если вы использовали эту функцию таблицы, пожалуйста, напишите письмо по адресу `clickhouse-feedback@yandex-team.com`. Обратите внимание, что интеграция CatBoost остается и будет поддерживаться. [\#6279](https://github.com/ClickHouse/ClickHouse/pull/6279) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Отключать `ANY RIGHT JOIN` и `ANY FULL JOIN` по умолчанию. Набор `any_join_distinct_right_table_keys` настройка для их включения. [\#5126](https://github.com/ClickHouse/ClickHouse/issues/5126) [\#6351](https://github.com/ClickHouse/ClickHouse/pull/6351) ([Артем Зуйков](https://github.com/4ertus2)) - -## ClickHouse релиз 19.13 {#clickhouse-release-19-13} - -### ClickHouse релиз 19.13.6.51, 2019-10-02 {#clickhouse-release-19-13-6-51-2019-10-02} - -#### Исправление ошибок {#bug-fix-9} - -- Этот релиз также содержит все исправления ошибок от 19.11.12.69. - -### ClickHouse релиз 19.13.5.44, 2019-09-20 {#clickhouse-release-19-13-5-44-2019-09-20} - -#### Исправление ошибок {#bug-fix-10} - -- Этот релиз также содержит все исправления ошибок от 19.14.6.12. -- Исправлено возможное несогласованное состояние таблицы при выполнении `DROP` запрос для реплицированной таблицы в то время как zookeeper недоступен. [\#6045](https://github.com/ClickHouse/ClickHouse/issues/6045) [\#6413](https://github.com/ClickHouse/ClickHouse/pull/6413) ([Никита Михайлов](https://github.com/nikitamikhaylov)) -- Исправление для гонки данных в StorageMerge [\#6717](https://github.com/ClickHouse/ClickHouse/pull/6717) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, появившаяся в профайлером запрос, который приводит к бесконечному приему от гнезда. [\#6386](https://github.com/ClickHouse/ClickHouse/pull/6386) ([алесапин](https://github.com/alesapin)) -- Исправлена чрезмерная загрузка процессора во время выполнения `JSONExtractRaw` функция над логическим значением. [\#6208](https://github.com/ClickHouse/ClickHouse/pull/6208) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправляет регрессию при нажатии на материализованный вид. [\#6415](https://github.com/ClickHouse/ClickHouse/pull/6415) ([Иван](https://github.com/abyss7)) -- Табличная функция `url` если бы эта уязвимость позволяла злоумышленнику вводить произвольные HTTP-заголовки в запрос. Эта проблема была обнаружена [Никита Тихомиров](https://github.com/NSTikhomirov). [\#6466](https://github.com/ClickHouse/ClickHouse/pull/6466) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлять бесполезно `AST` проверьте установленный индекс. [\#6510](https://github.com/ClickHouse/ClickHouse/issues/6510) [\#6651](https://github.com/ClickHouse/ClickHouse/pull/6651) ([Никита Васильев](https://github.com/nikvas0)) -- Исправлен парсинг данных `AggregateFunction` значения, встроенные в запрос. [\#6575](https://github.com/ClickHouse/ClickHouse/issues/6575) [\#6773](https://github.com/ClickHouse/ClickHouse/pull/6773) ([Zhichang Ю](https://github.com/yuzhichang)) -- Исправлено неправильное поведение `trim` функции семьи. [\#6647](https://github.com/ClickHouse/ClickHouse/pull/6647) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.13.4.32, 2019-09-10 {#clickhouse-release-19-13-4-32-2019-09-10} - -#### Исправление ошибок {#bug-fix-11} - -- Этот релиз также содержит все исправления безопасности ошибок от 19.11.9.52 и 19.11.10.54. -- Фиксированная гонка данных в `system.parts` стол и `ALTER` запрос. [\#6245](https://github.com/ClickHouse/ClickHouse/issues/6245) [\#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено несовпадение заголовков в потоках, произошедшее при чтении из пустой распределенной таблицы с sample и prewhere. [\#6167](https://github.com/ClickHouse/ClickHouse/issues/6167) ([Лисян Цянь](https://github.com/fancyqlx)) [\#6823](https://github.com/ClickHouse/ClickHouse/pull/6823) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена ошибка при использовании `IN` предложение с подзапросом с кортежем. [\#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [\#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([тавплубикс](https://github.com/tavplubix)) -- Исправьте случай с одинаковыми именами столбцов в `GLOBAL JOIN ON` раздел. [\#6181](https://github.com/ClickHouse/ClickHouse/pull/6181) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка при приведении типов к `Decimal` это не поддерживает его. Вместо этого бросьте исключение. [\#6297](https://github.com/ClickHouse/ClickHouse/pull/6297) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлен сбой в работе `extractAll()` функция. [\#6644](https://github.com/ClickHouse/ClickHouse/pull/6644) ([Артем Зуйков](https://github.com/4ertus2)) -- Преобразование запроса для `MySQL`, `ODBC`, `JDBC` функции таблицы теперь работают правильно для `SELECT WHERE` запросы с несколькими `AND` выражения. [\#6381](https://github.com/ClickHouse/ClickHouse/issues/6381) [\#6676](https://github.com/ClickHouse/ClickHouse/pull/6676) ([dimarub2000](https://github.com/dimarub2000)) -- Добавлены предыдущие проверки деклараций для интеграции MySQL 8. [\#6569](https://github.com/ClickHouse/ClickHouse/pull/6569) ([Рафаэль Давид Тиноко](https://github.com/rafaeldtinoco)) - -#### Исправление безопасности {#security-fix-1} - -- Исправлены две уязвимости в кодеках на этапе декомпрессии (злоумышленник может сфабриковать сжатые данные, что приведет к переполнению буфера при декомпрессии). [\#6670](https://github.com/ClickHouse/ClickHouse/pull/6670) ([Артем Зуйков](https://github.com/4ertus2)) - -### ClickHouse релиз 19.13.3.26, 2019-08-22 {#clickhouse-release-19-13-3-26-2019-08-22} - -#### Исправление ошибок {#bug-fix-12} - -- Чинить `ALTER TABLE ... UPDATE` запрос для таблиц с `enable_mixed_granularity_parts=1`. [\#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([алесапин](https://github.com/alesapin)) -- Исправьте NPE при использовании предложения IN с подзапросом с кортежем. [\#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [\#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена проблема, что если устаревшая реплика становится живой, она все еще может содержать части данных, которые были удалены разделом DROP. [\#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [\#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена проблема с синтаксическим анализом CSV [\#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [\#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена гонка данных в системе.таблица деталей и запрос ALTER. Это исправление [\#6245](https://github.com/ClickHouse/ClickHouse/issues/6245). [\#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен неправильный код в мутациях, которые могут привести к повреждению памяти. Исправлена обработка выхода онлайн / оффлайн чтения адреса `0x14c0` это может произойти из-за совпадения `DROP TABLE` и `SELECT` от `system.parts` или `system.parts_columns`. Фиксированное состояние расы при подготовке запросов мутаций. Исправлена тупиковая ситуация, вызванная `OPTIMIZE` реплицированных таблиц и параллельных операций модификации, таких как ALTERs. [\#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена возможная потеря данных после этого `ALTER DELETE` запрос на таблицу с пропущенным индексом. [\#6224](https://github.com/ClickHouse/ClickHouse/issues/6224) [\#6282](https://github.com/ClickHouse/ClickHouse/pull/6282) ([Никита Васильев](https://github.com/nikvas0)) - -#### Исправление безопасности {#security-fix-2} - -- Если злоумышленник имеет доступ на запись в ZooKeeper и может запустить пользовательский сервер, доступный из сети, где работает ClickHouse, он может создать пользовательский вредоносный сервер, который будет действовать как реплика ClickHouse, и зарегистрировать его в ZooKeeper. Когда другая реплика будет извлекать часть данных из вредоносной реплики, она может заставить clickhouse-сервер выполнить запись в произвольный путь на файловой системе. Найдено Эльдаром Зайтовым, специалистом по информационной безопасности Яндекса. [\#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.13.2.19, 2019-08-14 {#clickhouse-release-19-13-2-19-2019-08-14} - -#### Новая функция {#new-feature-5} - -- Профилировщик выборки на уровне запроса. [Пример](https://gist.github.com/alexey-milovidov/92758583dd41c24c360fdb8d6a4da194). [\#4247](https://github.com/ClickHouse/ClickHouse/issues/4247) ([лаплаб](https://github.com/laplab)) [\#6124](https://github.com/ClickHouse/ClickHouse/pull/6124) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) [\#6250](https://github.com/ClickHouse/ClickHouse/pull/6250) [\#6283](https://github.com/ClickHouse/ClickHouse/pull/6283) [\#6386](https://github.com/ClickHouse/ClickHouse/pull/6386) -- Разрешить указывать список столбцов с помощью `COLUMNS('regexp')` выражение, которое работает как более сложный вариант `*` звездочка. [\#5951](https://github.com/ClickHouse/ClickHouse/pull/5951) ([мфриденталь](https://github.com/mfridental)), ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `CREATE TABLE AS table_function()` теперь возможный [\#6057](https://github.com/ClickHouse/ClickHouse/pull/6057) ([dimarub2000](https://github.com/dimarub2000)) -- Adam optimizer для стохастического градиентного спуска используется по умолчанию в `stochasticLinearRegression()` и `stochasticLogisticRegression()` агрегатные функции, потому что он показывает хорошее качество почти без какой-либо настройки. [\#6000](https://github.com/ClickHouse/ClickHouse/pull/6000) ([Quid37](https://github.com/Quid37)) -- Added functions for working with the сustom week number [\#5212](https://github.com/ClickHouse/ClickHouse/pull/5212) ([Энди Янг](https://github.com/andyyzh)) -- `RENAME` запросы теперь работают со всеми хранилищами. [\#5953](https://github.com/ClickHouse/ClickHouse/pull/5953) ([Иван](https://github.com/abyss7)) -- Теперь клиент получает журналы с сервера с любым желаемым уровнем настройки `send_logs_level` независимо от уровня журнала, указанного в настройках сервера. [\#5964](https://github.com/ClickHouse/ClickHouse/pull/5964) ([Никита Михайлов](https://github.com/nikitamikhaylov)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-4} - -- Установка `input_format_defaults_for_omitted_fields` по умолчанию он включен. Вставки в распределенные таблицы требуют, чтобы этот параметр был одинаковым в кластере (его необходимо установить перед развертыванием обновления). Он позволяет вычислять сложные выражения по умолчанию для пропущенных полей в `JSONEachRow` и `CSV*` форматы. Это должно быть ожидаемое поведение, но может привести к незначительной разнице в производительности. [\#6043](https://github.com/ClickHouse/ClickHouse/pull/6043) ([Артем Зуйков](https://github.com/4ertus2)), [\#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([акузм](https://github.com/akuzm)) - -#### Экспериментальная возможность {#experimental-features} - -- Новый конвейер обработки запросов. Воспользуйся `experimental_use_processors=1` возможность включить его. Используй для своих собственных проблем. [\#4914](https://github.com/ClickHouse/ClickHouse/pull/4914) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -#### Исправление ошибок {#bug-fix-13} - -- Интеграция Кафки была исправлена в этой версии. -- Исправлено `DoubleDelta` кодирование данных `Int64` для больших `DoubleDelta` значения, улучшенные `DoubleDelta` кодирование случайных данных для `Int32`. [\#5998](https://github.com/ClickHouse/ClickHouse/pull/5998) ([Василий Немков](https://github.com/Enmk)) -- Исправлена завышенная оценка стоимости `max_rows_to_read` если установка `merge_tree_uniform_read_distribution` имеет значение 0. [\#6019](https://github.com/ClickHouse/ClickHouse/pull/6019) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшение {#improvement-4} - -- Создает исключение, если `config.d` файл не имеет соответствующего корневого элемента в качестве файла конфигурации [\#6123](https://github.com/ClickHouse/ClickHouse/pull/6123) ([dimarub2000](https://github.com/dimarub2000)) - -#### Улучшение производительности {#performance-improvement-3} - -- Оптимизировать `count()`. Теперь он использует самый маленький столбец (если это возможно). [\#6028](https://github.com/ClickHouse/ClickHouse/pull/6028) ([Амос Птица](https://github.com/amosbird)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-5} - -- Отчет об использовании памяти в тестах производительности. [\#5899](https://github.com/ClickHouse/ClickHouse/pull/5899) ([акузм](https://github.com/akuzm)) -- Исправление построения с внешним `libcxx` [\#6010](https://github.com/ClickHouse/ClickHouse/pull/6010) ([Иван](https://github.com/abyss7)) -- Исправить общую сборку с помощью `rdkafka` библиотека [\#6101](https://github.com/ClickHouse/ClickHouse/pull/6101) ([Иван](https://github.com/abyss7)) - -## ClickHouse релиз 19.11 {#clickhouse-release-19-11} - -### ClickHouse релиз 19.11.13.74, 2019-11-01 {#clickhouse-release-19-11-13-74-2019-11-01} - -#### Исправление ошибок {#bug-fix-14} - -- Исправлена редкая авария в системе `ALTER MODIFY COLUMN` и вертикальное слияние, когда одна из Объединенных/измененных частей пуста (0 строк). [\#6780](https://github.com/ClickHouse/ClickHouse/pull/6780) ([алесапин](https://github.com/alesapin)) -- Ручное обновление данных `SIMDJSON`. Это устраняет возможные наводнения в stderr файлы с поддельными диагностическими сообщениями в формате JSON. [\#7548](https://github.com/ClickHouse/ClickHouse/pull/7548) ([Александр казаков](https://github.com/Akazz)) -- Исправлена ошибка с `mrk` расширение файла для мутаций ([алесапин](https://github.com/alesapin)) - -### ClickHouse релиз 19.11.12.69, 2019-10-02 {#clickhouse-release-19-11-12-69-2019-10-02} - -#### Исправление ошибок {#bug-fix-15} - -- Исправлено снижение производительности индексного анализа по сложным ключам на больших таблицах. Это исправление [\#6924](https://github.com/ClickHouse/ClickHouse/issues/6924). [\#7075](https://github.com/ClickHouse/ClickHouse/pull/7075) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте редких SIGSEGV при отправке данных в таблицах с распределенным движком (`Failed to send batch: file with index XXXXX is absent`). [\#7032](https://github.com/ClickHouse/ClickHouse/pull/7032) ([Азат Хужин](https://github.com/azat)) -- Чинить `Unknown identifier` с несколькими соединениями. Это исправление [\#5254](https://github.com/ClickHouse/ClickHouse/issues/5254). [\#7022](https://github.com/ClickHouse/ClickHouse/pull/7022) ([Артем Зуйков](https://github.com/4ertus2)) - -### ClickHouse релиз 19.11.11.57, 2019-09-13 {#clickhouse-release-19-11-11-57-2019-09-13} - -- Исправлена логическая ошибка, вызывающая segfaults при выборе из Кафки пустой темы. [\#6902](https://github.com/ClickHouse/ClickHouse/issues/6902) [\#6909](https://github.com/ClickHouse/ClickHouse/pull/6909) ([Иван](https://github.com/abyss7)) -- Исправление для функции `АrrayEnumerateUniqRanked` с пустыми массивами в парах. [\#6928](https://github.com/ClickHouse/ClickHouse/pull/6928) ([proller](https://github.com/proller)) - -### ClickHouse релиз 19.11.10.54, 2019-09-10 {#clickhouse-release-19-11-10-54-2019-09-10} - -#### Исправление ошибок {#bug-fix-16} - -- Сохраняйте смещения для сообщений Кафки вручную, чтобы иметь возможность фиксировать их все сразу для всех разделов. Исправляет потенциальное дублирование в «one consumer - many partitions» сценарий. [\#6872](https://github.com/ClickHouse/ClickHouse/pull/6872) ([Иван](https://github.com/abyss7)) - -### ClickHouse релиз 19.11.9.52, 2019-09-6 {#clickhouse-release-19-11-9-52-2019-09-6} - -- Улучшена обработка ошибок в словарях кэша. [\#6737](https://github.com/ClickHouse/ClickHouse/pull/6737) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлена ошибка в функции `arrayEnumerateUniqRanked`. [\#6779](https://github.com/ClickHouse/ClickHouse/pull/6779) ([proller](https://github.com/proller)) -- Чинить `JSONExtract` функция при извлечении `Tuple` из JSON. [\#6718](https://github.com/ClickHouse/ClickHouse/pull/6718) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлена возможная потеря данных после этого `ALTER DELETE` запрос на таблицу с пропущенным индексом. [\#6224](https://github.com/ClickHouse/ClickHouse/issues/6224) [\#6282](https://github.com/ClickHouse/ClickHouse/pull/6282) ([Никита Васильев](https://github.com/nikvas0)) -- Исправлена проверка производительности. [\#6392](https://github.com/ClickHouse/ClickHouse/pull/6392) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Паркет: исправьте чтение логических столбцов. [\#6579](https://github.com/ClickHouse/ClickHouse/pull/6579) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено неправильное поведение `nullIf` функция для постоянных аргументов. [\#6518](https://github.com/ClickHouse/ClickHouse/pull/6518) ([Гийом Тассери](https://github.com/YiuRULE)) [\#6580](https://github.com/ClickHouse/ClickHouse/pull/6580) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена проблема дублирования сообщений Кафки при обычном перезапуске сервера. [\#6597](https://github.com/ClickHouse/ClickHouse/pull/6597) ([Иван](https://github.com/abyss7)) -- Исправлена ошибка, когда долго `ALTER UPDATE` или `ALTER DELETE` может помешать запуску регулярных слияний. Предотвратите выполнение мутаций, если нет достаточного количества свободных потоков. [\#6502](https://github.com/ClickHouse/ClickHouse/issues/6502) [\#6617](https://github.com/ClickHouse/ClickHouse/pull/6617) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена ошибка при обработке данных «timezone» в файле конфигурации сервера. [\#6709](https://github.com/ClickHouse/ClickHouse/pull/6709) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте тесты Кафки. [\#6805](https://github.com/ClickHouse/ClickHouse/pull/6805) ([Иван](https://github.com/abyss7)) - -#### Исправление безопасности {#security-fix-3} - -- Если злоумышленник имеет доступ на запись в ZooKeeper и может запустить пользовательский сервер, доступный из сети, где работает ClickHouse, он может создать пользовательский вредоносный сервер, который будет действовать как реплика ClickHouse, и зарегистрировать его в ZooKeeper. Когда другая реплика будет извлекать часть данных из вредоносной реплики, она может заставить clickhouse-сервер выполнить запись в произвольный путь на файловой системе. Найдено Эльдаром Зайтовым, специалистом по информационной безопасности Яндекса. [\#6247](https://github.com/ClickHouse/ClickHouse/pull/6247) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.11.8.46, 2019-08-22 {#clickhouse-release-19-11-8-46-2019-08-22} - -#### Исправление ошибок {#bug-fix-17} - -- Чинить `ALTER TABLE ... UPDATE` запрос для таблиц с `enable_mixed_granularity_parts=1`. [\#6543](https://github.com/ClickHouse/ClickHouse/pull/6543) ([алесапин](https://github.com/alesapin)) -- Исправьте NPE при использовании предложения IN с подзапросом с кортежем. [\#6125](https://github.com/ClickHouse/ClickHouse/issues/6125) [\#6550](https://github.com/ClickHouse/ClickHouse/pull/6550) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена проблема, что если устаревшая реплика становится живой, она все еще может содержать части данных, которые были удалены разделом DROP. [\#6522](https://github.com/ClickHouse/ClickHouse/issues/6522) [\#6523](https://github.com/ClickHouse/ClickHouse/pull/6523) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена проблема с синтаксическим анализом CSV [\#6426](https://github.com/ClickHouse/ClickHouse/issues/6426) [\#6559](https://github.com/ClickHouse/ClickHouse/pull/6559) ([тавплубикс](https://github.com/tavplubix)) -- Исправлена гонка данных в системе.таблица деталей и запрос ALTER. Это исправление [\#6245](https://github.com/ClickHouse/ClickHouse/issues/6245). [\#6513](https://github.com/ClickHouse/ClickHouse/pull/6513) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен неправильный код в мутациях, которые могут привести к повреждению памяти. Исправлена обработка выхода онлайн / оффлайн чтения адреса `0x14c0` это может произойти из-за совпадения `DROP TABLE` и `SELECT` от `system.parts` или `system.parts_columns`. Фиксированное состояние расы при подготовке запросов мутаций. Исправлена тупиковая ситуация, вызванная `OPTIMIZE` реплицированных таблиц и параллельных операций модификации, таких как ALTERs. [\#6514](https://github.com/ClickHouse/ClickHouse/pull/6514) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.11.7.40, 2019-08-14 {#clickhouse-release-19-11-7-40-2019-08-14} - -#### Исправление ошибок {#bug-fix-18} - -- Интеграция Кафки была исправлена в этой версии. -- Исправлена обработка выхода онлайн / оффлайн при использовании `arrayReduce` для постоянных споров. [\#6326](https://github.com/ClickHouse/ClickHouse/pull/6326) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено `toFloat()` монотонность. [\#6374](https://github.com/ClickHouse/ClickHouse/pull/6374) ([dimarub2000](https://github.com/dimarub2000)) -- Исправлена обработка выхода онлайн / оффлайн с поддержкой `optimize_skip_unused_shards` и пропал ключ от осколков. [\#6384](https://github.com/ClickHouse/ClickHouse/pull/6384) ([CurtizJ](https://github.com/CurtizJ)) -- Фиксированная логика работы `arrayEnumerateUniqRanked` функция. [\#6423](https://github.com/ClickHouse/ClickHouse/pull/6423) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Удалено дополнительное подробное ведение журнала из обработчика MySQL. [\#6389](https://github.com/ClickHouse/ClickHouse/pull/6389) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить неправильное поведение и возможные вылеты в `topK` и `topKWeighted` агрегированные функции. [\#6404](https://github.com/ClickHouse/ClickHouse/pull/6404) ([CurtizJ](https://github.com/CurtizJ)) -- Не выставляйте виртуальные столбцы в `system.columns` стол. Это необходимо для обратной совместимости. [\#6406](https://github.com/ClickHouse/ClickHouse/pull/6406) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка с выделением памяти для строковых полей в сложном словаре кэша ключей. [\#6447](https://github.com/ClickHouse/ClickHouse/pull/6447) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка с включением адаптивной детализации при создании новой реплики для `Replicated*MergeTree` стол. [\#6452](https://github.com/ClickHouse/ClickHouse/pull/6452) ([алесапин](https://github.com/alesapin)) -- Исправьте бесконечный цикл при чтении сообщений Кафки. [\#6354](https://github.com/ClickHouse/ClickHouse/pull/6354) ([abyss7](https://github.com/abyss7)) -- Исправлена возможность готовых запрос, чтобы вызвать падение сервера из-за переполнения стека в парсер SQL и возможность переполнения стека в `Merge` и `Distributed` таблицы [\#6433](https://github.com/ClickHouse/ClickHouse/pull/6433) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка кодирования горилл на небольших последовательностях. [\#6444](https://github.com/ClickHouse/ClickHouse/pull/6444) ([Enmk](https://github.com/Enmk)) - -#### Улучшение {#improvement-5} - -- Позволяет пользователю переопределить `poll_interval` и `idle_connection_timeout` настройки при подключении. [\#6230](https://github.com/ClickHouse/ClickHouse/pull/6230) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.11.5.28, 2019-08-05 {#clickhouse-release-19-11-5-28-2019-08-05} - -#### Исправление ошибок {#bug-fix-19} - -- Исправлена возможность зависания запросов при перегрузке сервера. [\#6301](https://github.com/ClickHouse/ClickHouse/pull/6301) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте FPE в функции yandexConsistentHash. Это исправление [\#6304](https://github.com/ClickHouse/ClickHouse/issues/6304). [\#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка в преобразовании `LowCardinality` напечатать `AggregateFunctionFactory`. Это исправление [\#6257](https://github.com/ClickHouse/ClickHouse/issues/6257). [\#6281](https://github.com/ClickHouse/ClickHouse/pull/6281) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправьте синтаксический анализ `bool` настройки от `true` и `false` строки в файлах конфигурации. [\#6278](https://github.com/ClickHouse/ClickHouse/pull/6278) ([алесапин](https://github.com/alesapin)) -- Исправлена редкая ошибка с несовместимыми заголовками потока в запросах к `Distributed` стол `MergeTree` таблица, когда часть `WHERE` движется к `PREWHERE`. [\#6236](https://github.com/ClickHouse/ClickHouse/pull/6236) ([алесапин](https://github.com/alesapin)) -- Исправлено переполнение при целочисленном делении знакового типа на беззнаковый. Это исправление [\#6214](https://github.com/ClickHouse/ClickHouse/issues/6214). [\#6233](https://github.com/ClickHouse/ClickHouse/pull/6233) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-5} - -- `Kafka` все еще сломанный. - -### ClickHouse релиз 19.11.4.24, 2019-08-01 {#clickhouse-release-19-11-4-24-2019-08-01} - -#### Исправление ошибок {#bug-fix-20} - -- Исправлена ошибка с написанием вторичных индексных меток с адаптивной детализацией. [\#6126](https://github.com/ClickHouse/ClickHouse/pull/6126) ([алесапин](https://github.com/alesapin)) -- Чинить `WITH ROLLUP` и `WITH CUBE` модификаторы `GROUP BY` с двухуровневой агрегацией. [\#6225](https://github.com/ClickHouse/ClickHouse/pull/6225) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлено зависание `JSONExtractRaw` функция. Исправлено [\#6195](https://github.com/ClickHouse/ClickHouse/issues/6195) [\#6198](https://github.com/ClickHouse/ClickHouse/pull/6198) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка segfault в ExternalLoader:: reloadOutdated (). [\#6082](https://github.com/ClickHouse/ClickHouse/pull/6082) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлен случай, когда сервер может закрыть прослушивающие сокеты, но не выключаться и продолжать обслуживать оставшиеся запросы. В конечном итоге вы можете получить два запущенных процесса clickhouse-server. Иногда сервер может выдать ошибку `bad_function_call` для остальных запросов. [\#6231](https://github.com/ClickHouse/ClickHouse/pull/6231) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено бесполезное и некорректное условие на поле update для начальной загрузки внешних словарей через ODBC, MySQL, ClickHouse и HTTP. Это исправление [\#6069](https://github.com/ClickHouse/ClickHouse/issues/6069) [\#6083](https://github.com/ClickHouse/ClickHouse/pull/6083) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено неуместное исключение в приведении `LowCardinality(Nullable)` to not-Nullable column in case if it doesn't contain Nulls (e.g. in query like `SELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String)`. [\#6094](https://github.com/ClickHouse/ClickHouse/issues/6094) [\#6119](https://github.com/ClickHouse/ClickHouse/pull/6119) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Зафиксировать недетерминированный результат «uniq» агрегатная функция в крайне редких случаях. Ошибка присутствовала во всех версиях ClickHouse. [\#6058](https://github.com/ClickHouse/ClickHouse/pull/6058) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Обработка выхода онлайн / оффлайн, когда мы немного завышены запись на функцию `IPv6CIDRToRange`. [\#6068](https://github.com/ClickHouse/ClickHouse/pull/6068) ([Гийом Тассери](https://github.com/YiuRULE)) -- Исправлена небольшая утечка памяти, когда сервер выбрасывает много исключений из многих различных контекстов. [\#6144](https://github.com/ClickHouse/ClickHouse/pull/6144) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте ситуацию, когда потребитель сделал паузу перед подпиской и не возобновил ее после этого. [\#6075](https://github.com/ClickHouse/ClickHouse/pull/6075) ([Иван](https://github.com/abyss7)) Обратите внимание, что Кафка разбит в этой версии. -- Очистка буфера данных Кафки от предыдущей операции чтения, которая была завершена с ошибкой [\#6026](https://github.com/ClickHouse/ClickHouse/pull/6026) ([Николай](https://github.com/bopohaa)) Обратите внимание, что Кафка разбит в этой версии. -- С `StorageMergeTree::background_task_handle` инициализируется в `startup()` то `MergeTreeBlockOutputStream::write()` возможно, вы попытаетесь использовать его перед инициализацией. Просто проверьте, инициализирован ли он. [\#6080](https://github.com/ClickHouse/ClickHouse/pull/6080) ([Иван](https://github.com/abyss7)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-6} - -- Добавлено официальное лицо `rpm` пакеты. [\#5740](https://github.com/ClickHouse/ClickHouse/pull/5740) ([proller](https://github.com/proller)) ([алесапин](https://github.com/alesapin)) -- Добавьте возможность строить `.rpm` и `.tgz` пакеты с `packager` скрипт. [\#5769](https://github.com/ClickHouse/ClickHouse/pull/5769) ([алесапин](https://github.com/alesapin)) -- Исправления для «Arcadia» система сборки. [\#6223](https://github.com/ClickHouse/ClickHouse/pull/6223) ([proller](https://github.com/proller)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-6} - -- `Kafka` сломан в этой версии. - -### ClickHouse релиз 19.11.3.11, 2019-07-18 {#clickhouse-release-19-11-3-11-2019-07-18} - -#### Новая функция {#new-feature-6} - -- Добавлена поддержка подготовленных заявлений. [\#5331](https://github.com/ClickHouse/ClickHouse/pull/5331/) ([Александр](https://github.com/sanych73)) [\#5630](https://github.com/ClickHouse/ClickHouse/pull/5630) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `DoubleDelta` и `Gorilla` кодеки столбцов [\#5600](https://github.com/ClickHouse/ClickHouse/pull/5600) ([Василий Немков](https://github.com/Enmk)) -- Добавлен `os_thread_priority` настройка, позволяющая контролировать «nice» значение потоков обработки запросов, используемых ОС для настройки приоритета динамического планирования. Для этого требуется `CAP_SYS_NICE` возможности для работы. Это орудия труда [\#5858](https://github.com/ClickHouse/ClickHouse/issues/5858) [\#5909](https://github.com/ClickHouse/ClickHouse/pull/5909) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Осуществлять `_topic`, `_offset`, `_key` колонны для двигателя Кафки [\#5382](https://github.com/ClickHouse/ClickHouse/pull/5382) ([Иван](https://github.com/abyss7)) Обратите внимание, что Кафка разбит в этой версии. -- Добавить комбинатор агрегатных функций `-Resample` [\#5590](https://github.com/ClickHouse/ClickHouse/pull/5590) ([hcz](https://github.com/hczhcz)) -- Статистическая функция `groupArrayMovingSum(win_size)(x)` и `groupArrayMovingAvg(win_size)(x)`, которые вычисляют движущуюся сумму / среднее значение с ограничением размера окна или без него. [\#5595](https://github.com/ClickHouse/ClickHouse/pull/5595) ([inv2004](https://github.com/inv2004)) -- Добавить синоним `arrayFlatten` \<-\> `flatten` [\#5764](https://github.com/ClickHouse/ClickHouse/pull/5764) ([hcz](https://github.com/hczhcz)) -- Функция сделала из intergate Н3 `geoToH3` от Uber. [\#4724](https://github.com/ClickHouse/ClickHouse/pull/4724) ([Ремен Иван](https://github.com/BHYCHIK)) [\#5805](https://github.com/ClickHouse/ClickHouse/pull/5805) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Исправление ошибок {#bug-fix-21} - -- Реализуйте кэш DNS с асинхронным обновлением. Отдельный поток разрешает все хосты и обновляет кэш DNS с периодом (настройка `dns_cache_update_period`). Это должно помочь, когда ip хостов часто меняется. [\#5857](https://github.com/ClickHouse/ClickHouse/pull/5857) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена обработка выхода онлайн / оффлайн в `Delta` кодек, который влияет на столбцы со значениями размером менее 32 бит. Ошибка привела к случайному повреждению памяти. [\#5786](https://github.com/ClickHouse/ClickHouse/pull/5786) ([алесапин](https://github.com/alesapin)) -- Исправлена обработка выхода онлайн / оффлайн в TTL слиться с не-физической столбцов в блоке. [\#5819](https://github.com/ClickHouse/ClickHouse/pull/5819) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена редкая ошибка при проверке деталей с помощью `LowCardinality` колонка. Ранее `checkDataPart` всегда терпит неудачу при расставании с `LowCardinality` колонка. [\#5832](https://github.com/ClickHouse/ClickHouse/pull/5832) ([алесапин](https://github.com/alesapin)) -- Избегайте зависания соединений, когда пул потоков сервера заполнен. Это важно для соединений от `remote` табличная функция или соединения с сегментом без реплик при длительном таймауте соединения. Это исправление [\#5878](https://github.com/ClickHouse/ClickHouse/issues/5878) [\#5881](https://github.com/ClickHouse/ClickHouse/pull/5881) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Поддержка постоянных аргументов для того, чтобы `evalMLModel` функция. Это исправление [\#5817](https://github.com/ClickHouse/ClickHouse/issues/5817) [\#5820](https://github.com/ClickHouse/ClickHouse/pull/5820) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, когда ClickHouse определяет часовой пояс по умолчанию как `UCT` вместо `UTC`. Это исправление [\#5804](https://github.com/ClickHouse/ClickHouse/issues/5804). [\#5828](https://github.com/ClickHouse/ClickHouse/pull/5828) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированный нижний поток буфера в `visitParamExtractRaw`. Это исправление [\#5901](https://github.com/ClickHouse/ClickHouse/issues/5901) [\#5902](https://github.com/ClickHouse/ClickHouse/pull/5902) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Сейчас распространены `DROP/ALTER/TRUNCATE/OPTIMIZE ON CLUSTER` запросы будут выполняться непосредственно на реплике лидера. [\#5757](https://github.com/ClickHouse/ClickHouse/pull/5757) ([алесапин](https://github.com/alesapin)) -- Чинить `coalesce` для `ColumnConst` с `ColumnNullable` + соответствующие изменения. [\#5755](https://github.com/ClickHouse/ClickHouse/pull/5755) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправьте это `ReadBufferFromKafkaConsumer` так что он продолжает читать новые сообщения после этого `commit()` даже если он был остановлен раньше [\#5852](https://github.com/ClickHouse/ClickHouse/pull/5852) ([Иван](https://github.com/abyss7)) -- Чинить `FULL` и `RIGHT` Результаты соединения при присоединении на `Nullable` ключи в правой таблице. [\#5859](https://github.com/ClickHouse/ClickHouse/pull/5859) ([Артем Зуйков](https://github.com/4ertus2)) -- Возможно исправление бесконечного сна низкоприоритетных запросов. [\#5842](https://github.com/ClickHouse/ClickHouse/pull/5842) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено состояние гонки, которое приводит к тому, что некоторые запросы могут не отображаться в query\_log после `SYSTEM FLUSH LOGS` запрос. [\#5456](https://github.com/ClickHouse/ClickHouse/issues/5456) [\#5685](https://github.com/ClickHouse/ClickHouse/pull/5685) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлено `heap-use-after-free` Предупреждение ASan в ClusterCopier вызвано часами, которые пытаются использовать уже удаленный объект copier. [\#5871](https://github.com/ClickHouse/ClickHouse/pull/5871) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена ошибка `StringRef` указатель, возвращаемый некоторыми реализациями `IColumn::deserializeAndInsertFromArena`. Эта ошибка затронула только модульные тесты. [\#5973](https://github.com/ClickHouse/ClickHouse/pull/5973) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Не допускайте соединения исходного и промежуточного массива со столбцами маскировки одноименных столбцов. [\#5941](https://github.com/ClickHouse/ClickHouse/pull/5941) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка вставки и выбора запроса к движку MySQL с цитированием идентификатора стиля MySQL. [\#5704](https://github.com/ClickHouse/ClickHouse/pull/5704) ([Зимний Чжан](https://github.com/zhang2014)) -- Сейчас `CHECK TABLE` запрос может работать с семейством движков MergeTree. Он возвращает статус проверки и сообщение, если таковые имеются для каждой детали (или файла в случае более простых движков). Кроме того, Исправлена ошибка в извлечении сломанной детали. [\#5865](https://github.com/ClickHouse/ClickHouse/pull/5865) ([алесапин](https://github.com/alesapin)) -- Исправлена среда выполнения SPLIT\_SHARED\_LIBRARIES [\#5793](https://github.com/ClickHouse/ClickHouse/pull/5793) ([Данила Кутенин](https://github.com/danlark1)) -- Инициализация фиксированного часового пояса когда `/etc/localtime` это относительная ссылка, как `../usr/share/zoneinfo/Europe/Moscow` [\#5922](https://github.com/ClickHouse/ClickHouse/pull/5922) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- clickhouse-копир: исправлена использования после освобождения при завершении работы [\#5752](https://github.com/ClickHouse/ClickHouse/pull/5752) ([proller](https://github.com/proller)) -- Обновленный `simdjson`. Исправлена проблема, из-за которой некоторые недопустимые JSONs с нулевыми байтами успешно разбирались. [\#5938](https://github.com/ClickHouse/ClickHouse/pull/5938) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено отключение системных журналов [\#5802](https://github.com/ClickHouse/ClickHouse/pull/5802) ([Антон Попов](https://github.com/CurtizJ)) -- Исправьте зависание, когда условие в invalidate\_query зависит от словаря. [\#6011](https://github.com/ClickHouse/ClickHouse/pull/6011) ([Виталий Баранов](https://github.com/vitlibar)) - -#### Улучшение {#improvement-6} - -- Разрешить неразрешимые адреса в конфигурации кластера. Они будут считаться недоступными и пытаться разрешить их при каждой попытке подключения. Это особенно полезно для Kubernetes. Это исправление [\#5714](https://github.com/ClickHouse/ClickHouse/issues/5714) [\#5924](https://github.com/ClickHouse/ClickHouse/pull/5924) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Закройте неработающие TCP-соединения (по умолчанию с таймаутом в один час). Это особенно важно для больших кластеров с несколькими распределенными таблицами на каждом сервере, поскольку каждый сервер может содержать пул соединений с каждым другим сервером, и после пикового параллелизма запросов соединения будут останавливаться. Это исправление [\#5879](https://github.com/ClickHouse/ClickHouse/issues/5879) [\#5880](https://github.com/ClickHouse/ClickHouse/pull/5880) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Более лучшее качество `topK` функция. Изменено поведение набора SavingSpace для удаления последнего элемента, если новый элемент имеет больший вес. [\#5833](https://github.com/ClickHouse/ClickHouse/issues/5833) [\#5850](https://github.com/ClickHouse/ClickHouse/pull/5850) ([Гийом Тассери](https://github.com/YiuRULE)) -- Функции URL для работы с доменами теперь могут работать для неполных url без схемы [\#5725](https://github.com/ClickHouse/ClickHouse/pull/5725) ([алесапин](https://github.com/alesapin)) -- Контрольные суммы, добавленные к `system.parts_columns` стол. [\#5874](https://github.com/ClickHouse/ClickHouse/pull/5874) ([Никита Михайлов](https://github.com/nikitamikhaylov)) -- Добавлен `Enum` тип данных как синоним для `Enum8` или `Enum16`. [\#5886](https://github.com/ClickHouse/ClickHouse/pull/5886) ([dimarub2000](https://github.com/dimarub2000)) -- Полный вариант транспонирования битов для `T64` кодек. Может привести к лучшему сжатию с помощью `zstd`. [\#5742](https://github.com/ClickHouse/ClickHouse/pull/5742) ([Артем Зуйков](https://github.com/4ertus2)) -- Состояние на `startsWith` функция теперь может использовать первичный ключ. Это исправление [\#5310](https://github.com/ClickHouse/ClickHouse/issues/5310) и [\#5882](https://github.com/ClickHouse/ClickHouse/issues/5882) [\#5919](https://github.com/ClickHouse/ClickHouse/pull/5919) ([dimarub2000](https://github.com/dimarub2000)) -- Разрешить использовать `clickhouse-copier` с перекрестной репликацией кластерной топологии, разрешив пустое имя базы данных. [\#5745](https://github.com/ClickHouse/ClickHouse/pull/5745) ([nvartolomei](https://github.com/nvartolomei)) -- Воспользуйся `UTC` как часовой пояс по умолчанию в системе без `tzdata` (e.g. bare Docker container). Before this patch, error message `Could not determine local time zone` была напечатана, и сервер или клиент отказались запускаться. [\#5827](https://github.com/ClickHouse/ClickHouse/pull/5827) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Возвращенная назад поддержка аргумента с плавающей запятой в функции `quantileTiming` для обратной совместимости. [\#5911](https://github.com/ClickHouse/ClickHouse/pull/5911) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Показать, в какой таблице отсутствует столбец в сообщениях об ошибках. [\#5768](https://github.com/ClickHouse/ClickHouse/pull/5768) ([Иван](https://github.com/abyss7)) -- Запретить выполнение запроса с одинаковым идентификатором query\_id разными пользователями [\#5430](https://github.com/ClickHouse/ClickHouse/pull/5430) ([proller](https://github.com/proller)) -- Более надежный код для отправки метрик в графит. Он будет работать даже во время длительного многократного использования `RENAME TABLE` операция. [\#5875](https://github.com/ClickHouse/ClickHouse/pull/5875) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Более информативные сообщения об ошибках будут отображаться, когда ThreadPool не может запланировать выполнение задачи. Это исправление [\#5305](https://github.com/ClickHouse/ClickHouse/issues/5305) [\#5801](https://github.com/ClickHouse/ClickHouse/pull/5801) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Инвертирование ngramSearch, чтобы быть более интуитивным [\#5807](https://github.com/ClickHouse/ClickHouse/pull/5807) ([Данила Кутенин](https://github.com/danlark1)) -- Добавить пользователя parsing в HDFS engine builder [\#5946](https://github.com/ClickHouse/ClickHouse/pull/5946) ([аконяев90](https://github.com/akonyaev90)) -- Обновить значение по умолчанию `max_ast_elements parameter` [\#5933](https://github.com/ClickHouse/ClickHouse/pull/5933) ([Артем Коновалов](https://github.com/izebit)) -- Добавлено понятие устаревших настроек. Устаревшая настройка `allow_experimental_low_cardinality_type` может использоваться без какого-либо эффекта. [0f15c01c6802f7ce1a1494c12c846be8c98944cd](https://github.com/ClickHouse/ClickHouse/commit/0f15c01c6802f7ce1a1494c12c846be8c98944cd) [Алексей Миловидов](https://github.com/alexey-milovidov) - -#### Улучшение производительности {#performance-improvement-4} - -- Увеличьте количество потоков для выбора из таблицы слияния для более равномерного распределения потоков. Добавлена настройка `max_streams_multiplier_for_merge_tables`. Это исправление [\#5797](https://github.com/ClickHouse/ClickHouse/issues/5797) [\#5915](https://github.com/ClickHouse/ClickHouse/pull/5915) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-7} - -- Добавьте тест обратной совместимости для взаимодействия клиент-сервер с различными версиями clickhouse. [\#5868](https://github.com/ClickHouse/ClickHouse/pull/5868) ([алесапин](https://github.com/alesapin)) -- Проверьте информацию о покрытии в каждом запросе фиксации и вытягивания. [\#5896](https://github.com/ClickHouse/ClickHouse/pull/5896) ([алесапин](https://github.com/alesapin)) -- Сотрудничайте с address sanitizer для поддержки наших пользовательских распределителей (`Arena` и `ArenaWithFreeLists`) для лучшей отладки «use-after-free» ошибки. [\#5728](https://github.com/ClickHouse/ClickHouse/pull/5728) ([акузм](https://github.com/akuzm)) -- Переключитесь на [Реализация LLVM libunwind](https://github.com/llvm-mirror/libunwind) для обработки исключений C++ и для печати трассировок стека [\#4828](https://github.com/ClickHouse/ClickHouse/pull/4828) ([Никита Лапков](https://github.com/laplab)) -- Добавьте еще два предупреждения от -Weverything [\#5923](https://github.com/ClickHouse/ClickHouse/pull/5923) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Разрешите построить ClickHouse с дезинфицирующим средством для памяти. [\#3949](https://github.com/ClickHouse/ClickHouse/pull/3949) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен отчет утилиты о `bitTest` функция в тест. [\#5943](https://github.com/ClickHouse/ClickHouse/pull/5943) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Настройки: добавлена возможность инициализации экземпляра ClickHouse, который требует проверки подлинности. [\#5727](https://github.com/ClickHouse/ClickHouse/pull/5727) ([Корвяков Андрей Николаевич](https://github.com/shurshun)) -- Librdkafka обновление до версии 1.1.0 [\#5872](https://github.com/ClickHouse/ClickHouse/pull/5872) ([Иван](https://github.com/abyss7)) -- Добавьте глобальный тайм-аут для интеграционных тестов и отключите некоторые из них в коде тестов. [\#5741](https://github.com/ClickHouse/ClickHouse/pull/5741) ([алесапин](https://github.com/alesapin)) -- Исправьте некоторые сбои ThreadSanitizer. [\#5854](https://github.com/ClickHouse/ClickHouse/pull/5854) ([акузм](https://github.com/akuzm)) -- То `--no-undefined` опция заставляет компоновщика проверять все внешние имена на наличие во время связывания. Очень полезно отслеживать реальные зависимости между библиотеками в режиме разделенной сборки. [\#5855](https://github.com/ClickHouse/ClickHouse/pull/5855) ([Иван](https://github.com/abyss7)) -- Добавлен тест производительности для [\#5797](https://github.com/ClickHouse/ClickHouse/issues/5797) [\#5914](https://github.com/ClickHouse/ClickHouse/pull/5914) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена совместимость с gcc-7. [\#5840](https://github.com/ClickHouse/ClickHouse/pull/5840) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена поддержка gcc-9. Это исправление [\#5717](https://github.com/ClickHouse/ClickHouse/issues/5717) [\#5774](https://github.com/ClickHouse/ClickHouse/pull/5774) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, когда libunwind может быть связан неправильно. [\#5948](https://github.com/ClickHouse/ClickHouse/pull/5948) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено несколько предупреждений, найденных PVS-Studio. [\#5921](https://github.com/ClickHouse/ClickHouse/pull/5921) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена начальная поддержка для `clang-tidy` статический анализатор. [\#5806](https://github.com/ClickHouse/ClickHouse/pull/5806) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Преобразование макросов BSD / Linux endian( ‘be64toh’ и ‘htobe64’) к эквивалентам Mac OS X [\#5785](https://github.com/ClickHouse/ClickHouse/pull/5785) ([Фу Чен](https://github.com/fredchenbj)) -- Улучшенное руководство по интеграционным тестам. [\#5796](https://github.com/ClickHouse/ClickHouse/pull/5796) ([Владимир Чеботарев](https://github.com/excitoon)) -- Исправление сборки на macosx + gcc9 [\#5822](https://github.com/ClickHouse/ClickHouse/pull/5822) ([Филимонов](https://github.com/filimonov)) -- Исправьте трудноуловимую опечатку: aggreAGte - \> aggregate. [\#5753](https://github.com/ClickHouse/ClickHouse/pull/5753) ([акузм](https://github.com/akuzm)) -- Исправлена сборка freebsd [\#5760](https://github.com/ClickHouse/ClickHouse/pull/5760) ([proller](https://github.com/proller)) -- Добавить ссылку на экспериментальный канал YouTube на сайт [\#5845](https://github.com/ClickHouse/ClickHouse/pull/5845) ([Иван Блинков](https://github.com/blinkov)) -- CMake: добавить опцию для флагов покрытия: WITH\_COVERAGE [\#5776](https://github.com/ClickHouse/ClickHouse/pull/5776) ([proller](https://github.com/proller)) -- Исправьте начальный размер некоторых встроенных подарков. [\#5787](https://github.com/ClickHouse/ClickHouse/pull/5787) ([акузм](https://github.com/akuzm)) -- clickhouse-сервер.postinst: исправлено обнаружение ОС для centos 6 [\#5788](https://github.com/ClickHouse/ClickHouse/pull/5788) ([proller](https://github.com/proller)) -- Добавлена генерация пакетов Arch linux. [\#5719](https://github.com/ClickHouse/ClickHouse/pull/5719) ([Владимир Чеботарев](https://github.com/excitoon)) -- Разделите Common / config.ч по библиотекам (СУБД) [\#5715](https://github.com/ClickHouse/ClickHouse/pull/5715) ([proller](https://github.com/proller)) -- Исправления для «Arcadia» построить платформу [\#5795](https://github.com/ClickHouse/ClickHouse/pull/5795) ([proller](https://github.com/proller)) -- Исправления для нетрадиционной сборки (gcc9, без подмодулей) [\#5792](https://github.com/ClickHouse/ClickHouse/pull/5792) ([proller](https://github.com/proller)) -- Требуется явный тип в unalignedStore, потому что было доказано, что он подвержен ошибкам [\#5791](https://github.com/ClickHouse/ClickHouse/pull/5791) ([акузм](https://github.com/akuzm)) -- Исправлена сборка MacOS [\#5830](https://github.com/ClickHouse/ClickHouse/pull/5830) ([Филимонов](https://github.com/filimonov)) -- Тест производительности относительно новой функции JIT с большим набором данных, как это было запрошено здесь [\#5263](https://github.com/ClickHouse/ClickHouse/issues/5263) [\#5887](https://github.com/ClickHouse/ClickHouse/pull/5887) ([Гийом Тассери](https://github.com/YiuRULE)) -- Запуск статических тестов в стресс-тесте [12693e568722f11e19859742f56428455501fd2a](https://github.com/ClickHouse/ClickHouse/commit/12693e568722f11e19859742f56428455501fd2a) ([алесапин](https://github.com/alesapin)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-7} - -- `Kafka` сломан в этой версии. -- Включить `adaptive_index_granularity` = 10 МБ по умолчанию для новых `MergeTree` таблицы. Если вы создали новые таблицы MergeTree на версии 19.11+, понижение рейтинга до версий до 19.6 будет невозможно. [\#5628](https://github.com/ClickHouse/ClickHouse/pull/5628) ([алесапин](https://github.com/alesapin)) -- Удалены устаревшие недокументированные встроенные словари, которые использовались Яндексом.Метрика. Функция `OSIn`, `SEIn`, `OSToRoot`, `SEToRoot`, `OSHierarchy`, `SEHierarchy` они больше не доступны. Если вы используете эти функции, напишите письмо по адресу clickhouse-feedback@yandex-team.com Примечание: в последний момент мы решили сохранить эти функции на некоторое время. [\#5780](https://github.com/ClickHouse/ClickHouse/pull/5780) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -## ClickHouse релиз 19.10 {#clickhouse-release-19-10} - -### ClickHouse релиз 19.10.1.5, 2019-07-12 {#clickhouse-release-19-10-1-5-2019-07-12} - -#### Новая функция {#new-feature-7} - -- Добавить новый кодек столбца: `T64`. Сделано для(U)столбцов IntX/EnumX/Data (Time)/DecimalX. Это должно быть хорошо для столбцов с постоянными или малыми значениями диапазона. Сам кодек позволяет увеличить или уменьшить тип данных без повторного сжатия. [\#5557](https://github.com/ClickHouse/ClickHouse/pull/5557) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавление СУБД `MySQL` что позволяет просматривать все таблицы на удаленном сервере MySQL [\#5599](https://github.com/ClickHouse/ClickHouse/pull/5599) ([Зимний Чжан](https://github.com/zhang2014)) -- `bitmapContains` реализация. Это в 2 раза быстрее, чем `bitmapHasAny` если второе растровое изображение содержит один элемент. [\#5535](https://github.com/ClickHouse/ClickHouse/pull/5535) ([Zhichang Ю](https://github.com/yuzhichang)) -- Поддержка `crc32` функция (с поведением точно таким же, как в MySQL или PHP). Не используйте его, если вам нужна хэш-функция. [\#5661](https://github.com/ClickHouse/ClickHouse/pull/5661) ([Ремен Иван](https://github.com/BHYCHIK)) -- Реализованный `SYSTEM START/STOP DISTRIBUTED SENDS` запросы для управления асинхронными вставками в `Distributed` таблицы. [\#4935](https://github.com/ClickHouse/ClickHouse/pull/4935) ([Зимний Чжан](https://github.com/zhang2014)) - -#### Исправление ошибок {#bug-fix-22} - -- Игнорируйте ограничения на выполнение запросов и максимальный размер частей для ограничений слияния при выполнении мутаций. [\#5659](https://github.com/ClickHouse/ClickHouse/pull/5659) ([Антон Попов](https://github.com/CurtizJ)) -- Исправлена ошибка, которая может привести к дедупликации обычных блоков (крайне редко) и вставке дубликатов блоков (чаще). [\#5549](https://github.com/ClickHouse/ClickHouse/pull/5549) ([алесапин](https://github.com/alesapin)) -- Исправление функции `arrayEnumerateUniqRanked` для Аргументов с пустыми массивами [\#5559](https://github.com/ClickHouse/ClickHouse/pull/5559) ([proller](https://github.com/proller)) -- Не Подписывайтесь на темы Кафки без намерения опросить какие-либо сообщения. [\#5698](https://github.com/ClickHouse/ClickHouse/pull/5698) ([Иван](https://github.com/abyss7)) -- Сделать настройку `join_use_nulls` не получите никакого эффекта для типов, которые не могут быть внутри Nullable [\#5700](https://github.com/ClickHouse/ClickHouse/pull/5700) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправлено `Incorrect size of index granularity` ошибки [\#5720](https://github.com/ClickHouse/ClickHouse/pull/5720) ([коракстер](https://github.com/coraxster)) -- Фиксировать поплавок в десятичные преобразования переполнения [\#5607](https://github.com/ClickHouse/ClickHouse/pull/5607) ([коракстер](https://github.com/coraxster)) -- Смыть буфер, когда `WriteBufferFromHDFS`- деструктор называется. Это исправляет запись в `HDFS`. [\#5684](https://github.com/ClickHouse/ClickHouse/pull/5684) ([Синьдун Пэн](https://github.com/eejoin)) - -#### Улучшение {#improvement-7} - -- Обработать пустые ячейки в `CSV` в качестве значений по умолчанию при настройке `input_format_defaults_for_omitted_fields` это включено. [\#5625](https://github.com/ClickHouse/ClickHouse/pull/5625) ([акузм](https://github.com/akuzm)) -- Неблокирующая загрузка внешних словарей. [\#5567](https://github.com/ClickHouse/ClickHouse/pull/5567) ([Виталий Баранов](https://github.com/vitlibar)) -- Тайм-ауты сети могут быть динамически изменены для уже установленных соединений в соответствии с настройками. [\#4558](https://github.com/ClickHouse/ClickHouse/pull/4558) ([Константин Подшумок](https://github.com/podshumok)) -- С помощью «public\_suffix\_list» для функций `firstSignificantSubdomain`, `cutToFirstSignificantSubdomain`. Он использует идеальную хэш-таблицу, сгенерированную `gperf` с помощью списка, сгенерированного из файла: https://publicsuffix.org/list/public\_suffix\_list.dat (например, теперь мы признаем домен `ac.uk` как несущественные). [\#5030](https://github.com/ClickHouse/ClickHouse/pull/5030) ([Гийом Тассери](https://github.com/YiuRULE)) -- Усыновленный `IPv6` тип данных в системных таблицах; унифицированные столбцы информации о клиенте в `system.processes` и `system.query_log` [\#5640](https://github.com/ClickHouse/ClickHouse/pull/5640) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Использование сеансов для соединений с протоколом совместимости MySQL. \#5476 [\#5646](https://github.com/ClickHouse/ClickHouse/pull/5646) ([Юрий Баранов](https://github.com/yurriy)) -- Поддержка более `ALTER` запросы `ON CLUSTER`. [\#5593](https://github.com/ClickHouse/ClickHouse/pull/5593) [\#5613](https://github.com/ClickHouse/ClickHouse/pull/5613) ([сундили](https://github.com/sundy-li)) -- Поддержка `` раздел в `clickhouse-local` конфигурационный файл. [\#5540](https://github.com/ClickHouse/ClickHouse/pull/5540) ([proller](https://github.com/proller)) -- Разрешить выполнение запроса с помощью `remote` функция таблицы в `clickhouse-local` [\#5627](https://github.com/ClickHouse/ClickHouse/pull/5627) ([proller](https://github.com/proller)) - -#### Улучшение производительности {#performance-improvement-5} - -- Добавьте возможность написать окончательную отметку в конце столбцов MergeTree. Это позволяет избежать бесполезного считывания ключей, находящихся вне диапазона табличных данных. Он включается только в том случае, если используется адаптивная детализация индекса. [\#5624](https://github.com/ClickHouse/ClickHouse/pull/5624) ([алесапин](https://github.com/alesapin)) -- Улучшена производительность таблиц MergeTree на очень медленных файловых системах за счет уменьшения количества `stat` системных вызовов. [\#5648](https://github.com/ClickHouse/ClickHouse/pull/5648) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено снижение производительности при чтении из таблиц MergeTree, которое было введено в версии 19.6. Исправления №5631. [\#5633](https://github.com/ClickHouse/ClickHouse/pull/5633) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-8} - -- Реализованный `TestKeeper` в качестве реализации интерфейса ZooKeeper используется для тестирования [\#5643](https://github.com/ClickHouse/ClickHouse/pull/5643) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) ([Левушкин Алексей](https://github.com/alexey-milovidov)) -- Отныне `.sql` тесты могут выполняться изолированно сервером, параллельно, со случайной базой данных. Это позволяет запускать их быстрее, добавлять новые тесты с пользовательскими конфигурациями серверов и быть уверенным, что различные тесты не влияют друг на друга. [\#5554](https://github.com/ClickHouse/ClickHouse/pull/5554) ([Иван](https://github.com/abyss7)) -- Удалять `` и `` из тестов производительности [\#5672](https://github.com/ClickHouse/ClickHouse/pull/5672) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправлено «select\_format» тест производительности для `Pretty` форматы [\#5642](https://github.com/ClickHouse/ClickHouse/pull/5642) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -## ClickHouse релиз 19.9 {#clickhouse-release-19-9} - -### ClickHouse релиз 19.9.3.31, 2019-07-05 {#clickhouse-release-19-9-3-31-2019-07-05} - -#### Исправление ошибок {#bug-fix-23} - -- Исправлена ошибка segfault в Дельта-кодеке, которая влияет на столбцы со значениями размером менее 32 бит. Ошибка привела к случайному повреждению памяти. [\#5786](https://github.com/ClickHouse/ClickHouse/pull/5786) ([алесапин](https://github.com/alesapin)) -- Исправлена редкая ошибка в проверке детали с колонкой LowCardinality. [\#5832](https://github.com/ClickHouse/ClickHouse/pull/5832) ([алесапин](https://github.com/alesapin)) -- Исправлена обработка выхода онлайн / оффлайн в TTL слиться с не-физической столбцов в блоке. [\#5819](https://github.com/ClickHouse/ClickHouse/pull/5819) ([Антон Попов](https://github.com/CurtizJ)) -- Исправьте потенциальный бесконечный спящий режим низкоприоритетных запросов. [\#5842](https://github.com/ClickHouse/ClickHouse/pull/5842) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить, как ClickHouse определяет часовой пояс по умолчанию, как СРТ, а не мирового. [\#5828](https://github.com/ClickHouse/ClickHouse/pull/5828) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, связанная с выполнением распределенного DROP/ALTER/TRUNCATE/OPTIMIZE в кластерных запросах на реплику последователя перед репликой лидера. Теперь они будут выполняться непосредственно на реплике лидера. [\#5757](https://github.com/ClickHouse/ClickHouse/pull/5757) ([алесапин](https://github.com/alesapin)) -- Исправлено состояние гонки, которое приводит к тому, что некоторые запросы могут не отображаться в query\_log сразу же после запроса SYSTEM FLUSH LOGS. [\#5685](https://github.com/ClickHouse/ClickHouse/pull/5685) ([Антон Попов](https://github.com/CurtizJ)) -- Добавлена отсутствующая поддержка постоянных аргументов для `evalMLModel` функция. [\#5820](https://github.com/ClickHouse/ClickHouse/pull/5820) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.9.2.4, 2019-06-24 {#clickhouse-release-19-9-2-4-2019-06-24} - -#### Новая функция {#new-feature-8} - -- Печать информации о замороженных деталях в `system.parts` стол. [\#5471](https://github.com/ClickHouse/ClickHouse/pull/5471) ([proller](https://github.com/proller)) -- Ask client password on clickhouse-запуск клиента на tty, если он не задан в аргументах [\#5092](https://github.com/ClickHouse/ClickHouse/pull/5092) ([proller](https://github.com/proller)) -- Осуществлять `dictGet` и `dictGetOrDefault` функции для десятичных типов. [\#5394](https://github.com/ClickHouse/ClickHouse/pull/5394) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшение {#improvement-8} - -- Инициализации в Debian: добавить службу ожидания [\#5522](https://github.com/ClickHouse/ClickHouse/pull/5522) ([proller](https://github.com/proller)) -- Добавление параметра запрещено по умолчанию, чтобы создать таблицу с подозрительных типов для LowCardinality [\#5448](https://github.com/ClickHouse/ClickHouse/pull/5448) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Регрессионные функции возвращают веса модели, если они не используются в качестве состояния в функции `evalMLMethod`. [\#5411](https://github.com/ClickHouse/ClickHouse/pull/5411) ([Quid37](https://github.com/Quid37)) -- Переименуйте и улучшите методы регрессии. [\#5492](https://github.com/ClickHouse/ClickHouse/pull/5492) ([Quid37](https://github.com/Quid37)) -- Более четкие интерфейсы поиска строк. [\#5586](https://github.com/ClickHouse/ClickHouse/pull/5586) ([Данила Кутенин](https://github.com/danlark1)) - -#### Исправление ошибок {#bug-fix-24} - -- Исправить потенциальную потерю данных в Kafka [\#5445](https://github.com/ClickHouse/ClickHouse/pull/5445) ([Иван](https://github.com/abyss7)) -- Исправьте потенциальную бесконечную петлю в `PrettySpace` форматирование при вызове с нулевыми столбцами [\#5560](https://github.com/ClickHouse/ClickHouse/pull/5560) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправлена ошибка переполнения UInt32 в линейных моделях. Разрешить eval ML-модель для аргумента неконстантной модели. [\#5516](https://github.com/ClickHouse/ClickHouse/pull/5516) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- `ALTER TABLE ... DROP INDEX IF EXISTS ...` не следует вызывать исключение, если указанный индекс не существует [\#5524](https://github.com/ClickHouse/ClickHouse/pull/5524) ([Глеб Новиков](https://github.com/NanoBjorn)) -- Исправлена обработка выхода онлайн / оффлайн с `bitmapHasAny` в скалярном подзапросе [\#5528](https://github.com/ClickHouse/ClickHouse/pull/5528) ([Zhichang Ю](https://github.com/yuzhichang)) -- Исправлена ошибка, когда пул соединений репликации не повторяет попытку разрешения узла, даже если кэш DNS был удален. [\#5534](https://github.com/ClickHouse/ClickHouse/pull/5534) ([алесапин](https://github.com/alesapin)) -- Исправлено `ALTER ... MODIFY TTL` на Реплицированном Mergetree. [\#5539](https://github.com/ClickHouse/ClickHouse/pull/5539) ([Антон Попов](https://github.com/CurtizJ)) -- Фиксированная вставка в распределенную таблицу с материализованной колонкой [\#5429](https://github.com/ClickHouse/ClickHouse/pull/5429) ([Азат Хужин](https://github.com/azat)) -- Исправление плохой запас, когда усекают присоединиться хранения [\#5437](https://github.com/ClickHouse/ClickHouse/pull/5437) ([TCeason](https://github.com/TCeason)) -- В последних версиях пакета tzdata некоторые файлы теперь являются символическими ссылками. Текущий механизм обнаружения часового пояса по умолчанию нарушается и дает неверные имена для некоторых часовых поясов. Теперь, по крайней мере, мы заставим имя часового пояса к содержимому TZ, если оно будет предоставлено. [\#5443](https://github.com/ClickHouse/ClickHouse/pull/5443) ([Иван](https://github.com/abyss7)) -- Исправьте некоторые крайне редкие случаи с Многовольницким поисковиком, когда постоянные иглы в сумме имеют длину не менее 16 КБ. Алгоритм пропустил или переписал предыдущие результаты, что может привести к неправильному результату работы алгоритма. `multiSearchAny`. [\#5588](https://github.com/ClickHouse/ClickHouse/pull/5588) ([Данила Кутенин](https://github.com/danlark1)) -- Исправлена проблема, когда настройки для запросов ExternalData не могли использовать параметры ClickHouse. Кроме того, на данный момент настройки `date_time_input_format` и `low_cardinality_allow_in_native_format` не может использоваться из-за неоднозначности имен (во внешних данных это может быть интерпретировано как формат таблицы, а в запросе-как настройка). [\#5455](https://github.com/ClickHouse/ClickHouse/pull/5455) ([Данила Кутенин](https://github.com/danlark1)) -- Исправлена ошибка, когда детали удалялись только из FS, не сбрасывая их из Zookeeper. [\#5520](https://github.com/ClickHouse/ClickHouse/pull/5520) ([алесапин](https://github.com/alesapin)) -- Удалить ведение журнала отладки из протокола MySQL [\#5478](https://github.com/ClickHouse/ClickHouse/pull/5478) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Пропустить ZNONODE во время обработки DDL запроса [\#5489](https://github.com/ClickHouse/ClickHouse/pull/5489) ([Азат Хужин](https://github.com/azat)) -- Фикс микс `UNION ALL` тип столбца результатов. Были случаи с несогласованными данными и типами столбцов результирующих столбцов. [\#5503](https://github.com/ClickHouse/ClickHouse/pull/5503) ([Артем Зуйков](https://github.com/4ertus2)) -- Бросьте исключение на неправильные целые числа в `dictGetT` функции вместо сбоя. [\#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка element\_count и load\_factor для хэшированного словаря в `system.dictionaries` стол. [\#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Азат Хужин](https://github.com/azat)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-9} - -- Исправлена сборка без `Brotli` Поддержка сжатия HTTP (`ENABLE_BROTLI=OFF` переменная cmake). [\#5521](https://github.com/ClickHouse/ClickHouse/pull/5521) ([Антон Южанинов](https://github.com/citrin)) -- Включая рев.ч как рев/рев.х [\#5523](https://github.com/ClickHouse/ClickHouse/pull/5523) ([Оривей Деш](https://github.com/orivej)) -- Исправьте предупреждения gcc9 в hyperscan (директива \# line-это зло!) [\#5546](https://github.com/ClickHouse/ClickHouse/pull/5546) ([Данила Кутенин](https://github.com/danlark1)) -- Исправьте все предупреждения при компиляции с gcc-9. Исправлены некоторые проблемы ВНО. Исправьте GCC9 ICE и отправьте его в bugzilla. [\#5498](https://github.com/ClickHouse/ClickHouse/pull/5498) ([Данила Кутенин](https://github.com/danlark1)) -- Фиксированная связь с LLD [\#5477](https://github.com/ClickHouse/ClickHouse/pull/5477) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Удаление неиспользуемых специализаций в словарях [\#5452](https://github.com/ClickHouse/ClickHouse/pull/5452) ([Артем Зуйков](https://github.com/4ertus2)) -- Улучшение тестов производительности для форматирования и синтаксического анализа таблиц для различных типов файлов [\#5497](https://github.com/ClickHouse/ClickHouse/pull/5497) ([Ольга Хвостикова](https://github.com/stavrolia)) -- Исправления для параллельного выполнения тестов [\#5506](https://github.com/ClickHouse/ClickHouse/pull/5506) ([proller](https://github.com/proller)) -- Docker: используйте конфигурации из clickhouse-test [\#5531](https://github.com/ClickHouse/ClickHouse/pull/5531) ([proller](https://github.com/proller)) -- Исправлена компиляция для FreeBSD [\#5447](https://github.com/ClickHouse/ClickHouse/pull/5447) ([proller](https://github.com/proller)) -- Повышение уровня обновления до 1.70 [\#5570](https://github.com/ClickHouse/ClickHouse/pull/5570) ([proller](https://github.com/proller)) -- Исправлена сборка clickhouse как подмодуля [\#5574](https://github.com/ClickHouse/ClickHouse/pull/5574) ([proller](https://github.com/proller)) -- Улучшение тестов производительности JSONExtract [\#5444](https://github.com/ClickHouse/ClickHouse/pull/5444) ([Виталий Баранов](https://github.com/vitlibar)) - -## ClickHouse релиз 19.8 {#clickhouse-release-19-8} - -### ClickHouse релиз 19.8.3.8, 2019-06-11 {#clickhouse-release-19-8-3-8-2019-06-11} - -#### Новые средства {#new-features} - -- Добавлены функции для работы с JSON [\#4686](https://github.com/ClickHouse/ClickHouse/pull/4686) ([hcz](https://github.com/hczhcz)) [\#5124](https://github.com/ClickHouse/ClickHouse/pull/5124). ([Виталий Баранов](https://github.com/vitlibar)) -- Добавьте функцию basename с аналогичным поведением к функции basename, которая существует во многих языках (`os.path.basename` в Python, `basename` in PHP, etc…). Work with both an UNIX-like path or a Windows path. [\#5136](https://github.com/ClickHouse/ClickHouse/pull/5136) ([Гийом Тассери](https://github.com/YiuRULE)) -- Добавлен `LIMIT n, m BY` или `LIMIT m OFFSET n BY` синтаксис для задания смещения N для ограничения на предложение. [\#5138](https://github.com/ClickHouse/ClickHouse/pull/5138) ([Антон Попов](https://github.com/CurtizJ)) -- Добавлен новый тип данных `SimpleAggregateFunction`, что позволяет иметь столбцы с легкой агрегацией в виде `AggregatingMergeTree`. Это может быть использовано только с простыми функциями, такими как `any`, `anyLast`, `sum`, `min`, `max`. [\#4629](https://github.com/ClickHouse/ClickHouse/pull/4629) ([Борис Гранво](https://github.com/bgranvea)) -- Добавлена поддержка непостоянных аргументов в функции `ngramDistance` [\#5198](https://github.com/ClickHouse/ClickHouse/pull/5198) ([Данила Кутенин](https://github.com/danlark1)) -- Добавленные функции `skewPop`, `skewSamp`, `kurtPop` и `kurtSamp` для вычисления асимметрии последовательности, асимметрии образца, эксцесса и эксцесса образца соответственно. [\#5200](https://github.com/ClickHouse/ClickHouse/pull/5200) ([hcz](https://github.com/hczhcz)) -- Поддержка переименования операции для `MaterializeView` место хранения. [\#5209](https://github.com/ClickHouse/ClickHouse/pull/5209) ([Гийом Тассери](https://github.com/YiuRULE)) -- Добавлен сервер, который позволяет подключаться к ClickHouse с помощью клиента MySQL. [\#4715](https://github.com/ClickHouse/ClickHouse/pull/4715) ([Юрий Баранов](https://github.com/yurriy)) -- Добавь `toDecimal*OrZero` и `toDecimal*OrNull` функции. [\#5291](https://github.com/ClickHouse/ClickHouse/pull/5291) ([Артем Зуйков](https://github.com/4ertus2)) -- Поддержка десятичных типов в функциях: `quantile`, `quantiles`, `median`, `quantileExactWeighted`, `quantilesExactWeighted`, medianExactWeighted. [\#5304](https://github.com/ClickHouse/ClickHouse/pull/5304) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавлен `toValidUTF8` function, which replaces all invalid UTF-8 characters by replacement character � (U+FFFD). [\#5322](https://github.com/ClickHouse/ClickHouse/pull/5322) ([Данила Кутенин](https://github.com/danlark1)) -- Добавлен `format` функция. Форматирование константы pattern (упрощенный шаблон формата Python) со строками, перечисленными в аргументах. [\#5330](https://github.com/ClickHouse/ClickHouse/pull/5330) ([Данила Кутенин](https://github.com/danlark1)) -- Добавлен `system.detached_parts` таблица, содержащая информацию об отсоединенных частях `MergeTree` таблицы. [\#5353](https://github.com/ClickHouse/ClickHouse/pull/5353) ([акузм](https://github.com/akuzm)) -- Добавлен `ngramSearch` функция для вычисления несимметричной разности между иглой и стогом сена. [\#5418](https://github.com/ClickHouse/ClickHouse/pull/5418)[\#5422](https://github.com/ClickHouse/ClickHouse/pull/5422) ([Данила Кутенин](https://github.com/danlark1)) -- Реализация основных методов машинного обучения (стохастическая линейная регрессия и логистическая регрессия) с использованием интерфейса агрегатных функций. Имеет различные стратегии обновления весов моделей (простой градиентный спуск, метод импульса, метод Нестерова). Также поддерживаются мини-пакеты нестандартного размера. [\#4943](https://github.com/ClickHouse/ClickHouse/pull/4943) ([Quid37](https://github.com/Quid37)) -- Реализация проекта `geohashEncode` и `geohashDecode` функции. [\#5003](https://github.com/ClickHouse/ClickHouse/pull/5003) ([Василий Немков](https://github.com/Enmk)) -- Добавлена статистическая функция `timeSeriesGroupSum`, который может агрегировать различные временные ряды, которые выборка временных меток не выравнивается. Он будет использовать линейную интерполяцию между двумя временными метками выборки, а затем суммировать временные ряды вместе. Добавлена статистическая функция `timeSeriesGroupRateSum`, который вычисляет скорость временных рядов, а затем суммирует ставки вместе. [\#4542](https://github.com/ClickHouse/ClickHouse/pull/4542) ([Янкуань Лю](https://github.com/LiuYangkuan)) -- Добавленные функции `IPv4CIDRtoIPv4Range` и `IPv6CIDRtoIPv6Range` рассчитать нижний и верхний пределы для IP в подсети с использованием бесклассовой междоменной маршрутизации. [\#5095](https://github.com/ClickHouse/ClickHouse/pull/5095) ([Гийом Тассери](https://github.com/YiuRULE)) -- Добавьте заголовок X-ClickHouse-Summary, когда мы отправляем запрос с помощью HTTP с включенной настройкой `send_progress_in_http_headers`. Возвращает обычную информацию X-ClickHouse-Progress с дополнительной информацией, например, сколько строк и байтов было вставлено в запрос. [\#5116](https://github.com/ClickHouse/ClickHouse/pull/5116) ([Гийом Тассери](https://github.com/YiuRULE)) - -#### Улучшения {#improvements} - -- Добавлен `max_parts_in_total` настройка для семейства таблиц MergeTree (по умолчанию: 100 000), которая предотвращает небезопасную спецификацию ключа раздела \#5166. [\#5171](https://github.com/ClickHouse/ClickHouse/pull/5171) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `clickhouse-obfuscator`: выведите начальное значение для отдельных столбцов, объединив начальное значение с именем столбца, а не с позицией столбца. Это предназначено для преобразования наборов данных с несколькими связанными таблицами, чтобы таблицы оставались соединяемыми после преобразования. [\#5178](https://github.com/ClickHouse/ClickHouse/pull/5178) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавленные функции `JSONExtractRaw`, `JSONExtractKeyAndValues`. Переименованные функции `jsonExtract` к `JSONExtract`. Когда что-то идет не так, эти функции возвращают соответствующие значения, а не наоборот. `NULL`. Модифицированная функция `JSONExtract`, теперь он получает возвращаемый тип из своего последнего параметра и не вводит nullables. Реализован резервный вариант для RapidJSON в случае, если инструкции AVX2 недоступны. Библиотека Simdjson обновлена до новой версии. [\#5235](https://github.com/ClickHouse/ClickHouse/pull/5235) ([Виталий Баранов](https://github.com/vitlibar)) -- Сейчас `if` и `multiIf` функции не зависят от условий `Nullable`, но полагайтесь на ветви для обеспечения совместимости sql. [\#5238](https://github.com/ClickHouse/ClickHouse/pull/5238) ([Цзянь Ву](https://github.com/janplus)) -- `In` теперь предикат генерирует `Null` результат от `Null` входные данные, такие как `Equal` функция. [\#5152](https://github.com/ClickHouse/ClickHouse/pull/5152) ([Цзянь Ву](https://github.com/janplus)) -- Проверьте ограничение по времени для каждого (flush\_interval / poll\_timeout) числа строк из Kafka. Это позволяет чаще отрывать чтение от потребителя Кафки и проверять временные ограничения для потоков верхнего уровня [\#5249](https://github.com/ClickHouse/ClickHouse/pull/5249) ([Иван](https://github.com/abyss7)) -- Соедините рдкафку с комплектным САСЛОМ. Это должно позволить использовать аутентификацию SASL SCRAM [\#5253](https://github.com/ClickHouse/ClickHouse/pull/5253) ([Иван](https://github.com/abyss7)) -- Пакетная версия RowRefList для всех соединений. [\#5267](https://github.com/ClickHouse/ClickHouse/pull/5267) ([Артем Зуйков](https://github.com/4ertus2)) -- clickhouse-server: более информативное прослушивание сообщений об ошибках. [\#5268](https://github.com/ClickHouse/ClickHouse/pull/5268) ([proller](https://github.com/proller)) -- Поддержка словарей в clickhouse-copier для функций в `` [\#5270](https://github.com/ClickHouse/ClickHouse/pull/5270) ([proller](https://github.com/proller)) -- Добавить новую настройку `kafka_commit_every_batch` чтобы регулировать политику Кафки. - Он позволяет установить режим фиксации: после обработки каждой партии сообщений или после записи всего блока в хранилище. Это компромисс между потерей некоторых сообщений или чтением их дважды в некоторых экстремальных ситуациях. [\#5308](https://github.com/ClickHouse/ClickHouse/pull/5308) ([Иван](https://github.com/abyss7)) -- Сделай `windowFunnel` поддержка других целочисленных типов без знака. [\#5320](https://github.com/ClickHouse/ClickHouse/pull/5320) ([сундили](https://github.com/sundy-li)) -- Разрешить теневой виртуальный столбец `_table` в двигателе слияния. [\#5325](https://github.com/ClickHouse/ClickHouse/pull/5325) ([Иван](https://github.com/abyss7)) -- Сделай `sequenceMatch` агрегатные функции поддерживают другие целочисленные типы без знака [\#5339](https://github.com/ClickHouse/ClickHouse/pull/5339) ([сундили](https://github.com/sundy-li)) -- Лучше сообщения об ошибках, если несоответствие контрольной суммы, скорее всего, вызвано аппаратными сбоями. [\#5355](https://github.com/ClickHouse/ClickHouse/pull/5355) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Проверьте, что базовые таблицы поддерживают выборку для `StorageMerge` [\#5366](https://github.com/ClickHouse/ClickHouse/pull/5366) ([Иван](https://github.com/abyss7)) -- Сlose MySQL connections after their usage in external dictionaries. It is related to issue \#893. [\#5395](https://github.com/ClickHouse/ClickHouse/pull/5395) ([Clément Rodriguez](https://github.com/clemrodriguez)) -- Улучшения протокола MySQL Wire. Изменено имя формата на MySQLWire. Использование RAII для вызова RSA\_free. Отключение SSL, если контекст не может быть создан. [\#5419](https://github.com/ClickHouse/ClickHouse/pull/5419) ([Юрий Баранов](https://github.com/yurriy)) -- clickhouse-client: allow to run with unaccessable history file (read-only, no disk space, file is directory, …). [\#5431](https://github.com/ClickHouse/ClickHouse/pull/5431) ([proller](https://github.com/proller)) -- Соблюдайте настройки запросов при асинхронных вставках в распределенные таблицы. [\#4936](https://github.com/ClickHouse/ClickHouse/pull/4936) ([TCeason](https://github.com/TCeason)) -- Переименованные функции `leastSqr` к `simpleLinearRegression`, `LinearRegression` к `linearRegression`, `LogisticRegression` к `logisticRegression`. [\#5391](https://github.com/ClickHouse/ClickHouse/pull/5391) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -#### Улучшения в производительности {#performance-improvements} - -- Распараллеливание обработки деталей невоспроизводимого MergeTree столы В изменить изменить запрос. [\#4639](https://github.com/ClickHouse/ClickHouse/pull/4639) ([Иван Куш](https://github.com/IvanKush)) -- Оптимизация при извлечении регулярных выражений. [\#5193](https://github.com/ClickHouse/ClickHouse/pull/5193) [\#5191](https://github.com/ClickHouse/ClickHouse/pull/5191) ([Данила Кутенин](https://github.com/danlark1)) -- Не добавляйте правый ключевой столбец join к результату соединения, если он используется только в разделе join on. [\#5260](https://github.com/ClickHouse/ClickHouse/pull/5260) ([Артем Зуйков](https://github.com/4ertus2)) -- Заморозьте буфер Кафки после первого пустого ответа. Это позволяет избежать многократных обращений к `ReadBuffer::next()` для пустого результата в некоторых потоках разбора строк. [\#5283](https://github.com/ClickHouse/ClickHouse/pull/5283) ([Иван](https://github.com/abyss7)) -- `concat` оптимизация функций для нескольких аргументов. [\#5357](https://github.com/ClickHouse/ClickHouse/pull/5357) ([Данила Кутенин](https://github.com/danlark1)) -- Query optimisation. Allow push down IN statement while rewriting commа/cross join into inner one. [\#5396](https://github.com/ClickHouse/ClickHouse/pull/5396) ([Артем Зуйков](https://github.com/4ertus2)) -- Обновите нашу реализацию LZ4 со ссылкой на нее, чтобы иметь более быструю декомпрессию. [\#5070](https://github.com/ClickHouse/ClickHouse/pull/5070) ([Данила Кутенин](https://github.com/danlark1)) -- Реализована сортировка MSD radix (на основе kxsort) и частичная сортировка. [\#5129](https://github.com/ClickHouse/ClickHouse/pull/5129) ([Евгений Правда](https://github.com/kvinty)) - -#### Устранение ошибок {#bug-fixes} - -- Исправить пуш требуют колонн с соединением [\#5192](https://github.com/ClickHouse/ClickHouse/pull/5192) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена ошибка, когда ClickHouse запускался systemd, команда `sudo service clickhouse-server forcerestart` он работал не так, как ожидалось. [\#5204](https://github.com/ClickHouse/ClickHouse/pull/5204) ([proller](https://github.com/proller)) -- Исправьте коды ошибок http в DataPartsExchange (interserver http server на порту 9009 всегда возвращал код 200, даже при ошибках). [\#5216](https://github.com/ClickHouse/ClickHouse/pull/5216) ([proller](https://github.com/proller)) -- Исправить SimpleAggregateFunction на более длительный строк, чем MAX\_SMALL\_STRING\_SIZE [\#5311](https://github.com/ClickHouse/ClickHouse/pull/5311) ([Азат Хужин](https://github.com/azat)) -- Исправьте ошибку для `Decimal` к `Nullable(Decimal)` конверсия в ин. Поддержка других десятичных и десятичных преобразований (включая различные масштабы). [\#5350](https://github.com/ClickHouse/ClickHouse/pull/5350) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено блокирование FPU в библиотеке simdjson, приводящее к неправильному вычислению `uniqHLL` и `uniqCombined` агрегатная функция и математические функции, такие как `log`. [\#5354](https://github.com/ClickHouse/ClickHouse/pull/5354) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена обработка смешанных случаев const/nonconst в функциях JSON. [\#5435](https://github.com/ClickHouse/ClickHouse/pull/5435) ([Виталий Баранов](https://github.com/vitlibar)) -- Чинить `retention` функция. Теперь все условия, которые удовлетворяют в строке данных, добавляются в состояние данных. [\#5119](https://github.com/ClickHouse/ClickHouse/pull/5119) ([小路](https://github.com/nicelulu)) -- Исправьте тип результата для `quantileExact` с десятичными дробями. [\#5304](https://github.com/ClickHouse/ClickHouse/pull/5304) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Документация {#documentation} - -- Перевести документацию для `CollapsingMergeTree` к китайцам. [\#5168](https://github.com/ClickHouse/ClickHouse/pull/5168) ([张风啸](https://github.com/AlexZFX)) -- Переведите некоторые документы о табличных движках на китайский язык. - [\#5134](https://github.com/ClickHouse/ClickHouse/pull/5134) - [\#5328](https://github.com/ClickHouse/ClickHouse/pull/5328) - ([никогда ли](https://github.com/neverlee)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements} - -- Исправьте некоторые отчеты о дезинфицирующих средствах, которые показывают вероятное использование после освобождения.[\#5139](https://github.com/ClickHouse/ClickHouse/pull/5139) [\#5143](https://github.com/ClickHouse/ClickHouse/pull/5143) [\#5393](https://github.com/ClickHouse/ClickHouse/pull/5393) ([Иван](https://github.com/abyss7)) -- Для удобства переместите тесты производительности из отдельных каталогов. [\#5158](https://github.com/ClickHouse/ClickHouse/pull/5158) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте неправильные тесты производительности. [\#5255](https://github.com/ClickHouse/ClickHouse/pull/5255) ([алесапин](https://github.com/alesapin)) -- Добавлен инструмент для вычисления контрольных сумм, вызванных битовыми переворотами, для отладки аппаратных проблем. [\#5334](https://github.com/ClickHouse/ClickHouse/pull/5334) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Сделайте сценарий runner более удобным для использования. [\#5340](https://github.com/ClickHouse/ClickHouse/pull/5340)[\#5360](https://github.com/ClickHouse/ClickHouse/pull/5360) ([Филимонов](https://github.com/filimonov)) -- Добавьте небольшую инструкцию, как писать тесты производительности. [\#5408](https://github.com/ClickHouse/ClickHouse/pull/5408) ([алесапин](https://github.com/alesapin)) -- Добавить возможность делать замены В создать, заполнить и запросов падение производительности тесты [\#5367](https://github.com/ClickHouse/ClickHouse/pull/5367) ([Ольга Хвостикова](https://github.com/stavrolia)) - -## ClickHouse релиз 19.7 {#clickhouse-release-19-7} - -### ClickHouse релиз 19.7.5.29, 2019-07-05 {#clickhouse-release-19-7-5-29-2019-07-05} - -#### Исправление ошибок {#bug-fix-25} - -- Исправьте регрессию производительности в некоторых запросах с помощью JOIN. [\#5192](https://github.com/ClickHouse/ClickHouse/pull/5192) ([Зимний Чжан](https://github.com/zhang2014)) - -### ClickHouse релиз 19.7.5.27, 2019-06-09 {#clickhouse-release-19-7-5-27-2019-06-09} - -#### Новые средства {#new-features-1} - -- Добавлены функции связанные с растровым изображением `bitmapHasAny` и `bitmapHasAll` по аналогии с `hasAny` и `hasAll` функции для массивов. [\#5279](https://github.com/ClickHouse/ClickHouse/pull/5279) ([Сергей Владыкин](https://github.com/svladykin)) - -#### Устранение ошибок {#bug-fixes-1} - -- Исправлена обработка выхода онлайн / оффлайн на `minmax` Индекс с нулевым значением. [\#5246](https://github.com/ClickHouse/ClickHouse/pull/5246) ([Никита Васильев](https://github.com/nikvas0)) -- Отметить все входные столбцы в пределе по мере необходимости выход. Это исправляет ‘Not found column’ ошибка в некоторых распределенных запросах. [\#5407](https://github.com/ClickHouse/ClickHouse/pull/5407) ([Константин Сергеевич Пан](https://github.com/kvap)) -- Чинить «Column ‘0’ already exists» ошибка в работе `SELECT .. PREWHERE` на колонке с дефолтом [\#5397](https://github.com/ClickHouse/ClickHouse/pull/5397) ([proller](https://github.com/proller)) -- Чинить `ALTER MODIFY TTL` запрос на `ReplicatedMergeTree`. [\#5539](https://github.com/ClickHouse/ClickHouse/pull/5539/commits) ([Антон Попов](https://github.com/CurtizJ)) -- Не разрушайте сервер, когда потребители Kafka не смогли запустить его. [\#5285](https://github.com/ClickHouse/ClickHouse/pull/5285) ([Иван](https://github.com/abyss7)) -- Исправленные функции растрового изображения дают неверный результат. [\#5359](https://github.com/ClickHouse/ClickHouse/pull/5359) ([Энди Янг](https://github.com/andyyzh)) -- Исправить element\_count для хэшированного словаря (не включать дубликаты) [\#5440](https://github.com/ClickHouse/ClickHouse/pull/5440) ([Азат Хужин](https://github.com/azat)) -- Используйте содержимое переменной окружения TZ в качестве имени для часового пояса. В некоторых случаях это помогает правильно определить часовой пояс по умолчанию.[\#5443](https://github.com/ClickHouse/ClickHouse/pull/5443) ([Иван](https://github.com/abyss7)) -- Не пытайтесь конвертировать целые числа в `dictGetT` функции, потому что он не работает правильно. Вместо этого создайте исключение. [\#5446](https://github.com/ClickHouse/ClickHouse/pull/5446) ([Артем Зуйков](https://github.com/4ertus2)) -- Фиксировать параметры в запрос внешних данных по протоколу HTTP. [\#5455](https://github.com/ClickHouse/ClickHouse/pull/5455) ([Данила - Кутенин](https://github.com/danlark1)) -- Исправлена ошибка, когда детали удалялись только из FS, не сбрасывая их из Zookeeper. [\#5520](https://github.com/ClickHouse/ClickHouse/pull/5520) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка сегментации в `bitmapHasAny` функция. [\#5528](https://github.com/ClickHouse/ClickHouse/pull/5528) ([Zhichang Ю](https://github.com/yuzhichang)) -- Исправлена ошибка, когда пул соединений репликации не повторяет попытку разрешения узла, даже если кэш DNS был удален. [\#5534](https://github.com/ClickHouse/ClickHouse/pull/5534) ([алесапин](https://github.com/alesapin)) -- Исправлено `DROP INDEX IF EXISTS` запрос. Сейчас `ALTER TABLE ... DROP INDEX IF EXISTS ...` запрос не вызывает исключения, если указанный индекс не существует. [\#5524](https://github.com/ClickHouse/ClickHouse/pull/5524) ([Глеб Новиков](https://github.com/NanoBjorn)) -- Союз исправить все колонки супертипа. Были случаи с несогласованными данными и типами столбцов результирующих столбцов. [\#5503](https://github.com/ClickHouse/ClickHouse/pull/5503) ([Артем Зуйков](https://github.com/4ertus2)) -- Пропустите ZNONODE во время обработки DDL-запроса. До того, как другой узел удалит znode в очереди задач, тот, который - не обработал его, но уже получил список детей,завершит поток DDLWorker. [\#5489](https://github.com/ClickHouse/ClickHouse/pull/5489) ([Азат Хужин](https://github.com/azat)) -- Исправлена вставка в таблицу Distributed () с материализованным столбцом. [\#5429](https://github.com/ClickHouse/ClickHouse/pull/5429) ([Азат Хужин](https://github.com/azat)) - -### ClickHouse релиз 19.7.3.9, 2019-05-30 {#clickhouse-release-19-7-3-9-2019-05-30} - -#### Новые средства {#new-features-2} - -- Разрешить ограничить диапазон настроек, которые могут быть заданы пользователем. - Эти ограничения можно настроить в профиле настроек пользователя. - [\#4931](https://github.com/ClickHouse/ClickHouse/pull/4931) ([Виталий - Баранов](https://github.com/vitlibar)) -- Добавьте вторую версию функции `groupUniqArray` с дополнительным - `max_size` параметр, ограничивающий размер результирующего массива. Этот - поведение похоже на то, что `groupArray(max_size)(x)` функция. - [\#5026](https://github.com/ClickHouse/ClickHouse/pull/5026) ([Гийом - Тассери](https://github.com/YiuRULE)) -- Для форматов входных файлов TSVWithNames/CSVWithNames порядок столбцов теперь может быть - определяется из заголовка файла. Это контролируется с помощью - `input_format_with_names_use_header` параметр. - [\#5081](https://github.com/ClickHouse/ClickHouse/pull/5081) - ([Александр](https://github.com/Akazz)) - -#### Устранение ошибок {#bug-fixes-2} - -- Сбой с uncompressed\_cache + JOIN во время слияния (\#5197) - [\#5133](https://github.com/ClickHouse/ClickHouse/pull/5133) ([Данила - Кутенин](https://github.com/danlark1)) -- Ошибка сегментации при запросе clickhouse-клиента к системным таблицам. \#5066 - [\#5127](https://github.com/ClickHouse/ClickHouse/pull/5127) - ([Иван](https://github.com/abyss7)) -- Потеря данных при большой нагрузке через KafkaEngine (\#4736) - [\#5080](https://github.com/ClickHouse/ClickHouse/pull/5080) - ([Иван](https://github.com/abyss7)) -- Исправлено очень редкое состояние гонки данных, которое могло произойти при выполнении запроса с объединением всех, включающих по крайней мере два выбора из системы.колонны, система.таблицы, система.детали, система.parts\_tables или таблицы объединить семью и исполнительского изменять столбцы из связанных таблиц одновременно. [\#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшения в производительности {#performance-improvements-1} - -- Используйте radix sort для сортировки по одному числовому столбцу в `ORDER BY` без - `LIMIT`. [\#5106](https://github.com/ClickHouse/ClickHouse/pull/5106), - [\#4439](https://github.com/ClickHouse/ClickHouse/pull/4439) - ([Евгений Правда](https://github.com/kvinty), - [Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Документация {#documentation-1} - -- Перевод документации для некоторых движков таблиц на китайский язык. - [\#5107](https://github.com/ClickHouse/ClickHouse/pull/5107), - [\#5094](https://github.com/ClickHouse/ClickHouse/pull/5094), - [\#5087](https://github.com/ClickHouse/ClickHouse/pull/5087) - ([张风啸](https://github.com/AlexZFX)), - [\#5068](https://github.com/ClickHouse/ClickHouse/pull/5068) ([никогда - Ли](https://github.com/neverlee)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-1} - -- Правильная печать символов UTF-8 в `clickhouse-test`. - [\#5084](https://github.com/ClickHouse/ClickHouse/pull/5084) - ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте параметр командной строки для clickhouse-client, чтобы всегда загружать предложение - данные. [\#5102](https://github.com/ClickHouse/ClickHouse/pull/5102) - ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Устраните некоторые предупреждения PVS-Studio. - [\#5082](https://github.com/ClickHouse/ClickHouse/pull/5082) - ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Обновление LZ4 [\#5040](https://github.com/ClickHouse/ClickHouse/pull/5040) ([Данила - Кутенин](https://github.com/danlark1)) -- Добавьте gperf для построения требований к предстоящему запросу на вытягивание \#5030. - [\#5110](https://github.com/ClickHouse/ClickHouse/pull/5110) - ([proller](https://github.com/proller)) - -## ClickHouse релиз 19.6 {#clickhouse-release-19-6} - -### ClickHouse релиз 19.6.3.18, 2019-06-13 {#clickhouse-release-19-6-3-18-2019-06-13} - -#### Устранение ошибок {#bug-fixes-3} - -- Исправлено в состоянии pushdown для запросов из табличных функций `mysql` и `odbc` и соответствующие табличные двигатели. Это исправляет \#3540 и \#2384. [\#5313](https://github.com/ClickHouse/ClickHouse/pull/5313) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена тупиковая ситуация в Zookeeper. [\#5297](https://github.com/ClickHouse/ClickHouse/pull/5297) ([github1youlc](https://github.com/github1youlc)) -- Разрешить кавычки десятичных знаков в CSV. [\#5284](https://github.com/ClickHouse/ClickHouse/pull/5284) ([Артем Зуйков](https://github.com/4ertus2) -- Запретить преобразование из float Inf/NaN в десятичные дроби (исключение throw). [\#5282](https://github.com/ClickHouse/ClickHouse/pull/5282) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена гонка данных в запросе переименования. [\#5247](https://github.com/ClickHouse/ClickHouse/pull/5247) ([Зимний Чжан](https://github.com/zhang2014)) -- Временно отключите LFAlloc. Использование LFAlloc может привести к большому количеству MAP\_FAILED при выделении несжатого кэша и в результате к сбоям запросов на высоконагруженных серверах. [cfdba93](https://github.com/ClickHouse/ClickHouse/commit/cfdba938ce22f16efeec504f7f90206a515b1280)([Данила Кутенин](https://github.com/danlark1)) - -### ClickHouse релиз 19.6.2.11, 2019-05-13 {#clickhouse-release-19-6-2-11-2019-05-13} - -#### Новые средства {#new-features-3} - -- Выражения TTL для столбцов и таблиц. [\#4212](https://github.com/ClickHouse/ClickHouse/pull/4212) ([Антон Попов](https://github.com/CurtizJ)) -- Добавлена поддержка для `brotli` сжатие для HTTP-ответов (Accept-Encoding: br) [\#4388](https://github.com/ClickHouse/ClickHouse/pull/4388) ([Михаил](https://github.com/fandyushin)) -- Добавлена новая функция `isValidUTF8` для проверки правильности кодировки набора байтов в кодировке utf-8. [\#4934](https://github.com/ClickHouse/ClickHouse/pull/4934) ([Данила Кутенин](https://github.com/danlark1)) -- Добавление новой политики балансировки нагрузки `first_or_random` который отправляет запросы на первый указанный хост, а если он недоступен, то отправляет запросы на случайные хосты shard. Полезно для настройки топологии перекрестной репликации. [\#5012](https://github.com/ClickHouse/ClickHouse/pull/5012) ([nvartolomei](https://github.com/nvartolomei)) - -#### Экспериментальная возможность {#experimental-features-1} - -- Добавить настройку `index_granularity_bytes` (адаптивная степень детализации индекса) для семейства таблиц MergeTree\*. [\#4826](https://github.com/ClickHouse/ClickHouse/pull/4826) ([алесапин](https://github.com/alesapin)) - -#### Улучшения {#improvements-1} - -- Добавлена поддержка непостоянных и отрицательных аргументов размера и длины для функции `substringUTF8`. [\#4989](https://github.com/ClickHouse/ClickHouse/pull/4989) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Отключить push-вниз в правой таблице в левой присоединиться, левой таблицы в правую присоединиться, и обе таблицы полностью присоединиться. Это исправляет неправильные результаты соединения в некоторых случаях. [\#4846](https://github.com/ClickHouse/ClickHouse/pull/4846) ([Иван](https://github.com/abyss7)) -- `clickhouse-copier`: автоматическая загрузка конфигурации задачи из `--task-file` вариант [\#4876](https://github.com/ClickHouse/ClickHouse/pull/4876) ([proller](https://github.com/proller)) -- Добавлен обработчик опечаток для фабрики хранения и фабрики табличных функций. [\#4891](https://github.com/ClickHouse/ClickHouse/pull/4891) ([Данила Кутенин](https://github.com/danlark1)) -- Поддержка звездочек и квалифицированных звездочек для нескольких соединений без вложенных запросов [\#4898](https://github.com/ClickHouse/ClickHouse/pull/4898) ([Артем Зуйков](https://github.com/4ertus2)) -- Сделайте сообщение об ошибке отсутствующего столбца более удобным для пользователя. [\#4915](https://github.com/ClickHouse/ClickHouse/pull/4915) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшения в производительности {#performance-improvements-2} - -- Значительное ускорение от присоединения [\#4924](https://github.com/ClickHouse/ClickHouse/pull/4924) ([Мартийн Баккер](https://github.com/Gladdy)) - -#### Назад Несовместимые Изменения {#backward-incompatible-changes} - -- Заголовок http `Query-Id` был переименован в `X-ClickHouse-Query-Id` для последовательности. [\#4972](https://github.com/ClickHouse/ClickHouse/pull/4972) ([Михаил](https://github.com/fandyushin)) - -#### Устранение ошибок {#bug-fixes-4} - -- Исправлено потенциальное разыменование нулевого указателя в `clickhouse-copier`. [\#4900](https://github.com/ClickHouse/ClickHouse/pull/4900) ([proller](https://github.com/proller)) -- Исправлена ошибка запроса с соединением + массив присоединиться [\#4938](https://github.com/ClickHouse/ClickHouse/pull/4938) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено зависание при запуске сервера, когда словарь зависит от другого словаря через базу данных с engine=Dictionary. [\#4962](https://github.com/ClickHouse/ClickHouse/pull/4962) ([Виталий Баранов](https://github.com/vitlibar)) -- Partially fix distributed\_product\_mode = local. It's possible to allow columns of local tables in where/having/order by/… via table aliases. Throw exception if table does not have alias. There's not possible to access to the columns without table aliases yet. [\#4986](https://github.com/ClickHouse/ClickHouse/pull/4986) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправьте потенциально неправильный результат для `SELECT DISTINCT` с `JOIN` [\#5001](https://github.com/ClickHouse/ClickHouse/pull/5001) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено очень редкое состояние гонки данных, которое могло произойти при выполнении запроса с объединением всех, включающих по крайней мере два выбора из системы.колонны, система.таблицы, система.детали, система.parts\_tables или таблицы объединить семью и исполнительского изменять столбцы из связанных таблиц одновременно. [\#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-2} - -- Исправлены ошибки тестирования при запуске clickhouse-сервера на другом хосте [\#4713](https://github.com/ClickHouse/ClickHouse/pull/4713) ([Василий Немков](https://github.com/Enmk)) -- clickhouse-test: отключение последовательностей управления цветом в среде без tty. [\#4937](https://github.com/ClickHouse/ClickHouse/pull/4937) ([алесапин](https://github.com/alesapin)) -- clickhouse-test: разрешить использование любой тестовой базы данных (удалить `test.` квалификация там, где это возможно) [\#5008](https://github.com/ClickHouse/ClickHouse/pull/5008) ([proller](https://github.com/proller)) -- Исправление ошибок утилиты [\#5037](https://github.com/ClickHouse/ClickHouse/pull/5037) ([Виталий Баранов](https://github.com/vitlibar)) -- Yandex LFAlloc был добавлен в ClickHouse для выделения данных MarkCache и UncompressedCache различными способами для более надежного улавливания сегментов [\#4995](https://github.com/ClickHouse/ClickHouse/pull/4995) ([Данила Кутенин](https://github.com/danlark1)) -- Python util, чтобы помочь с backports и changelogs. [\#4949](https://github.com/ClickHouse/ClickHouse/pull/4949) ([Иван](https://github.com/abyss7)) - -## ClickHouse релиз 19.5 {#clickhouse-release-19-5} - -### ClickHouse релиз 19.5.4.22, 2019-05-13 {#clickhouse-release-19-5-4-22-2019-05-13} - -#### Устранение ошибок {#bug-fixes-5} - -- Исправлена возможная ошибка в функциях bitmap\* [\#5220](https://github.com/ClickHouse/ClickHouse/pull/5220) [\#5228](https://github.com/ClickHouse/ClickHouse/pull/5228) ([Энди Янг](https://github.com/andyyzh)) -- Исправлено очень редкое состояние гонки данных, которое могло произойти при выполнении запроса с объединением всех, включающих по крайней мере два выбора из системы.колонны, система.таблицы, система.детали, система.parts\_tables или таблицы объединить семью и исполнительского изменять столбцы из связанных таблиц одновременно. [\#5189](https://github.com/ClickHouse/ClickHouse/pull/5189) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправления ошибок `Set for IN is not created yet in case of using single LowCardinality column in the left part of IN`. Эта ошибка произошла, если столбец LowCardinality был частью первичного ключа. \#5031 [\#5154](https://github.com/ClickHouse/ClickHouse/pull/5154) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Модификация функции удержания: если строка удовлетворяет как первому, так и N-му условию, то в состояние данных добавляется только первое удовлетворенное условие. Теперь все условия, которые удовлетворяют в строке данных, добавляются в состояние данных. [\#5119](https://github.com/ClickHouse/ClickHouse/pull/5119) ([小路](https://github.com/nicelulu)) - -### ClickHouse релиз 19.5.3.8, 2019-04-18 {#clickhouse-release-19-5-3-8-2019-04-18} - -#### Устранение ошибок {#bug-fixes-6} - -- Фиксированный тип установки `max_partitions_per_insert_block` из булев тип uint64. [\#5028](https://github.com/ClickHouse/ClickHouse/pull/5028) ([Мохаммад Хосейн Сехават](https://github.com/mhsekhavat)) - -### ClickHouse релиз 19.5.2.6, 2019-04-15 {#clickhouse-release-19-5-2-6-2019-04-15} - -#### Новые средства {#new-features-4} - -- [Гиперскан](https://github.com/intel/hyperscan) было добавлено несколько совпадений регулярных выражений (функции `multiMatchAny`, `multiMatchAnyIndex`, `multiFuzzyMatchAny`, `multiFuzzyMatchAnyIndex`). [\#4780](https://github.com/ClickHouse/ClickHouse/pull/4780), [\#4841](https://github.com/ClickHouse/ClickHouse/pull/4841) ([Данила Кутенин](https://github.com/danlark1)) -- `multiSearchFirstPosition` была добавлена функция. [\#4780](https://github.com/ClickHouse/ClickHouse/pull/4780) ([Данила Кутенин](https://github.com/danlark1)) -- Реализуйте предварительно заданный фильтр выражений для каждой строки таблиц. [\#4792](https://github.com/ClickHouse/ClickHouse/pull/4792) ([Иван](https://github.com/abyss7)) -- Новый тип индексов пропуска данных на основе фильтров Блума (может использоваться для `equal`, `in` и `like` должностные обязанности). [\#4499](https://github.com/ClickHouse/ClickHouse/pull/4499) ([Никита Васильев](https://github.com/nikvas0)) -- Добавлен `ASOF JOIN` что позволяет запускать запросы, которые присоединяются к самому последнему известному значению. [\#4774](https://github.com/ClickHouse/ClickHouse/pull/4774) [\#4867](https://github.com/ClickHouse/ClickHouse/pull/4867) [\#4863](https://github.com/ClickHouse/ClickHouse/pull/4863) [\#4875](https://github.com/ClickHouse/ClickHouse/pull/4875) ([Мартийн Баккер](https://github.com/Gladdy), [Артем Зуйков](https://github.com/4ertus2)) -- Переписать несколько раз `COMMA JOIN` к `CROSS JOIN`. Затем перепишите их на `INNER JOIN` если можно. [\#4661](https://github.com/ClickHouse/ClickHouse/pull/4661) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшение {#improvement-9} - -- `topK` и `topKWeighted` теперь поддерживает пользовательские `loadFactor` (Исправлена проблема [\#4252](https://github.com/ClickHouse/ClickHouse/issues/4252)). [\#4634](https://github.com/ClickHouse/ClickHouse/pull/4634) ([Кирилл Даньшин](https://github.com/kirillDanshin)) -- Разрешить использовать `parallel_replicas_count > 1` даже для таблиц без выборки (настройка для них просто игнорируется). В предыдущих версиях это приводило к исключениям. [\#4637](https://github.com/ClickHouse/ClickHouse/pull/4637) ([Алексей Елыманов](https://github.com/digitalist)) -- Поддержка `CREATE OR REPLACE VIEW`. Позволяет создать представление или задать новое определение в одном операторе. [\#4654](https://github.com/ClickHouse/ClickHouse/pull/4654) ([Борис Гранво](https://github.com/bgranvea)) -- `Buffer` движок таблицы теперь поддерживает `PREWHERE`. [\#4671](https://github.com/ClickHouse/ClickHouse/pull/4671) ([Янкуань Лю](https://github.com/LiuYangkuan)) -- Добавить возможность запуска реплицированной таблицы без метаданных в zookeeper in `readonly` режим. [\#4691](https://github.com/ClickHouse/ClickHouse/pull/4691) ([алесапин](https://github.com/alesapin)) -- Исправлено мерцание индикатора выполнения в clickhouse-клиенте. Эта проблема была наиболее заметна при использовании `FORMAT Null` с потоковыми запросами. [\#4811](https://github.com/ClickHouse/ClickHouse/pull/4811) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Разрешить отключать функции с помощью `hyperscan` библиотека на основе каждого пользователя, чтобы ограничить потенциально чрезмерное и неконтролируемое использование ресурсов. [\#4816](https://github.com/ClickHouse/ClickHouse/pull/4816) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте номер версии, регистрирующий все ошибки. [\#4824](https://github.com/ClickHouse/ClickHouse/pull/4824) ([proller](https://github.com/proller)) -- Добавлено ограничение на использование `multiMatch` функции, которые требуют размера строки, чтобы вписаться в `unsigned int`. Также добавлено ограничение по количеству аргументов для `multiSearch` функции. [\#4834](https://github.com/ClickHouse/ClickHouse/pull/4834) ([Данила Кутенин](https://github.com/danlark1)) -- Улучшено использование пространства царапин и обработка ошибок в Hyperscan. [\#4866](https://github.com/ClickHouse/ClickHouse/pull/4866) ([Данила Кутенин](https://github.com/danlark1)) -- Заполнить `system.graphite_detentions` из таблицы config of `*GraphiteMergeTree` столы для двигателей. [\#4584](https://github.com/ClickHouse/ClickHouse/pull/4584) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) -- Переименовать `trigramDistance` функция к `ngramDistance` и добавьте больше функций с помощью `CaseInsensitive` и `UTF`. [\#4602](https://github.com/ClickHouse/ClickHouse/pull/4602) ([Данила Кутенин](https://github.com/danlark1)) -- Улучшен расчет индексов пропуска данных. [\#4640](https://github.com/ClickHouse/ClickHouse/pull/4640) ([Никита Васильев](https://github.com/nikvas0)) -- Держать обычные, `DEFAULT`, `MATERIALIZED` и `ALIAS` столбцы в одном списке (Исправлена проблема [\#2867](https://github.com/ClickHouse/ClickHouse/issues/2867)). [\#4707](https://github.com/ClickHouse/ClickHouse/pull/4707) ([Алексей Зателепин](https://github.com/ztlpn)) - -#### Исправление ошибок {#bug-fix-26} - -- Избегать `std::terminate` в случае сбоя выделения памяти. Сейчас `std::bad_alloc` исключение создается, как и ожидалось. [\#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено чтение capnproto из буфера. Иногда файлы не были успешно загружены по протоколу HTTP. [\#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Владислав](https://github.com/smirnov-vs)) -- Исправления ошибок `Unknown log entry type: 0` после `OPTIMIZE TABLE FINAL` запрос. [\#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Амос Птица](https://github.com/amosbird)) -- Неверные аргументы, чтобы `hasAny` или `hasAll` функции может привести к обработка выхода онлайн / оффлайн. [\#4698](https://github.com/ClickHouse/ClickHouse/pull/4698) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Взаимоблокировка может произойти во время выполнения `DROP DATABASE dictionary` запрос. [\#4701](https://github.com/ClickHouse/ClickHouse/pull/4701) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить неопределенное поведение в `median` и `quantile` функции. [\#4702](https://github.com/ClickHouse/ClickHouse/pull/4702) ([hcz](https://github.com/hczhcz)) -- Исправьте обнаружение уровня сжатия, когда `network_compression_method` в нижнем регистре. Разбитые в в19.1. [\#4706](https://github.com/ClickHouse/ClickHouse/pull/4706) ([proller](https://github.com/proller)) -- Фиксированное незнание `UTC` настройка (Исправлена проблема [\#4658](https://github.com/ClickHouse/ClickHouse/issues/4658)). [\#4718](https://github.com/ClickHouse/ClickHouse/pull/4718) ([proller](https://github.com/proller)) -- Чинить `histogram` поведение функции с помощью `Distributed` таблицы. [\#4741](https://github.com/ClickHouse/ClickHouse/pull/4741) ([olegkv](https://github.com/olegkv)) -- Исправлен отчет Цан `destroy of a locked mutex`. [\#4742](https://github.com/ClickHouse/ClickHouse/pull/4742) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен отчет TSan о завершении работы из-за состояния гонки в использовании системных журналов. Исправлено потенциальное использование-после освобождения при выключении, когда включен part\_log. [\#4758](https://github.com/ClickHouse/ClickHouse/pull/4758) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить перепроверять детали в `ReplicatedMergeTreeAlterThread` в случае ошибки. [\#4772](https://github.com/ClickHouse/ClickHouse/pull/4772) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Арифметические операции над промежуточными состояниями агрегатной функции не работали для постоянных аргументов (таких как результаты подзапросов). [\#4776](https://github.com/ClickHouse/ClickHouse/pull/4776) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Всегда делайте обратные кавычки имен столбцов в метаданных. В противном случае невозможно создать таблицу с именем столбца `index` (сервер не будет перезапущен из-за неправильной формы `ATTACH` запрос в метаданных). [\#4782](https://github.com/ClickHouse/ClickHouse/pull/4782) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить сбой в работе `ALTER ... MODIFY ORDER BY` на `Distributed` стол. [\#4790](https://github.com/ClickHouse/ClickHouse/pull/4790) ([TCeason](https://github.com/TCeason)) -- Исправлена обработка выхода онлайн / оффлайн в `JOIN ON` с включенной функцией `enable_optimize_predicate_expression`. [\#4794](https://github.com/ClickHouse/ClickHouse/pull/4794) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена ошибка с добавлением посторонней строки после использования сообщения protobuf от Кафки. [\#4808](https://github.com/ClickHouse/ClickHouse/pull/4808) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправить аварию `JOIN` на не значение столбца против значение null. Чинить `NULLs` в правой клавиш в `ANY JOIN` + `join_use_nulls`. [\#4815](https://github.com/ClickHouse/ClickHouse/pull/4815) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка сегментации в `clickhouse-copier`. [\#4835](https://github.com/ClickHouse/ClickHouse/pull/4835) ([proller](https://github.com/proller)) -- Исправлено состояние гонки в `SELECT` от `system.tables` если таблица переименована или изменена одновременно. [\#4836](https://github.com/ClickHouse/ClickHouse/pull/4836) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена гонка данных при извлечении части данных, которая уже устарела. [\#4839](https://github.com/ClickHouse/ClickHouse/pull/4839) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена редкая гонка данных, которая может произойти во время `RENAME` таблица семейства MergeTree. [\#4844](https://github.com/ClickHouse/ClickHouse/pull/4844) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка сегментации в функции `arrayIntersect`. Ошибка сегментации может произойти, если функция вызывается со смешанными постоянными и обычными аргументами. [\#4847](https://github.com/ClickHouse/ClickHouse/pull/4847) ([Лисян Цянь](https://github.com/fancyqlx)) -- Исправлено чтение из `Array(LowCardinality)` столбец в редком случае, когда столбец содержит длинную последовательность пустых массивов. [\#4850](https://github.com/ClickHouse/ClickHouse/pull/4850) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправить сбой в работе `FULL/RIGHT JOIN` когда мы присоединились на обнуляемой против не допускает значения null. [\#4855](https://github.com/ClickHouse/ClickHouse/pull/4855) ([Артем Зуйков](https://github.com/4ertus2)) -- Чинить `No message received` исключение при извлечении деталей между репликами. [\#4856](https://github.com/ClickHouse/ClickHouse/pull/4856) ([алесапин](https://github.com/alesapin)) -- Исправлено `arrayIntersect` неправильный результат функции в случае нескольких повторяющихся значений в одном массиве. [\#4871](https://github.com/ClickHouse/ClickHouse/pull/4871) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправьте состояние гонки во время параллельной работы `ALTER COLUMN` запросы, которые могут привести к сбою сервера (Исправлена проблема [\#3421](https://github.com/ClickHouse/ClickHouse/issues/3421)). [\#4592](https://github.com/ClickHouse/ClickHouse/pull/4592) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправьте неправильный результат в `FULL/RIGHT JOIN` с колонкой const. [\#4723](https://github.com/ClickHouse/ClickHouse/pull/4723) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправьте дубликаты внутри `GLOBAL JOIN` с Asterisk. [\#4705](https://github.com/ClickHouse/ClickHouse/pull/4705) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправить вычет параметров в `ALTER MODIFY` из колонки `CODEC` если тип столбца не указан. [\#4883](https://github.com/ClickHouse/ClickHouse/pull/4883) ([алесапин](https://github.com/alesapin)) -- Функции `cutQueryStringAndFragment()` и `queryStringAndFragment()` теперь работает правильно, когда `URL` содержит фрагмент и не содержит запроса. [\#4894](https://github.com/ClickHouse/ClickHouse/pull/4894) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлена редкая ошибка при настройке `min_bytes_to_use_direct_io` больше нуля, что происходит, когда поток должен искать назад в файле столбца. [\#4897](https://github.com/ClickHouse/ClickHouse/pull/4897) ([алесапин](https://github.com/alesapin)) -- Исправьте неправильные типы аргументов для агрегатных функций с помощью `LowCardinality` аргументы (Исправлена проблема [\#4919](https://github.com/ClickHouse/ClickHouse/issues/4919)). [\#4922](https://github.com/ClickHouse/ClickHouse/pull/4922) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправить неправильное имя квалификация в `GLOBAL JOIN`. [\#4969](https://github.com/ClickHouse/ClickHouse/pull/4969) ([Артем Зуйков](https://github.com/4ertus2)) -- Фиксированная функция `toISOWeek` результат за 1970 год. [\#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Чинить `DROP`, `TRUNCATE` и `OPTIMIZE` дублирование запросов при выполнении на `ON CLUSTER` для `ReplicatedMergeTree*` столы семейные. [\#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([алесапин](https://github.com/alesapin)) - -#### Назад Несовместимые Изменения {#backward-incompatible-change-8} - -- Переименовать настройки `insert_sample_with_metadata` ставить `input_format_defaults_for_omitted_fields`. [\#4771](https://github.com/ClickHouse/ClickHouse/pull/4771) ([Артем Зуйков](https://github.com/4ertus2)) -- Добавлена настройка `max_partitions_per_insert_block` (со значением 100 по умолчанию). Если вставленный блок содержит большее количество разделов, то возникает исключение. Установите его равным 0, если вы хотите удалить ограничение (не рекомендуется). [\#4845](https://github.com/ClickHouse/ClickHouse/pull/4845) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Функции мульти-поиска были переименованы (`multiPosition` к `multiSearchAllPositions`, `multiSearch` к `multiSearchAny`, `firstMatch` к `multiSearchFirstIndex`). [\#4780](https://github.com/ClickHouse/ClickHouse/pull/4780) ([Данила Кутенин](https://github.com/danlark1)) - -#### Улучшение производительности {#performance-improvement-6} - -- Оптимизировать Volnitsky поисковик путем встраивания, дающая около 5-10% улучшение поиска по запросам со многими иглами или много схожих биграмм. [\#4862](https://github.com/ClickHouse/ClickHouse/pull/4862) ([Данила Кутенин](https://github.com/danlark1)) -- Исправлена проблема производительности при настройке `use_uncompressed_cache` больше нуля, который появился при считывании всех данных, содержащихся в кэше. [\#4913](https://github.com/ClickHouse/ClickHouse/pull/4913) ([алесапин](https://github.com/alesapin)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-10} - -- Упрочнение отладочной сборки: более детализированные сопоставления памяти и ASLR; добавление защиты памяти для кэша меток и индекса. Это позволяет найти больше ошибок топтания памяти в случае, когда ASan и MSan не могут этого сделать. [\#4632](https://github.com/ClickHouse/ClickHouse/pull/4632) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте поддержку переменных cmake `ENABLE_PROTOBUF`, `ENABLE_PARQUET` и `ENABLE_BROTLI` который позволяет включить/выключить выше особенностей (так же, как мы можем сделать для librdkafka, MySQL и т. д). [\#4669](https://github.com/ClickHouse/ClickHouse/pull/4669) ([Сильвиу Развивается](https://github.com/silviucpp)) -- Добавьте возможность печати списка процессов и stacktraces всех потоков, если некоторые запросы зависли после тестового запуска. [\#4675](https://github.com/ClickHouse/ClickHouse/pull/4675) ([алесапин](https://github.com/alesapin)) -- Добавить повторные попытки ВКЛ `Connection loss` ошибка в работе `clickhouse-test`. [\#4682](https://github.com/ClickHouse/ClickHouse/pull/4682) ([алесапин](https://github.com/alesapin)) -- Добавьте build FreeBSD с Vagrant и построить с резьбой дезинфицирующее средство на упаковщик скриптов. [\#4712](https://github.com/ClickHouse/ClickHouse/pull/4712) [\#4748](https://github.com/ClickHouse/ClickHouse/pull/4748) ([алесапин](https://github.com/alesapin)) -- Теперь пользователь запросил пароль для пользователя `'default'` во время установки. [\#4725](https://github.com/ClickHouse/ClickHouse/pull/4725) ([proller](https://github.com/proller)) -- Подавить предупреждение в `rdkafka` библиотека. [\#4740](https://github.com/ClickHouse/ClickHouse/pull/4740) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Разрешить возможность сборки без ssl. [\#4750](https://github.com/ClickHouse/ClickHouse/pull/4750) ([proller](https://github.com/proller)) -- Добавьте способ запуска образа clickhouse-server от пользовательского пользователя. [\#4753](https://github.com/ClickHouse/ClickHouse/pull/4753) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) -- Обновите contrib boost до 1.69. [\#4793](https://github.com/ClickHouse/ClickHouse/pull/4793) ([proller](https://github.com/proller)) -- Отключить использование `mremap` при компиляции с помощью дезинфицирующего средства для нитей. Как ни странно, Цан не перехватил его `mremap` (хотя это действительно перехват `mmap`, `munmap`) это приводит к ложным срабатываниям. Исправлен отчет TSan в тестах с сохранением состояния. [\#4859](https://github.com/ClickHouse/ClickHouse/pull/4859) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте тестовую проверку с использованием схемы формата через HTTP-интерфейс. [\#4864](https://github.com/ClickHouse/ClickHouse/pull/4864) ([Виталий Баранов](https://github.com/vitlibar)) - -## ClickHouse релиз 19.4 {#clickhouse-release-19-4} - -### ClickHouse релиз 19.4.4.33, 2019-04-17 {#clickhouse-release-19-4-4-33-2019-04-17} - -#### Устранение ошибок {#bug-fixes-7} - -- Избегать `std::terminate` в случае сбоя выделения памяти. Сейчас `std::bad_alloc` исключение создается, как и ожидалось. [\#4665](https://github.com/ClickHouse/ClickHouse/pull/4665) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено чтение capnproto из буфера. Иногда файлы не были успешно загружены по протоколу HTTP. [\#4674](https://github.com/ClickHouse/ClickHouse/pull/4674) ([Владислав](https://github.com/smirnov-vs)) -- Исправления ошибок `Unknown log entry type: 0` после `OPTIMIZE TABLE FINAL` запрос. [\#4683](https://github.com/ClickHouse/ClickHouse/pull/4683) ([Амос Птица](https://github.com/amosbird)) -- Неверные аргументы, чтобы `hasAny` или `hasAll` функции может привести к обработка выхода онлайн / оффлайн. [\#4698](https://github.com/ClickHouse/ClickHouse/pull/4698) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Взаимоблокировка может произойти во время выполнения `DROP DATABASE dictionary` запрос. [\#4701](https://github.com/ClickHouse/ClickHouse/pull/4701) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить неопределенное поведение в `median` и `quantile` функции. [\#4702](https://github.com/ClickHouse/ClickHouse/pull/4702) ([hcz](https://github.com/hczhcz)) -- Исправьте обнаружение уровня сжатия, когда `network_compression_method` в нижнем регистре. Разбитые в в19.1. [\#4706](https://github.com/ClickHouse/ClickHouse/pull/4706) ([proller](https://github.com/proller)) -- Фиксированное незнание `UTC` настройка (Исправлена проблема [\#4658](https://github.com/ClickHouse/ClickHouse/issues/4658)). [\#4718](https://github.com/ClickHouse/ClickHouse/pull/4718) ([proller](https://github.com/proller)) -- Чинить `histogram` поведение функции с помощью `Distributed` таблицы. [\#4741](https://github.com/ClickHouse/ClickHouse/pull/4741) ([olegkv](https://github.com/olegkv)) -- Исправлен отчет Цан `destroy of a locked mutex`. [\#4742](https://github.com/ClickHouse/ClickHouse/pull/4742) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен отчет TSan о завершении работы из-за состояния гонки в использовании системных журналов. Исправлено потенциальное использование-после освобождения при выключении, когда включен part\_log. [\#4758](https://github.com/ClickHouse/ClickHouse/pull/4758) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить перепроверять детали в `ReplicatedMergeTreeAlterThread` в случае ошибки. [\#4772](https://github.com/ClickHouse/ClickHouse/pull/4772) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Арифметические операции над промежуточными состояниями агрегатной функции не работали для постоянных аргументов (таких как результаты подзапросов). [\#4776](https://github.com/ClickHouse/ClickHouse/pull/4776) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Всегда делайте обратные кавычки имен столбцов в метаданных. В противном случае невозможно создать таблицу с именем столбца `index` (сервер не будет перезапущен из-за неправильной формы `ATTACH` запрос в метаданных). [\#4782](https://github.com/ClickHouse/ClickHouse/pull/4782) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправить сбой в работе `ALTER ... MODIFY ORDER BY` на `Distributed` стол. [\#4790](https://github.com/ClickHouse/ClickHouse/pull/4790) ([TCeason](https://github.com/TCeason)) -- Исправлена обработка выхода онлайн / оффлайн в `JOIN ON` с включенной функцией `enable_optimize_predicate_expression`. [\#4794](https://github.com/ClickHouse/ClickHouse/pull/4794) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена ошибка с добавлением посторонней строки после использования сообщения protobuf от Кафки. [\#4808](https://github.com/ClickHouse/ClickHouse/pull/4808) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлена ошибка сегментации в `clickhouse-copier`. [\#4835](https://github.com/ClickHouse/ClickHouse/pull/4835) ([proller](https://github.com/proller)) -- Исправлено состояние гонки в `SELECT` от `system.tables` если таблица переименована или изменена одновременно. [\#4836](https://github.com/ClickHouse/ClickHouse/pull/4836) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена гонка данных при извлечении части данных, которая уже устарела. [\#4839](https://github.com/ClickHouse/ClickHouse/pull/4839) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена редкая гонка данных, которая может произойти во время `RENAME` таблица семейства MergeTree. [\#4844](https://github.com/ClickHouse/ClickHouse/pull/4844) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка сегментации в функции `arrayIntersect`. Ошибка сегментации может произойти, если функция вызывается со смешанными постоянными и обычными аргументами. [\#4847](https://github.com/ClickHouse/ClickHouse/pull/4847) ([Лисян Цянь](https://github.com/fancyqlx)) -- Исправлено чтение из `Array(LowCardinality)` столбец в редком случае, когда столбец содержит длинную последовательность пустых массивов. [\#4850](https://github.com/ClickHouse/ClickHouse/pull/4850) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Чинить `No message received` исключение при извлечении деталей между репликами. [\#4856](https://github.com/ClickHouse/ClickHouse/pull/4856) ([алесапин](https://github.com/alesapin)) -- Исправлено `arrayIntersect` неправильный результат функции в случае нескольких повторяющихся значений в одном массиве. [\#4871](https://github.com/ClickHouse/ClickHouse/pull/4871) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправьте состояние гонки во время параллельной работы `ALTER COLUMN` запросы, которые могут привести к сбою сервера (Исправлена проблема [\#3421](https://github.com/ClickHouse/ClickHouse/issues/3421)). [\#4592](https://github.com/ClickHouse/ClickHouse/pull/4592) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправьте вычет параметров в `ALTER MODIFY` из колонки `CODEC` если тип столбца не указан. [\#4883](https://github.com/ClickHouse/ClickHouse/pull/4883) ([алесапин](https://github.com/alesapin)) -- Функции `cutQueryStringAndFragment()` и `queryStringAndFragment()` теперь работает правильно, когда `URL` содержит фрагмент и не содержит запроса. [\#4894](https://github.com/ClickHouse/ClickHouse/pull/4894) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправлена редкая ошибка при настройке `min_bytes_to_use_direct_io` больше нуля, что происходит, когда поток должен искать назад в файле столбца. [\#4897](https://github.com/ClickHouse/ClickHouse/pull/4897) ([алесапин](https://github.com/alesapin)) -- Исправьте неправильные типы аргументов для агрегатных функций с помощью `LowCardinality` аргументы (Исправлена проблема [\#4919](https://github.com/ClickHouse/ClickHouse/issues/4919)). [\#4922](https://github.com/ClickHouse/ClickHouse/pull/4922) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Фиксированная функция `toISOWeek` результат за 1970 год. [\#4988](https://github.com/ClickHouse/ClickHouse/pull/4988) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Чинить `DROP`, `TRUNCATE` и `OPTIMIZE` дублирование запросов при выполнении на `ON CLUSTER` для `ReplicatedMergeTree*` столы семейные. [\#4991](https://github.com/ClickHouse/ClickHouse/pull/4991) ([алесапин](https://github.com/alesapin)) - -#### Улучшения {#improvements-2} - -- Держать обычные, `DEFAULT`, `MATERIALIZED` и `ALIAS` столбцы в одном списке (Исправлена проблема [\#2867](https://github.com/ClickHouse/ClickHouse/issues/2867)). [\#4707](https://github.com/ClickHouse/ClickHouse/pull/4707) ([Алексей Зателепин](https://github.com/ztlpn)) - -### ClickHouse релиз 19.4.3.11, 2019-04-02 {#clickhouse-release-19-4-3-11-2019-04-02} - -#### Устранение ошибок {#bug-fixes-8} - -- Исправить сбой в работе `FULL/RIGHT JOIN` когда мы присоединились на обнуляемой против не допускает значения null. [\#4855](https://github.com/ClickHouse/ClickHouse/pull/4855) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка сегментации в `clickhouse-copier`. [\#4835](https://github.com/ClickHouse/ClickHouse/pull/4835) ([proller](https://github.com/proller)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-11} - -- Добавьте способ запуска образа clickhouse-server от пользовательского пользователя. [\#4753](https://github.com/ClickHouse/ClickHouse/pull/4753) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) - -### ClickHouse релиз 19.4.2.7, 2019-03-30 {#clickhouse-release-19-4-2-7-2019-03-30} - -#### Устранение ошибок {#bug-fixes-9} - -- Исправлено чтение из `Array(LowCardinality)` столбец в редком случае, когда столбец содержит длинную последовательность пустых массивов. [\#4850](https://github.com/ClickHouse/ClickHouse/pull/4850) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -### ClickHouse релиз 19.4.1.3, 2019-03-19 {#clickhouse-release-19-4-1-3-2019-03-19} - -#### Устранение ошибок {#bug-fixes-10} - -- Исправлены удаленные запросы, содержащие и то, и другое `LIMIT BY` и `LIMIT`. Ранее, если `LIMIT BY` и `LIMIT` были использованы для удаленного запроса, `LIMIT` может случиться и раньше `LIMIT BY`, что привело к слишком отфильтрованному результату. [\#4708](https://github.com/ClickHouse/ClickHouse/pull/4708) ([Константин Сергеевич Пан](https://github.com/kvap)) - -### ClickHouse релиз 19.4.0.49, 2019-03-09 {#clickhouse-release-19-4-0-49-2019-03-09} - -#### Новые средства {#new-features-5} - -- Добавлена полная поддержка для `Protobuf` формат (ввод и вывод, вложенные структуры данных). [\#4174](https://github.com/ClickHouse/ClickHouse/pull/4174) [\#4493](https://github.com/ClickHouse/ClickHouse/pull/4493) ([Виталий Баранов](https://github.com/vitlibar)) -- Добавлены растровые функции с ревущими растровыми изображениями. [\#4207](https://github.com/ClickHouse/ClickHouse/pull/4207) ([Энди Янг](https://github.com/andyyzh)) [\#4568](https://github.com/ClickHouse/ClickHouse/pull/4568) ([Виталий Баранов](https://github.com/vitlibar)) -- Поддержка формата паркета. [\#4448](https://github.com/ClickHouse/ClickHouse/pull/4448) ([proller](https://github.com/proller)) -- Для сравнения нечетких строк было добавлено расстояние N-грамм. Это похоже на Q-граммовые метрики в языке R. [\#4466](https://github.com/ClickHouse/ClickHouse/pull/4466) ([Данила Кутенин](https://github.com/danlark1)) -- Комбинируйте правила для свертки графита из выделенных шаблонов агрегации и хранения. [\#4426](https://github.com/ClickHouse/ClickHouse/pull/4426) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) -- Добавлен `max_execution_speed` и `max_execution_speed_bytes` чтобы ограничить использование ресурсов. Добавлен `min_execution_speed_bytes` установка в дополнение к `min_execution_speed`. [\#4430](https://github.com/ClickHouse/ClickHouse/pull/4430) ([Зимний Чжан](https://github.com/zhang2014)) -- Реализованная функция `flatten`. [\#4555](https://github.com/ClickHouse/ClickHouse/pull/4555) [\#4409](https://github.com/ClickHouse/ClickHouse/pull/4409) ([Алексей-Миловидов](https://github.com/alexey-milovidov), [произв](https://github.com/kzon)) -- Добавленные функции `arrayEnumerateDenseRanked` и `arrayEnumerateUniqRanked` (это как будто `arrayEnumerateUniq` но позволяет точно настроить глубину массива, чтобы заглянуть внутрь многомерных массивов). [\#4475](https://github.com/ClickHouse/ClickHouse/pull/4475) ([proller](https://github.com/proller)) [\#4601](https://github.com/ClickHouse/ClickHouse/pull/4601) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Multiple JOINS with some restrictions: no asterisks, no complex aliases in ON/WHERE/GROUP BY/… [\#4462](https://github.com/ClickHouse/ClickHouse/pull/4462) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Устранение ошибок {#bug-fixes-11} - -- Этот релиз также содержит все исправления ошибок из 19.3 и 19.1. -- Исправлена ошибка в индексах пропуска данных: неправильный порядок гранул после вставки. [\#4407](https://github.com/ClickHouse/ClickHouse/pull/4407) ([Никита Васильев](https://github.com/nikvas0)) -- Исправлено `set` индекс для `Nullable` и `LowCardinality` столбцы. Перед ним, `set` индекс с `Nullable` или `LowCardinality` колонка привела к ошибке `Data type must be deserialized with multiple streams` во время выбора. [\#4594](https://github.com/ClickHouse/ClickHouse/pull/4594) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Правильно установите update\_time на полный `executable` обновление словаря. [\#4551](https://github.com/ClickHouse/ClickHouse/pull/4551) ([Тема Новиков](https://github.com/temoon)) -- Исправлена поломка индикатора выполнения в 19.3. [\#4627](https://github.com/ClickHouse/ClickHouse/pull/4627) ([Филимонов](https://github.com/filimonov)) -- Исправлены несогласованные значения MemoryTracker при сжатии области памяти, в некоторых случаях. [\#4619](https://github.com/ClickHouse/ClickHouse/pull/4619) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено неопределенное поведение в ThreadPool. [\#4612](https://github.com/ClickHouse/ClickHouse/pull/4612) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена очень редкая ошибка с сообщением `mutex lock failed: Invalid argument` это может произойти, когда таблица MergeTree была удалена одновременно с SELECT. [\#4608](https://github.com/ClickHouse/ClickHouse/pull/4608) ([Алексей Зателепин](https://github.com/ztlpn)) -- Совместимость драйвера ODBC с `LowCardinality` тип данных. [\#4381](https://github.com/ClickHouse/ClickHouse/pull/4381) ([proller](https://github.com/proller)) -- FreeBSD: исправление для `AIOcontextPool: Found io_event with unknown id 0` ошибка. [\#4438](https://github.com/ClickHouse/ClickHouse/pull/4438) ([urgordeadbeef](https://github.com/urgordeadbeef)) -- `system.part_log` таблица была создана независимо от конфигурации. [\#4483](https://github.com/ClickHouse/ClickHouse/pull/4483) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте неопределенное поведение в `dictIsIn` функция для словарей кэша. [\#4515](https://github.com/ClickHouse/ClickHouse/pull/4515) ([алесапин](https://github.com/alesapin)) -- Fixed a deadlock when a SELECT query locks the same table multiple times (e.g. from different threads or when executing multiple subqueries) and there is a concurrent DDL query. [\#4535](https://github.com/ClickHouse/ClickHouse/pull/4535) ([Алексей Зателепин](https://github.com/ztlpn)) -- Отключите compile\_expressions по умолчанию, пока мы не получим собственные `llvm` contrib и может проверить его с помощью `clang` и `asan`. [\#4579](https://github.com/ClickHouse/ClickHouse/pull/4579) ([алесапин](https://github.com/alesapin)) -- Предотвращать `std::terminate` когда `invalidate_query` для `clickhouse` внешний источник словаря вернул неверный результирующий набор (пустой или более одной строки или более одного столбца). Исправлена проблема, когда `invalidate_query` выполнялось каждые пять секунд независимо от `lifetime`. [\#4583](https://github.com/ClickHouse/ClickHouse/pull/4583) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Избегайте тупиковой ситуации, когда `invalidate_query` для словаря с `clickhouse` источник был задействован `system.dictionaries` таблица или `Dictionaries` база данных (редкий случай). [\#4599](https://github.com/ClickHouse/ClickHouse/pull/4599) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено перекрестное соединение с пустым местом. [\#4598](https://github.com/ClickHouse/ClickHouse/pull/4598) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена обработка выхода онлайн / оффлайн в функции «replicate» когда передается постоянный аргумент. [\#4603](https://github.com/ClickHouse/ClickHouse/pull/4603) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте лямбда-функцию с помощью оптимизатора предикатов. [\#4408](https://github.com/ClickHouse/ClickHouse/pull/4408) ([Зимний Чжан](https://github.com/zhang2014)) -- Несколько соединений несколько исправлений. [\#4595](https://github.com/ClickHouse/ClickHouse/pull/4595) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшения {#improvements-3} - -- Поддержка псевдонимов в разделе JOIN ON для правых столбцов таблицы. [\#4412](https://github.com/ClickHouse/ClickHouse/pull/4412) ([Артем Зуйков](https://github.com/4ertus2)) -- Результат нескольких соединений требует правильных имен результатов, которые будут использоваться в подсекциях. В результате замените плоские псевдонимы именами источников. [\#4474](https://github.com/ClickHouse/ClickHouse/pull/4474) ([Артем Зуйков](https://github.com/4ertus2)) -- Улучшить нажимаем-вниз-логика вступила заявления. [\#4387](https://github.com/ClickHouse/ClickHouse/pull/4387) ([Иван](https://github.com/abyss7)) - -#### Улучшения в производительности {#performance-improvements-3} - -- Улучшенная эвристика «move to PREWHERE» оптимизация. [\#4405](https://github.com/ClickHouse/ClickHouse/pull/4405) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Используйте правильные таблицы поиска, которые используют API HashTable для 8-битных и 16-битных ключей. [\#4536](https://github.com/ClickHouse/ClickHouse/pull/4536) ([Амос Птица](https://github.com/amosbird)) -- Улучшена производительность сравнения строк. [\#4564](https://github.com/ClickHouse/ClickHouse/pull/4564) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Очистите распределенную очередь DDL в отдельном потоке, чтобы она не замедляла основной цикл, обрабатывающий распределенные задачи DDL. [\#4502](https://github.com/ClickHouse/ClickHouse/pull/4502) ([Алексей Зателепин](https://github.com/ztlpn)) -- Когда `min_bytes_to_use_direct_io` имеет значение 1, не каждый файл был открыт в режиме O\_DIRECT, потому что размер данных для чтения иногда недооценивался размером одного сжатого блока. [\#4526](https://github.com/ClickHouse/ClickHouse/pull/4526) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-12} - -- Добавлена поддержка clang-9 [\#4604](https://github.com/ClickHouse/ClickHouse/pull/4604) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправь ошибку `__asm__` инструкции (опять же) [\#4621](https://github.com/ClickHouse/ClickHouse/pull/4621) ([Константин Подшумок](https://github.com/podshumok)) -- Добавить возможность задавать настройки для `clickhouse-performance-test` из командной строки. [\#4437](https://github.com/ClickHouse/ClickHouse/pull/4437) ([алесапин](https://github.com/alesapin)) -- Добавьте тесты словарей в интеграционные тесты. [\#4477](https://github.com/ClickHouse/ClickHouse/pull/4477) ([алесапин](https://github.com/alesapin)) -- Добавлены запросы от бенчмарка на веб-сайте к автоматизированным тестам производительности. [\#4496](https://github.com/ClickHouse/ClickHouse/pull/4496) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `xxhash.h` не существует во внешнем lz4, потому что это деталь реализации, и ее символы находятся в пространстве имен с `XXH_NAMESPACE` макрос. Когда lz4 является внешним, xxHash также должен быть внешним, и зависимые должны быть связаны с ним. [\#4495](https://github.com/ClickHouse/ClickHouse/pull/4495) ([Оривей Деш](https://github.com/orivej)) -- Исправлен случай, когда `quantileTiming` агрегатная функция может быть вызвана с отрицательным или плавающим аргументом (это исправляет тест fuzz с неопределенным поведением дезинфицирующего средства). [\#4506](https://github.com/ClickHouse/ClickHouse/pull/4506) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправление орфографических ошибок. [\#4531](https://github.com/ClickHouse/ClickHouse/pull/4531) ([сдк2](https://github.com/sdk2)) -- Исправлена компиляция на Mac. [\#4371](https://github.com/ClickHouse/ClickHouse/pull/4371) ([Виталий Баранов](https://github.com/vitlibar)) -- Исправления сборки для FreeBSD и различных необычных конфигураций сборки. [\#4444](https://github.com/ClickHouse/ClickHouse/pull/4444) ([proller](https://github.com/proller)) - -## ClickHouse релиз 19.3 {#clickhouse-release-19-3} - -### ClickHouse релиз 19.3.9.1, 2019-04-02 {#clickhouse-release-19-3-9-1-2019-04-02} - -#### Устранение ошибок {#bug-fixes-12} - -- Исправить сбой в работе `FULL/RIGHT JOIN` когда мы присоединились на обнуляемой против не допускает значения null. [\#4855](https://github.com/ClickHouse/ClickHouse/pull/4855) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка сегментации в `clickhouse-copier`. [\#4835](https://github.com/ClickHouse/ClickHouse/pull/4835) ([proller](https://github.com/proller)) -- Исправлено чтение из `Array(LowCardinality)` столбец в редком случае, когда столбец содержит длинную последовательность пустых массивов. [\#4850](https://github.com/ClickHouse/ClickHouse/pull/4850) ([Николай Кочетов](https://github.com/KochetovNicolai)) - -#### Сборка/Тестирование / Улучшение Упаковки {#buildtestingpackaging-improvement-13} - -- Добавьте способ запуска образа clickhouse-server от пользовательского пользователя [\#4753](https://github.com/ClickHouse/ClickHouse/pull/4753) ([Mikhail f. Shiryaev](https://github.com/Felixoid)) - -### ClickHouse релиз 19.3.7, 2019-03-12 {#clickhouse-release-19-3-7-2019-03-12} - -#### Устранение ошибок {#bug-fixes-13} - -- Исправлена ошибка в \#3920. Эта ошибка проявляется как случайное повреждение кэша (сообщения `Unknown codec family code`, `Cannot seek through file`) и segfaults. Эта ошибка впервые появилась в версии 19.1 и присутствует в версиях до 19.1.10 и 19.3.6. [\#4623](https://github.com/ClickHouse/ClickHouse/pull/4623) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.3.6, 2019-03-02 {#clickhouse-release-19-3-6-2019-03-02} - -#### Устранение ошибок {#bug-fixes-14} - -- При наличии более 1000 потоков в пуле, `std::terminate` может произойти на выходе из потока. [Азат Хужин](https://github.com/azat) [\#4485](https://github.com/ClickHouse/ClickHouse/pull/4485) [\#4505](https://github.com/ClickHouse/ClickHouse/pull/4505) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Теперь это можно создать `ReplicatedMergeTree*` таблицы с комментариями к столбцам без значений по умолчанию и таблицы со столбцами кодеки без комментариев и значений по умолчанию. Также исправлено сравнение кодеков. [\#4523](https://github.com/ClickHouse/ClickHouse/pull/4523) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка при соединении с массивом или кортежем. [\#4552](https://github.com/ClickHouse/ClickHouse/pull/4552) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка в работе clickhouse-копировальной машины с сообщением `ThreadStatus not created`. [\#4540](https://github.com/ClickHouse/ClickHouse/pull/4540) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено зависание при выключении сервера, если использовались распределенные DDLs. [\#4472](https://github.com/ClickHouse/ClickHouse/pull/4472) ([Алексей Зателепин](https://github.com/ztlpn)) -- Неверные номера столбцов были напечатаны в сообщении об ошибке о синтаксическом анализе текстового формата для столбцов с числом больше 10. [\#4484](https://github.com/ClickHouse/ClickHouse/pull/4484) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-3} - -- Исправлена сборка с включенным AVX. [\#4527](https://github.com/ClickHouse/ClickHouse/pull/4527) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Включите расширенный учет и учет ввода-вывода на основе хорошо известной версии вместо ядра, под которым он компилируется. [\#4541](https://github.com/ClickHouse/ClickHouse/pull/4541) ([nvartolomei](https://github.com/nvartolomei)) -- Разрешить пропустить настройку core\_dump.size\_limit, предупреждение, а не бросать, если лимита не получится. [\#4473](https://github.com/ClickHouse/ClickHouse/pull/4473) ([proller](https://github.com/proller)) -- Удалил то `inline` метки из `void readBinary(...)` в `Field.cpp`. Также объединены избыточные `namespace DB` блоки. [\#4530](https://github.com/ClickHouse/ClickHouse/pull/4530) ([hcz](https://github.com/hczhcz)) - -### ClickHouse релиз 19.3.5, 2019-02-21 {#clickhouse-release-19-3-5-2019-02-21} - -#### Устранение ошибок {#bug-fixes-15} - -- Исправлена ошибка с обработкой больших запросов вставки http. [\#4454](https://github.com/ClickHouse/ClickHouse/pull/4454) ([алесапин](https://github.com/alesapin)) -- Исправлена обратная несовместимость со старыми версиями из-за неправильной реализации `send_logs_level` установка. [\#4445](https://github.com/ClickHouse/ClickHouse/pull/4445) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена обратная несовместимость функции таблицы `remote` введено с комментариями к колонке. [\#4446](https://github.com/ClickHouse/ClickHouse/pull/4446) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.3.4, 2019-02-16 {#clickhouse-release-19-3-4-2019-02-16} - -#### Улучшения {#improvements-4} - -- Размер индекса таблицы не учитывается для ограничений памяти при выполнении `ATTACH TABLE` запрос. Избегайте возможности того, что стол не может быть прикреплен после отсоединения. [\#4396](https://github.com/ClickHouse/ClickHouse/pull/4396) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Немного повышен лимит на максимальный размер строки и массива, полученный от ZooKeeper. Это позволяет продолжать работу с увеличенным размером `CLIENT_JVMFLAGS=-Djute.maxbuffer=...` на смотрителя зоопарка. [\#4398](https://github.com/ClickHouse/ClickHouse/pull/4398) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Разрешить восстанавливать брошенную реплику, даже если она уже имеет огромное количество узлов в своей очереди. [\#4399](https://github.com/ClickHouse/ClickHouse/pull/4399) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавьте один обязательный аргумент к `SET` индекс (максимальное количество хранимых строк). [\#4386](https://github.com/ClickHouse/ClickHouse/pull/4386) ([Никита Васильев](https://github.com/nikvas0)) - -#### Устранение ошибок {#bug-fixes-16} - -- Исправлено `WITH ROLLUP` результат для группы по одиночке `LowCardinality` ключ. [\#4384](https://github.com/ClickHouse/ClickHouse/pull/4384) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Исправлена ошибка в заданном индексе (удаление гранулы, если она содержит более `max_rows` грядки). [\#4386](https://github.com/ClickHouse/ClickHouse/pull/4386) ([Никита Васильев](https://github.com/nikvas0)) -- Множество исправлений для сборки FreeBSD. [\#4397](https://github.com/ClickHouse/ClickHouse/pull/4397) ([proller](https://github.com/proller)) -- Исправлена подстановка псевдонимов в запросах с подзапросом, содержащим один и тот же псевдоним (проблема [\#4110](https://github.com/ClickHouse/ClickHouse/issues/4110)). [\#4351](https://github.com/ClickHouse/ClickHouse/pull/4351) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-4} - -- Добавить возможность запуска `clickhouse-server` для тестов без состояния в образе docker. [\#4347](https://github.com/ClickHouse/ClickHouse/pull/4347) ([Василий Немков](https://github.com/Enmk)) - -### ClickHouse релиз 19.3.3, 2019-02-13 {#clickhouse-release-19-3-3-2019-02-13} - -#### Новые средства {#new-features-6} - -- Добавил тот `KILL MUTATION` оператор, который позволяет удалять мутации, которые по каким-то причинам застряли. Добавлен `latest_failed_part`, `latest_fail_time`, `latest_fail_reason` поля к тому же `system.mutations` таблица для более легкого устранения неполадок. [\#4287](https://github.com/ClickHouse/ClickHouse/pull/4287) ([Алексей Зателепин](https://github.com/ztlpn)) -- Добавлена статистическая функция `entropy` который вычисляет энтропию Шеннона. [\#4238](https://github.com/ClickHouse/ClickHouse/pull/4238) ([Quid37](https://github.com/Quid37)) -- Добавлена возможность отправлять запросы `INSERT INTO tbl VALUES (....` к серверу без разделения на `query` и `data` части. [\#4301](https://github.com/ClickHouse/ClickHouse/pull/4301) ([алесапин](https://github.com/alesapin)) -- Общая реализация проекта `arrayWithConstant` была добавлена функция. [\#4322](https://github.com/ClickHouse/ClickHouse/pull/4322) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Реализованный `NOT BETWEEN` оператор сравнения. [\#4228](https://github.com/ClickHouse/ClickHouse/pull/4228) ([Дмитрий Наумов](https://github.com/nezed)) -- Осуществлять `sumMapFiltered` для того чтобы иметь возможность ограничить количество ключей для которых значения будут суммироваться по формуле `sumMap`. [\#4129](https://github.com/ClickHouse/ClickHouse/pull/4129) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) -- Добавлена поддержка `Nullable` напечатать `mysql` табличная функция. [\#4198](https://github.com/ClickHouse/ClickHouse/pull/4198) ([Emmanuel Donin de Rosière](https://github.com/edonin)) -- Поддержка произвольных константных выражений в `LIMIT` пункт. [\#4246](https://github.com/ClickHouse/ClickHouse/pull/4246) ([k3box](https://github.com/k3box)) -- Добавлен `topKWeighted` агрегатная функция, принимающая дополнительный аргумент с весом (целое число без знака). [\#4245](https://github.com/ClickHouse/ClickHouse/pull/4245) ([Андрей Гольман](https://github.com/andrewgolman)) -- `StorageJoin` теперь поддерживать `join_any_take_last_row` настройка, позволяющая перезаписать существующие значения одного и того же ключа. [\#3973](https://github.com/ClickHouse/ClickHouse/pull/3973) ([Амос Птица](https://github.com/amosbird) -- Добавлена функция `toStartOfInterval`. [\#4304](https://github.com/ClickHouse/ClickHouse/pull/4304) ([Виталий Баранов](https://github.com/vitlibar)) -- Добавлен `RowBinaryWithNamesAndTypes` формат. [\#4200](https://github.com/ClickHouse/ClickHouse/pull/4200) ([Козлюк Олег Викторович](https://github.com/DarkWanderer)) -- Добавлен `IPv4` и `IPv6` тип данных. Более эффективное внедрение `IPv*` функции. [\#3669](https://github.com/ClickHouse/ClickHouse/pull/3669) ([Василий Немков](https://github.com/Enmk)) -- Добавлена функция `toStartOfTenMinutes()`. [\#4298](https://github.com/ClickHouse/ClickHouse/pull/4298) ([Виталий Баранов](https://github.com/vitlibar)) -- Добавлен `Protobuf` выходной формат. [\#4005](https://github.com/ClickHouse/ClickHouse/pull/4005) [\#4158](https://github.com/ClickHouse/ClickHouse/pull/4158) ([Виталий Баранов](https://github.com/vitlibar)) -- Добавлена поддержка brotli для HTTP-интерфейса для импорта данных (вставки). [\#4235](https://github.com/ClickHouse/ClickHouse/pull/4235) ([Михаил](https://github.com/fandyushin)) -- Добавлены подсказки, когда пользователь делает опечатку в имени функции или вводит клиент командной строки. [\#4239](https://github.com/ClickHouse/ClickHouse/pull/4239) ([Данила Кутенин](https://github.com/danlark1)) -- Добавлен `Query-Id` к заголовку HTTP-ответа сервера. [\#4231](https://github.com/ClickHouse/ClickHouse/pull/4231) ([Михаил](https://github.com/fandyushin)) - -#### Экспериментальная возможность {#experimental-features-2} - -- Добавлен `minmax` и `set` индексы пропуска данных для семейства движков таблиц MergeTree. [\#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Никита Васильев](https://github.com/nikvas0)) -- Добавлено преобразование из `CROSS JOIN` к `INNER JOIN` если можно. [\#4221](https://github.com/ClickHouse/ClickHouse/pull/4221) [\#4266](https://github.com/ClickHouse/ClickHouse/pull/4266) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Устранение ошибок {#bug-fixes-17} - -- Исправлено `Not found column` для повторяющихся столбцов в `JOIN ON` раздел. [\#4279](https://github.com/ClickHouse/ClickHouse/pull/4279) ([Артем Зуйков](https://github.com/4ertus2)) -- Сделай `START REPLICATED SENDS` команда начала репликации отправляет. [\#4229](https://github.com/ClickHouse/ClickHouse/pull/4229) ([nvartolomei](https://github.com/nvartolomei)) -- Фиксированное выполнение агрегатных функций с помощью `Array(LowCardinality)` аргументы. [\#4055](https://github.com/ClickHouse/ClickHouse/pull/4055) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Исправлено неправильное поведение при выполнении `INSERT ... SELECT ... FROM file(...)` запрос и файл имеет `CSVWithNames` или `TSVWIthNames` формат и первая строка данных отсутствуют. [\#4297](https://github.com/ClickHouse/ClickHouse/pull/4297) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка при перезагрузке словаря, если словарь недоступен. Эта ошибка появилась в 19.1.6. [\#4188](https://github.com/ClickHouse/ClickHouse/pull/4188) ([proller](https://github.com/proller)) -- Исправлено `ALL JOIN` с дубликатами в правой таблице. [\#4184](https://github.com/ClickHouse/ClickHouse/pull/4184) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка сегментации с помощью `use_uncompressed_cache=1` и исключение с неправильным несжатым размером. Эта ошибка появилась в 19.1.6. [\#4186](https://github.com/ClickHouse/ClickHouse/pull/4186) ([алесапин](https://github.com/alesapin)) -- Исправлено `compile_expressions` ошибка с сопоставлением больших (более int16) дат. [\#4341](https://github.com/ClickHouse/ClickHouse/pull/4341) ([алесапин](https://github.com/alesapin)) -- Исправлена бесконечная петля при выборе функции из таблицы `numbers(0)`. [\#4280](https://github.com/ClickHouse/ClickHouse/pull/4280) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Временно отключите оптимизацию предикатов для `ORDER BY`. [\#3890](https://github.com/ClickHouse/ClickHouse/pull/3890) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлено `Illegal instruction` ошибка при использовании функций base64 на старых процессорах. Эта ошибка была воспроизведена только тогда, когда ClickHouse был скомпилирован с помощью gcc-8. [\#4275](https://github.com/ClickHouse/ClickHouse/pull/4275) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено `No message received` ошибка при взаимодействии с драйвером PostgreSQL ODBC через TLS-соединение. Также исправлена ошибка segfault при использовании драйвера MySQL ODBC. [\#4170](https://github.com/ClickHouse/ClickHouse/pull/4170) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен неверный результат, когда `Date` и `DateTime` аргументы используются в ветвях условного оператора (функции `if`). Добавлен общий случай для функции `if`. [\#4243](https://github.com/ClickHouse/ClickHouse/pull/4243) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Словари ClickHouse теперь загружаются внутри `clickhouse` процесс. [\#4166](https://github.com/ClickHouse/ClickHouse/pull/4166) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена тупиковая ситуация, когда `SELECT` из-за стола с `File` двигатель был восстановлен после того, как `No such file or directory` ошибка. [\#4161](https://github.com/ClickHouse/ClickHouse/pull/4161) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированное состояние гонки при выборе из `system.tables` может дать `table doesn't exist` ошибка. [\#4313](https://github.com/ClickHouse/ClickHouse/pull/4313) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `clickhouse-client` может segfault на выходе при загрузке данных для предложений командной строки, если он был запущен в интерактивном режиме. [\#4317](https://github.com/ClickHouse/ClickHouse/pull/4317) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка при выполнении мутаций, содержащих `IN` операторы давали неверные результаты. [\#4099](https://github.com/ClickHouse/ClickHouse/pull/4099) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправлена ошибка: если есть база данных с `Dictionary` движок, все словари принудительно загружаются при запуске сервера, и если есть словарь с источником ClickHouse от localhost, то словарь не может загрузиться. [\#4255](https://github.com/ClickHouse/ClickHouse/pull/4255) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка при повторной попытке создания системных журналов при выключении сервера. [\#4254](https://github.com/ClickHouse/ClickHouse/pull/4254) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Правильно верните правильный тип и правильно обработайте замки `joinGet` функция. [\#4153](https://github.com/ClickHouse/ClickHouse/pull/4153) ([Амос Птица](https://github.com/amosbird)) -- Добавлен `sumMapWithOverflow` функция. [\#4151](https://github.com/ClickHouse/ClickHouse/pull/4151) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) -- Исправлена обработка выхода онлайн / оффлайн с `allow_experimental_multiple_joins_emulation`. [52de2c](https://github.com/ClickHouse/ClickHouse/commit/52de2cd927f7b5257dd67e175f0a5560a48840d0) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлена ошибка с неправильным `Date` и `DateTime` сравнение. [\#4237](https://github.com/ClickHouse/ClickHouse/pull/4237) ([valexey](https://github.com/valexey)) -- Исправлен тест fuzz при неопределенном поведении дезинфицирующего средства: добавлена проверка типа параметра для `quantile*Weighted` семейство функций. [\#4145](https://github.com/ClickHouse/ClickHouse/pull/4145) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено редкое состояние гонки при удалении старых частей данных может произойти сбой с помощью `File not found` ошибка. [\#4378](https://github.com/ClickHouse/ClickHouse/pull/4378) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка установки пакета с отсутствующим /etc / clickhouse-server / config.XML. [\#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-5} - -- Пакет Debian: исправьте/etc/clickhouse-server / preprocessed link в соответствии с конфигурацией. [\#4205](https://github.com/ClickHouse/ClickHouse/pull/4205) ([proller](https://github.com/proller)) -- Различные исправления сборки для FreeBSD. [\#4225](https://github.com/ClickHouse/ClickHouse/pull/4225) ([proller](https://github.com/proller)) -- Добавлена возможность создавать, заполнять и удалять таблицы в perftest. [\#4220](https://github.com/ClickHouse/ClickHouse/pull/4220) ([алесапин](https://github.com/alesapin)) -- Добавлен скрипт для проверки наличия дубликатов включений. [\#4326](https://github.com/ClickHouse/ClickHouse/pull/4326) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена возможность выполнения запросов по индексу в тесте производительности. [\#4264](https://github.com/ClickHouse/ClickHouse/pull/4264) ([алесапин](https://github.com/alesapin)) -- Предлагается установить пакет с отладочными символами. [\#4274](https://github.com/ClickHouse/ClickHouse/pull/4274) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Рефакторинг производительности-тест. Улучшенная регистрация и обработка сигналов. [\#4171](https://github.com/ClickHouse/ClickHouse/pull/4171) ([алесапин](https://github.com/alesapin)) -- Добавлены документы в анонимизированный Яндекс.Метрика набирает данные. [\#4164](https://github.com/ClickHouse/ClickHouse/pull/4164) ([алесапин](https://github.com/alesapin)) -- Аdded tool for converting an old month-partitioned part to the custom-partitioned format. [\#4195](https://github.com/ClickHouse/ClickHouse/pull/4195) ([Алексей Зателепин](https://github.com/ztlpn)) -- Добавлены документы о двух наборах данных в s3. [\#4144](https://github.com/ClickHouse/ClickHouse/pull/4144) ([алесапин](https://github.com/alesapin)) -- Добавлен скрипт, который создает список изменений из описания запросов на вытягивание. [\#4169](https://github.com/ClickHouse/ClickHouse/pull/4169) [\#4173](https://github.com/ClickHouse/ClickHouse/pull/4173) ([Кочетовниколай](https://github.com/KochetovNicolai)) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Добавлен кукольный модуль для Clickhouse. [\#4182](https://github.com/ClickHouse/ClickHouse/pull/4182) ([Максим Федотов](https://github.com/MaxFedotov)) -- Добавлены документы для группы недокументированных функций. [\#4168](https://github.com/ClickHouse/ClickHouse/pull/4168) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправление сборки рук. [\#4210](https://github.com/ClickHouse/ClickHouse/pull/4210)[\#4306](https://github.com/ClickHouse/ClickHouse/pull/4306) [\#4291](https://github.com/ClickHouse/ClickHouse/pull/4291) ([proller](https://github.com/proller)) ([proller](https://github.com/proller)) -- Словарные тесты теперь можно запускать из `ctest`. [\#4189](https://github.com/ClickHouse/ClickHouse/pull/4189) ([proller](https://github.com/proller)) -- Сейчас `/etc/ssl` используется в качестве каталога по умолчанию с SSL-сертификатами. [\#4167](https://github.com/ClickHouse/ClickHouse/pull/4167) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена проверка инструкций SSE и AVX при запуске. [\#4234](https://github.com/ClickHouse/ClickHouse/pull/4234) ([Игр](https://github.com/igron99)) -- Init скрипт будет ждать сервер до запуска. [\#4281](https://github.com/ClickHouse/ClickHouse/pull/4281) ([proller](https://github.com/proller)) - -#### Назад Несовместимые Изменения {#backward-incompatible-changes-1} - -- Удаленный `allow_experimental_low_cardinality_type` установка. `LowCardinality` типы данных уже готовы к производству. [\#4323](https://github.com/ClickHouse/ClickHouse/pull/4323) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Уменьшите размер маркированного кэша и размер несжатого кэша соответственно доступному объему памяти. [\#4240](https://github.com/ClickHouse/ClickHouse/pull/4240) ([Лопатин Константин](https://github.com/k-lopatin) -- Добавить ключевые слова `INDEX` в `CREATE TABLE` запрос. Столбец с именем `index` должен быть заключен в кавычки с обратными или двойными кавычками: `` `index` ``. [\#4143](https://github.com/ClickHouse/ClickHouse/pull/4143) ([Никита Васильев](https://github.com/nikvas0)) -- `sumMap` теперь продвигайте тип результата вместо переполнения. Старое `sumMap` поведение может быть получено с помощью `sumMapWithOverflow` функция. [\#4151](https://github.com/ClickHouse/ClickHouse/pull/4151) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) - -#### Улучшения в производительности {#performance-improvements-4} - -- `std::sort` заменено на `pdqsort` для запросов без `LIMIT`. [\#4236](https://github.com/ClickHouse/ClickHouse/pull/4236) ([Евгений Правда](https://github.com/kvinty)) -- Теперь сервер повторно использует потоки из глобального пула потоков. Это влияет на производительность в некоторых угловых случаях. [\#4150](https://github.com/ClickHouse/ClickHouse/pull/4150) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшения {#improvements-5} - -- Реализована поддержка AIO для FreeBSD. [\#4305](https://github.com/ClickHouse/ClickHouse/pull/4305) ([urgordeadbeef](https://github.com/urgordeadbeef)) -- `SELECT * FROM a JOIN b USING a, b` теперь вернуться `a` и `b` столбцы только из левой таблицы. [\#4141](https://github.com/ClickHouse/ClickHouse/pull/4141) ([Артем Зуйков](https://github.com/4ertus2)) -- Позволять `-C` возможность работы клиента в качестве `-c` вариант. [\#4232](https://github.com/ClickHouse/ClickHouse/pull/4232) ([семинсергей](https://github.com/syominsergey)) -- Теперь вариант `--password` использовать без стоимости требует пароль из stdin. [\#4230](https://github.com/ClickHouse/ClickHouse/pull/4230) ([BSD\_Conqueror](https://github.com/bsd-conqueror)) -- Добавлена подсветка неэскапированных метасимволов в строковых литералах, содержащих `LIKE` выражения или регулярные выражения. [\#4327](https://github.com/ClickHouse/ClickHouse/pull/4327) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена отмена HTTP-запросов только для чтения, если клиентский сокет уходит. [\#4213](https://github.com/ClickHouse/ClickHouse/pull/4213) ([nvartolomei](https://github.com/nvartolomei)) -- Теперь сервер сообщает о прогрессе, чтобы сохранить клиентские соединения живыми. [\#4215](https://github.com/ClickHouse/ClickHouse/pull/4215) ([Иван](https://github.com/abyss7)) -- Немного лучше сообщение с причиной для оптимизации запроса с помощью `optimize_throw_if_noop` настройка включена. [\#4294](https://github.com/ClickHouse/ClickHouse/pull/4294) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена поддержка `--version` опция для сервера clickhouse. [\#4251](https://github.com/ClickHouse/ClickHouse/pull/4251) ([Лопатин Константин](https://github.com/k-lopatin)) -- Добавлен `--help/-h` опцион на `clickhouse-server`. [\#4233](https://github.com/ClickHouse/ClickHouse/pull/4233) ([Юрий Баранов](https://github.com/yurriy)) -- Добавлена поддержка скалярных подзапросов с результатом состояния агрегатной функции. [\#4348](https://github.com/ClickHouse/ClickHouse/pull/4348) ([Николай Кочетов](https://github.com/KochetovNicolai)) -- Улучшено время завершения работы сервера и изменено время ожидания. [\#4372](https://github.com/ClickHouse/ClickHouse/pull/4372) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлена информация о настройке replicated\_can\_become\_leader для system.реплики и добавить ведение журнала, если реплика не будет пытаться стать лидером. [\#4379](https://github.com/ClickHouse/ClickHouse/pull/4379) ([Алексей Зателепин](https://github.com/ztlpn)) - -## ClickHouse релиз 19.1 {#clickhouse-release-19-1} - -### ClickHouse релиз 19.1.14, 2019-03-14 {#clickhouse-release-19-1-14-2019-03-14} - -- Исправления ошибок `Column ... queried more than once` это может произойти, если установка `asterisk_left_columns_only` имеет значение 1 в случае использования `GLOBAL JOIN` с `SELECT *` (редкий случай). Эта проблема не существует в версии 19.3 и более поздних версиях. [6bac7d8d](https://github.com/ClickHouse/ClickHouse/pull/4692/commits/6bac7d8d11a9b0d6de0b32b53c47eb2f6f8e7062) ([Артем Зуйков](https://github.com/4ertus2)) - -### ClickHouse релиз 19.1.13, 2019-03-12 {#clickhouse-release-19-1-13-2019-03-12} - -Этот релиз содержит точно такой же набор исправлений, как и 19.3.7. - -### ClickHouse релиз 19.1.10, 2019-03-03 {#clickhouse-release-19-1-10-2019-03-03} - -Этот релиз содержит точно такой же набор исправлений, как и 19.3.6. - -## ClickHouse релиз 19.1 {#clickhouse-release-19-1-1} - -### ClickHouse релиз 19.1.9, 2019-02-21 {#clickhouse-release-19-1-9-2019-02-21} - -#### Устранение ошибок {#bug-fixes-18} - -- Исправлена обратная несовместимость со старыми версиями из-за неправильной реализации `send_logs_level` установка. [\#4445](https://github.com/ClickHouse/ClickHouse/pull/4445) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена обратная несовместимость функции таблицы `remote` введено с комментариями к колонке. [\#4446](https://github.com/ClickHouse/ClickHouse/pull/4446) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.1.8, 2019-02-16 {#clickhouse-release-19-1-8-2019-02-16} - -#### Устранение ошибок {#bug-fixes-19} - -- Исправлена ошибка установки пакета с отсутствующим /etc / clickhouse-server / config.XML. [\#4343](https://github.com/ClickHouse/ClickHouse/pull/4343) ([proller](https://github.com/proller)) - -## ClickHouse релиз 19.1 {#clickhouse-release-19-1-2} - -### ClickHouse релиз 19.1.7, 2019-02-15 {#clickhouse-release-19-1-7-2019-02-15} - -#### Устранение ошибок {#bug-fixes-20} - -- Правильно возвращайте правильный тип и правильно обрабатывайте замки `joinGet` функция. [\#4153](https://github.com/ClickHouse/ClickHouse/pull/4153) ([Амос Птица](https://github.com/amosbird)) -- Исправлена ошибка при повторной попытке создания системных журналов при выключении сервера. [\#4254](https://github.com/ClickHouse/ClickHouse/pull/4254) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка: если есть база данных с `Dictionary` движок, все словари принудительно загружаются при запуске сервера, и если есть словарь с источником ClickHouse от localhost, то словарь не может загрузиться. [\#4255](https://github.com/ClickHouse/ClickHouse/pull/4255) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка при выполнении мутаций, содержащих `IN` операторы давали неверные результаты. [\#4099](https://github.com/ClickHouse/ClickHouse/pull/4099) ([Алексей Зателепин](https://github.com/ztlpn)) -- `clickhouse-client` может segfault на выходе при загрузке данных для предложений командной строки, если он был запущен в интерактивном режиме. [\#4317](https://github.com/ClickHouse/ClickHouse/pull/4317) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированное состояние гонки при выборе из `system.tables` может дать `table doesn't exist` ошибка. [\#4313](https://github.com/ClickHouse/ClickHouse/pull/4313) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена тупиковая ситуация, когда `SELECT` из-за стола с надписью: `File` двигатель был восстановлен после того, как `No such file or directory` ошибка. [\#4161](https://github.com/ClickHouse/ClickHouse/pull/4161) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка: локальные словари ClickHouse загружаются через TCP, но должны загружаться внутри процесса. [\#4166](https://github.com/ClickHouse/ClickHouse/pull/4166) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено `No message received` ошибка при взаимодействии с драйвером PostgreSQL ODBC через TLS-соединение. Также исправлена ошибка segfault при использовании драйвера MySQL ODBC. [\#4170](https://github.com/ClickHouse/ClickHouse/pull/4170) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Временно отключите оптимизацию предикатов для `ORDER BY`. [\#3890](https://github.com/ClickHouse/ClickHouse/pull/3890) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена бесконечная петля при выборе функции из таблицы `numbers(0)`. [\#4280](https://github.com/ClickHouse/ClickHouse/pull/4280) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлено `compile_expressions` ошибка с сопоставлением больших (более int16) дат. [\#4341](https://github.com/ClickHouse/ClickHouse/pull/4341) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка сегментации с помощью `uncompressed_cache=1` и исключение с неправильным несжатым размером. [\#4186](https://github.com/ClickHouse/ClickHouse/pull/4186) ([алесапин](https://github.com/alesapin)) -- Исправлено `ALL JOIN` с дубликатами в правой таблице. [\#4184](https://github.com/ClickHouse/ClickHouse/pull/4184) ([Артем Зуйков](https://github.com/4ertus2)) -- Исправлено неправильное поведение при выполнении `INSERT ... SELECT ... FROM file(...)` запрос и файл имеет `CSVWithNames` или `TSVWIthNames` формат и первая строка данных отсутствуют. [\#4297](https://github.com/ClickHouse/ClickHouse/pull/4297) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Фиксированное выполнение агрегатных функций с помощью `Array(LowCardinality)` аргументы. [\#4055](https://github.com/ClickHouse/ClickHouse/pull/4055) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Пакет Debian: исправьте/etc/clickhouse-server / preprocessed link в соответствии с конфигурацией. [\#4205](https://github.com/ClickHouse/ClickHouse/pull/4205) ([proller](https://github.com/proller)) -- Исправлен тест fuzz при неопределенном поведении дезинфицирующего средства: добавлена проверка типа параметра для `quantile*Weighted` семейство функций. [\#4145](https://github.com/ClickHouse/ClickHouse/pull/4145) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Сделай `START REPLICATED SENDS` команда начала репликации отправляет. [\#4229](https://github.com/ClickHouse/ClickHouse/pull/4229) ([nvartolomei](https://github.com/nvartolomei)) -- Исправлено `Not found column` для повторяющихся столбцов в разделе JOIN ON. [\#4279](https://github.com/ClickHouse/ClickHouse/pull/4279) ([Артем Зуйков](https://github.com/4ertus2)) -- Сейчас `/etc/ssl` используется в качестве каталога по умолчанию с SSL-сертификатами. [\#4167](https://github.com/ClickHouse/ClickHouse/pull/4167) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка при перезагрузке словаря, если словарь недоступен. [\#4188](https://github.com/ClickHouse/ClickHouse/pull/4188) ([proller](https://github.com/proller)) -- Исправлена ошибка с неправильным `Date` и `DateTime` сравнение. [\#4237](https://github.com/ClickHouse/ClickHouse/pull/4237) ([valexey](https://github.com/valexey)) -- Исправлен неверный результат, когда `Date` и `DateTime` аргументы используются в ветвях условного оператора (функции `if`). Добавлен общий случай для функции `if`. [\#4243](https://github.com/ClickHouse/ClickHouse/pull/4243) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -### ClickHouse релиз 19.1.6, 2019-01-24 {#clickhouse-release-19-1-6-2019-01-24} - -#### Новые средства {#new-features-7} - -- Пользовательские кодеки сжатия для каждого столбца для таблиц. [\#3899](https://github.com/ClickHouse/ClickHouse/pull/3899) [\#4111](https://github.com/ClickHouse/ClickHouse/pull/4111) ([алесапин](https://github.com/alesapin), [Зимний Чжан](https://github.com/zhang2014), [Анатолий](https://github.com/Sindbag)) -- Добавлен кодек сжатия `Delta`. [\#4052](https://github.com/ClickHouse/ClickHouse/pull/4052) ([алесапин](https://github.com/alesapin)) -- Разрешить `ALTER` кодеки сжатия. [\#4054](https://github.com/ClickHouse/ClickHouse/pull/4054) ([алесапин](https://github.com/alesapin)) -- Добавленные функции `left`, `right`, `trim`, `ltrim`, `rtrim`, `timestampadd`, `timestampsub` для совместимости со стандартом SQL. [\#3826](https://github.com/ClickHouse/ClickHouse/pull/3826) ([Иван Блинков](https://github.com/blinkov)) -- Поддержка записи в систему `HDFS` таблица или `hdfs` табличная функция. [\#4084](https://github.com/ClickHouse/ClickHouse/pull/4084) ([алесапин](https://github.com/alesapin)) -- Добавлены функции поиска нескольких постоянных строк из большого стога сена: `multiPosition`, `multiSearch` ,`firstMatch` также с помощью `-UTF8`, `-CaseInsensitive`, и `-CaseInsensitiveUTF8` варианты. [\#4053](https://github.com/ClickHouse/ClickHouse/pull/4053) ([Данила Кутенин](https://github.com/danlark1)) -- Обрезка неиспользуемых осколков, если `SELECT` фильтры запросов по ключу сегментирования (настройка `optimize_skip_unused_shards`). [\#3851](https://github.com/ClickHouse/ClickHouse/pull/3851) ([Глеб Кантеров](https://github.com/kanterov), [Иван](https://github.com/abyss7)) -- Позволять `Kafka` движок для игнорирования некоторого количества ошибок синтаксического анализа в каждом блоке. [\#4094](https://github.com/ClickHouse/ClickHouse/pull/4094) ([Иван](https://github.com/abyss7)) -- Добавлена поддержка для `CatBoost` мультиклассовые модели оценки. Функция `modelEvaluate` возвращает кортеж с необработанными прогнозами для каждого класса для многоклассовых моделей. `libcatboostmodel.so` должно быть построено с помощью [\#607](https://github.com/catboost/catboost/pull/607). [\#3959](https://github.com/ClickHouse/ClickHouse/pull/3959) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Добавленные функции `filesystemAvailable`, `filesystemFree`, `filesystemCapacity`. [\#4097](https://github.com/ClickHouse/ClickHouse/pull/4097) ([Борис Гранво](https://github.com/bgranvea)) -- Добавлены функции хэширования `xxHash64` и `xxHash32`. [\#3905](https://github.com/ClickHouse/ClickHouse/pull/3905) ([Филимонов](https://github.com/filimonov)) -- Добавлен `gccMurmurHash` функция хэширования (GCC flavoured Murmur hash), которая использует то же самое хэш-семя, что и [ССЗ](https://github.com/gcc-mirror/gcc/blob/41d6b10e96a1de98e90a7c0378437c3255814b16/libstdc%2B%2B-v3/include/bits/functional_hash.h#L191) [\#4000](https://github.com/ClickHouse/ClickHouse/pull/4000) ([сундили](https://github.com/sundy-li)) -- Добавлены функции хэширования `javaHash`, `hiveHash`. [\#3811](https://github.com/ClickHouse/ClickHouse/pull/3811) ([shangshujie365](https://github.com/shangshujie365)) -- Добавлена функция таблицы `remoteSecure`. Функция работает как `remote`, но использует безопасное соединение. [\#4088](https://github.com/ClickHouse/ClickHouse/pull/4088) ([proller](https://github.com/proller)) - -#### Экспериментальная возможность {#experimental-features-3} - -- Добавлена эмуляция нескольких соединений (`allow_experimental_multiple_joins_emulation` установочный). [\#3946](https://github.com/ClickHouse/ClickHouse/pull/3946) ([Артем Зуйков](https://github.com/4ertus2)) - -#### Устранение ошибок {#bug-fixes-21} - -- Сделай `compiled_expression_cache_size` установка ограничена по умолчанию для снижения потребления памяти. [\#4041](https://github.com/ClickHouse/ClickHouse/pull/4041) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка, которая привела к зависанию в потоках, выполняющих изменения реплицированных таблиц, и в потоке, обновляющем конфигурацию из ZooKeeper. [\#2947](https://github.com/ClickHouse/ClickHouse/issues/2947) [\#3891](https://github.com/ClickHouse/ClickHouse/issues/3891) [\#3934](https://github.com/ClickHouse/ClickHouse/pull/3934) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправлено состояние гонки при выполнении распределенной задачи ALTER. Состояние гонки привело к тому, что более чем одна реплика пыталась выполнить задачу, и все реплики, кроме одной, потерпели неудачу с ошибкой ZooKeeper. [\#3904](https://github.com/ClickHouse/ClickHouse/pull/3904) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправьте ошибку, когда `from_zk` элементы конфигурации не были обновлены после истечения времени ожидания запроса к ZooKeeper. [\#2947](https://github.com/ClickHouse/ClickHouse/issues/2947) [\#3947](https://github.com/ClickHouse/ClickHouse/pull/3947) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправлена ошибка с неправильным префиксом для масок подсети IPv4. [\#3945](https://github.com/ClickHouse/ClickHouse/pull/3945) ([алесапин](https://github.com/alesapin)) -- Исправлена ошибка (`std::terminate`) в редких случаях, когда новый поток не может быть создан из-за исчерпания ресурсов. [\#3956](https://github.com/ClickHouse/ClickHouse/pull/3956) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, когда в `remote` таблица выполнения функции, когда ошибались ограничений, используемых в `getStructureOfRemoteTable`. [\#4009](https://github.com/ClickHouse/ClickHouse/pull/4009) ([алесапин](https://github.com/alesapin)) -- Исправьте утечку сокетов netlink. Они были помещены в пул, где они никогда не удалялись, а новые сокеты создавались в начале нового потока, когда использовались все текущие сокеты. [\#4017](https://github.com/ClickHouse/ClickHouse/pull/4017) ([Алексей Зателепин](https://github.com/ztlpn)) -- Исправлена ошибка с закрытием `/proc/self/fd` каталог раньше, чем все fds были прочитаны из него `/proc` после раздвоения `odbc-bridge` подпроцесс. [\#4120](https://github.com/ClickHouse/ClickHouse/pull/4120) ([алесапин](https://github.com/alesapin)) -- Исправлено монотонное преобразование строки в UInt в случае использования строки в первичном ключе. [\#3870](https://github.com/ClickHouse/ClickHouse/pull/3870) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена ошибка при вычислении монотонности функции преобразования целых чисел. [\#3921](https://github.com/ClickHouse/ClickHouse/pull/3921) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена обработка выхода онлайн / оффлайн в `arrayEnumerateUniq`, `arrayEnumerateDense` функции в случае некоторых недопустимых аргументов. [\#3909](https://github.com/ClickHouse/ClickHouse/pull/3909) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправьте UB в StorageMerge. [\#3910](https://github.com/ClickHouse/ClickHouse/pull/3910) ([Амос Птица](https://github.com/amosbird)) -- Исправлена обработка выхода онлайн / оффлайн в функции `addDays`, `subtractDays`. [\#3913](https://github.com/ClickHouse/ClickHouse/pull/3913) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка: функции `round`, `floor`, `trunc`, `ceil` может возвращать фиктивный результат при выполнении с целочисленным аргументом и большим отрицательным масштабом. [\#3914](https://github.com/ClickHouse/ClickHouse/pull/3914) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, вызванная ‘kill query sync’ что ведет к свалке ядра. [\#3916](https://github.com/ClickHouse/ClickHouse/pull/3916) ([мувулдипекер](https://github.com/fancyqlx)) -- Исправлена ошибка с длительной задержкой после пустой очереди репликации. [\#3928](https://github.com/ClickHouse/ClickHouse/pull/3928) [\#3932](https://github.com/ClickHouse/ClickHouse/pull/3932) ([алесапин](https://github.com/alesapin)) -- Исправлено чрезмерное использование памяти при вставке в таблицу с `LowCardinality` первичный ключ. [\#3955](https://github.com/ClickHouse/ClickHouse/pull/3955) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Исправлено `LowCardinality` сериализация для `Native` форматирование в случае пустых массивов. [\#3907](https://github.com/ClickHouse/ClickHouse/issues/3907) [\#4011](https://github.com/ClickHouse/ClickHouse/pull/4011) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Исправлен неверный результат при использовании числового столбца distinct by single LowCardinality. [\#3895](https://github.com/ClickHouse/ClickHouse/issues/3895) [\#4012](https://github.com/ClickHouse/ClickHouse/pull/4012) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Исправлена специализированная агрегация с ключом LowCardinality (в случае, когда `compile` настройка включена). [\#3886](https://github.com/ClickHouse/ClickHouse/pull/3886) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Исправлена переадресация пользователей и паролей для запросов реплицированных таблиц. [\#3957](https://github.com/ClickHouse/ClickHouse/pull/3957) ([алесапин](https://github.com/alesapin)) ([小路](https://github.com/nicelulu)) -- Исправлено очень редкое состояние гонки, которое может произойти при перечислении таблиц в базе данных словаря во время перезагрузки словарей. [\#3970](https://github.com/ClickHouse/ClickHouse/pull/3970) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлен неверный результат при использовании метода Rollup или CUBE. [\#3756](https://github.com/ClickHouse/ClickHouse/issues/3756) [\#3837](https://github.com/ClickHouse/ClickHouse/pull/3837) ([Сэм Чоу](https://github.com/reflection)) -- Исправлены псевдонимы столбцов для запроса с помощью `JOIN ON` синтаксис и распределенные таблицы. [\#3980](https://github.com/ClickHouse/ClickHouse/pull/3980) ([Зимний Чжан](https://github.com/zhang2014)) -- Исправлена ошибка во внутренней реализации `quantileTDigest` (найдено Артемом Вахрушевым). Эта ошибка никогда не происходит в ClickHouse и была актуальна только для тех, кто использует кодовую базу ClickHouse непосредственно в качестве библиотеки. [\#3935](https://github.com/ClickHouse/ClickHouse/pull/3935) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Улучшения {#improvements-6} - -- Поддержка `IF NOT EXISTS` в `ALTER TABLE ADD COLUMN` заявления вместе с `IF EXISTS` в `DROP/MODIFY/CLEAR/COMMENT COLUMN`. [\#3900](https://github.com/ClickHouse/ClickHouse/pull/3900) ([Борис Гранво](https://github.com/bgranvea)) -- Функция `parseDateTimeBestEffort`: поддержка форматов `DD.MM.YYYY`, `DD.MM.YY`, `DD-MM-YYYY`, `DD-Mon-YYYY`, `DD/Month/YYYY` и тому подобное. [\#3922](https://github.com/ClickHouse/ClickHouse/pull/3922) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- `CapnProtoInputStream` теперь поддерживайте зубчатые конструкции. [\#4063](https://github.com/ClickHouse/ClickHouse/pull/4063) ([Hultgren Один Ван Дер Хорст](https://github.com/Miniwoffer)) -- Улучшение удобства использования: добавлена проверка того, что серверный процесс запускается от владельца каталога данных. Не позволяют запускать сервер от root, если данные принадлежат к непривилегированным пользователем. [\#3785](https://github.com/ClickHouse/ClickHouse/pull/3785) ([Сергей-в-Гальцев](https://github.com/sergey-v-galtsev)) -- Улучшена логика проверки необходимых столбцов при анализе запросов с соединениями. [\#3930](https://github.com/ClickHouse/ClickHouse/pull/3930) ([Артем Зуйков](https://github.com/4ertus2)) -- Уменьшено количество подключений в случае большого количества распределенных таблиц на одном сервере. [\#3726](https://github.com/ClickHouse/ClickHouse/pull/3726) ([Зимний Чжан](https://github.com/zhang2014)) -- Поддерживаемые итоговые значения строка для `WITH TOTALS` запрос для драйвера ODBC. [\#3836](https://github.com/ClickHouse/ClickHouse/pull/3836) ([Максим Корицкий](https://github.com/nightweb)) -- Разрешено к использованию `Enum`s как целые числа внутри функции if. [\#3875](https://github.com/ClickHouse/ClickHouse/pull/3875) ([Иван](https://github.com/abyss7)) -- Добавлен `low_cardinality_allow_in_native_format` установка. Если он отключен, не используйте его `LowCadrinality` напечатать `Native` формат. [\#3879](https://github.com/ClickHouse/ClickHouse/pull/3879) ([Кочетовниколай](https://github.com/KochetovNicolai)) -- Удалил некоторые избыточные объекты из кэша скомпилированных выражений, чтобы снизить использование памяти. [\#4042](https://github.com/ClickHouse/ClickHouse/pull/4042) ([алесапин](https://github.com/alesapin)) -- Добавить проверить это `SET send_logs_level = 'value'` запрос принимает соответствующее значение. [\#3873](https://github.com/ClickHouse/ClickHouse/pull/3873) ([Сабянин Максим](https://github.com/s-mx)) -- Исправлена проверка типа данных в функциях преобразования типов. [\#3896](https://github.com/ClickHouse/ClickHouse/pull/3896) ([Зимний Чжан](https://github.com/zhang2014)) - -#### Улучшения в производительности {#performance-improvements-5} - -- Добавьте параметр MergeTree `use_minimalistic_part_header_in_zookeeper`. Если этот параметр включен, реплицированные таблицы будут хранить метаданные компактной детали в одном znode детали. Это может значительно уменьшить размер моментального снимка ZooKeeper (особенно если таблицы содержат много столбцов). Обратите внимание, что после включения этого параметра вы не сможете понизить рейтинг до версии, которая его не поддерживает. [\#3960](https://github.com/ClickHouse/ClickHouse/pull/3960) ([Алексей Зателепин](https://github.com/ztlpn)) -- Добавление реализации функций на основе DFA `sequenceMatch` и `sequenceCount` в случае, если шаблон не содержит времени. [\#4004](https://github.com/ClickHouse/ClickHouse/pull/4004) ([Léo Ercolanelli](https://github.com/ercolanelli-leo)) -- Повышение производительности при сериализации целых чисел. [\#3968](https://github.com/ClickHouse/ClickHouse/pull/3968) ([Амос Птица](https://github.com/amosbird)) -- Нулевое левое заполнение PODArray так, чтобы элемент -1 всегда был действителен и обнулялся. Он используется для безветвевого расчета смещений. [\#3920](https://github.com/ClickHouse/ClickHouse/pull/3920) ([Амос Птица](https://github.com/amosbird)) -- Возвратившегося `jemalloc` версии, которые приводят к снижению производительности. [\#4018](https://github.com/ClickHouse/ClickHouse/pull/4018) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) - -#### Назад Несовместимые Изменения {#backward-incompatible-changes-2} - -- Удалена недокументированная функция `ALTER MODIFY PRIMARY KEY` потому что он был вытеснен на второй план `ALTER MODIFY ORDER BY` команда. [\#3887](https://github.com/ClickHouse/ClickHouse/pull/3887) ([Алексей Зателепин](https://github.com/ztlpn)) -- Удаленная функция `shardByHash`. [\#3833](https://github.com/ClickHouse/ClickHouse/pull/3833) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Запретить использование скалярных подзапросов с результатом типа `AggregateFunction`. [\#3865](https://github.com/ClickHouse/ClickHouse/pull/3865) ([Иван](https://github.com/abyss7)) - -#### Улучшения Сборки / Тестирования / Упаковки {#buildtestingpackaging-improvements-6} - -- Добавлена поддержка PowerPC (`ppc64le`) строить. [\#4132](https://github.com/ClickHouse/ClickHouse/pull/4132) ([Данила Кутенин](https://github.com/danlark1)) -- Функциональные тесты с отслеживанием состояния выполняются на общедоступном наборе данных. [\#3969](https://github.com/ClickHouse/ClickHouse/pull/3969) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлена ошибка, когда сервер не может начать работу с `bash: /usr/bin/clickhouse-extract-from-config: Operation not permitted` сообщение внутри Docker или systemd-nspawn. [\#4136](https://github.com/ClickHouse/ClickHouse/pull/4136) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Обновленный `rdkafka` библиотека для v1.0.0-проект RC5. Используется cppkafka вместо raw c интерфейса. [\#4025](https://github.com/ClickHouse/ClickHouse/pull/4025) ([Иван](https://github.com/abyss7)) -- Обновленный `mariadb-client` библиотека. Исправлена одна из проблем, обнаруженных UBSan. [\#3924](https://github.com/ClickHouse/ClickHouse/pull/3924) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Некоторые исправления для утилиты для сборки. [\#3926](https://github.com/ClickHouse/ClickHouse/pull/3926) [\#3021](https://github.com/ClickHouse/ClickHouse/pull/3021) [\#3948](https://github.com/ClickHouse/ClickHouse/pull/3948) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлено в фиксации запусков тестов с утилиты для сборки. -- Добавлено в фиксации работает в PVS-Studio-статический анализатор. -- Исправлены ошибки, обнаруженные компанией PVS-Studio. [\#4013](https://github.com/ClickHouse/ClickHouse/pull/4013) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлены проблемы совместимости glibc. [\#4100](https://github.com/ClickHouse/ClickHouse/pull/4100) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Переместите изображения Docker в 18.10 и добавьте файл совместимости для glibc \>= 2.28 [\#3965](https://github.com/ClickHouse/ClickHouse/pull/3965) ([алесапин](https://github.com/alesapin)) -- Добавьте переменную env, если пользователь не хочет использовать каталоги chown в образе Server Docker. [\#3967](https://github.com/ClickHouse/ClickHouse/pull/3967) ([алесапин](https://github.com/alesapin)) -- Включено большинство предупреждений от `-Weverything` в лязг. Включенный `-Wpedantic`. [\#3986](https://github.com/ClickHouse/ClickHouse/pull/3986) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Добавлено еще несколько предупреждений, которые доступны только в clang 8. [\#3993](https://github.com/ClickHouse/ClickHouse/pull/3993) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Ссылка на `libLLVM` а не к отдельным библиотекам LLVM при использовании общего связывания. [\#3989](https://github.com/ClickHouse/ClickHouse/pull/3989) ([Оривей Деш](https://github.com/orivej)) -- Добавлены переменные дезинфицирующего средства для тестовых изображений. [\#4072](https://github.com/ClickHouse/ClickHouse/pull/4072) ([алесапин](https://github.com/alesapin)) -- `clickhouse-server` пакет debian будет рекомендовать `libcap2-bin` пакет для использования `setcap` инструмент для настройки возможностей. Это необязательно. [\#4093](https://github.com/ClickHouse/ClickHouse/pull/4093) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Улучшено время компиляции, исправлены ошибки. [\#3898](https://github.com/ClickHouse/ClickHouse/pull/3898) ([proller](https://github.com/proller)) -- Добавлены тесты производительности для хэш-функций. [\#3918](https://github.com/ClickHouse/ClickHouse/pull/3918) ([Филимонов](https://github.com/filimonov)) -- Фиксированные циклические библиотечные зависимости. [\#3958](https://github.com/ClickHouse/ClickHouse/pull/3958) ([proller](https://github.com/proller)) -- Улучшена компиляция с низким уровнем доступной памяти. [\#4030](https://github.com/ClickHouse/ClickHouse/pull/4030) ([proller](https://github.com/proller)) -- Добавлен тестовый сценарий для воспроизведения снижения производительности в `jemalloc`. [\#4036](https://github.com/ClickHouse/ClickHouse/pull/4036) ([Алексей-Миловидов](https://github.com/alexey-milovidov)) -- Исправлены опечатки в комментариях и строковых литералах под заголовком `dbms`. [\#4122](https://github.com/ClickHouse/ClickHouse/pull/4122) ([майха](https://github.com/maiha)) -- Исправлены опечатки в комментариях. [\#4089](https://github.com/ClickHouse/ClickHouse/pull/4089) ([Евгений Правда](https://github.com/kvinty)) - -## [Changelog для 2018](https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/changelog/2018.md) {#changelog-for-2018} diff --git a/docs/ru/whats_new/changelog/2019.md b/docs/ru/whats_new/changelog/2019.md new file mode 120000 index 0000000000..905836eef7 --- /dev/null +++ b/docs/ru/whats_new/changelog/2019.md @@ -0,0 +1 @@ +en/whats_new/changelog/2019.md \ No newline at end of file diff --git a/docs/ru/whats_new/roadmap.md b/docs/ru/whats_new/roadmap.md deleted file mode 100644 index 3994ed4ac2..0000000000 --- a/docs/ru/whats_new/roadmap.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -machine_translated: true -machine_translated_rev: 1cd5f0028d917696daf71ac1c9ee849c99c1d5c8 ---- - -# Дорожная карта {#roadmap} - -## Q1 2020 {#q1-2020} - -- Управление доступом на основе ролей - -## Q2 2020 {#q2-2020} - -- Интеграция с внешними службами аутентификации -- Пулы ресурсов для более точного распределения емкости кластера между пользователями - -{## [Оригинальная статья](https://clickhouse.tech/docs/en/roadmap/) ##} diff --git a/docs/ru/whats_new/roadmap.md b/docs/ru/whats_new/roadmap.md new file mode 120000 index 0000000000..81184f9c26 --- /dev/null +++ b/docs/ru/whats_new/roadmap.md @@ -0,0 +1 @@ +en/whats_new/roadmap.md \ No newline at end of file -- GitLab