ClickHouse/docs/zh/whats-new/changelog/2018.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

108 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 78 2018

ClickHouse释放18.16

碌莽禄,拢,010-68520682<url>

错误修复:

  • 修复了导致使用ODBC源更新字典时出现问题的错误。 #3825, #3829
  • 聚集函数的JIT编译现在适用于低心率列。 #3838

改进:

  • 添加了 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
  • 已添加 dictGetdictGetOrDefault 不需要指定返回值类型的函数。 该类型是从字典描述自动确定的。 阿莫斯鸟
  • 现在,您可以在表描述中为列指定注释,并使用以下方式对其进行更改 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_timemax_time 列到 system.parts 桌子 当分区键是由以下表达式组成的表达式时,将填充这些列 DateTime 列。 Emmanuel Donin de Rosière

错误修复:

  • 修复和性能改进 LowCardinality 数据类型。 GROUP BY 使用 LowCardinality(Nullable(...)). 获取的值 extremes. 处理高阶函数。 LEFT ARRAY JOIN. 分布 GROUP BY. 返回的函数 Array. 执行 ORDER BY. 写入 Distributednicelulu。 向后兼容 INSERT 从实现旧客户端的查询 Native 协议 支持 LowCardinalityJOIN. 在单个流中工作时提高性能。 #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
  • 修正了一个错误 PREWHEREFINALVersionedCollapsingMergeTree. 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* 从功能 DateDateTime 参数的类型。 #3580
  • 修正了 WITH 子句,如果它指定了一个没有表达式的简单别名。 #3570
  • 固定处理具有命名子查询和限定列名的查询时 enable_optimize_predicate_expression 被启用。 张冬
  • 修正了错误 Attempt to attach to nullptr thread group 使用实例化视图时。 Marek Vavruša
  • 修正了传递某些不正确的参数时崩溃 arrayReverse 功能。 73e3a7b6
  • 修正了缓冲区溢出 extractURLParameter 功能。 改进的性能。 添加了包含零字节的字符串的正确处理。 141e9799
  • 在固定缓冲区溢出 lowerUTF8upperUTF8 功能。 删除了执行这些功能的能力 FixedString 类型参数。 #3662
  • 修复了删除时罕见的竞争条件 MergeTree 桌子 #3680
  • 修正了从读取时的争用条件 Buffer 表和同时执行 ALTERDROP 在目标桌上。 #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
  • 删除日志记录 stderrre2 无效或复杂正则表达式的库。 #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 功能。 基里尔*什瓦科夫
  • FULLRIGHT JOIN,该 max_block_size 设置用于右表中未连接的数据流。 阿莫斯鸟
  • 添加了 --secure 命令行参数 clickhouse-benchmarkclickhouse-performance-test 启用TLS。 #3688 #3690
  • 类型转换时的结构 Buffer 表的类型与目标表的结构不匹配。 维塔利*巴拉诺夫
  • 添加了 tcp_keep_alive_timeout 在指定的时间间隔内不活动后启用保持活动数据包的选项。 #3441
  • 删除不必要的引用值的分区键中 system.parts 表,如果它由单列组成。 #3652
  • 模函数适用于 DateDateTime 数据类型。 #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

构建改进:

  • 简化阿卡迪亚构建的改进。 #3475, #3535

碌莽禄,拢,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
  • 现在你可以使用 NullableMySQLODBC 桌子 #3362
  • 嵌套的数据结构可以被读取为嵌套的对象 JSONEachRow 格式。 添加了 input_format_import_nested_json 设置。 维罗曼*云坎
  • 并行处理可用于许多 MATERIALIZED VIEWs插入数据时。 见 parallel_view_processing 设置。 Marek Vavruša
  • 添加了 SYSTEM FLUSH LOGS 查询(强制日志刷新到系统表,如 query_log) #3321
  • 现在,您可以使用预定义 databasetable 声明时的宏 Replicated 桌子 #3251
  • 增加了阅读的能力 Decimal 工程表示法中的类型值(表示十的幂)。 #3153

实验特点:

  • 对GROUP BY子句进行优化 LowCardinality data types. #3138
  • 表达式的优化计算 LowCardinality data types. #3200

改进:

  • 显着减少查询的内存消耗 ORDER BYLIMIT. 见 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 EXISTSDROP 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
  • 添加同义词的 LENGTHCHARACTER_LENGTH 功能的兼容性。 该 CONCAT 函数不再区分大小写。 #3306
  • 添加了 TIMESTAMP 的同义词 DateTime 类型。 #3390
  • 服务器日志中始终为query_id保留空间即使日志行与查询无关。 这使得使用第三方工具更容易分析服务器文本日志。
  • 当查询超过整数千兆字节的下一级别时,会记录查询的内存消耗。 #3205
  • 为使用本机协议的客户端库错误发送的列少于服务器预期的插入查询时的情况添加了兼容模式。 使用clickhouse-cpp库时这种情况是可能的。 以前,此方案会导致服务器崩溃。 #3171
  • 在用户定义的WHERE表达式中 clickhouse-copier,您现在可以使用 partition_key 别名(用于按源表分区进行其他过滤)。 如果分区方案在复制过程中发生更改,但仅稍有更改,这很有用。 #3166
  • 的工作流程 Kafka 引擎已被移动到后台线程池中,以便在高负载下自动降低数据读取速度。 Marek Vavruša.
  • 支持阅读 TupleNested 结构的值,如 structCap'n'Proto format. Marek Vavruša
  • 顶级域名列表 firstSignificantSubdomain 功能现在包括域 biz. decaseal
  • 在外部字典的配置, null_value 被解释为默认数据类型的值。 #3330
  • 支持 intDivintDivOrZero 功能 Decimal. b48402e8
  • 支持 Date, DateTime, UUID,和 Decimal 类型作为键 sumMap 聚合函数。 #3281
  • 支持 Decimal 外部字典中的数据类型。 #3324
  • 支持 Decimal 数据类型in SummingMergeTree 桌子 #3348
  • 增加了专业化 UUIDif. #3366
  • 减少的数量 openclose 从读取时系统调用 MergeTree table. #3283
  • A TRUNCATE TABLE 查询可以在任何副本上执行(将查询传递给领导副本)。 基里尔*什瓦科夫

错误修复:

  • 修正了一个问题 Dictionaryrange_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
  • 固定类型之间的转换 DateDateTime 当在插入数据 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 BYDecimal128. 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
  • 修复了使用时的错误 FINALPREWHERE. #3298
  • 修复了使用时的错误 PREWHERE 在过程中添加的列 ALTER. #3298
  • 增加了一个检查没有 arrayJoinDEFAULTMATERIALIZED 表达式。 前情提要, arrayJoin 插入数据时导致错误。 #3337
  • 增加了一个检查没有 arrayJoin 在一个 PREWHERE 条款 以前,这导致了类似的消息 Size ... doesn't matchUnknown 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

改进

  • 如果数据部分在变异期间保持不变,则副本不会下载该数据部分。 #3103
  • 使用时,自动完成可用于设置名称 clickhouse-client. #3106

错误修复:

  • 添加了一个检查是元素的数组的大小 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'). 这允许您不指定 ANYALLJOIN. #2982
  • 与查询处理相关的服务器日志的每一行都显示了查询ID。 #2482
  • 现在您可以在clickhouse-client中获取查询执行日志使用 send_logs_level 设置)。 通过分布式查询处理,日志从所有服务器级联。 #2482
  • system.query_logsystem.processes (SHOW PROCESSLIST)表现在有关所有更改的设置信息,当你运行一个查询(的嵌套结构 Settings 数据)。 添加了 log_query_settings 设置。 #2482
  • system.query_logsystem.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.metricssystem.events 表现在有内置文档。 #3016
  • 添加了 arrayEnumerateDense 功能。 阿莫斯鸟
  • 添加了 arrayCumSumNonNegativearrayDifference 功能。 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.tablessystem.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 columnUnknown compression method 例外)。 此错误出现在版本18.10.3中。 #2913
  • 修复了合并时的错误 CollapsingMergeTree 如果其中一个数据部分为空(这些部分在合并或合并期间形成 ALTER DELETE 如果所有数据被删除),和 vertical 算法被用于合并。 #3049
  • 在固定的竞争条件 DROPTRUNCATEMemory 表与同时 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
  • 修复了创建和删除相同的竞争条件 BufferMergeTree 同时表。
  • 修复了比较由某些非平凡类型(如元组)组成的元组时出现段错误的可能性。 #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, CollapsingMergeTreeVersionedCollapsingMergeTree 引擎 #2815
  • 已完成突变的旧记录将被删除 (ALTER DELETE). #2784
  • 添加了 system.merge_tree_settings 桌子 基里尔*什瓦科夫
  • system.tables 表现在具有依赖列: dependencies_databasedependencies_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 在聚合在一个空的情况下 Float32Float64 预备 李尚迪

错误修复:

  • 删除了ODBC的连接字符串参数的不必要的转义这使得无法建立连接。 此错误发生在版本18.6.0中。
  • 修正了处理逻辑 REPLACE PARTITION 复制队列中的命令。 如果有两个 REPLACE 对于同一个分区的命令,不正确的逻辑可能会导致其中一个保留在复制队列中而无法执行。 #2814
  • 修正了一个合并错误,当所有的数据部分都是空的(从合并或从形成的部分 ALTER DELETE 如果所有数据都被删除)。 此错误出现在18.1.0版本。 #2930
  • 修复了并发错误 SetJoin. 阿莫斯鸟
  • 修正了 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.processesquery_log. #2646

ClickHouse释放18.5

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能:

  • 添加了哈希函数 murmurHash2_32 #2756.

改进:

  • 现在你可以使用 from_env #2741 从环境变量设置配置文件中的值的属性。
  • 增加了不区分大小写的版本 coalesce, ifNull,和 nullIf functions #2752.

错误修复:

  • 修复了启动副本时可能出现的错误 #2759.

ClickHouse释放18.4

碌莽禄,拢,010-68520682<url>

新功能:

  • 添加系统表: formats, data_type_families, aggregate_function_combinators, table_functions, table_engines, collations #2721.
  • 增加了使用表函数代替表作为参数的能力 remotecluster table function #2708.
  • 支持 HTTP Basic 复制协议中的身份验证 #2727.
  • has 函数现在允许搜索数组中的数值 EnumMaxim Khrisanfov.
  • 支持添加任意消息分隔符从读取时 Kafka 阿莫斯鸟.

改进:

  • ALTER TABLE t DELETE WHERE 查询不会重写未受WHERE条件影响的数据部分 #2694.
  • use_minimalistic_checksums_in_zookeeper 备选案文 ReplicatedMergeTree 默认情况下启用表。 此设置在版本1.1.543782018-04-16中添加。 不能再安装超过1.1.54378的版本。
  • 支持运行 KILLOPTIMIZE 指定的查询 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_schemakafka_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_numinput_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> 在字典里 解决方案:替换 00000-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_timeengine_full 列现在是非虚拟的。 修复了仅从表中查询这些列时发生的错误。
  • 固定如何空 TinyLog 表插入一个空数据块后工作 (#2563).
  • system.zookeeper 如果ZooKeeper中节点的值为NULL表就可以工作。

碌莽禄,拢,010-68520682<url>戮卤篓拢,010-68520682<url>

新功能:

  • 查询可以在发送 multipart/form-data 格式(在 query 字段),如果外部数据也被发送用于查询处理,这是有用的 (Olga Hvostikova).
  • 增加了在读取CSV格式数据时启用或禁用处理单引号或双引号的功能。 您可以在 format_csv_allow_single_quotesformat_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 聚合函数 (三弟).
  • startsWithendsWith 字符串的函数 (Vadim Plakhtinsky).
  • numbers() 表函数现在允许您指定偏移量 (张冬).
  • 密码 clickhouse-client 可以交互输入。
  • 服务器日志现在可以发送到系统日志 (Alexander Krasheninnikov).
  • 支持使用共享库源登录字典 (Alexander Sapin).
  • 支持自定义CSV分隔符 (伊万*朱可夫)
  • 添加了 date_time_input_format 设置。 如果将此设置切换到 'best_effort',日期时间值将以各种格式读取。
  • 添加了 clickhouse-obfuscator 用于数据混ob的实用程序。 用法示例:发布性能测试中使用的数据。

实验特点:

  • 增加了计算能力 and 只有在需要的地方才能参数 (阿纳斯塔西娅Tsarkova)
  • Jit编译为本机代码现在可用于某些表达式 (pyos).

错误修复:

  • 对于具有以下内容的查询,不再显示重复项 DISTINCTORDER BY.
  • 查询与 ARRAY JOINarrayFilter 不再返回不正确的结果。
  • 修复了从嵌套结构读取数组列时的错误 (#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).

向后不兼容的更改:

  • 删除逃逸 VerticalPretty* 格式和删除 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 在桌子上进行。
  • 修复了执行时的授权错误 OPTIMIZEALTER 对非领导副本的查询。
  • 固定的冻结 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 QUERYreplace_running_query,客户端接收 Query was canceled 异常而不是不完整的结果。

改进:

  • ALTER TABLE ... DROP/DETACH PARTITION 查询在复制队列的前面运行。
  • SELECT ... FINALOPTIMIZE ... FINAL 即使表具有单个数据部分,也可以使用。
  • A query_log 如果手动删除基里尔Shvakov则会在飞行中重新创建表格。
  • lengthUTF8 功能运行速度更快zhang2014
  • 在同步刀片的性能提高 Distributed 表 (insert_distributed_sync = 1)当有一个非常大的数量的碎片。
  • 服务器接受 send_timeoutreceive_timeout 从客户端设置并在连接到客户端时应用它们(它们以相反的顺序应用:服务器套接字的 send_timeout 被设置为 receive_timeout 值,反之亦然)。
  • 更强大的崩溃恢复异步插入 Distributed 桌子
  • 的返回类型 countEqual 功能从更改 UInt32UInt64 (谢磊).

错误修复:

  • 修正了一个错误 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-baseclickhouse-common-static; clickhouse-server-commonclickhouse-server; clickhouse-common-dbgclickhouse-common-static-dbg. 要安装,请使用 clickhouse-server clickhouse-client. 具有旧名称的软件包仍将加载到存储库中,以便向后兼容。

向后不兼容的更改:

  • 如果在左侧指定了数组则删除了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的连接使用默认的内核配置设置。 您还可以通过指定以下命令恢复到以前版本中的行为 <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 表if 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.

碌莽禄,拢,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 表函数可以接受集群名称作为第一个参数,如果它被指定为标识符。
  • remotecluster 表函数可用于 INSERT 查询。
  • 添加了 create_table_queryengine_full 虚拟列到 system.tables桌子 该 metadata_modification_time 列是虚拟的。
  • 添加了 data_pathmetadata_pathsystem.tablessystem.databases 表,并添加了 path 列到 system.partssystem.parts_columns 桌子
  • 添加了关于合并的其他信息 system.part_log 桌子
  • 一个任意的分区键可以用于 system.query_log基里尔Shvakov
  • SHOW TABLES 查询现在还显示临时表。 添加临时表和 is_temporary 列到 system.tables 张2014
  • 已添加 DROP TEMPORARY TABLEEXISTS 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_cancelledpeak_memory_usage 列。

改进:

  • 结果的限制和配额不再应用于以下内容的中间数据 INSERT SELECT 查询或 SELECT 子查询。
  • 更少的虚假触发 force_restore_data 当检查的状态 Replicated 服务器启动时的表。
  • 添加了 allow_distributed_ddl 选项。
  • 表达式中不允许使用非确定性函数 MergeTree 表键。
  • 从替换文件 config.d 目录按字母顺序加载。
  • 的改进的性能 arrayElement 函数在常量多维数组的情况下,以空数组作为元素之一。 示例: [[1], []][x].
  • 当使用具有非常大的替换例如非常大的IP网络列表的配置文件时服务器现在启动速度更快。
  • 运行查询时,表值函数运行一次。 前情提要, remotemysql 表值函数执行两次相同的查询以从远程服务器检索表结构。
  • 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).
  • 固定段错误的某些用途 FULLRIGHT JOIN 在子查询中使用重复的列。
  • 固定段错误的某些用途 replace_running_queryKILL QUERY.
  • 固定的顺序 sourcelast_exception 在列 system.dictionaries 桌子
  • 修正了一个错误,当 DROP DATABASE 查询没有删除带有元数据的文件。
  • 修正了 DROP DATABASE 查询为 Dictionary 数据库。
  • 固定的低精度 uniqHLL12uniqCombined 功能基数大于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 桌子
  • 修复了使用时的错误 ALIASDistributed 桌子
  • 修正了一个错误,使得动态编译不可能从聚合函数的查询 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 表中的数据类型)。
  • 支持表函数 DESCRIBEINSERT 查询。 增加了对子查询的支持 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 in Cap'n Proto 格式。 架构文件只能位于指定的目录中。
  • 增加了对配置替换的支持 (inclconf.d)外部字典和模型的配置(帕维尔*亚库宁)。
  • 添加了一列文档 system.settings基里尔Shvakov
  • 添加了 system.parts_columns 表中的每个数据部分的列大小信息 MergeTree 桌子
  • 添加了 system.models 包含已加载信息的表 CatBoost 机器学习模型。
  • 添加了 mysqlodbc 表函数和对应 MySQLODBC 用于访问远程数据库的表引擎。 此功能处于测试阶段。
  • 增加了传递类型参数的可能性 AggregateFunctiongroupArray 聚合函数(这样你就可以创建一些聚合函数的状态数组)。
  • 删除了对聚合函数组合器的各种组合的限制。 例如,您可以使用 avgForEachIf 以及 avgIfForEach 聚合函数,它们具有不同的行为。
  • -ForEach 聚合函数combinator是针对多个参数的聚合函数的情况进行扩展的。
  • 增加了对聚合函数的支持 Nullable 即使是函数返回非参数的情况-Nullable 结果添加Silviu Caragea的贡献。 示例: groupArray, groupUniqArray, topK.
  • 添加了 max_client_network_bandwidthclickhouse-client (基里尔*什瓦科夫)。
  • 用户与 readonly = 2 setting are allowed to work with TEMPORARY tables (CREATE, DROP, INSERT…) (Kirill Shvakov).
  • 增加了对使用多个消费者的支持 Kafka 引擎 扩展的配置选项 Kafka (Marek Vavruša).
  • 添加了 intExp3intExp4 功能。
  • 添加了 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.
  • 改进了解析和格式化的性能 DateDateTime 以文本格式键入值。
  • 改进了解析浮点数的性能和精度。
  • 降低内存使用量 JOIN 在左部分和右部分具有不包含在相同名称的列的情况下 USING .
  • 改进聚合函数的性能 varSamp, varPop, stddevSamp, stddevPop, covarSamp, covarPop, corr 通过降低计算稳定性。 旧函数的名称下可用 varSampStable, varPopStable, stddevSampStable, stddevPopStable, covarSampStable, covarPopStable, corrStable.

错误修复:

  • 固定数据重复数据删除运行后 DROPDETACH PARTITION 查询。 在以前的版本中,删除分区并再次插入相同的数据不起作用,因为插入的块被认为是重复的。
  • 修复了可能导致错误解释的错误 WHERE 条款 CREATE MATERIALIZED VIEW 查询与 POPULATE .
  • 修正了在使用 root_path 在参数 zookeeper_servers 配置。
  • 通过固定意外的结果 Date 论据 toStartOfDay .
  • 修正了 addMonthssubtractMonths 函数和算术 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 , lcmmodulo (% 运营商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
  • 修正了一个错误 --pagerclickhouse-client 作者ks1322
  • 固定的精度 exp10 功能。
  • 固定的行为 visitParamExtract 功能更好地符合文档。
  • 修复了指定不正确的数据类型时的崩溃。
  • 固定的行为 DISTINCT 在所有列都是常量的情况下。
  • 在使用的情况下固定的查询格式 tupleElement 使用复数常量表达式作为元组元素索引的函数。
  • 修正了一个错误 Dictionaryrange_hashed 字典
  • 修正了导致结果中的过多行的错误 FULLRIGHT 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 TextMarkdown.
  • 增加了对 systemd (弗拉基米尔*斯米尔诺夫)。 默认情况下,由于与某些操作系统映像不兼容,它被禁用,并且可以手动启用。
  • 用于动态代码生成, clanglld 嵌入到 clickhouse 二进制 它们也可以被调用为 clickhouse clangclickhouse lld .
  • 从代码中删除GNU扩展的使用。 启用 -Wextra 选项。 当与建设 clang 默认值为 libc++ 而不是 libstdc++.
  • 提取 clickhouse_parsersclickhouse_common_io 库,以加快各种工具的构建。

向后不兼容的更改:

  • 标记的格式 Log 键入包含以下内容的表 Nullable 列以向后不兼容的方式进行了更改。 如果你有这些表,你应该将它们转换为 TinyLog 在启动新服务器版本之前键入。 要做到这一点,替换 ENGINE = LogENGINE = 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. 您应该更新所有群集节点。

更新日志2017