新功能:
-
DEFAULT
以半结构化格式(JSONEachRow
,TSKV
)加载数据时计算缺失字段的表达式。#3555 - 在查询
ALTER TABLE
中添加了一个操作,以便在MODIFY ORDER BY
同时添加或删除表列时更改排序键。这是一个家庭的表的有用MergeTree
,执行在兼并额外的工作,根据排序关键字,诸如SummingMergeTree
,AggregatingMergeTree
和叔。F.#3581#3755 - 对于族的表,
MergeTree
可以指定不同的排序键(ORDER BY
)和索引(PRIMARY KEY
)。排序键可能比索引长。#3581 - 添加了表函数
hdfs
和表引擎,HDFS
用于将数据导入和导出到HDFS。chenxing-xc#3617 - 新增功能与以base64工作:
base64Encode
,base64Decode
,tryBase64Decode
。Alexander Krasheninnikov#3350 - 对于聚合函数
uniqCombined
,可以使用参数调整工作的准确性(选择单元格数HyperLogLog)。#3406 - 添加了一个表,
system.contributors
其中包含提交到ClickHouse的每个人的姓名。#3452 - 添加了不为一次
ALTER TABLE ... FREEZE
备份所有分区的请求指定分区的功能。#3514 - 新增功能
dictGet
,dictGetOrDefault
而不指定返回值的类型。该类型是从字典描述中自动确定的。阿莫斯鸟#3564 - 能够在表的描述中为列指定注释并使用其进行更改
ALTER
。#3377 -
Join
在简单键的情况下从表类型读取的能力。阿莫斯鸟#3728 - 能够指定的设置
join_use_nulls
,max_rows_in_join
,max_bytes_in_join
,join_overflow_mode
当你创建一个表类型Join
。阿莫斯鸟#3728 - 添加了一个
joinGet
允许您将类型表Join
用作字典的函数。阿莫斯鸟#3728 - 添加的列
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 DonindeRosière#3800
错误修复:
- 数据类型的更正和性能改进
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 - 在VIEW中正确指示数据库中的子查询。#3521
- 修复
PREWHERE
了FINAL
for for的工作VersionedCollapsingMergeTree
。7167bfd7b365538f7a91c4307ad77e552ab4e8c1 - 能够使用查询
KILL QUERY
取消由于等待锁表而尚未开始运行的请求。#3517 - 固定计算的日期和时间,以防钟针在午夜被移回(这发生在伊朗,从1981年到1983年是莫斯科)。以前,这导致了时钟的指针在必要时提前一天翻译,并且导致日期与文本形式的时间格式不正确。#3819
- 修复了某些案例
VIEW
和子查询的工作而未指定数据库。张冬#3521 - 修复竞争条件,同时由于缺少内部表锁而同时读取
MATERIALIZED VIEW
和删除。#3404#3694MATERIALIZED VIEW``MATERIALIZED VIEW
- 错误修复
Lock handler cannot be nullptr.
#3689 - 启用设置时查询执行的更正
compile_expressions
(默认情况下禁用) - 删除非确定性常量表达式(如函数)的卷积now
。#3457 - 修复了在函数中指定非常量缩放参数时发生崩溃的问题
toDecimal32/64/128
。 - 修复了尝试以
Values
数组格式插入NULL
类型列中Array
没有元素时的错误Nullable
(在caseinput_format_values_interpret_expressions
= 1中)。#3487#3503 - 修复了
DDLWorker
ZooKeeper不可用时的连续错误登录问题。8f50c620334988b28018213ec0092fe6423847e2 - 修复
quantile*
了类型Date
和参数中函数的返回类型DateTime
。#3580 -
WITH
如果它设置一个没有表达式的简单别名,则修复了段操作。#3570 - 在启用设置时,修复了对具有命名子查询和限定列名称的查询的处理
enable_optimize_predicate_expression
。张冬#3588 - 修复了
Attempt to attach to nullptr thread group
处理物化视图时的错误。MarekVavruša#3623 - 发送固定崩溃时,一些无效的函数的自变量
arrayReverse
。73e3a7b662161d6005e7727d8a711b930386b871 - 修正了在功能的缓冲区溢出
extractURLParameter
。提高性能。添加了对包含零字节的字符串的正确处理 141e9799e49201d84ea8e951d1bed4fb6d3dacb5 - 修正了在功能的缓冲区溢出
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
默认情况下,该设置设置为10 GiB。形成MergeTree系列大型表的合并将在该模式下执行O_DIRECT
,从而消除了高速缓存的刷新。#3504 - 在大量表的情况下加速服务器启动。#3398
-
Keep-Alive
为副本之间的连接添加了连接池和HTTP 。#3594 - 在语法错误请求的情况下,
HTTP
接口返回代码400 Bad Request
(先前返回的代码500)。31bc680ac5f4bb1d0360a8ba4696fa84bb47d6ab -
join_default_strictness
选择ALL
兼容性的默认设置进行设置。120e2cbe2ff4fbad626c28042d9b28781c805afe - 如果正则表达式不正确或复杂,
stderr
则从库re2
中删除。#3723 - 对于表引擎
Kafka
:在从Kafka读取之前检查订阅的可用性; 设置kafka_max_block_size表。MarekVavruša#3396 - 功能
cityHash64
,farmHash64
,metroHash64
,sipHash64
,halfMD5
,murmurHash2_32
,murmurHash2_64
,murmurHash3_32
,murmurHash3_64
现在工作的参数任意数量,以及为元组的参数。#3451#3519 - 该函数
arrayReverse
现在适用于任何类型的数组。73e3a7b662161d6005e7727d8a711b930386b871 - 添加了可选参数 - 功能的插槽大小
timeSlots
。Kirill Shvakov#3724 - 对于
FULL
和RIGHT JOIN
,考虑max_block_size
来自右表的非附加数据流的设置。阿莫斯鸟#3699 - 在
clickhouse-benchmark
并clickhouse-performance-test
添加命令行选项--secure
以启用TLS。#3688#3690 - 如果类型表
Buffer
的结构与目标表的结构不匹配,则键入转换。维塔利巴拉诺夫#3603 - 添加了设置
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 - 添加了commit(
mlock
)与可执行代码对应的内存页面的功能,clickhouse-server
以防止它们被强制内存不足。默认情况下禁用该选项。#3553 -
O_DIRECT
(启用选项min_bytes_to_use_direct_io
)改善了阅读性能。#3405 -
dictGet...OrDefault
在常量键参数和非常量默认参数的情况下,改进了函数的性能。阿莫斯鸟#3563 - 功能
firstSignificantSubdomain
增加的处理域gov
,mil
,edu
。#3601性能提升。#3628 - 能够使用c 指定
clickhouse-server
通过SYS-V init.d
-script 运行的任意环境变量。Pavlo Bashynskyi#3612CLICKHOUSE_PROGRAM_ENV``/etc/default/clickhouse
- init-script clickhouse-server的正确返回码。#3516
- 将
system.metrics
度量标准添加到表中VersionInteger
,并在表格的数字表示形式中将system.build_options
一行添加到VERSION_INTEGER
包含ClickHouse版本的表中18016000
。#3644 - 删除了将类型
Date
与数字进行比较的功能,以避免错误地date = 2018-12-17
指示日期周围的引号的表单的潜在错误。#3687 - 具有类型状态的函数的行为
rowNumberInAllBlocks
是固定的- 由于它们在查询分析期间的启动,它们更早地给出了数字。阿莫斯鸟#3729 - 如果无法删除该文件
force_restore_data
,则会显示错误消息。阿莫斯鸟#3794
建设改进:
- 更新
jemalloc
了修复潜在内存泄漏的库。阿莫斯鸟#3557 - 对于调试版本,默认情况下启用性能分析
jemalloc
。2cc82f5cbe266421cd4c1165286c2c47e5ffcb15 - 添加了运行集成测试的功能(如果仅安装在系统上)
Docker
。#3650 - 在SELECT查询中添加了模糊表达式测试。#3442
- 增加了在线压力测试,可以并行和任意顺序执行功能测试,从而可以检测更多的竞争条件。#3438
- 改进了在Docker镜像中启动clickhouse-server的方法。Elghazal Ahmed#3663
- 对于Docker镜像,使用目录中的文件添加了对数据库初始化的支持
/docker-entrypoint-initdb.d
。康斯坦丁·列别杰夫#3695 - 修复了ARM下的构建问题。#3709
返回不兼容的更改:
- 删除了将类型
Date
与数字进行比较的能力,而是toDate('2018-12-18') = 17883
使用显式类型转换= toDate(17883)
#3687