ClickHouse 25.5 版本发布说明

大数据存储技术之ClickHouse入门学习(一) centos7以上的系统只有 systemctl 命令有效。 阅读详情

图片

本文字数:11882;估计阅读时间:30 分钟

作者:ClickHouse Team

本文在公众号【ClickHouseInc】首发

图片

又到了每月一次的版本更新时间!

发布概要

ClickHouse 25.5 带来了 15 项新功能 🌸 23 项性能优化 🦋 以及 64 个缺陷修复 🐝

本次发布的亮点包括:向量相似度索引进入 Beta 阶段、Iceberg 表支持 Hive metastore catalog、支持查看每个函数何时被添加到 ClickHouse、本地工具 clickhouse-local 引入隐式表支持等诸多功能更新。

新贡献者

我们热烈欢迎所有在 25.5 版本中首次做出贡献的开发者!ClickHouse 社区正在持续壮大,正是因为大家的努力,ClickHouse 才能不断发展壮大。

以下是本次的新贡献者名单:

Andrian Iliev, Colerar, Dasha Wessely, Denis, KovalevDima, Kyamran, Marta Paes, Mojtaba Ghahari, Sachin Singh, YjyJeff, andrei tinikov, caicre, codeworse, gvoelfin, morsapaes, samay-sharma, shanfengp, tdufour

Iceberg 表支持 Hive metastore catalog

贡献者:scanhex12

ClickHouse 正在不断拓展对 Lakehouse 架构的支持。此前的版本已支持 Unity 和 AWS Glue 数据目录,本次新增了对 Hive metastore catalog 的支持。

用户可以通过 DataLakeCatalog 表引擎创建一个表来连接 Hive catalog:

SET allow_experimental_database_hms_catalog=true;
CREATE DATABASE hive
ENGINE = DataLakeCatalog('thrift://hive:9083', '', '')
SETTINGS
  catalog_type = 'hive',
  warehouse = 'demo',
  storage_endpoint = 'http://minio:9000/warehouse';

随后,便可以像操作普通表一样查询该 catalog 中的表:

SELECT count()
FROM default.`iceberg.hits`;

clickhouse-local 中的隐式表

贡献者:Alexey Milovidov

在使用 clickhouse-local 工具处理标准输入文件时,现在可以省略 FROM 和 SELECT 子句。

举个例子,假设我们想要解析 GitHub 上 football.json 项目中的一个 JSON 文件,可以使用如下查询来探索文件中的属性结构:

curl -sS 'https://raw.githubusercontent.com/openfootball/football.json/refs/heads/master/2024-25/en.1.json' | 
./clickhouse -q "JSONAllPathsWithTypes(json)" --input-format JSONAsObject
{'matches':'Array(JSON(max_dynamic_types=16, max_dynamic_paths=256))','name':'String'}

从查询结果中,我们可以看到两个属性:name 和 matches。接下来,我们可以进一步探索 matches 属性的内容:

curl -sS https://raw.githubusercontent.com/openfootball/football.json/refs/heads/master/2024-25/en.1.json | 
./clickhouse -q "arrayJoin(json.matches::Array(JSON)) LIMIT 5" --input-format JSONAsObject
{"date":"2024-08-16","round":"Matchday 1","score":{"ft":["1","0"],"ht":["0","0"]},"team1":"Manchester United FC","team2":"Fulham FC","time":"20:00"}
{"date":"2024-08-17","round":"Matchday 1","score":{"ft":["0","2"],"ht":["0","0"]},"team1":"Ipswich Town FC","team2":"Liverpool FC","time":"12:30"}
{"date":"2024-08-17","round":"Matchday 1","score":{"ft":["2","0"],"ht":["1","0"]},"team1":"Arsenal FC","team2":"Wolverhampton Wanderers FC","time":"15:00"}
{"date":"2024-08-17","round":"Matchday 1","score":{"ft":["0","3"],"ht":["0","1"]},"team1":"Everton FC","team2":"Brighton & Hove Albion FC","time":"15:00"}
{"date":"2024-08-17","round":"Matchday 1","score":{"ft":["1","0"],"ht":["1","0"]},"team1":"Newcastle United FC","team2":"Southampton FC","time":"15:00"}

如果我们希望对 matches 数组执行更深入的查询操作,就需要将查询语句改写为包含 FROM 子句的形式,如下所示:

curl -sS https://raw.githubusercontent.com/openfootball/football.json/refs/heads/master/2024-25/en.1.json |
./clickhouse -q \
"m.date, m.team1, m.team2, m.score.ft::Array(String)[1] || '-' || m.score.ft::Array(String)[2] AS score
FROM table
ARRAY JOIN json.matches::Array(JSON) AS m
LIMIT 5" \
--input-format JSONAsObject \
--output-format Pretty \
--output_format_pretty_row_numbers=0

此外,我们还支持通过指定输出格式,在查询结果中包含列名:

┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ m.date     ┃ m.team1              ┃ m.team2                    ┃ score ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ 2024-08-16 │ Manchester United FC │ Fulham FC                  │ 1-0   │
├────────────┼──────────────────────┼────────────────────────────┼───────┤
│ 2024-08-17 │ Ipswich Town FC      │ Liverpool FC               │ 0-2   │
├────────────┼──────────────────────┼────────────────────────────┼───────┤
│ 2024-08-17 │ Arsenal FC           │ Wolverhampton Wanderers FC │ 2-0   │
├────────────┼──────────────────────┼────────────────────────────┼───────┤
│ 2024-08-17 │ Everton FC           │ Brighton & Hove Albion FC  │ 0-3   │
├────────────┼──────────────────────┼────────────────────────────┼───────┤
│ 2024-08-17 │ Newcastle United FC  │ Southampton FC             │ 1-0   │
└────────────┴──────────────────────┴────────────────────────────┴───────┘

introduced_in 字段用于追踪函数的新增版本

贡献者:Robert Schulzesy

stem.functions 系统表新增了一个字段 introduced_in,用于记录每个函数首次被添加到 ClickHouse 的版本号。目前该字段已经覆盖了一部分新添加的函数,未来也会陆续补充旧函数的信息。

下面是 25.5 版本中新增的函数列表:

SELECT name, introduced_in, returned_value
FROM system.functions
WHERE introduced_in = '25.5'
FORMAT PrettySpace;
 name                   description

 icebergBucket          Implements logic of iceberg bucket transform: https://iceberg.apache.org/spec/#bucket-transform-details.
 icebergHash            Implements logic of iceberg hashing transform: https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements.
 mapContainsValue       Checks whether the map has the specified value.
 mapContainsValueLike   Checks whether map contains value LIKE specified pattern.
 mapContainsKey         Checks whether the map has the specified key.
 mapExtractValueLike    Returns a map with elements which value matches the specified pattern.
 stringBytesEntropy     Calculates Shannon's entropy of byte distribution in a string.
 stringBytesUniq        Counts the number of distinct bytes in a string.

Parquet 格式支持 Geo 类型

贡献者:scanhex12

ClickHouse 的 Parquet 读取器现已支持 Geo 类型。我们可以通过以下查询语句,对 Overture Maps 数据集中的几何字段进行解析:

SELECT id, geometry, bbox, 
       COLUMNS('^id|geometry|bbox') APPLY(toTypeName)
FROM s3('s3://overturemaps-us-west-2/release/2025-04-23.0/theme=places/type=place/*')
WHERE categories.primary = 'pizza_restaurant'
LIMIT 1
SETTINGS schema_inference_make_columns_nullable = 0;
Row 1:
──────
id:                   08f95008132998a6036bed7d0b7e7661
geometry:             (119.4407421,-5.15814)
bbox:                 (119.44073,119.44074,-5.15814,-5.158139)
toTypeName(id):       String
toTypeName(geometry): Tuple(Float64, Float64)
toTypeName(bbox):     Tuple(
    xmin Float32,
    xmax Float32,
    ymin Float32,
    ymax Float32)

现在,geometry 字段可以被正确识别并解析。而在旧版本中,该字段通常会以二进制的形式显示,如下所示:

Row 1:
──────
id:                   08ff2a1b744f064403498c7aa7fce7a1
geometry:             (-149.069345,-83.5991503)
bbox:                 (-149.06935,-149.06932,-83.59915,-83.599144)
toTypeName(id):       String
toTypeName(geometry): Point
toTypeName(bbox):     Tuple(
    xmin Float32,
    xmax Float32,
    ymin Float32,
    ymax Float32)

有了这个改进,ClickHouse 已可用于查询 GeoParquet 数据集。我们也一直在寻找有趣的地理数据集,欢迎大家推荐值得尝试的数据源!

向量搜索进入 Beta 阶段

贡献者:Shankar Iyer

ClickHouse 中的向量相似度索引功能现已从实验阶段升级为 Beta 阶段,并新增了对混合搜索中前置过滤和后置过滤策略的支持。

我们以下面这段示例,展示如何基于 Cohere 的 Wikipedia 数据子集使用向量索引。首先,我们启用相似度索引功能:

SET allow_experimental_vector_similarity_index=1;

接着,我们创建一个包含 emb 向量字段的表,并基于该字段建立 HNSW 索引:

CREATE TABLE wikiEmbeddings (
  id Int32,
  title String,
  text String,
  url String,
  wiki_id Int32,
  views Float32,
  paragraph_id Int32,
  langs Int32,
  emb Array(Float32),
  INDEX emb_hnsw emb TYPE vector_similarity('hnsw', 'L2Distance', 768)
)
ORDER BY id;

然后从 Hugging Face 导入相应数据:

INSERT INTO wikiEmbeddings
select *
FROM url('https://huggingface.co/datasets/Cohere/wikipedia-22-12-en-embeddings/resolve/main/data/train-00000-of-00253-8d3dffb4e6ef0304.parquet')
SETTINGS max_http_get_redirects=10;

现在就可以开始查询了。以下查询将返回数据集中最相似的一条记录:

SELECT * EXCEPT emb
FROM wikiEmbeddings
WHERE id = 120356;
Row 1:
──────
id:           120356
title:        Germany national football team
text:         The Germany national football team () represents Germany in men's international football and played its first match in 1908. The team is governed by the German Football Association ("Deutscher Fußball-Bund"), founded in 1900. Between 1949 and 1990, separate German national teams were recognised by FIFA due to Allied occupation and division: the DFB's team representing the Federal Republic of Germany (commonly referred to as West Germany in English between 1949 and 1990), the Saarland team representing the Saar Protectorate (1950–1956) and the East Germany team representing the German Democratic Republic (1952–1990). The latter two were absorbed along with their records; the present team represents the reunified Federal Republic. The official name and code "Germany FR (FRG)" was shortened to "Germany (GER)" following reunification in 1990.
url:          https://en.wikipedia.org/wiki?curid=250204
wiki_id:      250204
views:        3271.844
paragraph_id: 0
langs:        98

结果显示,这条记录来自 Wikipedia 上关于德国国家足球队的页面。我们可以进一步查询与该记录最相似的其他条目:

WITH (SELECT emb FROM wikiEmbeddings WHERE id = 120356) AS lookup
SELECT id, title, text, url, L2Distance(emb, lookup) AS dist
FROM wikiEmbeddings
ORDER BY dist
LIMIT 3
FORMAT Vertical;
Row 1:
──────
id:    120356
title: Germany national football team
text:  The Germany national football team () represents Germany in men's international football and played its first match in 1908. The team is governed by the German Football Association ("Deutscher Fußball-Bund"), founded in 1900. Between 1949 and 1990, separate German national teams were recognised by FIFA due to Allied occupation and division: the DFB's team representing the Federal Republic of Germany (commonly referred to as West Germany in English between 1949 and 1990), the Saarland team representing the Saar Protectorate (1950–1956) and the East Germany team representing the German Democratic Republic (1952–1990). The latter two were absorbed along with their records; the present team represents the reunified Federal Republic. The official name and code "Germany FR (FRG)" was shortened to "Germany (GER)" following reunification in 1990.
url:   https://en.wikipedia.org/wiki?curid=250204
dist:  0

Row 2:
──────
id:    120367
title: Germany national football team
text:  The Federal Republic of Germany, which was referred to as West Germany, continued the DFB. With recognition by FIFA and UEFA, the DFB maintained and continued the record of the pre-war team. Switzerland was the first team that played West Germany in 1950, with the latter qualifying for the 1954 World Cup and the former hosting it.
url:   https://en.wikipedia.org/wiki?curid=250204
dist:  5.537961

Row 3:
──────
id:    120366
title: Germany national football team
text:  After World War II, Germany was banned from competition in most sports until 1950. The DFB was not a full member of FIFA, and none of the three new German states – West Germany, East Germany, and Saarland – entered the 1950 World Cup qualifiers.
url:   https://en.wikipedia.org/wiki?curid=250204
dist:  6.296622

不过,这些结果都来自同一篇 Wikipedia 文章的不同段落,因此参考意义有限。为了让结果更加丰富多样,我们可以添加 WHERE 子句,排除与查询记录具有相同 wiki_id 的条目:

WITH (SELECT emb FROM wikiEmbeddings WHERE id = 120356) AS lookup,
     (SELECT wiki_id FROM wikiEmbeddings WHERE id = 120356) AS lookup_wiki_id
SELECT id, title, text, url, L2Distance(emb, lookup) AS dist
FROM wikiEmbeddings
WHERE wiki_id <> lookup_wiki_id
ORDER BY dist
LIMIT 3
FORMAT Vertical;
Row 1:
──────
id:    6420
title: Germany
text:  Football is the most popular sport in Germany. With more than 7 million official members, the German Football Association ("Deutscher Fußball-Bund") is the largest single-sport organisation worldwide, and the German top league, the Bundesliga, attracts the second-highest average attendance of all professional sports leagues in the world. The German men's national football team won the FIFA World Cup in 1954, 1974, 1990, and 2014, the UEFA European Championship in 1972, 1980 and 1996, and the FIFA Confederations Cup in 2017.
url:   https://en.wikipedia.org/wiki?curid=11867
dist:  6.9714794

Row 2:
──────
id:    6336
title: Germany
text:  Formal unification of Germany into the modern nation-state was commenced on 18 August 1866 with the North German Confederation Treaty establishing the Prussia-led North German Confederation later transformed in 1871 into the German Empire. After World War I and the German Revolution of 1918–1919, the Empire was in turn transformed into the semi-presidential Weimar Republic. The Nazi seizure of power in 1933 led to the establishment of a totalitarian dictatorship, World War II, and the Holocaust. After the end of World War II in Europe and a period of Allied occupation, Germany as a whole was organized into two separate polities with limited sovereignity: the Federal Republic of Germany, generally known as West Germany, and the German Democratic Republic, East Germany, while Berlin continued its Four Power status. The Federal Republic of Germany was a founding member of the European Economic Community and the European Union, while the German Democratic Republic was a communist Eastern Bloc state and member of the Warsaw Pact. After the fall of communism, German reunification saw the former East German states join the Federal Republic of Germany on 3 October 1990—becoming a federal parliamentary republic.
url:   https://en.wikipedia.org/wiki?curid=11867
dist:  6.98255

Row 3:
──────
id:    7767
title: FIFA World Cup
text:  After FIFA was founded in 1904, it tried to arrange an international football tournament between nations outside the Olympic framework in Switzerland in 1906. These were very early days for international football, and the official history of FIFA describes the competition as having been a failure.
url:   https://en.wikipedia.org/wiki?curid=11370
dist:  7.5603456
dist:  7.736428

正如前文所述,WHERE 子句中的过滤条件可以采用后置或前置方式执行。

后置过滤指的是先使用向量索引检索候选数据,再对其执行过滤条件;而前置过滤则是先筛选符合条件的记录,再进行向量相似度匹配。

你可以通过设置系统参数 vector_search_filter_strategy 来控制过滤方式。该参数默认值为 auto,表示由查询引擎根据启发式规则自动决定最优策略。你也可以将其显式设置为 postfilter 或 prefilter,以指定过滤顺序。

ClickHouse 25.4 Docker单机部署实战:从零搭建到备份恢复 容器化部署正在成为数据库交付的主流方式,它通过镜像封装环境依赖,让一次构建随处运行成为可能。在众多OLAP引擎中,ClickHouse凭借列式存储和极速查询性能广受青睐,而采用Docker进行单机部署,既能快速获得可用实例,又能大幅降低升级和迁移成本。本文从部署选型切入,对比Docker、二进制包与包管理器三种方式的优劣,详细解析clickhouse/clickhouse-server镜像的版本选择、compose文件核心参数、config.d与users.d配置优先级等关键细节,并给出完整的初始化、启动、 阅读详情

相关推荐

ClickHouse 25.4 Docker 单机部署全攻略:从环境配置到排错实践

ClickHouse 作为高性能列式数据库,是 OLAP 场景下数据分析与海量查询的常用选择。容器化技术解决了传统部署中依赖管理复杂、环境迁移困难等痛点,Docker 单机部署以其轻量、可复现、易维护的优势,成为许多团队构建分析型基础设施的入门路径。通过理解列式存储原理与 MergeTree 引擎机制,用户可以快速搭建起支持亿级数据秒级聚合查询的分析环境。在实际应用中,无论是内部报表、用户行为分析还是日志检索,单机 ClickHouse 都能以较低成本提供强大查询能力。本文从环境准备、镜像拉取、目录权限、账

weixin_33785108的博客 291

ClickHouse版本升级

clickhouse数据库升级

sfgagasfga的博客 2413

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 686

ClickHouse 版本升级

ClickHouse 版本升级

style_boy的博客 3449

HFSS初学笔记(二)——75Ω带状线设计

本文利用HFSS软件设计并优化了一条75Ω的带状线结构,通过调整几何参数和介质材料,实现了精确的阻抗控制。仿真结果显示,该带状线在高频信号传输中的表现优越,具有良好的S参数、低插入损耗和极小的信号反射损耗。

2401_87464239的博客 4539

HP DL380G9 iLO降级Degrated及存储失败storage Failed报错如何解决?

HP DL380G9 iLO降级(Degrated)及存储失败(storage Failed)报错如何处理? ©Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者https://blog.51cto.com/lander 2018/09/7 7:30 问题描述 某沙特公司搭建的虚拟化环境中有一台ESXi主机报Storage Fialed警告但是仍...

weixin_34226182的博客 4847

ClickHouse 24.1 版本发布说明

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

ClickHouseDB的博客 2659

Win11上从零跑通Carla自动驾驶仿真:保姆级环境配置与避坑指南(Python 3.7+)

本文详细介绍了在Win11系统上从零配置Carla自动驾驶仿真环境的完整流程,包括Python 3.7+环境搭建、依赖安装、常见问题排查及性能优化技巧。通过保姆级教程帮助开发者快速避坑,实现稳定的自动驾驶仿真测试环境部署。

weixin_33488239的博客 420

clickHouse版本升级以及切换clickhouse keeper

记录一次对clickhouse的版本升级工作,以及从zookeeper 迁移到clickhouse keeper的试验。

qq_38796051的博客 3354

小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

ww

weixin_46297571的博客 1480

AIGC实战——多模态模型DALL.E 2

DALL.E 2 是 OpenAI 提出的一个大规模文本生成图像模型,可以根据文本提示生成各种风格的逼真图像。它通过将预训练模型 CLIP 与 GLIDE 中的扩散模型架构相结合完成任务。它还具有其他应用,例如通过文本提示编辑图像和提供给定图像的变体。虽然它也有一些局限性,例如不一致的文本渲染和属性绑定,但 DALL.E 2 是仍然一个非常强大的AI模型,推动了生成模型的发展。

盼小辉丶的博客 1万+

ClickHouse 25.3 版本发布说明

ClickHouse 25.3 版本正式发布,本次更新带来了18项新功能🌱、13项性能优化🐣、48个bug修复🌦️

ClickHouseDB的博客 1636

摆脱英文束缚!群晖Transmission4.0.4全新中文界面攻略

在群晖安装完官方Transmission4.0.4套件后,界面是英文状态的,不太好用。但是按照网上分享的原来4.0以前版本的方法更新UI又失败,所以自己搞了下成功了,分享给需要的朋友。

XiaoqiangClub的博客 5211

ClickHouse 25.1 版本发布说明

本文字数:12318;估计阅读时间:31 分钟作者: ClickHouse Team本文在公众号【ClickHouseInc】首发又到了每月发布新版本的时间!发布概要ClickHouse 25.1 版本正式发布,本次更新带来了🦃、在本次发布中,我们优化了并行哈希连接算法,引入了二级哈希表进行加速;在表级别新增了 MinMax 索引;改进了 Merge 表;增加了自增功能……还有更多精彩更新等你探索!热烈欢迎 25.1 版本的新贡献者!

ClickHouseDB的博客 1841

别让 Claude Code 一直问你“能不能执行“:权限配置完全指南

Claude Code 提供了一套精细的权限配置机制,配置好权限设置,可以提速不少。这个小技巧需要掌握一下。

沐风 3840

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ClickHouse 25.4 版本发布说明

ClickHouse 25.4 带来了 25 项新功能 🌸 23 项性能优化 🦋 以及 58 个缺陷修复 🐝

ClickHouseDB的博客 1467

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ClickHouse 25.12 版本发布说明

ClickHouse 25.12 版本带来了 26 项新特性 🎄、31 项性能优化 ⛸,以及 129 个 bug 修复 ☃

ClickHouseDB的博客 940

老版QQ原生表情gif动态

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ClickHouse 24.10 版本发布说明

本文字数:13817;估计阅读时间:35 分钟作者:ClickHouse Team本文在公众号【ClickHouseInc】首发又到了新版本发布的时间!本次ClickHouse 24.10 版本包含了🎁、🛷、🐛在本次发布中,clickhouse-local 更加实用,新增了复制和计算器模式。可刷新物化视图已达到生产就绪标准,远程文件支持缓存,表克隆操作也得到了简化。正如往常,我们热烈欢迎所有 24.9 版本中的新贡献者!

ClickHouseDB的博客 1746

ClickHouse 26.2 版本发布说明

ClickHouse 26.2 来了!在本文中,文本索引和 QBit 数据类型达到生产就绪状态。

ClickHouseDB的博客 635

ClickHouse 23.9 版本发布说明

我们非常兴奋地分享了23.9版本中一系列令人惊叹的功能特性。

ClickHouseDB的博客 607

ClickHouse Changelog 条目编写指南:以用户为中心的发布说明写作规范与自动化落地

好的 changelog 条目能让用户快速理解「这次发布带来了什么、对我有什么影响」。本文围绕 ClickHouse 官方编写指南 [docs/changelog_entry_guidelines.md](https://link.gitcode.com/i/fd725caa4a3198e5a9664b84c3f133f8) 展开,结合仓库中的 PR 模板、changelog 自动生成脚本与 CI

gitblog_00260的博客 406

ClickHouse v25.9.5.21-stable 发布说明深度解析:7 个 Bug 修复的源码级解读

本文以 [v25.9.5.21-stable 变更日志](https://link.gitcode.com/i/2a88fbe0aef680e8bb81e7f8cfd5714d) 为骨架,逐条解读该稳定版中 7 个用户可见的 Bug 修复与 2 个内部改动。你可以从中掌握:Variant 子列读取、HTTP 分块流异常、Replicated 数据库恢复、`loop` 表函数访问控制、UTF-8 字

gitblog_00030的博客 9

ClickHouse v25.5.7.52-stable 发布说明:性能优化、Keeper 后台迁移与关键 Bug 修复全景解析

本文基于 ClickHouse 官方稳定版本发布日志,深入解析 v25.5.7.52-stable(commit `6e66ab95d8a`)相对上一稳定版 v25.5.6.14-stable 的全部变更内容。该版本属于 v25.5 LTS 系列的安全维护与 bugfix 迭代,聚焦 QueryTree 哈希性能加速、Keeper 变更日志异步迁移、分布式 DDL 复制延迟控制、S3/Azure

gitblog_00036的博客 10

ClickHouse 补丁发布体检:诊断 AutoReleases 流水线为何静默停发,并手动补齐缺失的补丁版本

ClickHouse 会对其支持版本(最近 3 个大版本 + 最新 LTS)按约两周一次的节奏自动发布 stable **补丁版本**,驱动者是每日调度的 `AutoReleases` 工作流。但这条流水线会"静默卡死":某个未合并的 version-bump PR 或一个失联的自托管 runner 就能让所有分支停发,而不会有任何显式报错。本文以仓库中的技能文档 [.claude/skills/

gitblog_00013的博客 260

ClickHouse v25.8.6.11-lts 发布解析:路径包含判断、Mutation Patch 与 EmbeddedRocksDB 等五处修复的源码级解读

本篇基于官方 changelog [v25.8.6.11-lts](https://link.gitcode.com/i/9f23722109a870b4e984ad19201ed22e) 展开,逐条解析该 LTS 版本相对 v25.8.5.17-lts 引入的 4 个 Bug Fix 与 1 个内部调整,并结合当前仓库中的源码实现([src/Common/filesystemHelpers.cp

gitblog_00097的博客 508

ClickHouse v25.5.8.13-stable 版本解析:六项稳定版关键 Bug 修复的源码级解读

v25.5.8.13-stable(commit `b594fb9739e`,基于 v25.5.7.52-stable)是 ClickHouse 25.5 系列的一个官方稳定补丁版本,聚焦于修复 25.5 主版本引入的**性能回退**与**稳定性缺陷**。本篇以该版本的官方变更日志([docs/changelogs/v25.5.8.13-stable.md](https://link.gitcod

gitblog_00254的博客 48
上一篇: 重磅回顾:首届用户大会 Open House 精彩亮点
下一篇: 使用 ClickHouse 进行云观鸟是什么体验?
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值