mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-17 21:24:28 +00:00
d91c97d15d
* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
108 KiB
108 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | b111334d66 |
78 | 2018 |
ClickHouse释放18.16
碌莽禄,拢,010-68520682<url>
错误修复:
改进:
- 添加了
low_cardinality_allow_in_native_format
设置(默认情况下启用)。 如果禁用,则选择查询的LowCardinality列将转换为普通列,插入查询将需要普通列。 #3879
构建改进:
- 修复了基于macOS和ARM的构建。
碌莽禄,拢,010-68520682<url>
新功能:
DEFAULT
在以半结构化输入格式加载数据时,会计算表达式是否缺少字段 (JSONEachRow
,TSKV
). 该功能与启用insert_sample_with_metadata
设置。 #3555- 该
ALTER TABLE
查询现在有MODIFY ORDER BY
用于在添加或删除表列时更改排序键的操作。 这是在表有用MergeTree
基于此排序键合并时执行其他任务的系列,例如SummingMergeTree
,AggregatingMergeTree
,等等。 #3581 #3755 - 对于在表
MergeTree
家庭,现在你可以指定一个不同的排序键 (ORDER BY
)和索引 (PRIMARY KEY
). 排序键可以长于索引。 #3581 - 添加了
hdfs
表功能和HDFS
用于将数据导入和导出到HDFS的表引擎。 晨兴-xc - 增加了使用base64的功能:
base64Encode
,base64Decode
,tryBase64Decode
. Alexander Krasheninnikov - 现在,您可以使用一个参数来配置的精度
uniqCombined
聚合函数(选择HyperLogLog单元格的数量)。 #3406 - 添加了
system.contributors
包含在ClickHouse中进行提交的所有人的名称的表。 #3452 - 增加了省略分区的能力
ALTER TABLE ... FREEZE
查询以便一次备份所有分区。 #3514 - 已添加
dictGet
和dictGetOrDefault
不需要指定返回值类型的函数。 该类型是从字典描述自动确定的。 阿莫斯鸟 - 现在,您可以在表描述中为列指定注释,并使用以下方式对其进行更改
ALTER
. #3377 - 阅读支持
Join
使用简单键键入表格。 阿莫斯鸟 - 现在,您可以指定选项
join_use_nulls
,max_rows_in_join
,max_bytes_in_join
,和join_overflow_mode
当创建一个Join
键入表。 阿莫斯鸟 - 添加了
joinGet
功能,允许您使用Join
像字典一样键入表格。 阿莫斯鸟 - 添加了
partition_key
,sorting_key
,primary_key
,和sampling_key
列到system.tables
表以便提供关于表键的信息。 #3609 - 添加了
is_in_partition_key
,is_in_sorting_key
,is_in_primary_key
,和is_in_sampling_key
列到system.columns
桌子 #3609 - 添加了
min_time
和max_time
列到system.parts
桌子 当分区键是由以下表达式组成的表达式时,将填充这些列DateTime
列。 Emmanuel Donin de Rosière
错误修复:
- 修复和性能改进
LowCardinality
数据类型。GROUP BY
使用LowCardinality(Nullable(...))
. 获取的值extremes
. 处理高阶函数。LEFT ARRAY JOIN
. 分布GROUP BY
. 返回的函数Array
. 执行ORDER BY
. 写入Distributed
表(nicelulu)。 向后兼容INSERT
从实现旧客户端的查询Native
协议 支持LowCardinality
为JOIN
. 在单个流中工作时提高性能。 #3823 #3803 #3799 #3769 #3744 #3681 #3651 #3649 #3641 #3632 #3568 #3523 #3518 - 固定如何
select_sequential_consistency
选项工作。 以前,启用此设置时,在开始写入新分区后,有时会返回不完整的结果。 #2863 - 执行DDL时正确指定数据库
ON CLUSTER
查询和ALTER UPDATE/DELETE
. #3772 #3460 - 为视图中的子查询正确指定了数据库。 #3521
- 修正了一个错误
PREWHERE
与FINAL
为VersionedCollapsingMergeTree
. 7167bfd7 - 现在你可以使用
KILL QUERY
取消尚未启动的查询,因为它们正在等待锁定表。 #3517 - 更正日期和时间计算,如果时钟被移回午夜(这发生在伊朗,并发生在莫斯科1981年至1983年)。 以前,这导致时间比必要的时间早一天重置,并且还导致文本格式的日期和时间格式不正确。 #3819
- 修正了某些情况下的错误
VIEW
和省略数据库的子查询。 张冬 - 修正了一个争用条件时,同时从读取
MATERIALIZED VIEW
和删除MATERIALIZED VIEW
由于不锁定内部MATERIALIZED VIEW
. #3404 #3694 - 修正了错误
Lock handler cannot be nullptr.
#3689 - 固定查询处理时
compile_expressions
选项已启用(默认情况下启用)。 非确定性常量表达式,如now
功能不再展开。 #3457 - 修复了在指定非常量比例参数时发生的崩溃
toDecimal32/64/128
功能。 - 修复了尝试插入数组时的错误
NULL
中的元素Values
格式化为类型的列Array
没有Nullable
(如果input_format_values_interpret_expressions
= 1). #3487 #3503 - 固定连续错误登录
DDLWorker
如果动物园管理员不可用。 8f50c620 - 修正了返回类型
quantile*
从功能Date
和DateTime
参数的类型。 #3580 - 修正了
WITH
子句,如果它指定了一个没有表达式的简单别名。 #3570 - 固定处理具有命名子查询和限定列名的查询时
enable_optimize_predicate_expression
被启用。 张冬 - 修正了错误
Attempt to attach to nullptr thread group
使用实例化视图时。 Marek Vavruša - 修正了传递某些不正确的参数时崩溃
arrayReverse
功能。 73e3a7b6 - 修正了缓冲区溢出
extractURLParameter
功能。 改进的性能。 添加了包含零字节的字符串的正确处理。 141e9799 - 在固定缓冲区溢出
lowerUTF8
和upperUTF8
功能。 删除了执行这些功能的能力FixedString
类型参数。 #3662 - 修复了删除时罕见的竞争条件
MergeTree
桌子 #3680 - 修正了从读取时的争用条件
Buffer
表和同时执行ALTER
或DROP
在目标桌上。 #3719 - 修正了一个段错误,如果
max_temporary_non_const_columns
超过限制。 #3788
改进:
- 服务器不会将处理后的配置文件写入
/etc/clickhouse-server/
目录。 相反,它将它们保存在preprocessed_configs
里面的目录path
. 这意味着/etc/clickhouse-server/
目录没有写访问权限clickhouse
用户,从而提高了安全性。 #2443 - 该
min_merge_bytes_to_use_direct_io
默认情况下,选项设置为10GiB。 将在MergeTree系列中执行形成大部分表的合并O_DIRECT
模式,这可以防止过多的页高速缓存逐出。 #3504 - 当表数量非常多时,加速服务器启动。 #3398
- 添加了连接池和HTTP
Keep-Alive
用于副本之间的连接。 #3594 - 如果查询语法无效,则
400 Bad Request
代码在返回HTTP
接口(500以前返回)。 31bc680a - 该
join_default_strictness
选项设置为ALL
默认情况下为兼容性。 120e2cbe - 删除日志记录
stderr
从re2
无效或复杂正则表达式的库。 #3723 - 添加的
Kafka
表引擎:在开始从Kafka读取之前检查订阅;表的kafka_max_block_size设置。 Marek Vavruša - 该
cityHash64
,farmHash64
,metroHash64
,sipHash64
,halfMD5
,murmurHash2_32
,murmurHash2_64
,murmurHash3_32
,和murmurHash3_64
函数现在适用于任意数量的参数和元组形式的参数。 #3451 #3519 - 该
arrayReverse
函数现在适用于任何类型的数组。 73e3a7b6 - 增加了一个可选参数:插槽大小的
timeSlots
功能。 基里尔*什瓦科夫 - 为
FULL
和RIGHT JOIN
,该max_block_size
设置用于右表中未连接的数据流。 阿莫斯鸟 - 添加了
--secure
命令行参数clickhouse-benchmark
和clickhouse-performance-test
启用TLS。 #3688 #3690 - 类型转换时的结构
Buffer
表的类型与目标表的结构不匹配。 维塔利*巴拉诺夫 - 添加了
tcp_keep_alive_timeout
在指定的时间间隔内不活动后启用保持活动数据包的选项。 #3441 - 删除不必要的引用值的分区键中
system.parts
表,如果它由单列组成。 #3652 - 模函数适用于
Date
和DateTime
数据类型。 #3385 - 添加同义词的
POWER
,LN
,LCASE
,UCASE
,REPLACE
,LOCATE
,SUBSTR
,和MID
功能。 #3774 #3763 为了与SQL标准兼容,某些函数名称不区分大小写。 添加语法糖SUBSTRING(expr FROM start FOR length)
对于与SQL的兼容性。 #3804 - 增加了以下能力
mlock
对应于存储器页clickhouse-server
可执行代码,以防止它被强制出内存。 默认情况下禁用此功能。 #3553 - 从读取时改进的性能
O_DIRECT
(与min_bytes_to_use_direct_io
选项启用)。 #3405 - 的改进的性能
dictGet...OrDefault
常量键参数和非常量默认参数的函数。 阿莫斯鸟 - 该
firstSignificantSubdomain
功能现在处理域gov
,mil
,和edu
. Igor Hatarist 改进的性能。 #3628 - 能够指定用于启动的自定义环境变量
clickhouse-server
使用SYS-V init.d
通过定义脚本CLICKHOUSE_PROGRAM_ENV
在/etc/default/clickhouse
. Pavlo Bashynskyi - Clickhouse-server init脚本的正确返回代码。 #3516
- 该
system.metrics
表现在有VersionInteger
公制和system.build_options
有添加的行VERSION_INTEGER
,其中包含ClickHouse版本的数字形式,例如18016000
. #3644 - 删除比较的能力
Date
输入一个数字,以避免潜在的错误,如date = 2018-12-17
,其中日期周围的引号被错误省略。 #3687 - 修正了有状态函数的行为,如
rowNumberInAllBlocks
. 他们之前输出的结果是由于在查询分析期间启动而大一个数字。 阿莫斯鸟 - 如果
force_restore_data
文件无法删除,将显示错误消息。 阿莫斯鸟
构建改进:
- 更新了
jemalloc
库,它修复了潜在的内存泄漏。 阿莫斯鸟 - 分析与
jemalloc
默认情况下为了调试生成启用。 2cc82f5c - 增加了运行集成测试的能力,当只
Docker
安装在系统上。 #3650 - 在SELECT查询中添加了模糊表达式测试。 #3442
- 为提交添加了一个压力测试,它以并行和随机顺序执行功能测试,以检测更多的竞争条件。 #3438
- 改进了在Docker映像中启动clickhouse-server的方法。 Elghazal Ahmed
- 对于Docker映像,增加了对使用数据库中的文件初始化数据库的支持
/docker-entrypoint-initdb.d
目录。 康斯坦丁*列别杰夫 - 修复了基于ARM的构建。 #3709
向后不兼容的更改:
- 删除比较的能力
Date
用数字键入。 而不是toDate('2018-12-18') = 17883
,必须使用显式类型转换= toDate(17883)
#3687
ClickHouse释放18.14
碌莽禄,拢,010-68520682<url>
错误修复:
- 修复了导致使用ODBC源更新字典时出现问题的错误。 #3825, #3829
- 执行DDL时正确指定数据库
ON CLUSTER
查询。 #3460 - 修正了一个段错误,如果
max_temporary_non_const_columns
超过限制。 #3788
构建改进:
- 修复了基于ARM的构建。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修正错误
dictGet...
类型字典的函数range
,如果其中一个参数是恒定的,而另一个则不是。 #3751 - 修复了导致消息的错误
netlink: '...': attribute type 1 has an invalid length
要打印在Linux内核日志中,这只发生在足够新鲜的Linux内核版本上。 #3749 - 在功能固定段错误
empty
对于争论FixedString
类型。 丹尼尔,道广明 - 修正了使用大值时过多的内存分配
max_query_size
设置(内存块max_query_size
字节被预先分配一次)。 #3720
构建更改:
- 使用操作系统包中的版本7的LLVM/Clang库修复构建(这些库用于运行时查询编译)。 #3582
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修复了ODBC桥进程未与主服务器进程终止的情况。 #3642
- 固定同步插入
Distributed
具有不同于远程表的列列表的列列表的表。 #3673 - 修复了丢弃MergeTree表时可能导致崩溃的罕见竞争条件。 #3643
- 修复了查询线程创建失败时的查询死锁
Resource temporarily unavailable
错误 #3643 - 修正了解析
ENGINE
条款时CREATE AS table
语法被使用和ENGINE
子句之前指定AS table
(错误导致忽略指定的引擎)。 #3692
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 反序列化类型的列时,高估了内存块的大小
Array(String)
这导致 “Memory limit exceeded” 错误。 该问题出现在版本18.12.13中。 #3589
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 固定
ON CLUSTER
当群集配置为安全时进行查询(标志<secure>
). #3599
构建更改:
- 固定的问题(llvm-7从系统,macos) #3582
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修正了
Block structure mismatch in MergingSorted stream
错误 #3162 - 固定
ON CLUSTER
查询的情况下,当安全连接被打开的群集配置(<secure>
标志)。 #3465 - 修复了查询中使用的错误
SAMPLE
,PREWHERE
和别名列。 #3543 - 修正了一个罕见的
unknown compression method
错误时min_bytes_to_use_direct_io
设置已启用。 3544
性能改进:
- 查询的固定性能回归
GROUP BY
在AMD EPYC处理器上执行时,uint16或Date类型的列。 Igor Lapko - 修正了处理长字符串的查询的性能回归。 #3530
构建改进:
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修复了加入两个未命名的子查询时的崩溃。 #3505
- 修正了生成不正确的查询(用空
WHERE
子句)查询外部数据库时。 hotid - 修正了在ODBC字典中使用不正确的超时值。 Marek Vavruša
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修正了错误
Block structure mismatch in UNION stream: different number of columns
在限制查询。 #2156 - 修复了在嵌套结构中包含数组的表中合并数据时出现的错误。 #3397
- 修正了不正确的查询结果,如果
merge_tree_uniform_read_distribution
设置被禁用(默认情况下启用)。 #3429 - 修复了在本机格式的分布式表中插入错误。 #3411
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
- 该
compile_expressions
默认情况下禁用设置(表达式的JIT编译)。 #3410 - 该
enable_optimize_predicate_expression
默认情况下禁用设置。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 该
WITH CUBE
修饰符GROUP BY
(替代语法GROUP BY CUBE(...)
也可用)。 #3172 - 添加了
formatDateTime
功能。 Alexandr Krasheninnikov - 添加了
JDBC
表引擎和jdbc
表功能(需要安装clickhouse-jdbc桥)。 Alexandr Krasheninnikov - 增加了使用ISO周编号的功能:
toISOWeek
,toISOYear
,toStartOfISOYear
,和toDayOfYear
. #3146 - 现在你可以使用
Nullable
列MySQL
和ODBC
桌子 #3362 - 嵌套的数据结构可以被读取为嵌套的对象
JSONEachRow
格式。 添加了input_format_import_nested_json
设置。 维罗曼*云坎 - 并行处理可用于许多
MATERIALIZED VIEW
s插入数据时。 见parallel_view_processing
设置。 Marek Vavruša - 添加了
SYSTEM FLUSH LOGS
查询(强制日志刷新到系统表,如query_log
) #3321 - 现在,您可以使用预定义
database
和table
声明时的宏Replicated
桌子 #3251 - 增加了阅读的能力
Decimal
工程表示法中的类型值(表示十的幂)。 #3153
实验特点:
改进:
- 显着减少查询的内存消耗
ORDER BY
和LIMIT
. 见max_bytes_before_remerge_sort
设置。 #3205 - 在没有
JOIN
(LEFT
,INNER
, …),INNER JOIN
是假定的。 #3147 - 限定星号在以下查询中正常工作
JOIN
. 张冬 - 该
ODBC
表引擎正确地选择用于引用远程数据库的SQL方言中的标识符的方法。 Alexandr Krasheninnikov - 该
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 - 当从MySQL或ODBC表中查询时,LIKE和IN表达式具有常量右半部分被传递到远程服务器。 #3182
- 当从MySQL和ODBC表查询时,与WHERE子句中常量表达式的比较会传递给远程服务器。 以前,只通过与常量的比较。 #3182
- 正确计算终端中的行宽
Pretty
格式,包括带有象形文字的字符串。 阿莫斯鸟. ON CLUSTER
可以指定ALTER UPDATE
查询。- 提高了读取数据的性能
JSONEachRow
格式。 #3332 - 添加同义词的
LENGTH
和CHARACTER_LENGTH
功能的兼容性。 该CONCAT
函数不再区分大小写。 #3306 - 添加了
TIMESTAMP
的同义词DateTime
类型。 #3390 - 服务器日志中始终为query_id保留空间,即使日志行与查询无关。 这使得使用第三方工具更容易分析服务器文本日志。
- 当查询超过整数千兆字节的下一级别时,会记录查询的内存消耗。 #3205
- 为使用本机协议的客户端库错误发送的列少于服务器预期的插入查询时的情况添加了兼容模式。 使用clickhouse-cpp库时,这种情况是可能的。 以前,此方案会导致服务器崩溃。 #3171
- 在用户定义的WHERE表达式中
clickhouse-copier
,您现在可以使用partition_key
别名(用于按源表分区进行其他过滤)。 如果分区方案在复制过程中发生更改,但仅稍有更改,这很有用。 #3166 - 的工作流程
Kafka
引擎已被移动到后台线程池中,以便在高负载下自动降低数据读取速度。 Marek Vavruša. - 支持阅读
Tuple
和Nested
结构的值,如struct
在Cap'n'Proto format
. Marek Vavruša - 顶级域名列表
firstSignificantSubdomain
功能现在包括域biz
. decaseal - 在外部字典的配置,
null_value
被解释为默认数据类型的值。 #3330 - 支持
intDiv
和intDivOrZero
功能Decimal
. b48402e8 - 支持
Date
,DateTime
,UUID
,和Decimal
类型作为键sumMap
聚合函数。 #3281 - 支持
Decimal
外部字典中的数据类型。 #3324 - 支持
Decimal
数据类型inSummingMergeTree
桌子 #3348 - 增加了专业化
UUID
在if
. #3366 - 减少的数量
open
和close
从读取时系统调用MergeTree table
. #3283 - A
TRUNCATE TABLE
查询可以在任何副本上执行(将查询传递给领导副本)。 基里尔*什瓦科夫
错误修复:
- 修正了一个问题
Dictionary
表range_hashed
字典 此错误发生在版本18.12.17中。 #1702 - 修正了加载时的错误
range_hashed
字典(消息Unsupported type Nullable (...)
). 此错误发生在版本18.12.17中。 #3362 - 在固定的错误
pointInPolygon
函数由于不准确的计算的多边形与大量的顶点位于彼此靠近的积累。 #3331 #3341 - 如果在合并数据部分之后,结果部分的校验和与另一个副本中相同合并的结果不同,则删除合并的结果并从另一个副本下载数据部分(这是正确的行为)。 但是在下载数据部分之后,由于该部分已经存在的错误(因为合并后数据部分被删除了一些延迟),因此无法将其添加到工作集中。 这导致周期性尝试下载相同的数据。 #3194
- 修正了查询总内存消耗的不正确计算(由于计算不正确,
max_memory_usage_for_all_queries
设置工作不正确,MemoryTracking
度量值不正确)。 此错误发生在版本18.12.13中。 Marek Vavruša - 修正的功能
CREATE TABLE ... ON CLUSTER ... AS SELECT ...
此错误发生在版本18.12.13中。 #3247 - 修正了数据结构的不必要的准备
JOIN
如果发起查询的服务器上JOIN
仅在远程服务器上执行。 #3340 - 在固定的错误
Kafka
引擎:开始读取数据时异常后的死锁,并在完成时锁定 Marek Vavruša. - 为
Kafka
表,可选schema
参数未被传递(的架构Cap'n'Proto
格式)。 Vojtech Splichal - 如果ZooKeeper服务器的整体服务器接受连接,但随后立即关闭它,而不是响应握手,ClickHouse选择连接另一台服务器。 以前,这会产生错误
Cannot read all data. Bytes read: 0. Bytes expected: 4.
服务器无法启动。 8218cf3a - 如果ZooKeeper服务器的整体包含DNS查询返回错误的服务器,则忽略这些服务器。 17b8e209
- 固定类型之间的转换
Date
和DateTime
当在插入数据VALUES
格式(如果input_format_values_interpret_expressions = 1
). 以前,转换是在Unix Epoch时间中的天数和Unix时间戳的数值之间进行的,这会导致意外的结果。 #3229 - 修正类型之间的转换
Decimal
和整数。 #3211 - 在固定的错误
enable_optimize_predicate_expression
设置。 张冬 - 如果使用非默认的CSV分隔符,则修复了CSV格式的浮点数解析错误,例如
;
#3155 - 修正了
arrayCumSumNonNegative
函数(它不累加负值,如果累加器小于零)。 Aleksey Studnev - 固定如何
Merge
表工作的顶部Distributed
使用时的表PREWHERE
. #3165 - 在错误修复
ALTER UPDATE
查询。 - 在固定的错误
odbc
表功能,出现在版本18.12。 #3197 - 修正了聚合函数的操作
StateArray
组合子 #3188 - 修正了划分时崩溃
Decimal
值为零。 69dd6609 - 使用固定输出类型的操作
Decimal
和整数参数。 #3224 - 修正了在段错误
GROUP BY
上Decimal128
. 3359ba06 - 该
log_query_threads
设置(关于查询执行的每个线程的日志记录信息)现在生效,只有当log_queries
选项(有关查询的日志记录信息)设置为1。 由于log_query_threads
默认情况下,即使禁用了查询日志记录,也会先前记录有关线程的信息。 #3241 - 修正了分位数聚合函数的分布式操作中的错误(错误消息
Not found column quantile...
). 292a8855 - 修复了同时在18.12.17版服务器和旧服务器的集群上工作时的兼容性问题。 对于具有固定和非固定长度的GROUP BY键的分布式查询,如果要聚合大量数据,则返回的数据并不总是完全聚合(两个不同的行包含相同的聚合键)。 #3254
- 固定处理替换
clickhouse-performance-test
,如果查询只包含测试中声明的替换的一部分。 #3263 - 修复了使用时的错误
FINAL
与PREWHERE
. #3298 - 修复了使用时的错误
PREWHERE
在过程中添加的列ALTER
. #3298 - 增加了一个检查没有
arrayJoin
为DEFAULT
和MATERIALIZED
表达式。 前情提要,arrayJoin
插入数据时导致错误。 #3337 - 增加了一个检查没有
arrayJoin
在一个PREWHERE
条款 以前,这导致了类似的消息Size ... doesn't match
或Unknown compression method
执行查询时。 #3357 - 修复了优化后可能发生的极少数情况下的段错误,并将相等性评估与相应的IN表达式链接起来。 刘一民-字节舞
- 小幅更正
clickhouse-benchmark
:以前,客户端信息没有发送到服务器;现在关闭时更准确地计算执行的查询数量,并限制迭代次数。 #3351 #3352
向后不兼容的更改:
- 删除了
allow_experimental_decimal_type
选项。 该Decimal
数据类型可供默认使用。 #3329
ClickHouse释放18.12
碌莽禄,拢,010-68520682<url>
新功能:
invalidate_query
(指定查询来检查是否需要更新外部字典的能力)实现了clickhouse
资料来源。 #3126- 增加了使用的能力
UInt*
,Int*
,和DateTime
数据类型(与Date
类型)作为range_hashed
定义范围边界的外部字典键。 现在NULL
可用于指定开放范围。 瓦西里*内姆科夫 - 该
Decimal
类型现在支持var*
和stddev*
聚合函数。 #3129 - 该
Decimal
类型现在支持数学函数 (exp
,sin
等等。) #3129 - 该
system.part_log
表现在有partition_id
列。 #3089
错误修复:
Merge
现在正常工作Distributed
桌子 张冬- 修复了不兼容(不必要的依赖
glibc
版本),这使得它不可能运行ClickHouse的Ubuntu Precise
和旧版本。 在版本18.12.13中出现了不兼容。 #3130 - 在固定的错误
enable_optimize_predicate_expression
设置。 张冬 - 修复了在早于18.12.13的版本上使用副本集群并同时在具有较新版本的服务器上创建表的新副本时出现的向后兼容性的一个小问题(如消息中所示
Can not clone replica, because the ... updated to new ClickHouse version
,这是合乎逻辑的,但不应该发生)。 #3122
向后不兼容的更改:
- 该
enable_optimize_predicate_expression
默认情况下启用选项(这是相当乐观的)。 如果发生与搜索列名相关的查询分析错误,请设置enable_optimize_predicate_expression
为0。 张冬
碌莽禄,拢,0755-88888888
新功能:
- 增加了对
ALTER UPDATE
查询。 #3035 - 添加了
allow_ddl
选项,它限制用户对DDL查询的访问。 #3104 - 添加了
min_merge_bytes_to_use_direct_io
备选案文MergeTree
引擎允许您为合并的总大小设置阈值(当超过阈值时,将使用O_DIRECT处理数据部分文件)。 #3117 - 该
system.merges
系统表现在包含partition_id
列。 #3099
改进
错误修复:
- 添加了一个检查是元素的数组的大小
Nested
插入时的类型字段。 #3118 - 修正了一个错误更新外部字典与
ODBC
来源和hashed
存储。 此错误发生在版本18.12.13中。 - 修复了使用以下命令从查询创建临时表时出现的崩溃
IN
条件。 张冬 - 修复了聚合函数中可能具有的数组的错误
NULL
元素。 张冬
碌莽禄,拢,010-68520682<url>
新功能:
- 添加了
DECIMAL(digits, scale)
数据类型 (Decimal32(scale)
,Decimal64(scale)
,Decimal128(scale)
). 要启用它,请使用以下设置allow_experimental_decimal_type
. #2846 #2970 #3008 #3047 - 新
WITH ROLLUP
修饰符GROUP BY
(替代语法:GROUP BY ROLLUP(...)
). #2948 - 在具有JOIN的查询中,星形字符将扩展为符合SQL标准的所有表中的列列表。 您可以通过设置恢复旧行为
asterisk_left_columns_only
在用户配置级别上为1。 张冬 - 增加了对连接表函数的支持。 张冬
- 在clickhouse-client中按Tab键进行自动完成。 谢尔盖*谢尔宾
- Clickhouse-client中的Ctrl+C清除输入的查询。 #2877
- 添加了
join_default_strictness
设置(值:"
,'any'
,'all'
). 这允许您不指定ANY
或ALL
为JOIN
. #2982 - 与查询处理相关的服务器日志的每一行都显示了查询ID。 #2482
- 现在,您可以在clickhouse-client中获取查询执行日志(使用
send_logs_level
设置)。 通过分布式查询处理,日志从所有服务器级联。 #2482 - 该
system.query_log
和system.processes
(SHOW PROCESSLIST
)表现在有关所有更改的设置信息,当你运行一个查询(的嵌套结构Settings
数据)。 添加了log_query_settings
设置。 #2482 - 该
system.query_log
和system.processes
表现在显示有关参与查询执行的线程数的信息(请参阅thread_numbers
列)。 #2482 - 已添加
ProfileEvents
用于度量通过网络读取和写入磁盘以及读取和写入磁盘所花费的时间、网络错误的数量以及在网络带宽受限时所花费的等待时间。 #2482 - 已添加
ProfileEvents
包含来自rusage的系统指标的计数器(您可以使用它们获取有关用户空间和内核、页面错误和上下文切换的CPU使用率的信息),以及taskstats指标(使用它们获取有关I/O等待时间、CPU等待时间以及读取和记录的数据量的信息,无论是否包含页面缓存)。 #2482 - 该
ProfileEvents
计数器应用于全局和每个查询,以及每个查询执行线程,它允许您按查询详细分析资源消耗情况。 #2482 - 添加了
system.query_thread_log
表,其中包含有关每个查询执行线程的信息。 添加了log_query_threads
设置。 #2482 - 该
system.metrics
和system.events
表现在有内置文档。 #3016 - 添加了
arrayEnumerateDense
功能。 阿莫斯鸟 - 添加了
arrayCumSumNonNegative
和arrayDifference
功能。 Aleksey Studnev - 添加了
retention
聚合函数。 李尚迪 - 现在,您可以使用plus运算符添加(合并)聚合函数的状态,并将聚合函数的状态乘以非负常数。 #3062 #3034
- MergeTree系列中的表现在具有虚拟列
_partition_id
. #3089
实验特点:
- 添加了
LowCardinality(T)
数据类型。 此数据类型自动创建值的本地字典,并允许数据处理而无需解压字典。 #2830 - 添加了JIT编译函数的缓存和编译前使用次数的计数器。 要JIT编译表达式,请启用
compile_expressions
设置。 #2990 #3077
改进:
- 修复了放弃副本时复制日志无限积累的问题。 为延迟较长的副本添加了有效的恢复模式。
- 改进的性能
GROUP BY
当其中一个是string,其他是固定长度时,具有多个聚合字段。 - 使用时提高性能
PREWHERE
并与表达式的隐式转移PREWHERE
. - 改进文本格式的解析性能 (
CSV
,TSV
). 阿莫斯鸟 #2980 - 改进了读取二进制格式字符串和数组的性能。 阿莫斯鸟
- 提高性能和减少内存消耗的查询
system.tables
和system.columns
当单个服务器上有非常大量的表时。 #2953 - 修复了大量查询导致错误的情况下的性能问题(
_dl_addr
功能是可见的perf top
,但服务器没有使用太多的CPU)。 #2938 - 条件被转换到视图中(当
enable_optimize_predicate_expression
被启用)。 张冬 - 改进的功能
UUID
数据类型。 #3074 #2985 - 该
UUID
-Alchemist字典支持数据类型。 #2822 - 该
visitParamExtractRaw
函数与嵌套结构正常工作。 张冬 - 当
input_format_skip_unknown_fields
启用设置,在对象字段JSONEachRow
格式被正确跳过。 BlahGeek - 对于一个
CASE
表达式与条件,你现在可以省略ELSE
,这相当于ELSE NULL
. #2920 - 现在可以在使用ZooKeeper时配置操作超时。 urykhy
- 您可以指定偏移量
LIMIT n, m
作为LIMIT n OFFSET m
. #2840 - 您可以使用
SELECT TOP n
语法作为替代LIMIT
. #2840 - 增加了队列的大小写入系统表,因此
SystemLog parameter queue is full
错误不经常发生。 - 该
windowFunnel
aggregate函数现在支持满足多个条件的事件。 阿莫斯鸟 - 重复的列可以用于
USING
条款JOIN
. #3006 Pretty
格式现在对列对齐宽度有限制。 使用output_format_pretty_max_column_pad_width
设置。 如果一个值较宽,它仍将完整显示,但表中的其他单元格不会太宽。 #3003- 该
odbc
表函数现在允许您指定数据库/模式名称。 阿莫斯鸟 - 增加了使用在指定的用户名的能力
clickhouse-client
配置文件。 弗拉基米尔*科兹宾 - 该
ZooKeeperExceptions
计数器已被分成三个计数器:ZooKeeperUserExceptions
,ZooKeeperHardwareExceptions
,和ZooKeeperOtherExceptions
. ALTER DELETE
查询适用于实例化视图。- 在定期运行清理线程时添加了随机化
ReplicatedMergeTree
表,以避免周期性负载尖峰时有一个非常大的数量ReplicatedMergeTree
桌子 - 支持
ATTACH TABLE ... ON CLUSTER
查询。 #3025
错误修复:
- 修正了一个问题
Dictionary
表(抛出Size of offsets doesn't match size of column
或Unknown compression method
例外)。 此错误出现在版本18.10.3中。 #2913 - 修复了合并时的错误
CollapsingMergeTree
如果其中一个数据部分为空(这些部分在合并或合并期间形成ALTER DELETE
如果所有数据被删除),和vertical
算法被用于合并。 #3049 - 在固定的竞争条件
DROP
或TRUNCATE
为Memory
表与同时SELECT
,这可能导致服务器崩溃。 此错误出现在版本1.1.54388中。 #3038 - 修正了插入时数据丢失的可能性
Replicated
表如果Session is expired
错误返回(数据丢失可以通过检测ReplicatedDataLoss
公制)。 此错误发生在版本1.1.54378。 #2939 #2949 #2964 - 在修复段错误
JOIN ... ON
. #3000 - 修正了错误搜索列名时
WHERE
表达式完全由限定列名组成,例如WHERE table.column
. #2994 - 修正了 “Not found column” 如果从远程服务器请求由IN表达式和子查询组成的单个列,则在执行分布式查询时发生错误。 #3087
- 修正了
Block structure mismatch in UNION stream: different number of columns
如果其中一个分片是本地的,而另一个分片不是,则发生分布式查询的错误,并优化移动到PREWHERE
被触发。 #2226 #3037 #3055 #3065 #3073 #3090 #3093 - 修正了
pointInPolygon
非凸多边形的某些情况下的函数。 #2910 - 修正了比较时不正确的结果
nan
与整数。 #3024 - 修正了一个错误
zlib-ng
在极少数情况下可能导致segfault的库。 #2854 - 修复了插入到表中时的内存泄漏
AggregateFunction
列,如果聚合函数的状态不简单(分别分配内存),并且如果单个插入请求导致多个小块。 #3084 - 修复了创建和删除相同的竞争条件
Buffer
或MergeTree
同时表。 - 修复了比较由某些非平凡类型(如元组)组成的元组时出现段错误的可能性。 #2989
- 修正了运行某些时段错误的可能性
ON CLUSTER
查询。 张冬 - 修正了一个错误
arrayDistinct
功能Nullable
数组元素。 #2845 #2937 - 该
enable_optimize_predicate_expression
选项现在正确支持的情况下SELECT *
. 张冬 - 修复了重新初始化ZooKeeper会话时的段错误。 #2917
- 与ZooKeeper工作时固定的潜在阻塞。
- 修正了不正确的代码添加嵌套的数据结构中
SummingMergeTree
. - 在为聚合函数的状态分配内存时,会正确考虑对齐,这使得在实现聚合函数的状态时可以使用需要对齐的操作。 晨兴-xc
安全修复:
- 安全使用ODBC数据源。 与ODBC驱动程序的交互使用单独的
clickhouse-odbc-bridge
过程。 第三方ODBC驱动程序中的错误不再导致服务器稳定性问题或漏洞。 #2828 #2879 #2886 #2893 #2921 - 修正了在文件路径的不正确的验证
catBoostPool
表功能。 #2894 - 系统表的内容 (
tables
,databases
,parts
,columns
,parts_columns
,merges
,mutations
,replicas
,和replication_queue
)根据用户对数据库的配置访问权限进行过滤 (allow_databases
). 张冬
向后不兼容的更改:
- 在具有JOIN的查询中,星形字符将扩展为符合SQL标准的所有表中的列列表。 您可以通过设置恢复旧行为
asterisk_left_columns_only
在用户配置级别上为1。
构建更改:
- 大多数集成测试现在可以通过commit运行。
- 代码样式检查也可以通过提交运行。
- 该
memcpy
在CentOS7/Fedora上构建时,正确选择实现。 Etienne Champetier - 当使用clang来构建时,来自一些警告
-Weverything
已添加,除了常规-Wall-Wextra -Werror
. #2957 - 调试生成使用
jemalloc
调试选项。 - 用于与ZooKeeper交互的库接口被声明为抽象。 #2950
ClickHouse释放18.10
碌莽禄,拢,010-68520682<url>
新功能:
- HTTPS可用于复制。 #2760
- 新增功能
murmurHash2_64
,murmurHash3_32
,murmurHash3_64
,和murmurHash3_128
除了现有的murmurHash2_32
. #2791 - 支持ClickHouse ODBC驱动程序中的可空类型 (
ODBCDriver2
输出格式)。 #2834 - 支持
UUID
在关键列。
改进:
- 当群集从配置文件中删除时,可以在不重新启动服务器的情况下删除群集。 #2777
- 从配置文件中删除外部字典时,可以在不重新启动服务器的情况下删除它们。 #2779
- 已添加
SETTINGS
支持Kafka
表引擎。 Alexander Marshalov - 改进的
UUID
数据类型(尚未完成)。 #2618 - 支持合并后的空部件
SummingMergeTree
,CollapsingMergeTree
和VersionedCollapsingMergeTree
引擎 #2815 - 已完成突变的旧记录将被删除 (
ALTER DELETE
). #2784 - 添加了
system.merge_tree_settings
桌子 基里尔*什瓦科夫 - 该
system.tables
表现在具有依赖列:dependencies_database
和dependencies_table
. 张冬 - 添加了
max_partition_size_to_drop
配置选项。 #2782 - 添加了
output_format_json_escape_forward_slashes
选项。 Alexander Bocharov - 添加了
max_fetch_partition_retries_count
设置。 #2831 - 添加了
prefer_localhost_replica
用于禁用本地副本的首选项以及在不进程间交互的情况下转到本地副本的设置。 #2832 - 该
quantileExact
聚合函数返回nan
在聚合在一个空的情况下Float32
或Float64
预备 李尚迪
错误修复:
- 删除了ODBC的连接字符串参数的不必要的转义,这使得无法建立连接。 此错误发生在版本18.6.0中。
- 修正了处理逻辑
REPLACE PARTITION
复制队列中的命令。 如果有两个REPLACE
对于同一个分区的命令,不正确的逻辑可能会导致其中一个保留在复制队列中而无法执行。 #2814 - 修正了一个合并错误,当所有的数据部分都是空的(从合并或从形成的部分
ALTER DELETE
如果所有数据都被删除)。 此错误出现在18.1.0版本。 #2930 - 修复了并发错误
Set
或Join
. 阿莫斯鸟 - 修正了
Block structure mismatch in UNION stream: different number of columns
发生的错误UNION ALL
子查询内的查询,如果一个SELECT
查询包含重复的列名。 张冬 - 修复了连接到MySQL服务器时发生异常时的内存泄漏。
- 在查询错误的情况下修复了不正确的clickhouse客户端响应代码。
- 修正了包含DISTINCT的实例化视图的不正确行为。 #2795
向后不兼容的更改
- 删除了对分布式表的检查表查询的支持。
构建更改:
- 分配器已被替换:
jemalloc
现在用来代替tcmalloc
. 在某些情况下,这增加了速度高达20%。 但是,有些查询已经减慢了20%。 在某些情况下,内存消耗减少了大约10%,稳定性得到了提高。 由于竞争激烈的负载,用户空间和系统中的CPU使用率略有增加。 #2773 - 从子模块使用libressl。 #1983 #2807
- 从子模块使用unixodbc。 #2789
- 从子模块中使用mariadb-connector-c。 #2785
- 将功能性测试文件添加到存储库中,这些文件取决于测试数据的可用性(暂时不包含测试数据本身)。
ClickHouse释放18.6
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 增加了对ON表达式的支持,以便在语法上加入:
JOIN ON Expr([table.]column ...) = Expr([table.]column, ...) [AND Expr([table.]column, ...) = Expr([table.]column, ...) ...]
表达式必须是由AND运算符连接的等式链。 等式的每一侧都可以是其中一个表的列上的任意表达式。 支持使用完全限定的列名 (table.name
,database.table.name
,table_alias.name
,subquery_alias.name
)对于正确的表。 #2742 - 可以启用HTTPS进行复制。 #2760
改进:
- 服务器将其版本的补丁组件传递给客户端。 有关修补程序版本组件的数据位于
system.processes
和query_log
. #2646
ClickHouse释放18.5
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 添加了哈希函数
murmurHash2_32
#2756.
改进:
错误修复:
- 修复了启动副本时可能出现的错误 #2759.
ClickHouse释放18.4
碌莽禄,拢,010-68520682<url>
新功能:
- 添加系统表:
formats
,data_type_families
,aggregate_function_combinators
,table_functions
,table_engines
,collations
#2721. - 增加了使用表函数代替表作为参数的能力
remote
或cluster table function
#2708. - 支持
HTTP Basic
复制协议中的身份验证 #2727. - 该
has
函数现在允许搜索数组中的数值Enum
值 Maxim Khrisanfov. - 支持添加任意消息分隔符从读取时
Kafka
阿莫斯鸟.
改进:
- 该
ALTER TABLE t DELETE WHERE
查询不会重写未受WHERE条件影响的数据部分 #2694. - 该
use_minimalistic_checksums_in_zookeeper
备选案文ReplicatedMergeTree
默认情况下启用表。 此设置在版本1.1.54378,2018-04-16中添加。 不能再安装超过1.1.54378的版本。 - 支持运行
KILL
和OPTIMIZE
指定的查询ON CLUSTER
张冬.
错误修复:
- 修正了错误
Column ... is not under an aggregate function and not in GROUP BY
用于具有IN表达式的聚合。 此错误出现在18.1.0版本。 (bbdd780b) - 修正了一个错误
windowFunnel aggregate function
张冬. - 修正了一个错误
anyHeavy
聚合函数 (a2101df2) - 使用时固定服务器崩溃
countArray()
聚合函数。
向后不兼容的更改:
- 参数
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
碌莽禄,拢,010-68520682<url>
新功能:
- 支持
ALTER TABLE t DELETE WHERE
非复制MergeTree表的查询 (#2634). - 支持任意类型的
uniq*
聚合函数族 (#2010). - 支持比较运算符中的任意类型 (#2026).
- 该
users.xml
文件允许设置子网掩码的格式10.0.0.1/255.255.255.0
. 这对于在中间使用零的IPv6网络使用掩码是必要的 (#2637). - 添加了
arrayDistinct
功能 (#2670). - SummingMergeTree引擎现在可以使用AggregateFunction类型列 (康斯坦丁*潘).
改进:
- 更改了发布版本的编号方案。 现在第一部分包含发布年份(公元,莫斯科时区,减去2000),第二部分包含主要更改的数量(大多数版本的增加),第三部分是补丁版本。 除非在更新日志中另有说明,否则版本仍然向后兼容。
- 更快地将浮点数转换为字符串 (阿莫斯鸟).
- 如果在插入过程中由于解析错误而跳过某些行(这可能与
input_allow_errors_num
和input_allow_errors_ratio
启用设置),跳过的行数现在写入服务器日志 (列奥纳多*切奇).
错误修复:
- 修复了临时表的截断命令 (阿莫斯鸟).
- 修复了读取响应时出现网络错误时ZooKeeper客户端库中罕见的死锁 (c315200).
- 修复了转换为可空类型期间的错误 (#1322).
- 修正了不正确的结果
maxIntersection()
函数时间间隔的边界重合 (Michael Furmur). - 修复了函数参数中OR表达式链的不正确转换 (晨兴-xc).
- 修复了包含
IN (subquery)
另一个子查询中的表达式 (#2571). - 修复了分布式查询中使用不同版本的服务器之间的不兼容性
CAST
不是大写字母的函数 (fe8c4d6). - 添加了对外部数据库管理系统查询的缺少标识符引用 (#2635).
向后不兼容的更改:
- 将包含数字零的字符串转换为DateTime不起作用。 示例:
SELECT toDateTime('0')
. 这也是原因DateTime DEFAULT '0'
在表中不起作用,以及<null_value>0</null_value>
在字典里 解决方案:替换0
与0000-00-00 00:00:00
.
ClickHouse释放1.1
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 添加了
histogram
聚合函数 (米哈伊尔*苏林). - 现在
OPTIMIZE TABLE ... FINAL
可以在不指定分区的情况下使用ReplicatedMergeTree
(阿莫斯鸟).
错误修复:
- 修复了在发送和下载复制数据时读取和写入套接字超时非常小的问题(一秒钟),这使得在网络或磁盘上存在负载时无法下载更大的部分(导致周期性尝试下载部分)。 此错误发生在版本1.1.54388。
- 修复了在ZooKeeper中使用chroot时在表中插入重复数据块的问题。
- 该
has
函数现在可以正常工作用于具有可为空元素的数组 (#2115). - 该
system.tables
在分布式查询中使用表现在可以正常工作。 该metadata_modification_time
和engine_full
列现在是非虚拟的。 修复了仅从表中查询这些列时发生的错误。 - 固定如何空
TinyLog
表插入一个空数据块后工作 (#2563). - 该
system.zookeeper
如果ZooKeeper中节点的值为NULL,表就可以工作。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 查询可以在发送
multipart/form-data
格式(在query
字段),如果外部数据也被发送用于查询处理,这是有用的 (Olga Hvostikova). - 增加了在读取CSV格式数据时启用或禁用处理单引号或双引号的功能。 您可以在
format_csv_allow_single_quotes
和format_csv_allow_double_quotes
设置 (阿莫斯鸟). - 现在
OPTIMIZE TABLE ... FINAL
可以在不指定非复制变体的分区的情况下使用MergeTree
(阿莫斯鸟).
改进:
- 在可以使用表索引时使用IN运算符提高性能、减少内存消耗并正确跟踪内存消耗 (#2584).
- 删除添加数据部分时校验和的冗余检查。 当存在大量副本时,这一点很重要,因为在这些情况下,检查的总数等于N^2。
- 增加了对
Array(Tuple(...))
对于参数arrayEnumerateUniq
功能 (#2573). - 已添加
Nullable
支持runningDifference
功能 (#2594). - 当存在大量表达式时,改进了查询分析性能 (#2572).
- 更快地选择用于合并的数据部分
ReplicatedMergeTree
桌子 更快地恢复ZooKeeper会话 (#2597). - 该
format_version.txt
文件MergeTree
如果表丢失,则重新创建表,如果在没有文件的情况下复制目录结构后启动ClickHouse,这是有意义的 (Ciprian Hacman).
错误修复:
- 修复了与ZooKeeper一起工作时的错误,这可能会导致无法在重新启动服务器之前恢复表的会话和只读状态。
- 修复了与ZooKeeper一起工作时的错误,如果会话中断,可能会导致旧节点不被删除。
- 修正了一个错误
quantileTDigest
Float参数的函数(此错误在版本1.1.54388中引入) (米哈伊尔*苏林). - 修复了MergeTree表索引中的一个错误,如果主键列位于函数内部,用于在相同大小的有符号和无符号整数之间转换类型 (#2603).
- 如果修复段错误
macros
使用,但它们不在配置文件中 (#2570). - 修复了重新连接客户端时切换到默认数据库的问题 (#2583).
- 修正了当发生的错误
use_index_for_in_with_subqueries
设置被禁用。
安全修复:
- 当连接到MySQL时,发送文件不再可能 (
LOAD DATA LOCAL INFILE
).
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 支持
ALTER TABLE t DELETE WHERE
查询复制的表。 添加了system.mutations
表来跟踪这种类型的查询的进度。 - 支持
ALTER TABLE t [REPLACE|ATTACH] PARTITION
查询*MergeTree表。 - 支持
TRUNCATE TABLE
查询 (张冬) - 几个新的
SYSTEM
复制表的查询 (RESTART REPLICAS
,SYNC REPLICA
,[STOP|START] [MERGES|FETCHES|SENDS REPLICATED|REPLICATION QUEUES]
). - 增加了使用MySQL引擎和相应的表函数写入表的能力 (三弟).
- 添加了
url()
表功能和URL
表引擎 (Alexander Sapin). - 添加了
windowFunnel
聚合函数 (三弟). - 新
startsWith
和endsWith
字符串的函数 (Vadim Plakhtinsky). - 该
numbers()
表函数现在允许您指定偏移量 (张冬). - 密码
clickhouse-client
可以交互输入。 - 服务器日志现在可以发送到系统日志 (Alexander Krasheninnikov).
- 支持使用共享库源登录字典 (Alexander Sapin).
- 支持自定义CSV分隔符 (伊万*朱可夫)
- 添加了
date_time_input_format
设置。 如果将此设置切换到'best_effort'
,日期时间值将以各种格式读取。 - 添加了
clickhouse-obfuscator
用于数据混ob的实用程序。 用法示例:发布性能测试中使用的数据。
实验特点:
- 增加了计算能力
and
只有在需要的地方才能参数 (阿纳斯塔西娅Tsarkova) - Jit编译为本机代码现在可用于某些表达式 (pyos).
错误修复:
- 对于具有以下内容的查询,不再显示重复项
DISTINCT
和ORDER BY
. - 查询与
ARRAY JOIN
和arrayFilter
不再返回不正确的结果。 - 修复了从嵌套结构读取数组列时的错误 (#2066).
- 修复了使用HAVING子句分析查询时出现的错误,如
HAVING tuple IN (...)
. - 修复了使用递归别名分析查询时出现的错误。
- 修复了从REPLACINGMERGETREE读取过滤所有行的PREWHERE中的条件时出现的错误 (#2525).
- 在HTTP界面中使用会话时,未应用用户配置文件设置。
- 修复了如何从clickhouse-local中的命令行参数应用设置。
- ZooKeeper客户端库现在使用从服务器接收的会话超时。
- 修正了ZooKeeper客户端库中的一个错误,当客户端等待服务器响应时间超过超时时间。
- 修剪部分的查询与分区键列的条件 (#2342).
- 合并后,现在可以
CLEAR COLUMN IN PARTITION
(#2315). - ODBC表函数中的类型映射已修复 (三弟).
- 类型比较已修复
DateTime
有和没有时区 (Alexander Bocharov). - 修正了语法解析和格式化的
CAST
接线员 - 固定插入到分布式表引擎的实例化视图中 (Babacar Diassé).
- 修正了从写入数据时的争用条件
Kafka
引擎到实例化视图 (刘杨宽). - 固定ssrf中的remote()表函数。
- 固定退出行为
clickhouse-client
在多行模式下 (#2510).
改进:
- 复制表中的后台任务现在在线程池中执行,而不是在单独的线程中执行 (Silviu Caragea).
- 改进的LZ4压缩性能。
- 更快地分析具有大量联接和子查询的查询。
- 当有太多的网络错误时,DNS缓存现在会自动更新。
- 如果由于其中一个实例化视图包含太多部件而无法插入表格插入,则不再发生表格插入。
- 纠正了事件计数器中的差异
Query
,SelectQuery
,和InsertQuery
. - 像这样的表达式
tuple IN (SELECT tuple)
如果元组类型匹配,则允许。 - 即使您没有配置ZooKeeper,具有复制表的服务器也可以启动。
- 在计算可用CPU内核数时,现在考虑了cgroups的限制 (Atri Sharma).
- 在systemd配置文件中添加了配置目录的chown (米哈伊尔Shiryaev).
构建更改:
- Gcc8编译器可用于构建。
- 增加了从子模块构建llvm的能力。
- Librdkafka库的版本已更新为v0.11.4。
- 增加了使用系统libcpuid库的能力。 库版本已更新为0.4.0。
- 使用vectorclass库修复了构建 (Babacar Diassé).
- Cmake现在默认情况下为ninja生成文件(如使用
-G Ninja
). - 添加了使用libtinfo库而不是libtermcap的功能 (Georgy Kondratiev).
- 修复了Fedora Rawhide中的头文件冲突 (#2520).
向后不兼容的更改:
- 删除逃逸
Vertical
和Pretty*
格式和删除VerticalRaw
格式。 - 如果在分布式查询中同时使用版本1.1.54388(或更高版本)的服务器和版本较旧的服务器,并且查询具有
cast(x, 'Type')
表达式没有AS
关键字并没有这个词cast
以大写形式,将引发一个异常,并显示如下消息Not found column cast(0, 'UInt8') in block
. 解决方案:更新整个群集上的服务器。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682
错误修复:
- 修复了在某些情况下导致ZooKeeper操作阻塞的错误。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修正了如果一个表有许多副本,复制队列的放缓。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
错误修复:
- 修复了ClickHouse与ZooKeeper服务器断开连接时,ZooKeeper中的节点泄漏问题。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 增加了表功能
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"
.
改进:
- 子查询可以包装在
()
括号以增强查询的可读性。 例如:(SELECT 1) UNION ALL (SELECT 1)
. - 简单
SELECT
从查询system.processes
表不包括在max_concurrent_queries
限制。
错误修复:
- 修正了不正确的行为
IN
从中选择时的运算符MATERIALIZED VIEW
. - 修正了不正确的过滤分区索引的表达式,如
partition_key_column IN (...)
. - 固定无法执行
OPTIMIZE
在以下情况下对非领导副本进行查询REANAME
在桌子上进行。 - 修复了执行时的授权错误
OPTIMIZE
或ALTER
对非领导副本的查询。 - 固定的冻结
KILL QUERY
. - 修复了ZooKeeper客户端库中的错误,这导致了手表丢失,分布式的DDL队列冻结,并在复制队列中的速度变慢,如果非空
chroot
前缀在ZooKeeper配置中使用。
向后不兼容的更改:
- 删除对如下表达式的支持
(a, b) IN (SELECT (a, b))
(可以使用等效表达式(a, b) IN (SELECT a, b)
). 在以前的版本中,这些表达式导致未确定WHERE
过滤或导致的错误。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 可以在不重新启动服务器的情况下更改日志记录级别。
- 添加了
SHOW CREATE DATABASE
查询。 - 该
query_id
可以传递给clickhouse-client
(肘部空间)。 - 新设置:
max_network_bandwidth_for_all_users
. - 增加了对
ALTER TABLE ... PARTITION ...
为MATERIALIZED VIEW
. - 在系统表中以未压缩形式添加有关数据部件大小的信息。
- 对分布式表的服务器到服务器加密支持 (
<secure>1</secure>
在副本配置中<remote_servers>
). - 表级别的配置
ReplicatedMergeTree
家庭,以最大限度地减少存储在Zookeeper的数据量: :use_minimalistic_checksums_in_zookeeper = 1
- 的配置
clickhouse-client
提示。 默认情况下,服务器名称现在输出到提示符。 可以更改服务器的显示名称。 它也发送了X-ClickHouse-Display-Name
HTTP头(基里尔Shvakov)。 - 多个逗号分隔
topics
可为指定Kafka
发动机(托比亚斯*亚当森) - 当查询停止时
KILL QUERY
或replace_running_query
,客户端接收Query was canceled
异常而不是不完整的结果。
改进:
ALTER TABLE ... DROP/DETACH PARTITION
查询在复制队列的前面运行。SELECT ... FINAL
和OPTIMIZE ... FINAL
即使表具有单个数据部分,也可以使用。- A
query_log
如果手动删除(基里尔Shvakov),则会在飞行中重新创建表格。 - 该
lengthUTF8
功能运行速度更快(zhang2014)。 - 在同步刀片的性能提高
Distributed
表 (insert_distributed_sync = 1
)当有一个非常大的数量的碎片。 - 服务器接受
send_timeout
和receive_timeout
从客户端设置并在连接到客户端时应用它们(它们以相反的顺序应用:服务器套接字的send_timeout
被设置为receive_timeout
值,反之亦然)。 - 更强大的崩溃恢复异步插入
Distributed
桌子 - 的返回类型
countEqual
功能从更改UInt32
到UInt64
(谢磊).
错误修复:
- 修正了一个错误
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
桌子
构建更改:
- 构建支持
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
. 具有旧名称的软件包仍将加载到存储库中,以便向后兼容。
向后不兼容的更改:
- 如果在左侧指定了数组,则删除了IN表达式的特殊解释。 以前,表达式
arr IN (set)
被解释为 “at least onearr
element belongs to theset
”. 要在新版本中获得相同的行为,请编写arrayExists(x -> x IN (set), arr)
. - 禁用套接字选项的不正确使用
SO_REUSEPORT
,默认情况下,Poco库中未正确启用。 请注意,在Linux上,不再有任何理由同时指定地址::
和0.0.0.0
for listen – use just::
,它允许监听通过IPv4和IPv6的连接(使用默认的内核配置设置)。 您还可以通过指定以下命令恢复到以前版本中的行为<listen_reuse_port>1</listen_reuse_port>
在配置。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 添加了
system.macros
更改配置文件时,宏的表和自动更新。 - 添加了
SYSTEM RELOAD CONFIG
查询。 - 添加了
maxIntersections(left_col, right_col)
聚合函数,它返回同时相交间隔的最大数目[left; right]
. 该maxIntersectionsPosition(left, right)
函数返回的开始 “maximum” 间隔。 (Michael Furmur).
改进:
- 当在一个插入数据
Replicated
表,较少的请求是由ZooKeeper
(和大多数用户级错误已经从消失ZooKeeper
日志)。 - 添加了为数据集创建别名的功能。 示例:
WITH (1, 2, 3) AS set SELECT number IN set FROM system.numbers LIMIT 10
.
错误修复:
- 修正了
Illegal PREWHERE
从合并表读取时出错Distributed
桌子 - 添加了修复,允许您在仅支持IPv4的Docker容器中启动clickhouse-server。
- 修正了从系统读取时的争用条件
system.parts_columns tables.
- 同步插入到一个过程中删除双缓冲
Distributed
表,这可能导致连接超时。 - 修正了一个错误,导致过长的等待不可用的副本开始之前
SELECT
查询。 - 在固定不正确的日期
system.parts
桌子 - 修正了一个错误,使得它无法在插入数据
Replicated
表ifchroot
是非空的配置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
.
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>
新功能:
- 聚合不
GROUP BY
对于一个空集(如SELECT count(*) FROM table WHERE 0
)现在返回一个结果,其中一行为聚合函数带有null值,符合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'), ...)
(Anastasiya Tsarkova) - 添加了
clickhouse-copier
用于在群集之间复制和重新分布数据的工具(测试版)。 - 添加了一致的哈希函数:
yandexConsistentHash
,jumpConsistentHash
,sumburConsistentHash
. 它们可以用作分片密钥,以减少后续重新分片期间的网络流量。 - 新增功能:
arrayAny
,arrayAll
,hasAny
,hasAll
,arrayIntersect
,arrayResize
. - 添加了
arrayCumSum
功能(哈维桑塔纳)。 - 添加了
parseDateTimeBestEffort
,parseDateTimeBestEffortOrZero
,和parseDateTimeBestEffortOrNull
用于从包含各种可能格式的文本的字符串中读取DateTime的函数。 - 数据可以在更新期间从外部字典部分重新加载(加载只是记录,其中指定字段的值大于先前的下载)(Arsen Hakobyan)。
- 添加了
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
表(基里尔Shvakov)。 - 该
SHOW TABLES
查询现在还显示临时表。 添加临时表和is_temporary
列到system.tables
(张2014)。 - 已添加
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
列。
改进:
- 结果的限制和配额不再应用于以下内容的中间数据
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的大小。
错误修复:
- 修复了错误地从子查询中删除不必要的列或未从包含以下内容的子查询中删除不必要列的情况
UNION ALL
. - 修正了合并的错误
ReplacingMergeTree
桌子 - 在固定的同步插入
Distributed
表 (insert_distributed_sync = 1
). - 固定段错误的某些用途
FULL
和RIGHT JOIN
在子查询中使用重复的列。 - 固定段错误的某些用途
replace_running_query
和KILL QUERY
. - 固定的顺序
source
和last_exception
在列system.dictionaries
桌子 - 修正了一个错误,当
DROP DATABASE
查询没有删除带有元数据的文件。 - 修正了
DROP DATABASE
查询为Dictionary
数据库。 - 固定的低精度
uniqHLL12
和uniqCombined
功能基数大于100万个项目(Alex克斯Bocharov)。 - 修复了在必要时计算隐式默认值,以便同时计算默认显式表达式
INSERT
查询(zhang2014)。 - 修正了一个罕见的情况下,当一个查询
MergeTree
表不能完成(陈星-xc)。 - 修正了运行时发生的崩溃
CHECK
查询为Distributed
如果所有分片都是本地的(chenxing.xc)。 - 修复了使用正则表达式的函数的轻微性能回归。
- 修复了从复杂表达式创建多维数组时的性能回归。
- 修正了一个错误,可能会导致一个额外的
FORMAT
部分出现在一个.sql
具有元数据的文件。 - 修复了导致
max_table_size_to_drop
尝试删除时应用的限制MATERIALIZED VIEW
查看显式指定的表。 - 修复了与旧客户端的不兼容性(旧客户端有时会发送数据
DateTime('timezone')
类型,他们不明白)。 - 修复了阅读时的错误
Nested
使用以下方式添加的结构的列元素ALTER
但是,这是空的旧分区,当这些列的条件移动到PREWHERE
. - 修正了通过虚拟过滤表时的错误
_table
查询中的列Merge
桌子 - 修复了使用时的错误
ALIAS
列Distributed
桌子 - 修正了一个错误,使得动态编译不可能从聚合函数的查询
quantile
家人 - 修复了查询执行管道中极少数情况下使用时发生的争用条件
Merge
具有大量表的表,并且当使用GLOBAL
子查询。 - 修复了将不同大小的数组传递给
arrayReduce
使用来自多个参数的聚合函数时的函数。 - 禁止使用与查询
UNION ALL
在一个MATERIALIZED VIEW
. - 修正了初始化过程中的错误
part_log
服务器启动时的系统表(默认情况下,part_log
被禁用)。
向后不兼容的更改:
- 删除了
distributed_ddl_allow_replicated_alter
选项。 默认情况下启用此行为。 - 删除了
strict_insert_defaults
设置。 如果您使用此功能,请写入clickhouse-feedback@yandex-team.com
. - 删除了
UnsortedMergeTree
引擎
碌莽禄,拢,010-68520682<url>戮漏鹿芦,酶,虏卤赂拢,110102005602
- 在分布式DDL查询和分布式表的构造函数中添加了用于定义集群名称的宏支持:
CREATE TABLE distr ON CLUSTER '{cluster}' (...) ENGINE = Distributed('{cluster}', 'db', 'table')
. - 现在像查询
SELECT ... FROM table WHERE expr IN (subquery)
使用处理table
指数。 - 在插入到复制表时改进了重复项的处理,因此它们不再减慢复制队列的执行速度。
碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682
此版本包含以前版本1.1.54337的错误修复:
- 修正了1.1.54337中的回归:如果默认用户具有只读访问权限,则服务器拒绝启动消息
Cannot create database in readonly mode
. - 修正了1.1.54337中的回归:在具有systemd的系统上,无论配置如何,日志总是写入syslog;看门狗脚本仍然使用init。d。
- 修正了1.1.54337中的回归:Docker映像中错误的默认配置。
- 修正GraphiteMergeTree的非确定性行为(您可以在日志消息中看到它
Data after merge is not byte-identical to the data on another replicas
). - 修复了优化查询到复制表后可能导致合并不一致的错误(您可能会在日志消息中看到它
Part ... intersects the previous part
). - 当目标表中存在具体化列时,缓冲区表现在可以正常工作(by zhang2014)。
- 修复了实现NULL的错误。
碌莽禄,拢,010-68520682<url>
新功能:
- 增加了对多维数组和元组存储的支持 (
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
功能(基里尔Shvakov)。 - 添加了
clickhouse format
用于格式化查询的工具。 - 添加了
format_schema_path
configuration parameter (Marek Vavruşa). It is used for specifying a schema inCap'n Proto
格式。 架构文件只能位于指定的目录中。 - 增加了对配置替换的支持 (
incl
和conf.d
)外部字典和模型的配置(帕维尔*亚库宁)。 - 添加了一列文档
system.settings
表(基里尔Shvakov)。 - 添加了
system.parts_columns
表中的每个数据部分的列大小信息MergeTree
桌子 - 添加了
system.models
包含已加载信息的表CatBoost
机器学习模型。 - 添加了
mysql
和odbc
表函数和对应MySQL
和ODBC
用于访问远程数据库的表引擎。 此功能处于测试阶段。 - 增加了传递类型参数的可能性
AggregateFunction
为groupArray
聚合函数(这样你就可以创建一些聚合函数的状态数组)。 - 删除了对聚合函数组合器的各种组合的限制。 例如,您可以使用
avgForEachIf
以及avgIfForEach
聚合函数,它们具有不同的行为。 - 该
-ForEach
聚合函数combinator是针对多个参数的聚合函数的情况进行扩展的。 - 增加了对聚合函数的支持
Nullable
即使是函数返回非参数的情况-Nullable
结果(添加Silviu Caragea的贡献)。 示例: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
a的子句INSERT SELECT
查询(作者:zhang2014)。 - 添加设置:
http_connection_timeout
,http_send_timeout
,http_receive_timeout
. 特别是,这些设置用于下载用于复制的数据部分。 如果网络过载,更改这些设置可以更快地进行故障转移。 - 增加了对
ALTER
对于类型的表Null
(Anastasiya Tsarkova) - 该
reinterpretAsString
函数扩展为连续存储在内存中的所有数据类型。 - 添加了
--silent
选项的clickhouse-local
工具 它禁止在stderr中打印查询执行信息。 - 增加了对读取类型值的支持
Date
从使用单个数字而不是两个数字(Amos Bird)指定月份和/或月份日的格式的文本。
性能优化:
- 改进聚合函数的性能
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
.
错误修复:
- 固定数据重复数据删除运行后
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
(%
运营商)(Maks Skorokhod)。 -preprocessed
现在更改后创建文件umask
(umask
可以在配置中更改)。- 修正了部分的背景检查中的错误 (
MergeTreePartChecker
)使用自定义分区密钥时。 - 元组的固定解析(的值
Tuple
数据类型)的文本格式。 - 改进了有关传递到的不兼容类型的错误消息
multiIf
,array
和其他一些功能。 - 重新设计的支持
Nullable
类型。 修复了可能导致服务器崩溃的错误。 修正了与几乎所有其他错误NULL
支持:insert SELECT中的类型转换不正确,HAVING和PREWHERE中对Nullable的支持不足,join_use_nulls
模式,可以为Null的类型作为参数OR
操作员等。 - 修正了与数据类型的内部语义相关的各种错误。 例子:不必要的总结
Enum
输入字段SummingMergeTree
;对齐Enum
类型Pretty
格式等。 - 对复合列的允许组合进行更严格的检查。
- 修复了指定一个非常大的参数时的溢出
FixedString
数据类型。 - 修正了一个错误
topK
一般情况下的聚合函数。 - 在聚合函数的n元变体的参数中添加了对数组大小相等性的缺失检查。
-Array
combinator - 修正了一个错误
--pager
为clickhouse-client
(作者:ks1322)。 - 固定的精度
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).
构建改进:
- 该
pbuilder
工具用于构建。 构建过程几乎完全独立于构建主机环境。 - 单个构建用于不同的操作系统版本。 软件包和二进制文件已经与各种Linux系统兼容。
- 添加了
clickhouse-test
包。 它可用于运行功能测试。 - 现在可以将源代码包发布到存储库。 它可以用来在不使用GitHub的情况下重现构建。
- 增加了有限的集成与特拉维斯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
库,以加快各种工具的构建。
向后不兼容的更改:
- 标记的格式
Log
键入包含以下内容的表Nullable
列以向后不兼容的方式进行了更改。 如果你有这些表,你应该将它们转换为TinyLog
在启动新服务器版本之前键入。 要做到这一点,替换ENGINE = Log
与ENGINE = TinyLog
在相应的.sql
文件中的metadata
目录。 如果你的桌子没有Nullable
列或表的类型不是Log
,那么你什么都不需要做。 - 删除了
experimental_allow_extended_storage_definition_syntax
设置。 现在,此功能默认启用。 - 该
runningIncome
函数重命名为runningDifferenceStartingWithFirstvalue
为了避免混confusion。 - 删除了
FROM ARRAY JOIN arr
在FROM with no table(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)
. 此功能已丢失。 虽然它没有记录,但我们计划在未来的版本中再次支持它。 - 枚举数据类型不能用于最小/最大聚合函数。 这种能力将在下一个版本中返回。
升级时请注意:
- 当在群集上执行滚动更新时,当某些副本运行旧版本的ClickHouse,而某些副本运行新版本时,复制会暂时停止,并且消息
unknown parameter 'shard'
出现在日志中。 更新集群的所有副本后,复制将继续。 - 如果群集服务器上运行不同版本的ClickHouse,则使用以下函数的分布式查询可能会产生不正确的结果:
varSamp
,varPop
,stddevSamp
,stddevPop
,covarSamp
,covarPop
,corr
. 您应该更新所有群集节点。