博客 / 产品

ClickHouse 2023 年 3 月 Newsletter:为 ClickHouse 做贡献

author avatar
ClickHouse 团队
2023 年 3 月 23 日 - 9 分钟阅读

已经是春天了吗?ClickHouse 团队一直一如既往地忙碌,撰写新内容、举办活动、发布软件,当然还有尽可能多地与您分享内部信息。我们重新调整了本月 Newsletter 的顺序,以便更快地进入本月查询,但通常的阅读清单和即将举行的活动仍在底部。

顺便说一句,如果您在我们的网站上阅读本文,您是否知道您可以每月在收件箱中收到 Newsletter 邮件?在此处注册

ClickHouse v23.2

  • 18 项新功能。
  • 30 项性能优化。
  • 43 个错误修复。

多个 SQL 语言功能和扩展的集成支持。但是,与往常一样,有一些值得关注的头条新闻。您可以在 v23.2 博客文章中详细了解所有功能,如果您有兴趣,请不要忘记注册 v23.3 发布演示直播(欢迎提问)。

多阶段 PREWHERE

The PREWHERE 子句自第一个 OSS 版本以来一直是 ClickHouse 中的一项功能。此优化旨在减少查询需要读取的行数,在 22.2 之前,使用 2 步执行过程。

支持 Apache Iceberg

ClickHouse 当前支持通过 iceberg 表函数和 Iceberg 表引擎读取 Iceberg 格式的 v1 版本(v2 版本即将推出!)。此表格式越来越受欢迎,并迅速成为数据湖中管理数据的行业标准。Iceberg 以开放和可访问的方式将类似 SQL 表的功能引入数据湖中的文件。

支持相关矩阵

在 23.2 版本中,我们添加了对计算相关矩阵的支持。提醒一下,相关矩阵是一个表,其中包含表中所有可能值之间的相关系数。这是一种总结大型数据集并识别强相关或负相关的列的简便方法。

本月查询 - “为 ClickHouse 做贡献”

实时分析是一个重要且可能经常被误解的概念。实时可能意味着在摄取点、转换点、应用程序交互点或……重要的是……在兴趣点。

在上周,我们发现自己对各个 ClickHouse 存储库的贡献者数量(随时间推移)以及每月的唯一用户数量感兴趣。查询本身结果非常有趣。

这有点挑战,因为我们想要累积的唯一用户,而不仅仅是每月的唯一用户数。为了实现这一点,我们首先通过聚合函数 groupArrayDistinct 生成按月分组的唯一贡献者数组 (uniq_users)(请参阅我们关于聚合函数的最新博客文章)。反过来,窗口函数将这些每月数组分组,并生成到目前为止每个月的不同贡献者数组。最后,外部查询识别每列中唯一值的数量。

查询本身非常直接,如下所示(也可以在 ClickHouse Play 上查看)。

SELECT month, arrayUniq(cul_users) AS cul_users, arrayUniq(uniq_users) AS uniq_users FROM ( SELECT month, groupArrayDistinctArray(uniq_users) OVER (ORDER BY month ASC) AS cul_users, groupArrayDistinct(actor_login) AS uniq_users FROM default.github_events WHERE (repo_name LIKE 'ClickHouse%') AND (event_type = 'PullRequestEvent') GROUP BY toStartOfMonth(created_at) AS month ORDER BY month ASC ) ┌──────month─┬─cul_users─┬─uniq_users─┐ │ 2018-08-01 │ 2 │ 2 │ │ 2018-10-01 │ 4 │ 2 │ │ 2018-11-01 │ 4 │ 2 │ │ 2018-12-01 │ 7 │ 5 │ │ 2019-02-01 │ 8 │ 2 │ │ 2019-03-01 │ 9 │ 1 │ │ 2019-05-01 │ 10 │ 2 │ │ 2019-06-01 │ 10 │ 2 │ │ 2019-07-01 │ 12 │ 3 │ │ 2019-08-01 │ 15 │ 5 │ │ 2019-09-01 │ 38 │ 31 │ │ 2019-10-01 │ 75 │ 60 │ │ 2019-11-01 │ 114 │ 77 │ │ 2019-12-01 │ 145 │ 81 │ … │ 2022-06-01 │ 1118 │ 122 │ │ 2022-07-01 │ 1157 │ 121 │ │ 2022-08-01 │ 1208 │ 120 │ │ 2022-09-01 │ 1239 │ 118 │ │ 2022-10-01 │ 1280 │ 131 │ │ 2022-11-01 │ 1317 │ 133 │ │ 2022-12-01 │ 1344 │ 119 │ │ 2023-01-01 │ 1374 │ 123 │ │ 2023-02-01 │ 1405 │ 142 │ │ 2023-03-01 │ 1441 │ 124 │ └────────────┴───────────┴────────────┘ 53 rows in set. Elapsed: 0.032 sec. Processed 202.50 thousand rows, 8.18 MB (6.25 million rows/s., 252.65 MB/s.)

这是第一次尝试,并且在语法上不如尽可能简洁 - 尽管仍然非常快。在咨询并获得有关状态函数的一些启发后,我们意识到这些可以在查询时用于从子查询传递状态 - 而不仅仅用于存储 物化视图的中间状态。以下查询使用 uniqState 函数返回每月唯一贡献者的“草图”。然后我们使用一个简单的窗口函数,它使用 uniqMerge 函数执行这些草图的累积合并。

WITH states AS ( SELECT month, uniqState(actor_login) AS uniq_users FROM default.github_events WHERE (repo_name LIKE 'ClickHouse%') AND (event_type = 'PullRequestEvent') GROUP BY toStartOfMonth(created_at) AS month ORDER BY month ASC ) SELECT month, uniqMerge(uniq_users) OVER (ORDER BY month ASC) AS cul_users FROM states 53 rows in set. Elapsed: 0.024 sec. Processed 181.30 thousand rows, 8.32 MB (7.47 million rows/s., 343.05 MB/s.)

因此,数组函数、聚合组合器和状态函数都在 2 个查询中...哦,我们节省了 8 毫秒...一切都加起来了。

阅读清单

我们最喜欢的一些您可能错过的读物包括

  1. 构建 ClickHouse Cloud - 您是否想过在一年内构建一个无服务器软件即服务 (SaaS) 产品需要什么?在这篇博客文章中,我们将介绍我们如何从头开始构建 ClickHouse Cloud - 一个基于世界上最流行的在线分析处理 (OLAP) 数据库之一的托管服务。
  2. 激励我们的女性:ClickHouse 社区和公司的女性先锋 - 国际妇女节提供了一个机会,以表彰和赞赏无数在不同领域塑造世界的职业女性,从高管和企业家到科学家和活动家。这一天提供了一个反思在性别平等方面取得的进展以及仍有待完成的工作的机会。这也是为了纪念那些打破障碍并在各自行业中有所作为的鼓舞人心的女性。
  3. 金融科技领导者 Juspay 使用 ClickHouse 实时分析超过 5000 万笔日常支付交易 - 印度金融科技公司 Juspay 使用 ClickHouse 为其端到端支付解决方案和实时商户仪表板提供 A/B 测试和监控。凭借亚马逊、谷歌和沃达丰等客户每天超过 5000 万笔交易,ClickHouse 因其处理大量数据的能力而被选中。
  4. 在 ClickHouse 中处理更新和删除 - 作为世界上最快的实时分析数据库,许多 ClickHouse 工作负载涉及大量数据,这些数据写入一次且不经常修改(例如,IOT 设备生成的遥测事件或电子商务网站生成的客户点击)。虽然这些通常是不可变的,但在分析期间提供上下文的关键附加数据集(例如,包含基于设备或客户 ID 的信息的查找表)可能需要修改。

在我们 12 月的纽约市聚会上,我们很高兴有三个精彩的演示,展示了 ClickHouse 的各种应用。我们忍不住再次与您分享!

  1. 管理 Disney+ 的流量高峰:了解 Disney+ 如何通过利用 ClickHouse 的强大功能来处理其内容分发网络上的流量激增,从而确保数百万用户获得流畅的流媒体体验。
  2. 使用 Rokt 进行个性化实时报价:了解 Rokt 如何利用 ClickHouse 为其动态、实时报价提供支持,并为其客户创造量身定制的体验。
  3. 彭博社的实时股票市场分析:深入了解彭博社如何利用 ClickHouse 对整个股票市场执行实时分析,使他们能够在金融世界中做出数据驱动的决策并保持领先地位。

即将举行的活动

在您的日历上标记以下活动

ClickHouse v23.03 发布网络研讨会
时间? 3 月 30 日星期四上午 9 点(太平洋标准时间)/ 下午 6 点(欧洲中部时间)
如何加入? 在此注册。

ClickHouse Cloud 入门
时间? 4 月 5 日星期三上午 8 点(太平洋夏令时)
如何加入? 在此注册。

曼哈顿 ClickHouse 春季聚会
时间? 4 月 26 日星期三下午 5:30(东部夏令时)
如何加入? 在此注册。

感谢阅读,我们下个月再见!

分享这篇文章

订阅我们的 Newsletter

随时了解功能发布、产品路线图、支持和云产品!
正在加载表单...
关注我们
X imageSlack imageGitHub image
Telegram imageMeetup imageRss image