ClickHouse/docs/zh/whats_new/changelog/2017.md

269 lines
17 KiB
Markdown
Raw Normal View History

---
machine_translated: true
machine_translated_rev: b111334d6614a02564cf32f379679e9ff970d9b1
toc_priority: 79
toc_title: '2017'
---
### ClickHouse释放1.1.54327,2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
此版本包含以前版本1.1.54318的错误修复:
- 修复了可能导致数据丢失的复制中可能存在的争用条件的错误。 此问题影响版本1.1.54310和1.1.54318。 如果将其中一个版本用于复制的表,则强烈建议进行更新。 此问题显示在日志中的警告消息,如 `Part ... from own log doesn't exist.` 即使您在日志中没有看到这些消息,问题也是相关的。
### 碌莽禄,拢,010-68520682\<url\> {#clickhouse-release-1-1-54318-2017-11-30}
此版本包含以前版本1.1.54310的错误修复:
- 修复了SummingMergeTree引擎中合并过程中错误的行删除
- 修复了未复制的MergeTree引擎中的内存泄漏
- 修复了MergeTree引擎中频繁插入的性能下降
- 修复了导致复制队列停止运行的问题
- 固定服务器日志的轮换和归档
### ClickHouse释放1.1.54310,2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
#### 新功能: {#new-features}
- MergeTree表引擎系列的自定义分区键。
- [卡夫卡](https://clickhouse.yandex/docs/en/operations/table_engines/kafka/) 表引擎。
- 增加了对加载的支持 [CatBoost](https://catboost.yandex/) 模型并将其应用到ClickHouse中存储的数据。
- 增加了对UTC非整数偏移的时区的支持。
- 增加了对具有时间间隔的算术运算的支持。
- 日期和日期时间类型的值范围扩展到2105年。
- 添加了 `CREATE MATERIALIZED VIEW x TO y` 查询(指定用于存储实例化视图数据的现有表)。
- 添加了 `ATTACH TABLE` 不带参数的查询。
- 将SummingMergeTree表中名称以-Map结尾的嵌套列的处理逻辑提取到sumMap聚合函数中。 现在,您可以显式指定此类列。
- IP trie字典的最大大小增加到128M条目。
- 添加了getSizeOfEnumType函数。
- 添加了sumWithOverflow聚合函数。
- 增加了对Cap'n Proto输入格式的支持。
- 使用zstd算法时您现在可以自定义压缩级别。
#### 向后不兼容的更改: {#backward-incompatible-changes}
- 不允许使用内存以外的引擎创建临时表。
- 不允许使用View或MaterializedView引擎显式创建表。
- 在创建表期间,新检查将验证采样键表达式是否包含在主键中。
#### 错误修复: {#bug-fixes}
- 修复了同步插入到分布式表中时的挂断问题。
- 修复了复制表中部分的非原子添加和删除。
- 插入到实例化视图中的数据不会遭受不必要的重复数据删除。
- 对本地副本滞后且远程副本不可用的分布式表执行查询不会再导致错误。
- 用户不需要访问权限 `default` 数据库创建临时表了。
- 修复了在指定数组类型时不带参数的崩溃。
- 修复了包含服务器日志的磁盘卷已满时的挂机问题。
- 修复了unix时代的第一周toRelativeWeekNum函数的溢出。
#### 构建改进: {#build-improvements}
- 几个第三方库特别是Poco被更新并转换为git子模块。
### ClickHouse释放1.1.54304,2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
#### 新功能: {#new-features-1}
- 本机协议中的TLS支持要启用请设置 `tcp_ssl_port``config.xml` ).
#### 错误修复: {#bug-fixes-1}
- `ALTER` 对于复制的表现在尝试尽快开始运行。
- 使用设置读取数据时修复崩溃 `preferred_block_size_bytes=0.`
- 固定的崩溃 `clickhouse-client` 按下时 `Page Down`
- 正确解释某些复杂的查询 `GLOBAL IN``UNION ALL`
- `FREEZE PARTITION` 现在总是以原子方式工作。
- 空POST请求现在返回代码411的响应。
- 修正了像表达式的解释错误 `CAST(1 AS Nullable(UInt8)).`
- 修正了读取时的错误 `Array(Nullable(String))` 从列 `MergeTree` 桌子
- 修正了解析查询时崩溃,如 `SELECT dummy AS dummy, dummy AS b`
- 用户正确更新无效 `users.xml`
- 可执行字典返回非零响应代码时的正确处理。
### ClickHouse释放1.1.54292,2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
#### 新功能: {#new-features-2}
- 添加了 `pointInPolygon` 用于处理坐标平面上的坐标的函数。
- 添加了 `sumMap` 用于计算数组总和的聚合函数,类似于 `SummingMergeTree`.
- 添加了 `trunc` 功能。 改进舍入函数的性能 (`round`, `floor`, `ceil`, `roundToExp2`并corrected正了他们如何工作的逻辑。 改变的逻辑 `roundToExp2` 分数和负数的功能。
- ClickHouse可执行文件现在对libc版本的依赖性较低。 同样的ClickHouse可执行文件可以在各种各样的Linux系统上运行。 使用编译的查询(使用设置)时仍然存在依赖关系 `compile = 1` ,默认情况下不使用)。
- 减少了动态编译查询所需的时间。
#### 错误修复: {#bug-fixes-2}
- 修正了有时产生的错误 `part ... intersects previous part` 消息和副本的一致性减弱。
- 修正了一个错误导致服务器锁定如果ZooKeeper在关闭过程中不可用。
- 恢复副本时删除了过多的日志记录。
- 修复了UNION ALL实现中的错误。
- 修复了在块中的第一列具有数组类型时发生的concat函数中的错误。
- 进度现在在系统中正确显示。合并表。
### ClickHouse释放1.1.54289,2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
#### 新功能: {#new-features-3}
- `SYSTEM` 服务器管理查询: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
- 添加了用于处理数组的函数: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
- 已添加 `root``identity` ZooKeeper配置的参数。 这允许您隔离同一个ZooKeeper集群上的单个用户。
- 添加聚合函数 `groupBitAnd`, `groupBitOr`,和 `groupBitXor` (为了兼容,它们也可以在名称下使用 `BIT_AND`, `BIT_OR`,和 `BIT_XOR`).
- 通过在文件系统中指定套接字可以从MySQL加载外部字典。
- 外部字典可以通过SSL从MySQL加载 (`ssl_cert`, `ssl_key`, `ssl_ca` 参数)。
- 添加了 `max_network_bandwidth_for_user` 设置为限制每个用户查询的总带宽使用。
- 支持 `DROP TABLE` 对于临时表。
- 支持阅读 `DateTime` 从Unix时间戳格式的值 `CSV``JSONEachRow` 格式。
- 分布式查询中的滞后副本现在默认排除默认阈值为5分钟
- 在ALTER期间使用FIFO锁定对于连续运行的查询ALTER查询不会无限期地阻止。
- 选项设置 `umask` 在配置文件中。
- 改进了查询的性能 `DISTINCT` .
#### 错误修复: {#bug-fixes-3}
- 改进了在ZooKeeper中删除旧节点的过程。 以前,如果插入非常频繁,旧节点有时不会被删除,这导致服务器关闭速度缓慢等等。
- 修正了选择主机连接到ZooKeeper时的随机化。
- 修复了在分布式查询中排除滞后副本如果副本是localhost。
- 修正了一个错误,其中在一个数据部分 `ReplicatedMergeTree` 运行后表可能会被打破 `ALTER MODIFY` 在一个元素 `Nested` 结构。
- 修复了可能导致SELECT查询执行以下操作的错误 “hang”.
- 对分布式DDL查询的改进。
- 修正了查询 `CREATE TABLE ... AS <materialized view>`.
- 解决了在僵局 `ALTER ... CLEAR COLUMN IN PARTITION` 查询为 `Buffer` 桌子
- 修正了无效的默认值 `Enum` s0而不是最小使用时 `JSONEachRow``TSKV` 格式。
- 解决了使用字典时僵尸进程的外观 `executable` 资料来源。
- 修正了HEAD查询的段错误。
#### 改进开发和组装ClickHouse的工作流程: {#improved-workflow-for-developing-and-assembling-clickhouse}
- 您可以使用 `pbuilder` 建造克里克豪斯
- 您可以使用 `libc++` 而不是 `libstdc++` 对于构建在Linux上。
- 添加了使用静态代码分析工具的说明: `Coverage`, `clang-tidy`, `cppcheck`.
#### 升级时请注意: {#please-note-when-upgrading}
- MergeTree设置现在有一个更高的默认值 `max_bytes_to_merge_at_max_space_in_pool` 要合并的数据部分的最大总大小以字节为单位它已从100GiB增加到150GiB。 这可能会导致服务器升级后运行大型合并,这可能会导致磁盘子系统的负载增加。 如果服务器上的可用空间小于正在运行的合并总量的两倍,这将导致所有其他合并停止运行,包括小数据部分的合并。 因此,插入查询将失败,并显示消息 “Merges are processing significantly slower than inserts.” 使用 `SELECT * FROM system.merges` 查询监控情况。 您还可以检查 `DiskSpaceReservedForMerge` 度量在 `system.metrics` 表,或石墨。 你不需要做任何事情来解决这个问题,因为一旦大合并完成,问题就会自行解决。 如果您发现这是不可接受的,则可以恢复以前的值 `max_bytes_to_merge_at_max_space_in_pool` 设置。 要做到这一点,请转到 <merge_tree> 在配置部分。xml设置 ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` 并重新启动服务器。
### 碌莽禄,拢,010-68520682\<url\> {#clickhouse-release-1-1-54284-2017-08-29}
- 这是一个错误修正版本以前的1.1.54282版本。 它修复了ZooKeeper中部件目录中的泄漏。
### 碌莽禄,拢,010-68520682\<url\> {#clickhouse-release-1-1-54282-2017-08-23}
此版本包含以前版本1.1.54276的错误修复:
- 固定 `DB::Exception: Assertion violation: !_path.empty()` 当插入到分布式表中。
- 如果输入数据以";"开头则以RowBinary格式插入时修复了解析。
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
### 碌莽禄,拢,010-68520682\<url\> {#clickhouse-release-1-1-54276-2017-08-16}
#### 新功能: {#new-features-4}
- 为选择查询添加了一个可选的WITH部分。 查询示例: `WITH 1+1 AS a SELECT a, a*a`
- INSERT可以在分布式表中同步执行仅在所有分片上保存所有数据后才返回OK。 这是由设置insert\_distributed\_sync=1激活的。
- 添加了用于处理16字节标识符的UUID数据类型。
- 添加了CHARFLOAT和其他类型的别名以便与Tableau兼容。
- 添加了toyyyymmtoYYYYMMDD和toyyyyymmddhhmmss将时间转换为数字的功能。
- 您可以使用IP地址与主机名一起使用来标识群集DDL查询的服务器。
- 增加了对函数中非常量参数和负偏移的支持 `substring(str, pos, len).`
- 添加了max\_size参数 `groupArray(max_size)(column)` 聚合函数,并优化了其性能。
#### 主要变化: {#main-changes}
- 安全性改进所有服务器文件都使用0640权限创建可以通过更改 <umask> 配置参数)。
- 改进了语法无效的查询的错误消息。
- 在合并mergetree大部分数据时显着降低了内存消耗并提高了性能。
- 显着提高了ReplacingMergeTree引擎的数据合并性能。
- 通过组合多个源插入来改进来自分布式表的异步插入的性能。 要启用此功能请使用设置distributed\_directory\_monitor\_batch\_inserts=1。
#### 向后不兼容的更改: {#backward-incompatible-changes-1}
- 改变聚合状态的二进制格式 `groupArray(array_column)` 数组的函数。
#### 更改的完整列表: {#complete-list-of-changes}
- 添加了 `output_format_json_quote_denormals` 设置允许以JSON格式输出nan和inf值。
- 从分布式表读取时优化流分配。
- 如果值没有更改,可以在只读模式下配置设置。
- 添加了检索MergeTree引擎的非整数颗粒的功能以满足preferred\_block\_size\_bytes设置中指定的块大小的限制。 其目的是在处理来自具有大列的表的查询时减少RAM消耗并增加缓存局部性。
- 高效使用包含如下表达式的索引 `toStartOfHour(x)` 对于像条件 `toStartOfHour(x) op сonstexpr.`
- 添加了MergeTree引擎的新设置配置中的merge\_tree部分。xml):
- replicated\_deduplication\_window\_seconds设置复制表中重复数据删除插入所允许的秒数。
- cleanup\_delay\_period设置启动清理以删除过时数据的频率。
- replicated\_can\_become\_leader可以防止副本成为领导者并分配合并
- 加速清理从ZooKeeper中删除过时的数据。
- 针对群集DDL查询的多个改进和修复。 特别令人感兴趣的是新设置distributed\_ddl\_task\_timeout它限制了等待群集中服务器响应的时间。 如果未在所有主机上执行ddl请求则响应将包含超时错误并且请求将以异步模式执行。
- 改进了服务器日志中堆栈跟踪的显示。
- 添加了 “none” 压缩方法的值。
- 您可以在config中使用多个dictionaries\_config部分。xml
- 可以通过文件系统中的套接字连接到MySQL。
- 系统。部件表有一个新的列,其中包含有关标记大小的信息,以字节为单位。
#### 错误修复: {#bug-fixes-4}
- 使用合并表的分布式表现在可以正确地用于具有条件的SELECT查询 `_table` 场。
- 修复了检查数据部分时ReplicatedMergeTree中罕见的争用条件。
- 固定可能冻结 “leader election” 启动服务器时。
- 使用数据源的本地副本时将忽略max\_replica\_delay\_for\_distributed\_queries设置。 这已被修复。
- 修正了不正确的行为 `ALTER TABLE CLEAR COLUMN IN PARTITION` 尝试清除不存在的列时。
- 修复了multif函数中使用空数组或字符串时的异常。
- 修正了反序列化本机格式时过多的内存分配。
- 修正了Trie字典的不正确的自动更新。
- 修复了使用SAMPLE从合并表中使用GROUP BY子句运行查询时的异常。
- 修复了使用distributed\_aggregation\_memory\_efficient=1时组的崩溃。
- 现在您可以指定数据库。表在右侧的IN和JOIN。
- 用于并行聚合的线程太多。 这已被修复。
- 固定如何 “if” 函数与FixedString参数一起使用。
- 为权重为0的分片从分布式表中选择工作不正确。 这已被修复。
- 运行 `CREATE VIEW IF EXISTS no longer causes crashes.`
- 修正了input\_format\_skip\_unknown\_fields=1设置并且有负数时的不正确行为。
- 修正了一个无限循环 `dictGetHierarchy()` 如果字典中有一些无效的数据,则函数。
- 固定 `Syntax error: unexpected (...)` 在IN或JOIN子句和合并表中使用子查询运行分布式查询时出错。
- 修复了从字典表中选择查询的不正确解释。
- 修正了 “Cannot mremap” 在IN和JOIN子句中使用包含超过20亿个元素的数组时出错。
- 修复了以MySQL为源的字典的故障转移。
#### 改进开发和组装ClickHouse的工作流程: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
- 构建可以在阿卡迪亚组装。
- 您可以使用gcc7来编译ClickHouse。
- 现在使用ccache+distcc的并行构建速度更快。
### 碌莽禄,拢,010-68520682\<url\>戮卤篓拢,010-68520682\<url\> {#clickhouse-release-1-1-54245-2017-07-04}
#### 新功能: {#new-features-5}
- 分布式的DDL例如, `CREATE TABLE ON CLUSTER`)
- 复制的查询 `ALTER TABLE CLEAR COLUMN IN PARTITION.`
- 字典表的引擎(以表格形式访问字典数据)。
- 字典数据库引擎(这种类型的数据库会自动为所有连接的外部字典提供字典表)。
- 您可以通过向源发送请求来检查字典的更新。
- 限定列名称
- 使用双引号引用标识符。
- Http接口中的会话。
- 复制表的优化查询不仅可以在leader上运行。
#### 向后不兼容的更改: {#backward-incompatible-changes-2}
- 删除设置全局。
#### 小的变化: {#minor-changes}
- 现在,在触发警报之后,日志将打印完整的堆栈跟踪。
- 在启动时放宽对损坏/额外数据部件数量的验证(有太多误报)。
#### 错误修复: {#bug-fixes-5}
- 修复了连接错误 “sticking” 当插入到分布式表中。
- GLOBAL IN现在适用于查看分布式表的合并表中的查询。
- 在Google Compute Engine虚拟机上检测到不正确的内核数。 这已被修复。
- 缓存外部字典的可执行源如何工作的更改。
- 修复了包含空字符的字符串的比较。
- 修正了Float32主键字段与常量的比较。
- 以前,对字段大小的不正确估计可能导致分配过大。
- 修复了使用ALTER查询添加到表中的可空列时的崩溃。
- 修复了按可空列排序时的崩溃,如果行数小于限制。
- 修复了仅由常量值组成的子查询的顺序。
- 以前,复制的表在丢弃表失败后可能仍处于无效状态。
- 具有空结果的标量子查询的别名不再丢失。
- 现在如果.so文件被损坏使用编译的查询不会失败并出现错误。