ClickHouse 25.9 版本发布说明

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

图片

本文字数:10085;估计阅读时间:26 分钟

作者:ClickHouse Team

本文在公众号【ClickHouseInc】首发

图片

时间来到新的一月,我们迎来了 ClickHouse 的全新版本!

发布概要

ClickHouse 25.9 版本共带来了 25 项新功能 🍎、 22 项性能优化 🍁、 以及 83 个bug修复 🌿。

本次版本更新引入了自动全局 Join 重排序、二级索引的流式处理、新的文本索引等多项重磅改进!

新贡献者

热烈欢迎在 25.9 版本中首次贡献代码的开发者!ClickHouse 社区的不断壮大令人振奋,正是因为有了众多贡献者的支持,ClickHouse 才能成为今天这样备受欢迎的项目。

以下是所有新加入的贡献者名单:

Aly Kafoury, Christian Endres, Dmitry Prokofyev, Kaviraj, Max Justus Spransy, Mikhail Kuzmin, Sergio de Cristofaro, Shruti Jain, c-end, dakang, jskong1124, polako, rajatmohan22, restrry, shruti-jain11, somrat.dutta, travis, yanglongwei

Join 重排序

由 Vladimir Cherkasov 贡献

许多用户期盼已久的功能终于在本版本实现:自动全局 Join 重排序。

ClickHouse 现在能够自动优化包含数十张表的复杂连接结构,支持包括 Inner、Left/Right Outer、Cross、Semi 和 Anti 等主流 Join 类型。之所以能够实现这一优化,是因为多个表之间的连接操作具备结合性(associativity)。

Join 顺序为什么重要

以三个表为例,数据库可能会先将 A 和 B Join,再将结果与 C 连接:

图片

也可以先将 B 和 C Join,再将结果与 A 连接:

图片

或者是先将 A 和 C Join,再将结果与 B 连接:

图片

这三种方式最终都会得到相同的结果。

但随着 Join 表数量的增加,全局 Join 顺序的影响也会越来越大。

在某些场景下,合理与不合理的 Join 顺序,其查询性能可能相差几个数量级!

那么 Join 顺序为何会如此重要?我们先来简单回顾一下 ClickHouse 的 Join 执行方式。

ClickHouse 的 Join 执行机制 

简要回顾一下:ClickHouse 当前最快的 Join 算法是默认启用的并行哈希连接(parallel hash join),其执行过程分为两个阶段:

  • 构建阶段(Build phase):将右侧的表加载进内存哈希表中。

  • 探测阶段(Probe phase):对左侧表进行流式扫描,并查找哈希表中的匹配项。

图片

图 3: 25.9 版本中的 Join 执行流程示意图

由于右侧表会预加载进内存,因此在大多数情况下,将较小的表放在右侧能显著提升执行效率。

其他 Join 算法,如使用外部排序的部分合并 Join(partial merge join),也遵循类似的构建与探测机制。在这些算法中,同样推荐将小表放在构建端,以加快查询速度。

局部 Join 重排序功能

ClickHouse 在 24.12 版本首次引入了针对两个表的自动局部 Join 重排序功能。该优化会自动将两个表中较小的那个放置在右侧,即哈希表的构建端(build side),从而显著减少构建哈希表所需的内存和计算资源。

全局 Join 重排序功能 

到了 25.9 版本,ClickHouse 进一步引入了全局 Join 重排序功能,在查询优化阶段能够自动决定多个表之间更优的连接顺序(构建端 vs 探测端)。

图片

图 4: 多表连接下的全局 Join 重排序示意图

相比局部重排序,全局 Join 优化要复杂得多。随着连接表数量的增加,可能的连接顺序呈指数增长,因此 ClickHouse 无法对整个搜索空间进行穷举搜索。为了解决这一问题,系统采用了一种贪婪(greedy)优化算法,在保证效果的前提下快速收敛到一个性能足够优的连接顺序。

实现该算法的关键,是对 Join 列进行基数估算,也就是评估两个被连接表在执行时可能涉及的行数(考虑 WHERE 条件的影响)。ClickHouse 会结合存储引擎返回的行数估算和用户手动配置的列统计信息来完成这项任务。

当前版本下,列统计信息仍需手动创建(参考下方示例)。我们计划在未来版本中支持为新建表自动生成统计信息,以提升优化效果。

如何控制 Join 重排序 

你可以通过以下两个参数设置来控制全局 Join 重排序行为:

  • query_plan_optimize_join_order_limit:指定最大允许重排序的 Join 表数量;

  • allow_statistics_optimize:是否允许使用列统计信息进行 Join 优化。

基准测试:TPC-H 查询表现 

下面我们使用经典的 TPC-H Join 基准测试,验证全局 Join 重排序结合列统计信息后的性能表现。

我们在 AWS EC2 m6i.8xlarge 实例(32 核 vCPU、128 GiB 内存)上,分别创建了两个版本的 TPC-H 数据模型(scale factor 为 100):

  • 无统计信息版本:使用默认 DDL 创建的 8 个 TPC-H 表;

  • 有统计信息版本:在上述表的基础上添加了列级统计信息。

建表后,我们使用提供的脚本命令加载数据。

如果你也想尝试体验,链接中包含了建表和加载的全部命令。

CREATE DATABASE tpch_no_stats;
USE tpch_no_stats;
-- Create the 8 tables with the default DDL
-- Load data
CREATE DATABASE tpch_stats;
USE tpch_stats;
-- Create the 8 tables with extended DDL (with column statistics)
-- Load data

我们选用了一条包含 6 张表 Join 的 TPC-H 查询作为测试用例:

SELECT
  n_name,
  sum(l_extendedprice * (1 - l_discount)) AS revenue
FROM
  customer, 
  orders, 
  lineitem, 
  supplier, 
  nation, 
  region
WHERE
  c_custkey = o_custkey
AND l_orderkey = o_orderkey
AND l_suppkey = s_suppkey
AND c_nationkey = s_nationkey
AND s_nationkey = n_nationkey
AND n_regionkey = r_regionkey
AND r_name = 'ASIA'
AND o_orderdate >= DATE '1994-01-01'
AND o_orderdate < DATE '1994-01-01' + INTERVAL '1' year
GROUP BY
  n_name
ORDER BY
  revenue DESC;

首先,在未启用列统计信息的表上执行查询:

USE tpch_no_stats;
SET query_plan_optimize_join_order_limit = 10;
SET allow_statistics_optimize = 1;

-- test_query
   ┌─n_name────┬─────────revenue─┐
1. │ VIETNAM   │  5310749966.867 │
2. │ INDIA     │ 5296094837.7503 │
3. │ JAPAN     │ 5282184528.8254 │
4. │ CHINA     │ 5270934901.5602 │
5. │ INDONESIA │ 5270340980.4608 │
   └───────────┴─────────────────┘

5 rows in set. Elapsed: 3903.678 sec. Processed 766.04 million rows, 16.03 GB (196.23 thousand rows/s., 4.11 MB/s.)
Peak memory usage: 99.12 GiB.

查询耗时超过一小时 🐌,并消耗了 99 GiB 主内存。

然后我们在启用统计信息的表上运行相同的查询:

USE tpch_stats;
SET query_plan_optimize_join_order_limit = 10;
SET allow_statistics_optimize = 1;

-- test_query
Query id: 5c1db564-86d0-46c6-9bbd-e5559ccb0355

   ┌─n_name────┬─────────revenue─┐
1. │ VIETNAM   │  5310749966.867 │
2. │ INDIA     │ 5296094837.7503 │
3. │ JAPAN     │ 5282184528.8254 │
4. │ CHINA     │ 5270934901.5602 │
5. │ INDONESIA │ 5270340980.4608 │
   └───────────┴─────────────────┘

5 rows in set. Elapsed: 2.702 sec. Processed 638.85 million rows, 14.76 GB (236.44 million rows/s., 5.46 GB/s.)
Peak memory usage: 3.94 GiB.

仅耗时 2.7 秒,性能提升约 1,450 倍,同时内存使用降低至原来的约 1/25。

Join 重排序:接下来的发展方向 

目前的全局 Join 重排序功能只是 ClickHouse 迈出的第一步。当前版本仍依赖手动创建统计信息,未来的演进方向包括:

  • 自动生成列统计信息 —— 摆脱手动配置的限制;

  • 支持更多 Join 类型,例如外连接,以及对子查询的 Join;

  • 引入更强的 Join 重排序算法 —— 能够应对更复杂、更大型的连接图场景。

更多精彩功能,敬请关注后续版本!

二级索引流式处理功能 

由 Amos Bird 贡献 

在 ClickHouse 25.9 版本之前,所有二级索引(如 minmax、set、布隆过滤器、向量索引、文本索引)都是在读取底层数据前先进行评估。

旧机制:顺序索引扫描

执行流程如下:

  • 索引预扫描阶段:ClickHouse 会预先扫描所有二级索引条目,以判断哪些 granule(ClickHouse 中的最小处理单元,通常覆盖 8,192 行)可能包含匹配 WHERE 条件的记录。

  • 查询执行阶段:系统将筛选出的 granule 传入查询引擎并进行处理,生成最终查询结果。

图片

上图展示了上述流程:

① 索引扫描与 granule 选择:系统评估所有索引条目,仅选择可能命中的 granule,其余直接跳过。

② 查询执行:选中的 granule 被读取并处理,结果返回客户端。

尽管这种流程清晰有序,但也存在一些明显局限:

  • LIMIT 效率低:即使查询很快因 LIMIT 停止,ClickHouse 仍需提前扫描全部索引;

  • 执行延迟高:索引分析在查询执行前发生,增加整体响应延迟;

  • 扫描开销大:尤其在大表上执行高选择性过滤条件时,索引扫描本身的开销可能高于处理实际数据。

新机制:流式二级索引

ClickHouse 25.9 引入全新机制,将索引判断和数据读取交错进行,实现真正的流式处理方式。如下图所示:

图片

上图展示了新流程:

① 索引扫描与 granule 选择  

② 查询执行(两者并发进行):

当 ClickHouse 准备读取某个 granule(通常已被主索引选中)时,会先检查对应的二级索引(如果存在)。  

  • 如果索引判定该 granule 可跳过,则不会读取;

  • 否则,该 granule 会被加载并由查询引擎处理。

与此同时,系统继续评估下一批 granule,以流式方式持续推进查询。

这种并发双流机制 —— 一边读取数据 granule,一边检查其对应的二级索引 —— 被称为“流式二级索引”,由设置项 use_skip_indexes_on_data_read 控制启用。

(注:为便于展示,动画使用单线程引擎演示,实际执行中,ClickHouse 会使用多线程并发处理多个 granule。)

这一改进显著减少了等待时间和资源浪费。例如,当查询因为 LIMIT 条件提前终止时,系统能立即停止后续 granule 的索引判断与数据读取,有效提升整体执行效率。

演示:流式二级索引带来更快的查询性能 

在此次版本发布的网络研讨会中,Alexey 向大家展示了流式二级索引在超大规模 ClickHouse 表中的性能优势。示例数据包含了数万亿条日志记录,来源于对 Pull Request 和 Commit 执行测试时产生的运行数据。在这些数据集中,单个二级索引压缩后体积甚至超过 6 TB。

考虑到在本地环境中难以还原如此大规模的场景,我们使用了一个简化的人工示例,方便用户自行复现。

我们在 AWS EC2 m6i.8xlarge 实例(32 核 vCPU,128 GiB 内存)上进行测试。

首先,创建一张表,包含一个 String 类型的字段,并在该列上添加了一个 Bloom Filter 索引:

CREATE TABLE test (
  s String, 
  index s_idx s type bloom_filter(0.0001) granularity 1
)
ENGINE = MergeTree
ORDER BY () 
SETTINGS index_granularity = 1024;

随后向该表插入 10 亿行记录:

INSERT INTO test 
SELECT if(number % 1024 == 0, 'needle', randomPrintableASCII(64)) 
FROM numbers_mt(1_000_000_000);

此时可以看到,Bloom Filter 索引的大小已超过 2 GiB:

SELECT 
  name, 
  type_full, 
  formatReadableSize(data_uncompressed_bytes) AS size
FROM system.data_skipping_indices
WHERE database = 'default' AND table = 'test';
   ┌─name──┬─type_full────────────┬─size─────┐
1. │ s_idx │ bloom_filter(0.0001) │ 2.21 GiB │
   └───────┴──────────────────────┴──────────┘

为确保测试公平性,我们在每次查询前都清空了操作系统的页缓存(OS page cache)。

echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null

在关闭流式索引功能(设置 use_skip_indexes_on_data_read = 0)的情况下,执行一个通过 LIMIT 1 筛选单条记录的查询,耗时约为 10 秒。

为了排除其他干扰变量,我们将 max_threads 设置为 1,并禁用了查询条件缓存(query condition cache),以最大化体现二级索引处理带来的差异。

SELECT * FROM test WHERE s = 'needle' LIMIT 1 
SETTINGS 
  max_threads = 1, 
  use_query_condition_cache = 0,  use_skip_indexes_on_data_read = 0;
   ┌─s──────┐
1. │ needle │
   └────────┘

1 row in set. Elapsed: 10.173 sec. Processed 29.70 thousand rows, 2.14 MB (2.92 thousand rows/s., 210.00 KB/s.)
Peak memory usage: 8.90 MiB.

当启用流式索引(设置 use_skip_indexes_on_data_read = 1)后,执行相同的查询仅需约 2.4 秒 —— 性能提升超过 4 倍,且使用的内存也显著减少。

SELECT * FROM test WHERE s = 'needle' LIMIT 1 
SETTINGS 
  max_threads = 1, 
  use_query_condition_cache = 0,  use_skip_indexes_on_data_read = 1;
   ┌─s──────┐
1. │ needle │
   └────────┘

1 row in set. Elapsed: 2.471 sec. Processed 29.70 thousand rows, 2.14 MB (12.02 thousand rows/s., 864.57 KB/s.)
Peak memory usage: 4.48 MiB.

这一性能提升主要来自以下两个机制的协同作用:

① 并发执行索引扫描与查询处理:启用流式索引后,ClickHouse 在扫描索引的同时即可处理匹配 granule,无需等待全部索引分析完成;

② 即时终止无效工作:一旦系统找到符合条件的首条记录(由于 LIMIT 1),就会立即停止对后续索引条目与 granule 的处理,最大限度避免资源浪费。

全新文本索引功能

由 Anton Popov、Elmi Ahmadov 和 Jimmy Aguilar Mena 贡献 

自从我们在 2025 年 8 月发布《重构全文搜索》的博客文章后(https://clickhouse.com/blog/clickhouse-full-text-search),经过持续测试,我们对全文索引的理解有了更进一步的提升。很多我们原本认为已定型的设计方案,最终被证明只是通往更优架构的中间步骤。持续演进、大胆试验、快速反馈,是 ClickHouse 一贯的研发哲学:我们愿意早期发布原型、进行严谨测试,并不断打磨优化,直到真正打造出最快的解决方案。

此前基于 FST(有限状态转换器)的实现虽然在存储空间方面表现良好,但在执行效率上存在不足:它需要将大批量数据加载到内存中,且其数据组织方式未针对“跳过索引 granule”优化,导致查询分析较为低效。

在 ClickHouse 25.9 中,我们推出了全新的实验性文本索引,它支持流式处理,并以 granule 为单位组织数据结构,与跳过索引机制高度契合,从而带来更高效、更稳定的全文搜索体验。

启用该文本索引功能需配置以下参数:

SET allow_experimental_full_text_index;

我们将以 Hacker News 的公开数据集作为示例进行演示。首先可使用以下命令下载 CSV 文件:

wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/hackernews/hacknernews.csv.gz

随后创建一张包含文本索引的表,并将索引应用于 text 字段:

CREATE TABLE hackernews
(
    `id` Int64,
    `deleted` Int64,
    `type` String,
    `by` String,
    `time` DateTime64(9),
    `text` String,
    `dead` Int64,
    `parent` Int64,
    `poll` Int64,
    `kids` Array(Int64),
    `url` String,
    `score` Int64,
    `title` String,
    `parts` Array(Int64),
    `descendants` Int64,
    INDEX inv_idx(text)
    TYPE text(tokenizer = 'default')
    GRANULARITY 128
)
ENGINE = MergeTree
ORDER BY time;

完成表结构后,导入数据:

INSERT INTO hackernews 
SELECT *
FROM file('hacknernews.csv.gz', CSVWithNames);

可以通过以下语句检查当前记录数:

SELECT count()
FROM hackernews;
┌──count()─┐
│ 28737557 │ -- 28.74 million
└──────────┘

数据量接近 3,000 万条,适合用于测试查询性能。

我们接下来展示如何对 text 列执行搜索。hasToken 函数在检测到文本索引时会自动使用它进行加速;而 searchAll 与 searchAny 函数则要求字段必须建立文本索引才能使用。

如果我们希望查找发布关于 “OpenAI” 相关内容最多的用户,可以使用如下查询语句:

select by, count()
FROM hackernews
WHERE hasToken(text, 'OpenAI')
GROUP BY ALL
ORDER BY count() DESC
LIMIT 10;
┌─by──────────────┬─count()─┐
│ minimaxir       │      48 │
│ sillysaurusx    │      43 │
│ gdb             │      40 │
│ thejash         │      24 │
│ YeGoblynQueenne │      23 │
│ nl              │      20 │
│ Voloskaya       │      19 │
│ p1esk           │      18 │
│ rvz             │      17 │
│ visarga         │      16 │
└─────────────────┴─────────┘

10 rows in set. Elapsed: 0.026 sec.

而如果在未启用文本索引的表上运行相同的查询,执行时间通常会延长约 10 倍。

10 rows in set. Elapsed: 1.545 sec. Processed 27.81 million rows, 9.47 GB (17.99 million rows/s., 6.13 GB/s.)
Peak memory usage: 172.15 MiB.

我们还可以进一步扩展条件,查找那些同时发布包含 “OpenAI” 和 “Google” 两个关键词的消息最多的用户,查询语句如下:

select by, count()
FROM hackernews
WHERE searchAll(text, ['OpenAI', 'Google'])
GROUP BY ALL
ORDER BY count() DESC
LIMIT 10;
┌─by──────────────┬─count()─┐
│ thejash         │      17 │
│ boulos          │       8 │
│ p1esk           │       6 │
│ sillysaurusx    │       5 │
│ colah3          │       5 │
│ nl              │       5 │
│ rvz             │       4 │
│ Voloskaya       │       4 │
│ visarga         │       4 │
│ YeGoblynQueenne │       4 │
└─────────────────┴─────────┘

10 rows in set. Elapsed: 0.012 sec.

数据湖改进

由 Konstantin Vedernikov、Smita Kulkarni 贡献

ClickHouse 25.9 对数据湖的支持进一步增强,包括:

  • 支持 Apache Iceberg 的 ALTER UPDATE 和 DROP TABLE 子句;

  • 新增系统表 iceberg_metadata_log;

  • 支持 Apache Iceberg 数据文件格式 ORC 和 Avro;

  • 支持 Azure 上的 Unity Catalog;

  • 支持数据湖场景下的分布式 INSERT SELECT 操作。

arrayExcept

由 Joanna Hulboj 贡献 

ClickHouse 25.9 引入了 arrayExcept 函数,用于计算两个数组之间的差集。如下所示是一个示例:

SELECT arrayExcept([1, 2, 3, 4], [1, 3, 5]) AS res;
    ┌─res───┐
    │ [2,4] │
    └───────┘

    布尔类型设置 

    由 Thraeka 贡献 

    ClickHouse 25.9 还允许在定义布尔类型设置时省略参数。这意味着我们现在可以像下面这样使用更简洁的 DESCRIBE 输出:

    SET describe_compact_output;

    并且不再需要像 25.9 之前那样显式地指定为 true:

    SET describe_compact_output = true;

    如果要关闭某个设置,仍然需要将参数设置为 false。

    支持指定 S3 存储类别 

    由 Alexander Sapin 贡献 

    在 ClickHouse 25.9 中,使用 S3 表引擎或表函数时,用户可以指定所使用的 AWS S3 存储类别(Storage Class)。

    例如,如果希望 AWS 自动将数据迁移至最具性价比的访问层以降低存储成本,可以选择启用智能分层(Intelligent Tiering)。

    CREATE TABLE test (s String)
    ENGINE = S3('s3://mybucket/test.parquet',
                storage_class_name = 'INTELLIGENT_TIERING');
    
    INSERT INTO test VALUES ('Hello');
    INSERT INTO FUNCTION s3('s3://mybucket/test.parquet',
                storage_class_name = 'INTELLIGENT_TIERING') 
    VALUES('test');

    征稿启示

    面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出&图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com

    避开ns-3学习深坑:用sns3模块快速搭建GEO卫星通信仿真(附GitHub代码解读) 本文介绍了如何使用sns3模块快速搭建GEO卫星通信仿真环境,绕过复杂的ns-3底层细节。通过详细的Linux环境配置、sns3模块安装和示例代码解读,帮助开发者快速上手卫星通信仿真,并提供了常见问题的解决方案和性能优化技巧。 阅读详情

    相关推荐

    iStore增强插件 如何重塑家庭网络与存储体验

    本文深入解析了iStore增强插件如何重塑家庭数字生活体验。它通过集成智能流控、一键式文件共享、媒体服务器及智能家居网关等功能,将复杂的网络配置、存储管理与设备协同简化为图形化操作,有效解决了家庭网络卡顿、数据割裂与使用门槛高等核心痛点,让普通用户也能轻松打造高效、稳定、安全的家庭数字中枢。

    prometheus9mon的博客 646

    ClickHouse 25.4 版本发布说明

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

    ClickHouseDB的博客 1467

    从零构建:毫米波雷达生命信号检测系统的Matlab仿真全流程解析

    本文详细解析了毫米波雷达生命信号检测系统的Matlab仿真全流程,涵盖原理、信号处理链路设计及算法优化策略。通过FMCW雷达技术,实现非接触式呼吸心跳信号检测,结合Matlab代码示例展示距离FFT、相位提取与信号分离等关键步骤,为医疗监护和智能家居应用提供实用指南。

    weixin_29303701的博客 355

    ClickHouse 25.6 版本发布说明

    本次ClickHouse 25.6 发布包含 25 项新功能 🌸 32 项性能优化 🦋 以及 105 个缺陷修复 🐝。

    ClickHouseDB的博客 1249

    手把手教你用RSoft BPM仿真一个1x2光分束器:从参数设置到结果分析全记录

    本文详细介绍了使用RSoft BPM模块设计和仿真1×2光分束器的完整流程,包括参数设置、结构建模、仿真配置和结果分析。通过实战指南,帮助读者掌握光波导器件的仿真技术,实现50:50功率分配的设计目标,适用于光通信和集成光学领域的研究与应用。

    weixin_30545945的博客 544

    Visual Studio报错TRK0005找不到CL.exe?三步彻底解决环境变量问题

    本文详细解析了Visual Studio报错TRK0005找不到CL.exe的根本原因,并提供了三步彻底解决环境变量问题的方案。从验证安装完整性到配置永久环境变量,再到注册表级修复,帮助开发者建立健壮的开发环境配置体系,确保编译链稳定运行。

    weixin_30839881的博客 459

    ClickHouse 25.7 版本发布说明

    本次ClickHouse 25.6 发布包含 27 项新功能 🌸 26 项性能优化 🍦 以及 98 个缺陷修复 🐞。

    ClickHouseDB的博客 1394

    无监督学习与互信息

    在机器学习中,获取大量高质量标注数据成本高昂。为解决此问题,无监督学习利用丰富的无标注数据成为研究重点。其中,互信息是衡量两个随机变量之间依赖关系的关键指标,能够捕捉非线性统计关联,非常适合处理非结构化数据。通过最大化神经网络中变量间的互信息,可以有效地从无标注数据中提取有用信息,提升模型在下游任务(如分类)的性能。互信息与熵密切相关,其值等于联合分布与边缘分布乘积间的KL散度,也可通过熵与条件熵的差值得出,具有对称性,并反映了已知一个变量后另一个变量不确定性的减少。

    盼小辉丶的博客 3514

    ClickHouse 25.12 版本发布说明

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

    ClickHouseDB的博客 939

    基金估值核算系统三国杀:恒生 VS 赢时胜 VS 融选!

    本文对比分析了恒生电子、赢时胜和融选科技三家金融科技公司的基金估值系统。恒生电子作为行业龙头,在公募基金领域占据较大份额,其新一代估值系统6.0采用微服务架构,自动化程度高;赢时胜在中型公募和券商资管领域优势明显,其V5.5系统在信创适配和复杂产品处理方面表现突出;融选科技作为新兴厂商,提供轻量化解决方案,适合中小型机构。文章从市场格局、系统定位、技术架构、成本构成和用户反馈五个维度进行深入比较,为金融机构选型提供参考。当前估值系统市场呈现"三国鼎立"格局,各具特色,选型需结合机构规模、

    magbox520的博客 825

    图像紫边消除(depurple)

    对图像紫边形成原因、消除方法进行了介绍。

    沧海一升的博客 7564

    ClickHouse 25.1 版本发布说明

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

    ClickHouseDB的博客 1841

    【AUTOSAR-COM】-2.3_通过PduGroup批量控制CAN Frame/Pdu的接收

    -->如果实现类似UDS诊断 $28服务,控制所有APP CAN Rx Frame/Pdu/报文接收; -->自定义过滤CAN信号的接收。

    「汽车电子助手」的博客 1989

    ClickHouse 24.10 版本发布说明

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

    ClickHouseDB的博客 1746

    efm32 入门.pdf

    本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

    visio安装包

    Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

    ClickHouse 23.9 版本发布说明

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

    ClickHouseDB的博客 607

    Statistics and Machine Learning Toolbox

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

    ClickHouse 26.2 版本发布说明

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

    ClickHouseDB的博客 635

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

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

    ClickHouse v25.12.9.61-stable 版本解析:指标改进、文本索引修复与关键 Bug 修复全景

    本指南基于 ClickHouse 官方稳定版发布说明([v25.12.9.61-stable changelog](https://link.gitcode.com/i/cbe0d218dd4abe5c7769d55b58172ee4)),系统解读该版本从 v25.12.8.9-stable 以来的全部变更:新增的查询并发与对象存储可观测性指标、文本索引(Text Index)系列修复、分布式查询

    gitblog_00948的博客 852

    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版本迁移实战:企业级升级与回滚最佳实践

    ClickHouse作为现代大数据分析型数据库管理系统,其版本迭代频率高、功能更新快,为企业用户带来性能提升的同时也带来了版本管理的挑战。本文深度解析ClickHouse版本迁移的核心策略,提供生产环境下的实战指南。 ## 版本演进与兼容性挑战 ClickHouse采用双轨发布策略:**稳定版(Stable)** 和 **长期支持版(LTS)**。根据变更日志分析,2025年已发布v25.9至

    gitblog_00864的博客 482

    ClickHouse v25.8.8.26-lts 版本解读:崩溃日志同步刷新与 9 项关键 Bug 修复全览

    本文以 ClickHouse 官方 LTS 分支的补丁版本 v25.8.8.26-lts 的发布记录为核心,逐条解读该版本在崩溃诊断、协议兼容性、权限校验、查询语义确定性等方向上的修复内容,并结合仓库源码说明其底层实现。读完本文,你将了解本次补丁解决了哪些用户可见问题、修复影响哪些模块,以及如何验证与升级到该版本。 ## 版本概览:一个以稳定性为目标的 LTS 补丁 本次发布记录对应的补丁版本

    gitblog_00319的博客 63

    二级索引也能“边查边算”?ClickHouse 25.9 用流式索引把查询延迟砍掉 4 倍

    流式二级索引让索引评估变成按需、增量执行,避免了不必要的前置工作,同时降低了查询延迟和内存占用。

    ClickHouseDB的博客 616

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

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

    gitblog_00013的博客 259

    ClickHouse v25.9.3.48-stable 发布解析:缓存优化、Keeper 事件与十三项稳定性修复全景

    本指南基于 [docs/changelogs/v25.9.3.48-stable.md](https://link.gitcode.com/i/8fdac579a20f5ef7e69862068a233bea) 变更日志,逐条解析 ClickHouse 25.9 系列第三个稳定补丁版本的核心改进、用户可见缺陷修复与内部维护变更,并结合仓库源码(如 [HTTPHeaderFilter.cpp](ht

    gitblog_00748的博客 8

    在 Meshery 中部署高可用 ClickHouse 集群:clickhouse-9.4.4 目录设计深度解析

    本篇技术指南以 Meshery 仓库中的 Catalog 部署条目 [docs/catalog/deployment/d79ab97f-86bd-44d1-8a37-aa05506b2b14.md](https://link.gitcode.com/i/bccd197fa87c34aac93dfa00853c7414) 为线索,完整拆解其背后由 Bitnami Helm Chart 导入的 Cli

    gitblog_00737的博客 194

    ClickHouse 2026 年度版本全解读:26.1 到 26.9 的关键演进、不兼容变更与升级实战

    2026 年 ClickHouse 从 26.1 一路迭代到 26.9,其中 26.3 与 26.8 被标记为 LTS(长期支持)版本。本文以仓库内的 2026 年官方 Changelog([docs/_includes/content/changelog.md](https://link.gitcode.com/i/e12ca8d5d34dbb89f312c855e2372727))为主体,逐版

    gitblog_00492的博客 584

    ClickHouse 26.3 版本发布说明:异步插入默认开启,JOIN重排序更智能!

    ClickHouse 26.3重磅发布!异步插入默认启用,新增JOIN重排序与物化CTE,性能与易用性再升级。

    ClickHouseDB的博客 595
    上一篇: 使用 React 和 MooseStack 构建基于 ClickHouse 的 API
    下一篇: 为 Intel 超高核心数处理器优化 ClickHouse
    ClickHouseDB
    博客等级 码龄3年 1707粉丝 320原创
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

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

    抵扣说明:

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

    余额充值