ClickHouse 23.7 版本发布说明

ClickHouse 版本升级 阅读详情

图片

本文字数:4920;估计阅读时间:13 分钟

审校:庄晓东(魏庄)

发布摘要

  • 新增了 31 个功能
  • 实现了 16 个性能优化
  • 修复了 47 处bug

本文描述了部分特别值得我们重点关注的新功能。但值得注意的是,现在有几个功能已经在生产环境就绪,或处于默认启用的状态。您可以在这篇文章的末尾找到它们。

新贡献者

特别欢迎所有23.7版本的新贡献者!ClickHouse的流行在很大程度上要归功于为社区做出贡献的贡献者们的努力。社区的茁壮成长总是令所有人都非常振奋。

如果你看到你的名字出现在下面的清单中,请联系我们...我们也会在Twitter等地方,等待你的联系。

Alex Cheng, AlexBykovski, Chen768959, John Spurlock, Mikhail Koviazin, Rory Crispin, Samuel Colvin, Sanjam Panda, Song Liyong, StianBerger, Vitaliy Pashkov, Yarik Briukhovetskyi, Zach Naimon, chen768959, dheerajathrey, lcjh, pedro.riera, therealnick233, timfursov, velavokr, xiao, xiaolei565, xuelei, yariks5s

Parquet写入的改进(Michael Kolupaev)

近几个月我们看到了ClickHouse在Parquet文件格式上的多项读取改进。除了跨行组并行读取和使用元数据进行过滤外,我们甚至还花时间确保在Hugging Face数据集上的查询是优化的。我们知道这种文件格式无处不在,对于像使用clickhouse-local进行本地分析和数据迁移这样的任务至关重要。我们持续的提高我们对Parquet的支持和对速度的追求,已经在我们公开的基准测试中得到了回报。

图片

当然,读取Parquet只是故事的一半。用户不可避免地需要将ClickHouse数据写入Parquet,通常作为反向ETL工作流的一部分或需要分享数据分析的结果。因此,我们很高兴地宣布,从23.7版本开始,Parquet的写入速度现在快了6倍。

让我们使用英国房价数据的例子来说明。下面,我们使用 clickhouse-local 并从一个已经公开托管在S3上的Parquet文件中导入数据。

CREATE TABLE uk_house_price
ENGINE = MergeTree
ORDER BY (postcode1, postcode2, addr1, addr2)
SETTINGS allow_nullable_key = 1 AS
SELECT *
FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/uk-house-prices/parquet/house_prices.parquet')

0 rows in set. Elapsed: 40.550 sec. Processed 28.28 million rows, 4.67 GB (697.33 thousand rows/s., 115.15 MB/s.)

使用23.6导入此数据集的速度仍然非常快,几乎达到每秒150万行。

SELECT *
FROM uk_house_price
INTO OUTFILE 'london-prices.parquet'

28276228 rows in set. Elapsed: 19.901 sec. Processed 28.20 million rows, 4.66 GB (1.42 million rows/s., 233.98 MB/s.)

使用23.7导入相同的数据集有显著的改进,总时间几乎缩短了一半!实际效果可能会有所不同,但我们观察到的改进效果高达6倍。

SELECT *
FROM uk_house_price
INTO OUTFILE 'london-prices.parquet'
28276228 rows in set. Elapsed: 11.649 sec. Processed 28.24 million rows, 4.66 GB (2.42 million rows/s., 400.39 MB/s.)

默认启用的稀疏列(Anton Popov)

ClickHouse支持稀疏列已经有一段时间了,但在23.7之前需要明确启用。这个优化旨在减少某列写入的总数据,当检测到大量的默认值时,动态地改变编码格式。除了提高压缩率,这还有助于提高查询性能和内存效率。

在23.7中,此功能默认启用。当可以应用这种编码时,用户应该立即看到压缩和性能的提升。

当写入数据Part时(无论是在插入还是合并时),ClickHouse会计算每一列的默认值的比率。如果这超过了配置的阈值,那么只有非默认的值会被写入该列。为了保留哪些行具有默认值,会写入一个单独的流,其中包含偏移量的编码。在查询时会组合这些信息,确保这种优化对用户是完全透明的。以下的图示展示了这方面的一个例子:

图片

对于一个包含稀疏值的①列 s ,ClickHouse只将非默认值写入磁盘上的②列文件,并与③一个包含非默认值偏移量的稀疏编码文件一起:对于每一个非默认值,我们存储在这个非默认值之前直接存在的默认值的数量。在查询时,我们从这种编码中创建一个带有直接偏移量的④内存表示。稀疏编码的存储变种包含有重复值的数据。

在23.7之前,用户需要通过修改控制稀疏列编码使用所需的阈值的设置来明确启用稀疏列 - ratio_of_defaults_for_sparse_serialization。这默认值为1.0,实际上禁用了这个特性。在23.7中,这个值默认为0.9375。

尽管我们期望稀疏列能够使结构化数据受益,但我们希望在用户插入非结构化数据的场景下也有益处,例如具有高度可变键的JSON。在这些情况下,用户几乎不会因为只有几行的列有值而支付任何额外的开销 - 这可能带来显著的空间节省。

尽管我们预期在我们的公开ClickBench基准测试中会有所改进,但默认启用这一优化所带来的额外益处是一个令人愉快的惊喜。

图片

实验性支持PRQL(由János Benjamin Antal提供)

在ClickHouse,我们坚信SQL是所有查询语言中的教父,它有能力处理几乎所有的数据问题。随着时间的推移,许多语言都试图与SQL竞争或取代SQL,获得了不同程度的成功。新的查询语言迅速出现,但往往也同样迅速地消失。SQL的持久性和其在连续版本中被许多数据存储系统所采纳,证明了其重要性。然而,我们也认识到与用户在熟悉的领域进行互动的重要性,并认识到有些语言比其他语言更适合某些场景。如果我们看到对一个查询语言有足够的采纳和需求,我们会考虑增加支持,并始终欢迎社区的PR!多亏了这样的社区贡献,ClickHouse现在实验性地支持PRQL。

PRQL (Pipelined Relational Query Language) 发音为“Prequel”,定位为“一个简单、强大、流水线式的SQL替代品”。这种流水线式的语法已经变得很受欢迎,并且有一个不断增长的贡献者社区。通过串联转换来形成流水线,复杂的SQL查询可以优雅地组合。在ClickHouse,我们可以看到这种查询构建风格在某些应用中有一些潜在的使用,尤其是在用户进行搜索和发现练习的场景中 - 可能是可观察性?

此外,用户不仅可以查阅详细的文档,还可以在公共环境进行实验(https://prql-lang.org/playground/)。让我们考虑使用英国房价数据集的几个简单例子。假设希望在伦敦查找最高的区域。

from uk_house_price

filter town == 'LONDON'
group district (                
  aggregate {                      
  avg_price = average price
  }
)
sort {-avg_price}
take 1..10


SELECT
  district,
  AVG(price) AS avg_price
FROM uk_house_price
WHERE town = 'LONDON'
GROUP BY district
ORDER BY avg_price DESC
LIMIT 10

┌─district───────────────┬──────────avg_price─┐
│ CITY OF LONDON        │  2016389.321229964 │
│ CITY OF WESTMINSTER   │  1107261.809839673 │
│ KENSINGTON AND CHELSEA │ 1105730.3371717487 │
│ CAMDEN                │  752077.7613715645 │
│ RICHMOND UPON THAMES   │  644835.3877018511 │
│ HAMMERSMITH AND FULHAM │  590308.6679440506 │
│ HOUNSLOW              │  574833.3599378078 │
│ ISLINGTON             │   531522.146523729 │
│ HARLOW                │              500000 │
│ WANDSWORTH            │  464798.7692006684 │
└────────────────────────┴────────────────────┘

10 rows in set. Elapsed: 0.079 sec.

如所示,ClickHouse为我们提供了与PRQL查询编译后等效的SQL语句。

对于不太有经验的SQL用户来说,一个可能更具挑战性的查询是为每个组的特定列找到最高的行。例如,下面我们按价格排序,找到英国每个邮政编码中最昂贵的房子。

from uk_house_price
filter town == 'LONDON'
filter postcode1 != ''
select {  
  postcode1, street, price
}
group postcode1 (          
  sort {-price}
  take 1
)     
sort {-price}
take 1..10

WITH table_0 AS
  (
      SELECT
          postcode1,
          street,
          price
      FROM uk_house_price
      WHERE (town = 'LONDON') AND (postcode1 != '')
      ORDER BY
          postcode1 ASC,
          price DESC
      LIMIT 1 BY postcode1
  )
SELECT
  postcode1,
  street,
  price
FROM table_0
ORDER BY price DESC
LIMIT 10

┌─postcode1─┬─street──────────┬─────price─┐
│ W1U     │ BAKER STREET    │ 594300000 │
│ W1J     │ STANHOPE ROW    │ 569200000 │
│ SE1     │ SUMNER STREET   │ 448500000 │
│ E1      │ BRAHAM STREET   │ 421364142 │
│ EC2V    │ GRESHAM STREET  │ 411500000 │
│ SE10    │ WATERVIEW DRIVE │ 400000000 │
│ EC1Y    │ MALLOW STREET   │ 372600000 │
│ SW1H    │ BROADWAY        │ 370000000 │
│ W1S     │ NEW BOND STREET │ 366180000 │
│ EC4V    │ CARTER LANE     │ 337000000 │
└───────────┴─────────────────┴───────────┘

10 rows in set. Elapsed: 0.498 sec. Processed 25.32 million rows, 574.02 MB (50.83 million rows/s., 1.15 GB/s.)
Peak memory usage: 60.70 MiB.

上述查询相对于等效的SQL的简洁性相当引人注目。

作为一种编译成SQL的语言,我们很兴奋地看到PRQL是如何发展的,以及它与ClickHouse一起应用于哪些用例。如果您发现PRQL很有用并已经解决了一些问题,请告诉我们!

图片

联系我们

手机号:13910395701

邮箱:Tracy.Wang@clickhouse.com

满足您所有的在线分析列式数据库管理需求

ClickHouse版本升级 clickhouse数据库升级 阅读详情

相关推荐

大数据存储技术之ClickHouse入门学习(一)

centos7以上的系统只有 systemctl 命令有效。

2401_84182428的博客 2466

ClickHouse 24.1 版本发布说明

ClickHouse 在 2024 年的首个新版本发布来了!

ClickHouseDB的博客 2659

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 439

ClickHouse 23.12 版本发布说明

迎接2024年圣诞节后的第一个新版本。

ClickHouseDB的博客 2130

Debian 9 安装 ClickHouse 23.x 实战指南:稳态系统中的 OLAP 升级方案

ClickHouse 是面向海量数据分析的高性能列式数据库,其核心价值在于通过向量化执行、稀疏索引与智能分区实现秒级聚合。在企业级生产环境中,Debian 9 凭借长期稳定性与成熟包管理,仍是大量金融、制造及教育系统的基础平台。如何在不升级操作系统前提下,安全、可审计、可回滚地部署现代版本 ClickHouse(如 23.8.x),成为运维与数据工程师的关键课题。该方案规避官方源陈旧版本(1.1.x)的功能缺失风险,拒绝 pip 或 Docker 等非原生路径,转而采用官方 APT 仓库 + GPG 签名校

深未来技术 417

阿里巴巴达摩院人工智能训练师(高级)

阿里巴巴达摩院人工智能训练师(高级)

huang0612123的博客 1万+

ClickHouse 25.5 版本发布说明

ClickHouse 25.5 版本带来了 15 项新特性、23 项性能优化和 64 项缺陷修复。

ClickHouseDB的博客 1703

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

ClickHouse 23.8 (LTS) 版本发布说明

尽管我们喜欢所有的版本,但我们更加喜欢LTS版本!了解23.8中的惊人新功能吧!

ClickHouseDB的博客 1637

别再让地图加载慢吞吞!GeoServer + GeoWebCache 缓存配置实战(附性能对比)

本文详细介绍了如何通过GeoServer和GeoWebCache优化地图服务性能,实现地图加载速度的显著提升。从缓存机制解析到实战配置流程,再到高级性能调优技巧,帮助开发者构建高效地图缓存系统,解决地图加载慢的问题。

weixin_42525369的博客 405

超级超级细的CLIP官方模型解读及代码逐行讲解

本文详细解析了OpenAI开源的CLIP模型代码架构。文章首先介绍模型概念,包括训练时通过对称损失计算图像-文本相似度,预测时通过余弦相似度匹配最佳文本。随后重点解析各模块代码实现:LayerNorm改进、QuickGELU激活函数、Transformer编码器结构、ViT图像编码器的特征提取过程、文本编码器的掩码机制和特征投影。最后阐述CLIP整体架构如何整合视觉和文本编码器,并详细说明了特征归一化和相似度计算的关键实现。全文通过代码级解读帮助读者深入理解CLIP模型的实现细节。

m0_64595440的博客 2425

ClickHouse 24.4 版本发布说明

本文字数:13148;估计阅读时间:33 分钟审校:庄晓东(魏庄)本文在公众号【ClickHouseInc】首发新的一个月意味着新版本的发布!发布概要本次ClickHouse 24.4版本包含了🎁、🛷、🐛和往常一样,我们向 24.4 版本中的所有新贡献者表示热烈欢迎!ClickHouse 的受欢迎程度在很大程度上归功于社区的努力。看到社区不断壮大总是令人感到骄傲。

ClickHouseDB的博客 1599

2025年从零开始:构建你的首个ComfyUI工作流-ComfyUI入门教程

然而,由于它拥有众多的插件节点,以及较为复杂的操作流程,学习起来相对困难。以前面搭建的文生图工作流为例,首先点击功能区的【保存】,然后你的浏览器会出来一个弹窗,你可以进行文件命名,点击确定后浏览器会下载该文件,也就是带“json”后缀的文件,这样我们的工作流就打包成一份文件了。思考一下前面说的,节点是不是需要下载安装才能使用,而我们复用别人的工作流,他用的节点你不一定下载了,因为目前有600多个节点,你不可能全部下载了吧,所以我们日后使用别人的工作流,你会经常出现这样的问题。

weixin_59486588的博客 1454

ClickHouse 24.6 版本发布说明

本文字数:14127;估计阅读时间:36 分钟作者:ClickHouse team本文在公众号【ClickHouseInc】首发又到了发布新版本的时间!本次ClickHouse 24.6 版本包含了🎁、🛷、🐛我们向 24.6 版本的所有新贡献者表示特别欢迎!ClickHouse 的流行离不开社区的贡献,看到社区不断壮大,总是令人感动。

ClickHouseDB的博客 1207

故障诊断知识库建设指南

从数据融合到知识图谱构建,从智能推理引擎开发到动态进化机制落地,故障诊断知识库的建设路径已形成 “数据 - 知识 - 智能” 的闭环体系。随着大模型技术的深度融入,知识库将实现从 “规则驱动” 到 “认知推理” 的跨越 —— 通过自然语言理解解析复杂故障描述、多模态分析融合图像与信号数据、预测性算法推演故障发展趋势,持续提升诊断的精准度与前瞻性。

极昆仑智慧 1231

OpenClaw 运行时错误文档:Embedded Run Agent End with Stream Error(嵌入式运行代理结束流式错误)

OpenClaw运行时错误文档:EmbeddedRunAgentEndwithStreamError(OC-ERR-009) 该错误表示LLM提供商在流式传输过程中发生服务器端异常(HTTP 500),属于可恢复的中等严重性错误。典型表现为日志中出现包含"stream_error"和500状态码的错误信息。系统会自动进行错误分类(50%为服务过载,25%网络问题等),并通过内置机制尝试解决:包括模型切换、API密钥轮换和自动重试策略。用户可采取重试请求、切换模型或简化请求内容等操作,管理

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 550

ClickHouse 24.5 版本发布说明

本文字数:12168;估计阅读时间:31 分钟审校:庄晓东(魏庄)本文在公众号【ClickHouseInc】首发Meetup活动ClickHouse Shanghai User Group第1届 Meetup 讲师招募中,欢迎讲师在文末扫码报名!发布概要本次ClickHouse 24.5版本包含了🎁、🛷、🐛一如既往,我们对 24.5 版本的所有新贡献者表示特别欢迎!ClickHouse 的受欢迎程度在很大程度上归功于社区的贡献。看到这个社区不断壮大,总是让人感到谦卑。

ClickHouseDB的博客 1343

使用ESP32设计嵌入式蓝牙游戏手柄

通过使用ESP32开发板和相关的库,我们可以设计和实现嵌入式蓝牙游戏手柄。连接到该设备后,您可以使用控制器模块的按钮和摇杆等元件来模拟游戏手柄的输入。根据您使用的具体模块和引脚分配,连接按钮和摇杆等控制元件到ESP32的GPIO引脚。ESP32是一款功能强大的微控制器,集成了Wi-Fi和蓝牙功能,非常适合用于开发物联网和嵌入式应用。请注意,本文仅提供了一个基于ESP32的嵌入式蓝牙游戏手柄设计示例,具体实现可能因硬件和需求而有所不同。确保开发板正确连接到计算机,并选择正确的开发板和端口。

CodeMaven的博客 1642

ClickHouse v23.8.7.24-lts 版本解析:LTS 维护分支的六项关键 Bug 修复与构建改进

本文基于 ClickHouse 官方发布说明([v23.8.7.24-lts](https://link.gitcode.com/i/bd3e7aee8aa07f4330ecd9b1cfd2ae2f)),系统梳理 23.8 LTS 系列这一维护版本中包含的 1 项构建/测试/打包改进、6 项用户可见的 Bug 修复,并结合当前仓库源码逐一剖析问题根因、修复思路与验证方法。读完本文,你将理解 `sy

gitblog_00425的博客 7

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ClickHouse 安全漏洞响应与披露政策全解析:版本支持矩阵、漏洞报告流程与 Embargo 预警机制

ClickHouse 作为实时分析型数据库管理系统,其安全漏洞的响应与披露有一套明确的流程化政策。本文以仓库根目录的 [SECURITY.md](https://link.gitcode.com/i/a3fa021670f20d789efc86001c1204f2) 为骨架,完整解读 ClickHouse 开源社区的漏洞报告渠道、响应时限、公开披露时间线与发布前预警(Embargo)机制,并结合仓

gitblog_09759的博客 534

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ClickHouse v20.7.4.11-stable 变更日志深度解析:从 23 项 Bug 修复看 MergeTree、Join 与函数实现的演进

本篇文章基于 ClickHouse 官方仓库的发布说明 [docs/changelogs/archive/v20.7.4.11-stable.md](https://link.gitcode.com/i/2e2354e58ff9f48e03f4b9cac9121f49) 展开,系统性解读 v20.7.4.11-stable 这一补丁版本相比 v20.7.3.7-stable 带来的 1 项改进与

gitblog_01135的博客 5

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ClickHouse集群扩容实战:clickhouse-copier数据迁移与分片重平衡

在分布式数据库架构中,集群扩容与数据重平衡是保障系统可扩展性的关键技术。ClickHouse作为列式存储引擎,其分片机制通过哈希路由实现数据分布,当节点扩容时,需将原有分片数据按新拓扑重新分配。clickhouse-copier作为官方迁移工具,基于ZooKeeper协调任务,通过临时表与ATTACH操作实现不停机数据搬运,有效解决分片权重调整、数据倾斜及复制队列堆积等工程难题。该方案适用于集群扩容、机房迁移及分片重平衡等场景,尤其适合需要保持业务连续性的运维环境。

weixin_33871366的博客 301

深入解析 ClickHouse v23.6.3.87-stable:稳定版修复清单与关键改动技术解读

v23.6.3.87-stable 是 ClickHouse 23.6 分支上的一个稳定维护版本,发布于 2023 年 7 月,其核心价值在于对上一版本 v23.6.2.18-stable 中暴露的一系列用户可见问题进行集中修复,并同步回填了若干构建、测试与打包层面的工程改进。阅读本文,你将系统掌握该版本的全部变更内容:包括 1 项性能优化、4 项构建/打包改进、24 项 Bug 修复的具体含义与

gitblog_00892的博客 14

ClickHouse v20.7.2.30-stable 发布说明深度解读:引擎、字典与查询层的 26 项缺陷修复

本篇基于 ClickHouse 官方 changelog 归档 [docs/changelogs/archive/v20.7.2.30-stable.md](https://link.gitcode.com/i/9269e97d3ecbe2935e28f73af305f390),完整解读 v20.7.2.30-stable 相对 v20.7.1.4310-prestable 的 26 项变更:1

gitblog_00432的博客 12

Langfuse 的 ClickHouse 最佳实践:28 条 Schema、查询与写入规则的实战指南

Langfuse 将 Trace、Observation、Score 等核心可观测数据存储在 ClickHouse 中,并沉淀了一套基于 ClickHouse 官方最佳实践的 Agent Skill(位于 [.agents/skills/clickhouse-best-practices](https://link.gitcode.com/i/9bc95386c2c7001cdf88ffe3b4b

gitblog_01054的博客 1006

ClickHouse clickhouse-obfuscator 详解:保留基数与压缩率的数据脱敏工具

本文以 `programs/obfuscator/README.md` 为主线,完整还原 ClickHouse 官方数据脱敏工具 `clickhouse-obfuscator` 的设计动机、四种候选方案的取舍,以及"伪随机置换 + 马尔可夫模型"最终方案在 [Obfuscator.cpp](https://link.gitcode.com/i/229ef1398dd5bcf34564060f38e

gitblog_00666的博客 354
上一篇: 一文教你使用ClickHouse的字典(dictionary)
下一篇: 一文教会你使用强大的ClickHouse物化视图
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值