DoubleCloud 即将停止运营。利用 ClickHouse 限时免费迁移服务迁移您的数据。立即联系我们 ->->

博客 / 产品

ClickHouse 2023年4月新闻通讯:轻量级删除

author avatar
ClickHouse 团队
2023年4月25日

您是否注意到了我们的新面貌?我们借此机会更新了我们的网站,刷新了品牌形象,并且目前正在设计周边产品。请关注我们的网站或参加您附近的活动,以便有机会获得一些新的 ClickHouse 周边产品!

我们重新排列了本月的新闻通讯,以便更快地进入每月查询主题,但惯例的阅读清单和即将举行的活动将出现在底部。

顺便说一句,如果您在我们的网站上阅读此内容,您是否知道可以将每个月的新闻通讯作为电子邮件接收至您的收件箱?在此处注册

ClickHouse v23.3

  • 22 个新功能。
  • 14 项性能优化。
  • 61 个错误修复。

您可以在 v23.3 博客文章 中详细了解所有功能,如果您有兴趣,请不要忘记注册参加直播的 23.4 版本发布网络研讨会(欢迎提问)。

轻量级删除现已正式发布 (张健梅和 Alexander Gololobov)

这种删除数据的方法现在代表了从 ClickHouse 中删除数据的首选和最有效的方法。通过 DELETE FROM table 语法公开,用户可以指定条件以删除特定行。

Grafana 中的跟踪

作为我们 最近的博客文章(关于在 ClickHouse 上构建可观察性解决方案)的一部分,我们关注跟踪并意识到其在我们的官方 Grafana 插件中的呈现可以得到显著改善。通过少量更改,最新版本现在支持使用 跟踪面板探索视图 在 Grafana 中可视化跟踪。

并行副本 (Nikita Mikhailov)

使用 并行副本,数据可以由同一分片的多个副本并行处理。这允许查询性能进行扩展,因为不同的数据子集可以由多个 ClickHouse 主机并行处理。

本月查询 - “轻量级删除”

轻量级删除有可能影响用户处理 ClickHouse 中数据不可变性的基本方法。在本月的查询中,我们探讨了在增量更新物化表时如何使用轻量级删除。

我们经常看到用户使用复杂的模式需要通过 JOIN 操作将多个表物化到一个新表中,以加速后续查询。在数据仓库用例中,此表通常表示模型。此“反规范化”过程通常在 ClickHouse 中使用 INSERT INTO SELECT 查询 链接 来实现,其中联接的结果被插入到目标表中。我们在下面对其进行了可视化

materialized-target.png

除了简化后续查询外,此方法还有可能显着提高查询性能。虽然这解决了数据静态的情况,但如果源表发生更改,则需要进行更多考虑。在源表仅追加的情况下,可以通过一个简单的条件轻松更新反规范化表,该条件识别任何更改。例如,这可能是源表上的一个时间戳列,用于识别新行。使用此条件,我们可以通过重新执行 INSERT INTO SELECT 将新行流式传输到目标表中。

Update-materializedsimple.png

如果源表容易受到更新和重复项的影响,情况会变得稍微复杂一些。在这种情况下,用户可能会将新行流式传输到临时表 (1)。然后可以将目标表流式传输到一个新表中,并检查以省略临时表中的结果 (2) - 这假设存在唯一的行标识符 (下面的 id)。然后将临时表中的行插入到新表中 (3)。此新表随后可以作为模型的最新版本公开,例如,使用 EXCHANGE 语句 链接。此相当复杂的过程如下所示

old-incremental.png

此过程需要创建数据的完整副本才能更新目标表。在 ClickHouse 中,这在历史上比 删除变异 更受欢迎,后者比简单的追加会产生 更高的资源成本。但是,轻量级删除的出现为简化此过程提供了可能性。下面我们展示了如何将新行继续流式传输到临时表 (1)。但是,此临时表现在可以用于从现有的目标表中删除行(使用新的 DELETE 语法),然后再插入新行。这避免了复制数据,并提供了一种更新物化模型的更快方法。

delete-incremental.png

注意:此处的临时表可能只是一个子查询。使用表可确保该过程不受内存限制。

上述逻辑仍然相当复杂:肯定有一种方法可以封装此过程并使其更简单?本新闻通讯的读者(也是 dbt 用户)会立即将上述用例识别为“增量物化” - dbt 中的一种简单模型类型。因此,dbt-clickhouse 插件 使用上述确切过程,现在建议使用轻量级删除方法。

轻量级删除的用例超出了增量模型……支持处理 Kafka tombstone 消息 吗?我们很乐意了解轻量级删除如何改变您的工作流程!

阅读清单

您可能错过的我们的一些最喜欢的文章包括

  1. 深入了解 Apache Parquet 与 ClickHouse - 第 1 部分 - 自 2013 年作为 Hadoop 的列式存储发布以来,Parquet 作为一种提供高效存储和检索的文件交换格式已变得几乎无处不在。在本系列博客文章中,我们探讨了如何在深入研究 Parquet 之前使用 ClickHouse 读取和写入此格式。对于更高级的 Parquet 用户,我们还讨论了用户在使用 ClickHouse 编写 Parquet 文件时可以进行的一些优化以最大程度地提高压缩率,以及一些最近用于优化使用并行化读取性能的开发。
  2. 我作为连续创业的产品经理的历程 - 在这篇文章中,我们的产品副总裁 Tanya Bragin 分享了她职业生涯的故事。用她自己的话说,“我经常收到关于我如何决定成为初创公司产品经理以及我这些年来学到了什么的疑问。事实是,我生活中没有这样的计划 - 我是偶然进入产品管理职业的。但我一路走来学到了一些东西,我将尝试在本博文中总结要点。”

  3. ClickHouse 中加速 LZ4 - 此博文最初发布于 2019 年。我们对其进行了编辑并重新发布,以此纪念 LZ 系列算法的作者:亚伯拉罕·莱姆佩尔和雅各布·齐夫,他们最近去世。人们很容易认为每个新功能都是新颖的。每次新版本发布都将改变市场格局。然而,我们——作为一个行业——站在巨人的肩膀上。雅各布对信息论(超越压缩算法)的贡献,一直以来都是几代实践者和研究人员的灵感来源。
  4. 使用 ClickHouse 和 Hex 构建实时分析应用程序 - 作为世界上最快的分析型数据库,我们一直在寻找能够帮助用户快速轻松地实现其构建 ClickHouse 应用程序梦想的工具。因此,当 Hex.tech 宣布 ClickHouse 可用作数据源时,我们很高兴地看到了构建实时应用程序的潜力。在这篇博文中,我们探讨了如何使用 Hex.tech 收集数据并为我们的应用程序“ClickHub”构建了一个简单的概念验证。

即将举行的活动

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

ClickHouse v23.4 版本网络研讨会
4 月 26 日星期三,太平洋标准时间上午 9:00 / 中欧夏令时间下午 6:00
在此处注册

纽约市 ClickHouse Cloud 简介研讨会(名额有限!)
4 月 26 日星期三,东部标准时间上午 10:00
在此处注册

曼哈顿 ClickHouse 春季聚会
4 月 26 日星期三,东部标准时间下午 5:30
在此处注册

Supabase + ClickHouse:结合 OLTP 和 OLAP 世界的最佳优势
5 月 2 日星期二,太平洋标准时间上午 8:00
在此处注册

慕尼黑 AWS 上的 ClickHouse 简介研讨会(名额有限!)
5 月 3 日星期三,中欧夏令时间上午 9:00
在此处注册

使用 ClickHouse 和 Hex 构建实时分析应用程序
5 月 10 日星期三,太平洋标准时间上午 9:00 / 中欧夏令时间下午 6:00
在此处注册

柏林 ClickHouse 聚会
5 月 16 日星期二,中欧夏令时间下午 6:00
在此处注册

巴塞罗那 ClickHouse 聚会
5 月 23 日星期二,中欧夏令时间下午 6:00
在此处注册

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

分享此帖子

订阅我们的时事通讯

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