时间过得真快,转眼间就要到春天了!ClickHouse 一直像往常一样忙碌,撰写新的内容、举办活动、发布软件,当然,也尽可能多地与大家分享内部信息。我们重新调整了本月简讯的顺序,以便更快地进入“本月查询”部分,但底部仍然保留了惯例的阅读清单和即将举行的活动。
顺便说一句,如果您是在我们的网站上阅读此内容,您知道可以将每个月的简讯都作为电子邮件发送到您的收件箱吗?在此注册。
ClickHouse v23.2
- 18 个新功能。
- 30 项性能优化。
- 43 个错误修复。
多个 SQL 语言功能和扩展的集成支持。但一如既往,有一些值得关注的主要项目。您可以在v23.2 博客文章中详细了解所有功能,如果您有兴趣,别忘了注册参加v23.3 版本发布网络研讨会(欢迎提问)。
多阶段 PREWHERE
PREWHERE
子句是 ClickHouse 自第一个开源版本以来的一个功能。此优化旨在减少查询需要读取的行数,并且在 22.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 毫秒……所有这些加起来都是有意义的。
阅读清单
以下是一些您可能错过的我们最喜欢的文章
- 构建 ClickHouse Cloud - 您是否曾经想过在不到一年的时间内构建一个无服务器软件即服务 (SaaS) 产品需要做些什么?在这篇博文中,我们将介绍我们如何从头开始构建 ClickHouse Cloud——一个构建在世界上最流行的联机分析处理 (OLAP) 数据库之上的托管服务。
- 激励我们的女性:ClickHouse 社区和公司的女性先驱 - 国际妇女节提供了一个机会,让我们认识并感谢无数在各个领域塑造世界的职业女性,从高管和企业家到科学家和活动家。这一天让我们有机会反思在实现性别平等方面取得的进步以及仍需努力的方向。它也旨在纪念那些突破障碍并在各自行业中发挥作用的鼓舞人心的女性。
- 金融科技领导者 Juspay 使用 ClickHouse 实时分析超过 5000 万笔每日支付交易 - 印度金融科技公司 Juspay 使用 ClickHouse 为其端到端支付解决方案和实时商家仪表板提供支持 A/B 测试和监控。Juspay 每天为亚马逊、谷歌和沃达丰等客户处理超过 5000 万笔交易,选择 ClickHouse 是因为它能够处理大量数据。
- 在 ClickHouse 中处理更新和删除 - 作为世界上最快的实时分析数据库,许多 ClickHouse 工作负载涉及大量写入一次且不经常修改的数据(例如,物联网设备生成的遥测事件或电子商务网站生成的客户点击)。虽然这些数据通常是不可变的,但其他一些对于在分析过程中提供上下文至关重要的数据集(例如,基于设备或客户 ID 的信息查找表)可能需要修改。
在 12 月的纽约市聚会上,我们很高兴能听到三个精彩的演讲,展示了 ClickHouse 的各种应用。我们忍不住想再次与大家分享它们!
- 管理 Disney+ 的流量高峰:了解 Disney+ 如何利用 ClickHouse 的强大功能管理其内容分发网络上的流量激增,确保全球数百万用户都能获得流畅的流媒体体验。
- 使用 Rokt 提供个性化实时优惠:了解 Rokt 如何利用 ClickHouse 为其动态实时优惠提供支持,并为客户创造量身定制的体验。
- 彭博实时股票市场分析:深入了解彭博如何利用 ClickHouse 对整个股票市场进行实时分析,从而能够做出数据驱动的决策并在金融领域保持领先地位。
即将举行的活动
请将以下活动标记在您的日历上
ClickHouse v23.03 版本发布网络研讨会
何时? 3月30日(星期四)太平洋标准时间上午 9 点 / 中欧时间下午 6 点
如何参加? 在 此处 注册。
ClickHouse Cloud 入门
何时? 4月5日(星期三)太平洋夏令时间上午 8 点
如何参加? 在 此处 注册。
曼哈顿 ClickHouse 春季聚会
何时? 4月26日(星期三)东部时间下午 5:30
如何参加? 在 此处 注册。
感谢您的阅读,我们下个月再见!