
本文字数:8297;估计阅读时间:21 分钟
作者:ClickHouse中国
审校:庄晓东(魏庄)
发布概要
- 新增29个新功能
- 实现了19项性能优化
- 修复了63处bug
以下是一些亮点功能...这次发布涵盖了向量的算术运算、tuple的连接、cluster/clusterAllReplicas的默认参数、从元数据中计数(对于Parquet来说速度提高了5倍)、文件内跳数(对Parquet有巨大提升)、从对象存储中流式消费数据,等等...
新贡献者
对于23.6版本的所有新贡献者,我们表示特别的欢迎!ClickHouse的受欢迎程度在很大程度上归功于贡献的社区。看到这个社区的增长总是令人感到振奋。
如果你在这里看到你的名字,请与我们联系。
Al Korgun, Zamazan4ik (Alexander Zaitsev), Andy Fiddaman, Artur Malchanau, Ash Vardanian, Austin Kothig, Bhavna Jindal, Bin Xie, Dani Pozo, Daniel Pozo Escalona, Daniël van Eeden, Davit Vardanyan, Filipp Ozinov, Hendrik M, Jai Jhala, Jianfei Hu, Jiang Yuqing, Jiyoung Yoo, Joe Lynch, Kenji Noguchi, Krisztián Szűcs, Lucas Fernando Cardoso Nunes, Maximilian Roos, Nikita Keba, Pengyuan Bian, Ruslan Mardugalliamov, Selfuppen, Serge Klochkov, Sergey Katkovskiy, Tanay Tummalapalli, VanDarkholme7, Yury Bogomolov, cfanbo, copperybean, daviddhc20120601, ekrasikov, gyfis, hendrik-m, irenjj, jiyoungyoooo, jsc0218, justindeguzman, kothiga, nikitakeba, selfuppen, xbthink, xiebin, Илья Коргун, 王智博
源源不断的文件
更快的文件读取(Michael Kolupaev/Pavel Kruglov)
在近期的几次发布中,我们强调了为提高Parquet性能所做的努力[1][2]。虽然提高性能是一个永无止境的旅程,但23.8中的变化很重要,因为它们使我们对当前的Parquet文件读取性能更为满意。此外,这些提升中也适用于其他文件类型,如JSON和CSV。
总的来说,ClickHouse现在可以:
-
利用Parquet文件中的元数据跳过读取行组,该元数据存储了列值的范围。该特性提供了显著的速度提升,我们会在后面您展示。
-
利用元数据为大多数文件格式提供快速计数,包括Parquet,从而避免不必要的读取。
-
允许在过滤子句中使用文件名元数据来避免读取文件。当应用于对象存储上的大文件列表时,这可以避免大量的I/O,将查询从秒减少到毫秒。这项改进适用于所有文件类型。
为了说明这些增加功能可以带来的好处,我们将使用一个PyPI的数据集:Python包索引。这个数据集中的每一行代表使用如pip这样的工具下载一个Python包。我们提供了一个Parquet文件,其中包含了一天内所有包的下载数据。包括大约125.69GiB的Parquet数据,分布在1657个文件中,共有9亿行。
所有以下的测试都是在一个16核64G内存的实例上进行。
在23.8之前,在这些文件上进行计数操作很昂贵。从每个文件中下载无论多少列,都需要完整地读取,然后计算总数。在本地Macbook上运行时:
--23.7
SELECT count()
FROM s3('https://storage.googleapis.com/clickhouse_public_datasets/pypi/file_downloads/2023-07-31/*.parquet)
┌───count()─┐
│ 900786589 │
└───────────┘
1 row in set. Elapsed: 26.488 sec. Processed 900.79 million r

ClickHouse23.8版本发布了29个新功能,包括对Parquet性能的显著提升、文件元数据利用、S3流式数据处理和归档文件支持。性能优化涉及元数据驱动的快速计数、文件过滤和I/O减少。同时,首次官方社区Meetup活动即将在北京举行。
最低0.47元/天 解锁文章
3297





