合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
作为世界上最快的实时分析数据库,ClickHouse 的许多工作负载都涉及大量的数据,这些数据只写一次,不经常修改(例如,物联网设备产生的遥测事件或电子商务网站产生的客户点击)。虽然这些通常是不可变的,但在分析期间提供上下文的其他关键数据集(例如,基于设备或客户 ID 的信息查找表)可能需要修改。
根据你的目标和性能要求,ClickHouse 有多种更新和删除数据的方法。本文的其余部分将描述每种方法及其优缺点,以及解决一些常见挑战的轻量级删除的一些最新进展。我们推荐最佳实践,并强调在考虑一种方法时需要考虑的一些重要事项。
在继续之前,确定更新是否是解决问题的最佳方法。例如,对于不经常更改的数据,对数据进行版本控制可能是更好的选择。在存储效率和查询性能方面,ClickHouse 是排名第一的分析数据库,所以在许多情况下,仅仅保存多个版本的数据而不是更新可能会更好。
轻量级删除代表首选和最有效的方式从 ClickHouse 删除数据。通过 DELETE FROM 表语法,用户可以指定一个条件来删除特定的行,如下所示:
DELETE FROM table WHERE col1 = 'Hi' AND col2 = 2
TOP