ClickHouse 本月精彩纷呈。我们发布了轻量级删除功能,这是 2022 年最受期待的 ClickHouse 功能之一。并且我们即将公开发布 ClickHouse Cloud(点击此处 申请抢先体验)。
继续阅读 ClickHouse 22.8 LTS(长期支持)版本中的炫酷功能、新的 DELETE 查询的简单示例,以及上个月 ClickHouse 的相关故事。
顺便说一句,如果您是在我们的网站上阅读此内容,您是否知道您也可以通过电子邮件接收每个月的时事通讯?点击此处 订阅。
即将举行的活动
标记您的日历
ClickHouse v22.9 版本发布网络研讨会
- 时间?太平洋标准时间 9 月 22 日星期四上午 9 点 / 中欧夏令时间下午 6 点
- 如何参加?点击此处 注册。
硅谷 ClickHouse 聚会
- 内容?与其他用户一起交流,并了解 PostHog、Grafana 和 Barracuda 如何使用 ClickHouse。
- 地点?美国加利福尼亚州圣何塞
- 时间?太平洋标准时间 9 月 28 日星期三下午 6 点
- 如何参加?点击此处 注册。
AWS re:Invent
- 内容?ClickHouse 团队的一些成员将参加 re:Invent!有兴趣与我们见面,或许喝一杯,聊聊 ClickHouse 吗?请告诉我们!
- 地点?美国内华达州拉斯维加斯
- 时间?2022 年 11 月 29 日至 12 月 3 日
ClickHouse v22.8 LTS
我们的新长期支持版本发布,包含许多新功能
- DELETE 查询 它终于来了!轻量级删除是我们 2022 年路线图 中最受请求的功能之一,我们提前几个月就完成了它。在您当前使用
ALTER TABLE … DELETE
的所有情况下,您几乎都应该切换到DELETE FROM … WHERE
。执行效率要高得多,尽管仍然是异步的(将mutations_sync = 2
设置为等待查询完成)。 - 扩展日期范围
Date32
和DateTime64
现在支持 1900 年到 2299 年的日期(之前是 1925 年到 2283 年)。 - 来自 S3 的并行分布式插入 ClickHouse 已经可以在单台机器上非常快速地插入数据(通常每秒数百万行)。但是,如果您有多台机器的集群,您现在可以在所有机器上并行地从 S3 插入数据。甚至可能每秒插入数十亿行?有人应该试试。
- JSON 日志记录 ClickHouse 现在可以以 JSON 格式输出其日志。这应该可以更容易地将其导入和查询到日志管理软件中。当然,您也可以将其导入 ClickHouse。
- [推断日期和数字](https://github.com/ClickHouse/ClickHouse/pull/39186 使用模式推断时,您现在可以告诉 ClickHouse 尝试从字符串中推断日期和数字。
- 查询参数 现在可以在交互模式下设置。例如,要定义一个名为
user
的参数,只需使用SET param_user = alexey
。 - 更多漂亮的格式 这里还有 7 个,总数接近 70 个。我个人喜欢
PrettyMonoBlock
,但所有格式都非常“漂亮”。
查看 版本发布网络研讨会的幻灯片、录制视频,并请升级 - 这是一个长期支持版本。
本月查询:删除数据让你心情舒畅
本月,让我们保持简单。并且稍微有点俏皮。
如果 ClickHouse 22.8 中有一个你绝对必须尝试的新功能,那就是新的 DELETE 查询。到目前为止,在 ClickHouse 中删除特定行的唯一方法是使用 ALTER TABLE table DELETE WHERE cond
语句。它会异步地重写包含与条件匹配的行所有数据文件。由于 ClickHouse 中的数据文件默认可以达到 150 GB,因此这非常昂贵,并且可能导致显着的 CPU 和内存使用量。
新的 DELETE 查询采用了一种不同的方法。它不是立即物理删除所有数据,而是仅使用隐藏列将指定行标记为已删除。数据仍然存在,但会透明地从查询中过滤掉。实际上,所有查询都使用附加条件 WHERE _deleted = false
执行。稍后,当 ClickHouse 在后台合并文件时,它将在合并过程中删除所有标记为已删除的行。
让我们看看新的 DELETE 查询有多有用。
仅仅为了好玩,让我们创建一个包含稳定币投资组合的表(成本是 2022 年 1 月 1 日每枚硬币的购买成本,价格是 2022 年 8 月 26 日的价值)
CREATE TABLE mymoney engine = MergeTree ORDER BY coin AS
SELECT 'USDC' AS coin, 1000 AS amount, 1.0002 AS cost, 0.9999 AS price
UNION ALL SELECT 'USDT', 1000, 1.0001, 1.00
UNION ALL SELECT 'USTC', 1000, 1.00, 0.0275
让我们计算一下我们的投资组合回报率
SELECT sum(amount * cost) cost, sum(amount * price) value,
value - cost gain_loss, 1 - value / cost pct FROM mymoney
我们损失了 32% 的资金!发生了什么事?事实证明,TerraUSD (USTC) 根本不是 “稳定”的稳定币。
但没关系,DELETE 查询将解决这个问题
SET allow_experimental_lightweight_delete = 1
DELETE FROM mymoney WHERE coin = 'USTC'
现在我们的投资组合回报率看起来好多了。如果真的这么简单就好了……
阅读角
我们一直在阅读什么
-
Cloudflare 博客:使用 ClickHouse 进行日志分析 除了使用 ClickHouse 提供实时 HTTP 和 DNS 分析 (链接、链接) 之外,Cloudflare 也在使用 ClickHouse 存储内部日志。通过从 Elasticsearch 迁移到 ClickHouse,他们能够消除采样,并提供快速查询,同时节省成本。
-
ClickHouse Grafana 插件 - 2.0 版本发布 我们广受欢迎的 ClickHouse Grafana 插件的 2.0 版本,现在支持 HTTP 连接和 JSON 数据类型,以及其他更改。查看一下!
-
探索海量真实世界数据集:ClickHouse 中 100 多年的天气记录 将一个多世纪的天气数据加载到 ClickHouse 中是什么样子,以及如何使用它。
-
将数据导入 ClickHouse - 第 1 部分 和 第 2 部分 将 Hacker News 数据导入 ClickHouse 并对其运行一些有趣查询的演练。
-
使用 Decodable 的变更流功能将 MySQL CDC 同步到 ClickHouse Decodable 在此视频中展示了如何将数据从 MySQL 同步到 ClickHouse。
-
新的 ClickHouse 用户:本月新增了一些有趣的用户,欢迎任天堂模拟器 Dolphin。同时,也欢迎开源广告拦截器 AdGuard 和非盈利项目 OONI。快来添加您的项目吧!
感谢您的阅读。我们下个月再见!
ClickHouse 团队